惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
K
Kaspersky official blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog
aimingoo的专栏
aimingoo的专栏
M
MIT News - Artificial intelligence
小众软件
小众软件
云风的 BLOG
云风的 BLOG
腾讯CDC
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
Stack Overflow Blog
Stack Overflow Blog
量子位
S
Secure Thoughts
G
GRAHAM CLULEY
C
CXSECURITY Database RSS Feed - CXSecurity.com
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
T
Threat Research - Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
G
Google Developers Blog
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Martin Fowler
Martin Fowler
The GitHub Blog
The GitHub Blog
Google DeepMind News
Google DeepMind News
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 聂微东
宝玉的分享
宝玉的分享
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
Forbes - Security
Forbes - Security
Engineering at Meta
Engineering at Meta
S
Security Affairs
Help Net Security
Help Net Security
博客园 - 三生石上(FineUI控件)
AWS News Blog
AWS News Blog
博客园 - 叶小钗
Recent Commits to openclaw:main
Recent Commits to openclaw:main
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
Project Zero
Project Zero
H
Heimdal Security Blog
W
WeLiveSecurity
C
Check Point Blog

KIRUPA | Designers and Developers Unite

Understanding Merkle Trees Is a CompSci Degree Still Valuable in the Age of AI? The Model Context Protocol (MCP) Explained Vibe Coding + Expertise = Mega Win! 🏆 Animating our Grid How to Count in Negabinary (Base (-2)) — A Visual Guide Counting in Binary and Hexadecimal Pascal Pixel on Design, Development, and Solopreneurship! Do we really need to know how things work? 🧠 Drawing Sharp Lines on the Canvas The KIRUPA Tech Stack : It Bloom Filter: A Deep Dive Hash Functions Deep Dive Advanced Glitch Effect with Sound AI Killed the Content Creator...Star 🤩 Measuring the Distance Between Two Points by using the Pythagorean Theorem Detecting Browser Zoom Changes in JavaScript Creating a Fullscreen Grid Drawing a Perfect Grid on the Canvas Preserving the Pixel Art Look in Web Content Ensuring our Canvas Looks Good on Retina/High-DPI Screens Finding Prime Numbers Using a Sieve of Eratosthenes Two-Dimensional (2D) Arrays in JavaScript Two-Dimensional (2D) Arrays in JavaScript Animations: From Biology to JavaScript! 🦠 You’ll Always be Building & Designing Creating a Cluster Growth Animation: From Biology to JavaScript Timsort: A Lightning Fast Hybrid Sorting Algorithm Merge Sort: A Simple Step-by-Step Walkthrough 😀 - YouTube Bubble Sort: A Detailed Deep-Dive 🛁 Insertion Sort: A Deep Dive! 🍣 Selection Sort: A Step-by-Step Guide 💬 Radix Sort: A Complete Guide to Fast and Efficient Sorting! ⚡️ Career Growth Secrets Counting Sort : A Friendly (yet Detailed!) Deep Dive! 🎯 Bogosort: Sorting in the Slow Lane! 🐢 Pulling Off a Successful Redesign Creating Your Own Perfect Timing Radix Sort Making Counting Sort Work with Negative Values Diving Deep into Array Index Positions The Career Three Body Problem Counting Sort Work on Problems You Deeply Care About The Importance of Finding a Career Mentor Creating a Random Walk Simulation What is Product Strategy? Thinking about an 8K Resolution Future! 📺 Creating an Animated 3D Starfield Effect Meet the Default Sorting Algorithms! Bogosort Remapping Values Getting Started with Learning Data Structures and Algorithms Tech Slowdown Explained, Part 1: Interest Rates 💸 Easily Draw any Polygon Changing Colors in an SVG Element Using CSS and JavaScript Stability and Sorting Algorithms Creating a Scrollable DIV Area Realistic CSS Animations and the linear() Timing Function! 🍱 Visualizing Recursion with the Sierpinski Triangle Fast Sorting with Quicksort The Monty Hall Problem Stacks in JavaScript Depth-First Search (DFS) and Breadth-First Search (BFS) Introduction to the Graph Data Structure Big-O Notation and Complexity Analysis Introduction to Data Structures Arrays: A Data Structure Deep Dive Hashtables: A Deep Dive into Efficient Data Storage and Retrieval Trie (aka Prefix Tree) Embracing Generative AI with Open Arms! 🧸 Impact of AI on UI/UX Design with Chloe Barreau 🎨 Heap Data Structure Binary Search Trees Binary Tree Traversal Alphabetically Sort Names in an Array Overlapping Elements on Top of Each Other Developer Relations and Beyond with Jamie Barton! 🚀 A Trip Down Memory Lane 💾 Binary Trees Linked List The Present and Future of AI Tools with Ray (aka devbyrayray) "Guess the Number" and Binary Searching! 🔍 SVG: Converting Shape to Path The Versatility of SVGs 🌀 Spinning Circular Text Introduction to Trees Faster Searching with Binary Search Search Algorithms and Linear Search Fibonacci and Going Beyond Recursion Guess the Number Game
Switching Web Hosts in 2023 😱
KIRUPA 🍊 · 2023-03-26 · via KIRUPA | Designers and Developers Unite

Hi everybody - a few weeks ago, I did something that most web developers dread. I changed web hosting providers on a live site! 😇

A few weeks ago, I did something that I never thought I would do in a million years. I deleted my Media Temple account and site settings:

For some background, the KIRUPA.com site has been hosted on Media Temple since 1999. They were one of the site’s earliest supporters and have hosted the site ever since. This is despite me not making their life easy. They worked with me through numerous scaling issues, sophisticated hacking attempts, technical quirks, and more with a smile on their digital faces.

I wasn’t the only one who loved Media Temple. Many developers and companies relied on them, and their success drew the attention of GoDaddy, who bought them in 2013. After a very long time of there being no changes (huge 👍 to GoDaddy for this!), over the last few months, GoDaddy started migrating all Media Temple accounts to their equivalent GoDaddy plans. Because KIRUPA.com was running on a custom server, the migration would have been a pain.

To avoid a tricky migration and the very likely downtime, I decided to proactively move the site’s contents to a new server I provisioned on GoDaddy. This meant backing up all of the files, closing my Media Temple account, deleting all of the site settings from it, and re-creating everything on a new server. What I found interesting through this whole process is how much the role of a web host has changed.

Back in the day, our choice of web hosting provider mattered a lot. How fast were they at serving content? Did they use SSDs? How much RAM did they provide? What version of PHP do they support? Were you going to have just one server or a bunch of servers co-located in other parts of the world?

The decisions you and I needed to make were quite large with real consequences, similar to what is shown below in this xkcd comic:

Circuit Diagram

A large part of the reason is that our web servers did a lot of work. A LOT OF WORK. They not only served our HTML content, but they also managed our database, were a mail server (including newsletter-scale I/O), were responsible for optimizing our content, and did a lot of other related tasks. The more powerful your server, the faster it could handle all of these tasks. At that time, unless you were a really large company, there were few feasible alternatives.

To get an idea of what web hosts emphasized as selling points, below is a screenshot of Media Temple’s site from 2010:

Those of you who lived through these times can relate. Many of you who entered the industry in the last ten years are probably puzzled by half of the things being talked about here.

The reason for this can be partly explained by the following: With the rise of serverless and microservices, we no longer depended on a single server to handle everything for us. Need a database? Use something like Firebase. Want a mail server? Use Mailgun to send a blast to thousands of people or something like Google Workspace for your (and your team’s) communication needs. Need to run some code on the server or provision a backend API? You have a bunch of options like AWS Lambda, Firebase, Cloud Run, or Azure Functions. Need a scalable backend to run virtually anything? Use DigitalOcean. Want to ensure your static content reaches everyone worldwide at lightning fast speed? Use a CDN like Cloudflare. Yes, there is an added cost in wrangling all of these services, but the rise in interoperability between all of these various services did even things out in the long-run.

For the majority of us, the do-everything-for-you monolithic web server is a relic of a bygone era. So what did I end up doing for KIRUPA.com? What did I replace the powerful Media Temple VPS server(s) that powered this site for decades with? I picked a single low-cost GoDaddy Shared Hosting server.

Over the years, I slowly shifted the many activities my Media Temple server does to the many services I called out earlier. All the server was really doing was serving static web content with the occasional PHP processing. The only strict requirement I had was that the server needed to handle Apache Server-Side Includes (SSI), a decision that highlights the age of this site when this was the best templating solution available! If there is interest, I may write about my current build process (🤦‍♂️) - just comment below or reply to this e-mail! 🙃

I hope you enjoyed this behind-the-scenes look at a task that I had to do a few weeks ago. You can follow along and participate in my Tweet on this topic that I posted a while ago or discuss on the forums.

Before I leave, I do want to say a huge Thank You again to Media Temple for everything. Those were good times.

Cheers,
Kirupa 😀