ADVERTISEMENT

Holiday gift guide 2024

Published Dec 7, 2024 11:19 am
IMG_1043.jpeg

 

The holiday season is here, and I've got some thoughtful gift ideas for your family and friends.

1. Yubikeys: These hardware security keys are a great way to keep your online accounts safe from phishing attacks. They're not tied to any specific smartphone, which is better than passkeys. Gift a pair so one can be kept as a backup.

2. Deeper Connect Air: With the amount of data companies collect these days, it's more important than ever to protect your online connection. A VPN can help, but not all of them are trustworthy. Deeper Connect Air is a one-time payment gadget that works like Apple's Private Relay (which doesn't work in the Philippines for some reason), by bouncing your online traffic from one server to another to mask your location and online destination, making it more private. You can also route your online traffic through different geographic locations to make it look like you're somewhere else. Deeper Connect Air works on most Wi-Fi hotspots, except for those that use enterprise-level authentication, like the eduroam.org network. In that case, a NymVPN subscription might be a better option.

3. AirTags: You can't go wrong with these little gadgets! They're perfect for keeping track of bags, keys, and even wallets. Just make sure you're gifting them to someone with an iPhone or iPad.

4. USB-C external storage: Who doesn't love extra storage? A portable USB-C drive is always a welcome gift. Look for one that supports at least 10 Gbps data transfers. For iPhone 15 or newer owners, get them one with magnets to connect the extra storage at the back of the iPhone, which can then be used to record videos directly! I highly recommend the Hagibis Magnetic NVMe SSD enclosure paired with a 1TB SSD. You can't go wrong with a Samsung USB-C thumbdrive either.

5. Firewalla Purple: Protecting your home network is super important. Most broadband networks have basic firewalls, and some rely on extra third-party services. Firewalla Purple is an awesome firewall device with Intrusion Detection/Protection services, a VPN host, and more, and it does not require a subscription service.

6. Raspberry Pi 5 with 8GB RAM: I absolutely love using my Raspberry Pi 5 with 8GB RAM to self-host some of my online services. It's a fantastic gift for anyone who enjoys tinkering with electronics or wants a small computer to learn programming.

7. Rocketbook: This is a unique gift that combines analog and digital elements. You can use an app to digitize whatever you write in the notebook, making it reusable. Just wipe off the notes or microwave the notebook to remove the ink. This is perfect for students who need a handy tool for taking notes.

8. USB-C Data cable: First things first, you'll want to make sure the cable supports at least 100 watts of charging power and 10 gigabits of data transfer. Once you've got that covered, you just need to decide on the length of the cable. Anker, Ugreen, Orico, and Hagibis are all great options, and you can't go wrong with either a 6-inch cable or a 1-meter cable. You can also choose between an angled connector or the usual straight one, and between a silicon-based cable or a braided one. Choose a combination that you think is best to whoever you are gifting it to.

There you go. A short list of recommended gifts for this year.

ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.