Skip to content

Commit 97526a4

Browse files
authored
General updates & tidy-up (#4)
* Refactor GitHub Actions workflow for PR previews and enhance Jekyll configuration with navigation links; remove obsolete staging files and add test staging post. * Fix preview workflow to bypass GitHub Pages environment protection * Refactor GitHub Actions workflow for PR previews: rename deploy-preview job to build, and update deployment steps; update email contact in about.md * Update permissions in GitHub Actions workflow to restrict contents access to read * Fix navigation links in Jekyll configuration to include trailing slashes; add new page layout for consistent styling. * Add header and navigation styling for improved layout and responsiveness * Refactor header and navigation styles for improved layout and responsiveness * Refactor navigation styles for improved layout and responsiveness * Refactor navigation markup for debugging and testing purposes * Refactor header navigation for improved structure and styling * Refactor header markup for improved structure and readability * Refactor header structure and add dynamic navigation for improved usability * Add header structure and navigation for improved layout and accessibility * Refactor site header markup for improved structure and readability * Remove unnecessary border from header navigation for improved styling * Update header links color for improved visibility and enhance archive and tags pages with better styling and structure * Enhance archive and tags styling with improved layout, hover effects, and responsive design * Update archive and tags styles for improved consistency and visual appeal * Simplify tags.md structure and styling to match home page exactly * Override theme's green tag colors with gray colors to match design * Remove inline styles from tags.md and delegate styling to custom.css for better maintainability * Restore original green theme colors for tags as requested * Update sitemap URL in robots.txt to point to the correct domain * Convert all tags to camelCase array format: tags: [tagA, tagB] * Update URL in _config.yml to point to the correct domain * Add changelog section to all blog posts with initial publication dates and recent updates * Rename welcome post file from welcome-to-devnomadic.md to devnomadic.md * Update project configuration and enhance blog content - Correct capitalization in project description and author bio in _config.yml - Add a physical notebook recommendation to the remote development environment post - Expand laptop considerations section with performance, screen quality, and port selection details - Update styling in archive.md for better visual appeal - Remove mobile text justification rules from custom.css - Add Oracle Cloud Infrastructure support and enhance data structures in Albatross post - Document recent enhancements and changelog updates in Albatross post * Update description in _config.yml and modify post title for consistency * Fix description and bio formatting in _config.yml for consistency * Fix formatting of description and bio in _config.yml for consistency * Fix HTML entity formatting in description and bio in _config.yml for consistency * Update description and bio formatting in _config.yml for consistency Add new features and enhancements in Albatross post, including Gen-AI search and improved security measures * Fix formatting of architecture diagram in 2025-06-10-albatross.md for clarity * Enhance Albatross documentation with recent updates, including static sitemap implementation, cross-browser ASCII art rendering fixes, and security hardening in deployment pipeline. * Add jekyll-mermaid gem and update architecture diagrams in Albatross post * Fix Mermaid chart rendering - Add Mermaid.js CDN integration to head-custom.html - Remove jekyll-mermaid plugin (conflicting approach) - Add automatic conversion of mermaid code blocks to diagrams - Include custom theming for better visual integration - Charts should now render properly on live site * Improve Mermaid.js initialization and add test page - Enhanced JavaScript initialization with better error handling - Added fallback initialization timing for more reliable loading - Created mermaid-test.md page to verify functionality - Fixed startOnLoad timing issues with more robust approach * Final Mermaid.js fixes with multiple approaches - Enhanced kramdown configuration for better code block processing - Added mermaid.html include for alternative embedding method - Simplified JavaScript initialization with better error handling and logging - Added comprehensive test page with multiple methods - Fixed timing issues with window.load event handler * Simplify Mermaid approach with direct div method - Remove complex JavaScript code conversion - Add inline script to Albatross post for direct rendering - Simplify test page with direct div elements - Use unpkg CDN for more reliable loading - Focus on working solution over complex automation * Integrate jekyll-mermaid gem and update Mermaid.js configuration for improved diagram rendering * feat: Initial commit of Albatross - a secure IP abuse checker using Blazor WebAssembly and Cloudflare Workers - Implemented secure API proxy architecture with HMAC authentication - Developed real-time IP reputation checking via AbuseIPDB - Created build-time key generation for enhanced security - Integrated Cloudflare Workers for API calls and authentication - Added comprehensive logging and monitoring features - Established automated deployment pipeline using GitHub Actions - Included Cloud IP Manifest Search functionality for major cloud providers - Enhanced user interface and experience with responsive design - Documented architecture, security features, and lessons learned
1 parent 3f06436 commit 97526a4

19 files changed

Lines changed: 780 additions & 304 deletions

β€Ž.github/workflows/preview.ymlβ€Ž

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,45 @@ on:
99
- closed
1010

1111
permissions:
12-
contents: write
13-
pull-requests: write
12+
contents: read
13+
pages: write
14+
id-token: write
1415

15-
concurrency: preview-${{ github.ref }}
16+
concurrency:
17+
group: "pr-preview"
18+
cancel-in-progress: false
1619

1720
jobs:
18-
deploy-preview:
21+
build:
1922
runs-on: ubuntu-latest
2023
steps:
2124
- name: Checkout
2225
uses: actions/checkout@v4
23-
26+
2427
- name: Setup Ruby
2528
uses: ruby/setup-ruby@v1
2629
with:
2730
ruby-version: '3.1'
2831
bundler-cache: true
29-
30-
- name: Build Jekyll site
31-
if: github.event.action != 'closed'
32-
run: |
33-
# Remove CNAME file for previews to avoid routing conflicts
34-
rm -f CNAME
35-
bundle exec jekyll build
32+
33+
- name: Build with Jekyll
34+
run: bundle exec jekyll build
3635
env:
3736
JEKYLL_ENV: production
38-
39-
- name: Deploy preview
40-
uses: rossjrw/pr-preview-action@v1
37+
38+
- name: Upload artifact
39+
uses: actions/upload-pages-artifact@v3
4140
with:
42-
source-dir: ./_site
43-
preview-branch: gh-pages
44-
umbrella-dir: pr-preview
41+
path: ./_site
42+
43+
deploy:
44+
environment:
45+
name: github-pages
46+
url: ${{ steps.deployment.outputs.page_url }}
47+
runs-on: ubuntu-latest
48+
needs: build
49+
steps:
50+
- name: Deploy to GitHub Pages
51+
id: deployment
52+
uses: actions/deploy-pages@v4
53+

β€ŽGemfileβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ gem 'jekyll-dash', '~> 2.0'
55
gem 'jekyll-feed', '~> 0.17'
66
gem 'jekyll-sitemap', '~> 1.4'
77
gem 'jekyll-paginate', '~> 1.1'
8+
gem 'jekyll-mermaid'
89

910
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
1011
# and associated library.

β€Ž_config.ymlβ€Ž

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
theme: jekyll-dash
22
title: devnomadic
3-
description: Software engineer and digital nomad currently exploring the world. I write about remote work, travel, and building software from anywhere.
4-
url: "https://devnomadic.github.io"
3+
description: "<span style='color:#e74c3c'>&quot;</span><span style='color:#3498db'>Dev</span><span style='color:#f39c12'>&#40;</span><span style='color:#3498db'>Ops</span><span style='color:#e74c3c'>&#124;</span><span style='color:#3498db'>SecOps</span><span style='color:#f39c12'>&#41;</span><span style='color:#9b59b6'>&#63;</span><span style='color:#e74c3c'>&#124;</span><span style='color:#27ae60'>SRE</span><span style='color:#e74c3c'>&quot;</span> Engineer and digital nomad currently exploring the world. I write about remote work, travel, and building software from anywhere."
4+
url: "https://devnomadic.com"
55
baseurl: ""
66

77
# Jekyll pagination (required for home page)
@@ -12,7 +12,7 @@ author:
1212
name: devnomadic
1313
github: devnomadic
1414
email: drew@devnomadic.com
15-
bio: "Software engineer and digital nomad currently exploring the world. I write about remote work, travel, and building software from anywhere."
15+
bio: "<span style='color:#e74c3c'>&quot;</span><span style='color:#3498db'>Dev</span><span style='color:#f39c12'>&#40;</span><span style='color:#3498db'>Ops</span><span style='color:#e74c3c'>&#124;</span><span style='color:#3498db'>SecOps</span><span style='color:#f39c12'>&#41;</span><span style='color:#9b59b6'>&#63;</span><span style='color:#e74c3c'>&#124;</span><span style='color:#27ae60'>SRE</span><span style='color:#e74c3c'>&quot;</span> Engineer and digital nomad currently exploring the world. I write about remote work, travel, and building software from anywhere."
1616
avatar: "/assets/avatar.gif"
1717

1818
# Build settings
@@ -21,13 +21,26 @@ plugins:
2121
- jekyll-feed
2222
- jekyll-sitemap
2323
- jekyll-paginate
24+
- jekyll-mermaid
25+
26+
# Mermaid configuration
27+
mermaid:
28+
src: 'https://unpkg.com/mermaid@10.6.1/dist/mermaid.min.js'
2429

2530
# Theme settings
2631
dash:
2732
date_format: "%b %-d, %Y"
2833
show_author: true
2934
avatar_source: "local"
3035
avatar_path: "/assets/avatar.gif"
36+
show_nav: true
37+
nav_links:
38+
- url: /about/
39+
title: About
40+
- url: /archive/
41+
title: Archive
42+
- url: /tags/
43+
title: Tags
3144
social_links:
3245
- url: https://github.com/devnomadic
3346
icon: github

β€Ž_config_preview.ymlβ€Ž

Lines changed: 0 additions & 20 deletions
This file was deleted.

β€Ž_includes/head-custom.htmlβ€Ž

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,3 @@
1515
background-color: #e8eaed;
1616
color: #202124;
1717
}
18-
</style>

β€Ž_includes/header.htmlβ€Ž

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<div class="site-header">
2+
<div class="wrapper">
3+
<a class="site-title" rel="author" href="{{ "/" | relative_url }}">{{ site.title | escape }}<b class="command_prompt"></b><b class="blinking_cursor">_</b></a>
4+
<span class="social_links">
5+
{% for link in site.dash.social_links %}
6+
{% if link.fa == true %}
7+
<a class="color-{{ link.color }}-hover" href="{{ link.url }}"{% if link.rel %} rel="{{ link.rel }}"{% endif %}><i class="fa fa-{{ link.icon }}"></i></a>
8+
{% else %}
9+
<a class="color-{{ link.color }}-hover" href="{{ link.url }}"{% if link.rel %} rel="{{ link.rel }}"{% endif %}><i class="fab fa-{{ link.icon }}"></i></a>
10+
{% endif %}
11+
{% endfor %}
12+
</span>
13+
<br style="clear: both;">
14+
<div style="margin-top: 0.5em; padding-top: 0.75em;">
15+
<a href="/about/" style="display: inline-block; margin-right: 2em; color: #de5684; text-decoration: none; font-size: 1em;">About</a>
16+
<a href="/archive/" style="display: inline-block; margin-right: 2em; color: #de5684; text-decoration: none; font-size: 1em;">Archive</a>
17+
<a href="/tags/" style="display: inline-block; margin-right: 2em; color: #de5684; text-decoration: none; font-size: 1em;">Tags</a>
18+
</div>
19+
</div>
20+
</div>

β€Ž_includes/mermaid.htmlβ€Ž

Whitespace-only changes.

β€Ž_layouts/page.htmlβ€Ž

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
layout: default
3+
---
4+
5+
<div class="page">
6+
<h1 class="page-title">{{ page.title }}</h1>
7+
{{ content }}
8+
</div>

β€Ž_posts/2025-06-08-remote-development-environment.mdβ€Ž

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,29 @@ layout: post
33
title: "Setting Up the Perfect Remote Development Environment"
44
description: "Essential tools and configurations for productive remote coding"
55
date: 2025-06-08
6-
tags: remote-work development tools productivity vscode docker
6+
tags: [remoteWork, development, tools, productivity, vsCode, docker]
77
---
88

99
# Creating Your Remote Development Paradise
1010

11+
## πŸ“ TL;DR
12+
13+
Complete guide to **setting up a productive remote development environment** for digital nomads:
14+
15+
**Hardware Essentials:**
16+
- πŸ’» **MacBook Pro M3** (16GB+ RAM) + portable monitor
17+
- ⌨️ **Compact mechanical keyboard** + wireless mouse
18+
19+
**Software Stack:**
20+
- πŸ”§ **VS Code** with Remote Development extensions
21+
- 🐳 **Docker** for consistent environments
22+
- ☁️ **Cloud services** (GitHub Codespaces, AWS Cloud9)
23+
- πŸ”’ **VPN** + secure backup solutions
24+
25+
**Key Tips:** Prioritize battery life, internet reliability, and portable ergonomics!
26+
27+
---
28+
1129
Working remotely as a developer requires a carefully crafted environment that enables productivity from anywhere in the world. Here's my guide to setting up the perfect remote development setup.
1230

1331
## Essential Hardware
@@ -22,6 +40,7 @@ Your laptop is your lifeline. I recommend:
2240
- **Portable monitor** - For dual-screen setups in coworking spaces
2341
- **Mechanical keyboard** - Compact 60% or TKL for travel
2442
- **Wireless mouse** - Better ergonomics than trackpad for long sessions
43+
- **Physical Notebook** - Always handy to scribble thoughts and diagrams. I prefer an A5 Moleskine (Graph Paper)
2544

2645
## Software Stack
2746

@@ -104,6 +123,34 @@ git push --all origin # All branches to remote
104123
- Record video explanations for complex topics
105124
- Use collaborative coding tools (Live Share, CodeSandbox)
106125

126+
### Laptop Considerations for Remote Work
127+
128+
#### Performance vs Portability Balance
129+
- **Weight matters**: Aim for under 3 lbs if constantly traveling
130+
- **Battery life**: Minimum 8 hours for reliable all-day work
131+
- **Processing power**: M-series MacBooks or AMD Ryzen for efficiency
132+
133+
#### Screen Quality
134+
- **High resolution**: 1440p minimum for code readability
135+
- **Color accuracy**: Important for UI/design work
136+
- **Brightness**: 400+ nits for outdoor/bright environment work
137+
138+
#### Port Selection
139+
- **USB-C/Thunderbolt**: Future-proof and versatile
140+
- **HDMI port**: Direct external monitor connection
141+
- **SD card slot**: Useful for photographers/content creators
142+
- **Headphone jack**: Backup for wireless audio issues
143+
144+
#### Keyboard & Trackpad
145+
- **Key travel**: Sufficient feedback for long typing sessions
146+
- **Trackpad size**: Large enough for gesture navigation
147+
- **Backlit keys**: Essential for low-light environments
148+
149+
#### Repairability & Support
150+
- **Global warranty**: Apple Care+ or manufacturer support worldwide
151+
- **Parts availability**: Consider common models in your travel regions
152+
- **Local service centers**: Research coverage in frequent destinations
153+
107154
## Location-Specific Tips
108155

109156
### Coworking Spaces
@@ -127,4 +174,9 @@ The perfect remote development environment is personal and evolves with your nee
127174

128175
The key is having redundancy in everything - internet, power, workspace options. This ensures you can always deliver quality work regardless of where you are in the world.
129176

177+
## πŸ“‹ Changelog
178+
179+
- **2025-06-08:** Initial publication
180+
- **2025-06-15:** Updated tag format and added changelog
181+
130182
---

_posts/2025-06-09-welcome-to-devnomadic.md renamed to _posts/2025-06-09-devnomadic.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,27 @@
11
---
22
layout: post
3-
title: "Welcome to devnomadic"
3+
title: "devnomadic"
44
description: "Starting my journey as a digital nomad developer"
55
date: 2025-06-09
6-
tags: introduction devnomad remote-work digital-nomad software-engineering travel lifestyle blogging
6+
tags: [introduction, devNomad, remoteWork, digitalNomad, softwareEngineering, travel, lifestyle, blogging]
77
---
88

99
# Welcome to my digital nomad journey!
1010

11+
## πŸ“ TL;DR
12+
13+
πŸš€ **Starting devnomadic** - a blog documenting my journey as a software engineer embracing the digital nomad lifestyle.
14+
15+
**What you'll find here:**
16+
- πŸ”§ **Technical tutorials** & best practices
17+
- 🌍 **Remote work insights** from distributed teams
18+
- ✈️ **Travel stories** from a developer's perspective
19+
- πŸ“± **Tool recommendations** for nomadic developers
20+
21+
Join me as I explore the intersection of **code, travel, and remote work**!
22+
23+
---
24+
1125
Hello and welcome to devnomadic! This blog represents the beginning of documenting my journey as a software engineer embracing the digital nomad lifestyle.
1226

1327
## Why devnomadic?
@@ -45,4 +59,9 @@ I'm excited to share this journey with you. Whether you're a fellow developer cu
4559

4660
Let's build something amazing together, from anywhere in the world! πŸš€
4761

62+
## πŸ“‹ Changelog
63+
64+
- **2025-06-09:** Initial publication
65+
- **2025-06-15:** Updated tag format and added changelog
66+
4867
---

0 commit comments

Comments
Β (0)