Skip to content

Commit

Permalink
Simplify
Browse files Browse the repository at this point in the history
  • Loading branch information
cesalberca committed Aug 22, 2024
1 parent 7a6b283 commit 25489f5
Show file tree
Hide file tree
Showing 125 changed files with 802 additions and 2,929 deletions.
2 changes: 2 additions & 0 deletions src/app/blog/(posts)/use-cases-and-commands/page.mdx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import MdxLayout from '../../mdx-layout'

export const metadata = {
title: "Use Cases and Command Pattern",
date: "2019-04-17",
Expand Down
1 change: 0 additions & 1 deletion src/app/blog/mdx-layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import type { PostMetadata } from '@/posts'
/*
export async function generateMetadata({ params }: Params): Promise<Metadata | void> {
const { title, date: publishedTime, image, summary } = params.metadata
console.log(params.metadata)
const ogImage = image ? image : `${baseUrl}/og?title=${encodeURIComponent(title)}`
return {
Expand Down
11 changes: 2 additions & 9 deletions src/app/blog/page.tsx
Original file line number Diff line number Diff line change
@@ -1,18 +1,11 @@
import { useTranslations } from 'next-intl'
import { Page } from '@/core/components/page/page'
import { BlogPosts } from '@/app/components/posts'
import { BlogPostsPage } from '@/features/posts/delivery/posts.page'

export const metadata = {
title: 'Blog',
description: 'Read my blog.',
}

export default function Index() {
const t = useTranslations()
return (
<Page>
<h1 className="wrapper font-semibold text-2xl mb-8 tracking-tighter">{t('blog.title')}</h1>
<BlogPosts />
</Page>
)
return <BlogPostsPage />
}
39 changes: 0 additions & 39 deletions src/app/components/posts.tsx

This file was deleted.

36 changes: 0 additions & 36 deletions src/app/components/talks.tsx

This file was deleted.

6 changes: 3 additions & 3 deletions src/app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { HomePage } from '../features/home/ui/home.page'
import { HomePage } from '@/features/home/delivery/home.page'

export default function Home() {
return <HomePage articles={[]} />
export default function Page() {
return <HomePage />
}
12 changes: 6 additions & 6 deletions src/app/rss/route.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
import { getBlogPosts } from '../../posts'
import { baseUrl } from '../sitemap'
import { getPosts } from '@/posts'

export async function GET() {
let allBlogs = await getBlogPosts()
const allBlogs = await getPosts()

const itemsXml = allBlogs
.sort((a, b) => {
if (new Date(a.metadata.date) > new Date(b.metadata.date)) {
if (new Date(a.date) > new Date(b.date)) {
return -1
}
return 1
})
.map(
post =>
`<item>
<title>${post.metadata.title}</title>
<title>${post.title}</title>
<link>${baseUrl}/blog/${post.slug}</link>
<description>${post.metadata.summary || ''}</description>
<pubDate>${new Date(post.metadata.date).toUTCString()}</pubDate>
<description>${post.summary || ''}</description>
<pubDate>${new Date(post.date).toUTCString()}</pubDate>
</item>`,
)
.join('\n')
Expand Down
54 changes: 54 additions & 0 deletions src/app/talks/(talks)/advanced-javascript-patterns/page.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import MdxLayout from '../../mdx-layout'

export const metadata = {
title: "Advanced JavaScript Patterns",
length: 45,
difficulty: "Advanced",
language: "es",
image: "advanced-javascript-patterns.png",
topics: [
"Proxies",
"JavaScript"
],
events: [
{
name: "JSDay Madrid",
date: "2018-10-20",
slides: "https://drive.google.com/open?id=15tLH3xBpZbwHlhRGtiygc0x9NRaxNlPWhqghw5iNu4U",
code: "https://github.com/cesalberca/advanced-javascript-patterns/tree/2018-jsday-madrid",
video: "https://www.youtube.com/watch?v=aNf1Oos0ZB8"
},
{
name: "JSDay Canarias",
date: "2019-11-10",
slides: "https://drive.google.com/open?id=1Eoa1EVelW11x5Es7Ru0tnmWdzfQOAlEWz07TK1qLh_o",
code: "https://github.com/cesalberca/advanced-javascript-patterns/tree/2019-jsday-canarias",
video: "https://youtu.be/3nPPRvRcoo0"
},
{
name: "Codenares",
date: "2019-03-19",
slides: "https://drive.google.com/open?id=1LEWc3ErrzjaN3nzlsMtGVx1QKGsc8G2mgw-qP-WZhJo",
code: "https://github.com/cesalberca/advanced-javascript-patterns/tree/2019-codenares",
video: "https://youtu.be/MuCgyOTXIRU"
},
{
name: "OS Weekends",
date: "2019-12-13",
slides: "https://docs.google.com/presentation/d/1D0Xe0Ch5eGcy-CDLwxpW_QwoDX6-mGxjprWmQ_EkH5c/edit?usp=sharing",
code: "https://github.com/cesalberca/advanced-javascript-patterns/tree/2019-osweekends"
},
{
name: "Codemotion Meetup",
date: "2020-02-25",
slides: "https://docs.google.com/presentation/d/1htHNH9BfNdXmSn88eJNrLzeys6Het9i6EUqBn-v_01U/edit?usp=sharing",
code: "https://github.com/cesalberca/advanced-javascript-patterns/tree/2020-codemotion-meetup-madrid"
}
]
}

When you tell people you code in JavaScript they usually look down on you. This talk will give you the tools to enlighten those heretics. We'll be entering the world of **design patterns** applied to JavaScript, looking through some of the cutting edge properties of ES6 such as **Proxies** and **default function parameter expressions**, dealing with **objects** and even some examples of **functional programming**. This talk is not allowed for cardiacs.

export default function MDXPage({ children }) {
return <MdxLayout slug="advanced-javascript-patterns">{children}</MdxLayout>
}
31 changes: 31 additions & 0 deletions src/app/talks/(talks)/atomic-programming-habits/page.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import MdxLayout from '../../mdx-layout'

export const metadata = {
title: "Atomic Programming Habits",
length: 45,
difficulty: "Beginner",
language: "en",
image: "atomic-programming-habits.jpeg",
topics: [
"Programming",
"Habits",
"Good practices"
],
events: {
notes: `
In this talk, we’re diving into how to build better habits, inspired by James Clear's book "Atomic Habits." We’ll break down Clear’s research-backed strategies into easy-to-follow steps. Plus, we’ll show you how to use cool tech stuff like Progressive Web Apps and NFC tags to make tracking your habits a breeze.
By joining, you’ll not only learn how to stick to good habits but also how to ditch the bad ones. And with the support of our community, you’ll have a team cheering you on every step of the way. So if you’re ready to level up your productivity and make positive changes in your life, this talk is definitely for you!
`
}
}

Do you find it difficult to stick to a routine? Do you often postpone tasks indefinitely or procrastinate excessively? If so, you are not alone. Join us on this journey inspired by "Atomic Habits" by James Clear to create positive habits and break free from negative ones. In this talk, we will explore what habits are, how they form, and how we can hack them in our personal lives.

Together, we will use a PWA with NextJS to seamlessly track our habits, integrating it with Notion. With NFC tags, we will effortlessly record our progress.

It's time to say goodbye to procrastination and embrace sustainable productivity!

export default function MDXPage({ children }) {
return <MdxLayout slug="atomic-programming-habits">{children}</MdxLayout>
}
45 changes: 45 additions & 0 deletions src/app/talks/(talks)/can-deno-turn-node-upside-down/page.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import MdxLayout from '../../mdx-layout'

export const metadata = {
title: "Can Deno turn Node upside down? 🦕",
length: 45,
difficulty: "Beginner",
language: "es",
image: "deno.png",
topics: [
"Deno",
"Node",
"TypeScript",
"JavaScript"
],
events: [
{
name: "NMNL",
date: "2020-06-17",
slides: "https://docs.google.com/presentation/d/1IPFghU1OI6d_kChg7Fbzvs62W61_SpNWDQx4pCaagBQ/edit?usp=sharing",
video: "https://www.youtube.com/watch?v=R3uNjzCLG2s"
},
{
name: "Codemotion Webinar",
date: "2020-09-22",
slides: "https://docs.google.com/presentation/d/1c-rvncDEwd3Dr-s-LZX1Kj8usBhtEGMKUd-b_U60KGo/edit?usp=sharing",
video: "https://www.youtube.com/watch?v=vLMUCv3gbZA"
},
{
name: "OS Weekends",
date: "2020-06-27",
slides: "https://docs.google.com/presentation/d/1ugl_PN7cEzB8FEXH8t7lTevOCdM246HOWEMUXH8qB7c/edit?usp=sharing"
}
]
}

Deno is said to be by many the successor of Node, including the creator of both: Ryan Dahl, who using the knowledge obtained from Node's 10 year lifespan started this project in order to fix some of the errors, which he mentions in the [talk where he introduced Deno to the world](https://www.youtube.com/watch?v=M3BM9TB-8yA).

Node was very disruptive in the tech world, but back then JavaScript was not what it is today. Many things didn't exist then, like promises, ESModules, binary data and many other APIs that are standard now. So Node had to innovate in these areas. But now that there are many standard APIs that solve these problems Node has had problems adapting, as it would have meant that there would be very big breaking changes.

Moreover, Deno has native TypeScript support —which means that we don't need to compile a TypeScript file in order to run it—, a security model, a decentralized solution to distribute packages, a single executable and many more things.


export default function MDXPage({ children }) {
return <MdxLayout slug="can-deno-turn-node-upside-down">{children}</MdxLayout>
}
43 changes: 43 additions & 0 deletions src/app/talks/(talks)/confronting-bad-software/page.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import MdxLayout from '../../mdx-layout'

export const metadata = {
title: "Con*front*ing bad software",
length: 40,
difficulty: "Advanced",
language: "es",
image: "confronting-bad-software.png",
topics: [
"JavaScript",
"TypeScript",
"SOLID",
"Design patterns"
],
events: [
{
name: "Codemotion Madrid",
date: "2019-09-25",
slides: "https://drive.google.com/open?id=1pZT-loQzuB7IZaIZNxpOXELovCLdnFAxws6B2-A0DeE",
code: "https://github.com/cesalberca/afrontando-el-mal-software/tree/2019-codemotion-madrid",
video: "https://youtu.be/y0BymiCki54",
demo: "https://codesandbox.io/s/github/cesalberca/afrontando-el-mal-software"
},
{
name: "Juan XXIII",
date: "2019-02-24",
slides: "https://docs.google.com/presentation/d/1GR2PJMp_cxeCdEd1razuE7zbMvsKcAApEDsB8okTOvw/edit?usp=sharing",
code: "https://github.com/cesalberca/afrontando-el-mal-software/tree/2019-j23-madrid"
},
{
name: "Labs Talk",
date: "2021-10-28",
slides: "https://docs.google.com/presentation/d/1GR2PJMp_cxeCdEd1razuE7zbMvsKcAApEDsB8okTOvw/edit?usp=sharing",
code: "https://github.com/cesalberca/afrontando-el-mal-software/tree/2021-lab-talks"
}
]
}

In the crazy world of the frontend it has been known by its **volatile nature**, however, we don't really put much effort to abstract ourselves from that nature. We should build **robust** and **long-lived** code. In this talk we'll see how to approach common problems using **TypeScript**, **components** and **several design patterns**. Moreover, we'll see how to make our code _open to change_ without needing to _try to guess the future_. And of course we'll follow **SOLID** principles to make your application easy to change and test. Let's start this journey towards _beautiful_ software!

export default function MDXPage({ children }) {
return <MdxLayout slug="confronting-bad-software">{children}</MdxLayout>
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
---
title: Creating Your Personal Language Mentor Using AI
length: 20
difficulty: Beginner
language: en
image: advanced-javascript-patterns.png
topics:
- AI
- Language Learning
events:
---
import MdxLayout from '../../mdx-layout'

export const metadata = {
title: "Creating Your Personal Language Mentor Using AI",
length: 20,
difficulty: "Beginner",
language: "en",
image: "advanced-javascript-patterns.png",
topics: [
"AI",
"Language Learning"
],
events: []
}

As a Digital Nomad, my life is filled with new languages, cultures, and challenges. As a Software Developer I'm always looking for ways to automate and improve my life on the go. Traditional language learning apps never quite worked for me—they felt too rigid and didn't adapt to what I really needed. So, I decided to create my own solution using Artificial Intelligence (AI).

In this talk, I’ll share how I built a custom language learning assistant using GPTs within ChatGPT, tailored to fit my unique way of learning. I’ll walk you through the process, from the initial idea to actually making it work, and show you how you can build your own AI-powered language tutor. Whether you’re navigating new places, passionate about tech, or just excited to learn something new, you’ll walk away with the tools and inspiration to create your personal language mentor using AI.

export default function MDXPage({ children }) {
return <MdxLayout slug="creating-your-personal-language-mentor-using-ai">{children}</MdxLayout>
}
27 changes: 27 additions & 0 deletions src/app/talks/(talks)/flexbox-and-grid/page.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import MdxLayout from '../../mdx-layout'

export const metadata = {
title: "Taller de maquetación web con CSS Grid y flexbox",
length: 180,
difficulty: "Beginner",
language: "es",
image: "flexbox-and-grid.png",
topics: [
"CSS",
"Flexbox",
"Grid"
],
events: [
{
name: "Autentia",
date: "2018-01-24",
video: "https://www.youtube.com/watch?v=RFQy-ud8Ec4"
}
]
}

Web layouts have evolved exponentially. Grid and flexbox are a main part of this evolution. This native CSS tools allows us to create layouts easily and fast. It is a passionate subject that interests me and I'm sure it will interest you.

export default function MDXPage({ children }) {
return <MdxLayout slug="flexbox-and-grid">{children}</MdxLayout>
}
Loading

0 comments on commit 25489f5

Please sign in to comment.