mikeperham.com

Website review mikeperham.com

Mike Perham

 Generated on March 17 2026 11:40 AM

Old data? UPDATE !

The score is 57/100

SEO Content

Title

Mike Perham

Length : 11

Perfect, your title contains between 10 and 70 characters.

Description

Ruby, OSS and the Internet

Length : 26

Ideally, your meta description should contain between 70 and 160 characters (spaces included). Use this free tool to calculate text length.

Keywords

Very bad. We haven't found meta keywords on your page. Use this free online meta tags generator to create keywords.

Og Meta Properties

Good, your page take advantage of Og Properties.

Property Content
url https://www.mikeperham.com/
site_name Mike Perham
title Mike Perham
description Ruby, OSS and the Internet
locale en_us
type website

Headings

H1 H2 H3 H4 H5 H6
0 0 0 0 0 0

Images

We found 1 images on this web page.

1 alt attributes are empty or missing. Add alternative text so that search engines can better understand the content of your images.

Text/HTML Ratio

Ratio : 36%

Ideal! This page's ratio of text to HTML code is between 25 and 70 percent.

Flash

Perfect, no Flash content has been detected on this page.

Iframe

Great, there are no Iframes detected on this page.

URL Rewrite

Good. Your links looks friendly!

Underscores in the URLs

We have detected underscores in your URLs. You should rather use hyphens to optimize your SEO.

In-page links

We found a total of 355 links including 10 link(s) to files

Anchor Type Juice
Mike Perham Internal Passing Juice
Sidekiq🥋 External Passing Juice
Faktory🏭 External Passing Juice
📣 Mastodon External Passing Juice
Internal Passing Juice
Sidekiq in the terminal Internal Passing Juice
Adding Mastodon Comments Internal Passing Juice
Sidekiq 8.0: Profiling Internal Passing Juice
Sidekiq 8.0: Improvements to the Web UI Internal Passing Juice
Introducing Sidekiq 8.0 Internal Passing Juice
Conventional Commits Internal Passing Juice
Sponsoring Hanami Internal Passing Juice
Iteration and Sidekiq 7.3.0 Internal Passing Juice
Redis Licensing Changes and You Internal Passing Juice
Serializing Ruby datatypes in JSON Internal Passing Juice
How does Sidekiq work? Internal Passing Juice
Supporting Dragonfly Internal Passing Juice
Ruby HTTP Server from scratch Internal Passing Juice
Scaling Huge Transactional Datasets with Redis Cluster Internal Passing Juice
Sidekiq 7.0: Metrics Internal Passing Juice
Sidekiq 7.0: Embedding Internal Passing Juice
Introducing Sidekiq 7.0 Internal Passing Juice
Sidekiq 7.0 Beta now Available Internal Passing Juice
Sidekiq and Request-Specific Context Internal Passing Juice
Modernizing Einhorn Internal Passing Juice
Coming Soon in Sidekiq, 2022 edition Internal Passing Juice
🎉 Happy 10th Birthday, Sidekiq! 🎂 Internal Passing Juice
What’s New in Sidekiq 6.3 Internal Passing Juice
On Multi-Platform Docker images Internal Passing Juice
Using Tags with Sidekiq Jobs Internal Passing Juice
A Tour of the Sidekiq API Internal Passing Juice
Faktory News: Pause, RSS and Bring your own Redis Internal Passing Juice
Grouping Events for Later Processing Internal Passing Juice
Running Ruby on RISC-V Internal Passing Juice
The Leaky Bucket rate limiter Internal Passing Juice
What’s New in Sidekiq, 2020 edition Internal Passing Juice
Trimming Dependencies: rack-protection Internal Passing Juice
Trimming Dependencies: concurrent-ruby Internal Passing Juice
My Coolest Code Internal Passing Juice
Railsconf 2020 Virtual Hallway Internal Passing Juice
Creating a private, commercial Docker registry Internal Passing Juice
Faktory Enterprise Internal Passing Juice
Workload Isolation with Queue Sharding Internal Passing Juice
Welcome to Sidekiq 6.0 Internal Passing Juice
Something For Nothing Internal Passing Juice
Proxying Golang Web Applications Internal Passing Juice
Leaving Twitter Internal Passing Juice
Using Faktory with JavaScript Internal Passing Juice
Using Faktory with Python Internal Passing Juice
Introducing Faktory Pro Internal Passing Juice
Faktory 0.9.0 - Hello, Redis! Internal Passing Juice
Testing Ruby’s CGI Internal Passing Juice
Building Linux Packages and using Github Releases Internal Passing Juice
Moving to Mastodon Internal Passing Juice
Parallelize your work with Sidekiq Pro Internal Passing Juice
Taming Rails memory bloat Internal Passing Juice
Ruby Optimization with One Magic Comment Internal Passing Juice
Happy 6th Birthday, Sidekiq Internal Passing Juice
Faktory 0.7.0 Released Internal Passing Juice
Sidekiq Pro Statsd support – new and improved! Internal Passing Juice
Getting Started with Faktory Internal Passing Juice
Introducing Faktory Internal Passing Juice
The Future of Background Jobs Internal Passing Juice
Retries and Exceptions Internal Passing Juice
Helping Others Internal Passing Juice
Tracking down performance bugs in Sidekiq jobs Internal Passing Juice
Hello Sidekiq 5.0 Internal Passing Juice
Sidekiq at Railsconf 2017 Internal Passing Juice
Monitoring Redis Internal Passing Juice
Migrating from redis-namespace Internal Passing Juice
RTL scripts and BiDi webapps Internal Passing Juice
Welcome, Hugo Internal Passing Juice
Five Years Internal Passing Juice
What can I do? Internal Passing Juice
Public Relations Blast Internal Passing Juice
Debugging stuck Ruby processes Internal Passing Juice
Profiling Crystal on OSX Internal Passing Juice
Test Driving Sidekiq and Crystal Internal Passing Juice
Sidekiq for Crystal Internal Passing Juice
Serving your own Commercial Rubygems Internal Passing Juice
Distributed Locking with Redis and Ruby Internal Passing Juice
Kill Your Dependencies Internal Passing Juice
Happy 4th Birthday, Sidekiq Internal Passing Juice
Contributed Systems: the 2015 wrapup Internal Passing Juice
How to Test Multithreaded Code Internal Passing Juice
How to Charge for your Open Source Internal Passing Juice
Sidekiq 4.0! Internal Passing Juice
Advanced Data Structures in Ruby Internal Passing Juice
Should you use Celluloid? Internal Passing Juice
Optimizing Sidekiq Internal Passing Juice
Storing Data with Redis Internal Passing Juice
Sidekiq Enterprise Internal Passing Juice
Sidekiq and Upstart Internal Passing Juice
Inspeqtor Pro now Open Source Internal Passing Juice
Sidekiq Pro Gem Server Outage Internal Passing Juice
Timeout: Ruby’s Most Dangerous API Internal Passing Juice
Sidekiq Pro 2.0! Internal Passing Juice
Indie Developers in Ruby, 2015 Ed. Internal Passing Juice
Inspeqtor 0.8.0 released Internal Passing Juice
CGI: Ruby’s Bare Metal Internal Passing Juice
The expvar package - Metrics for Go Internal Passing Juice
Go 1.4 runtime visualized Internal Passing Juice
Building a Binary Tree with Enumerable Internal Passing Juice
Inspeqtor 0.7.0 – total_rss and Postgresql Internal Passing Juice
Inspeqtor 0.6.0 – init.d, cron and statsd! Internal Passing Juice
Stupid Go tricks in Janus Internal Passing Juice
Why Go? Internal Passing Juice
Introducing Inspeqtor Internal Passing Juice
The Path to Full-time Open Source Internal Passing Juice
Don’t Daemonize your Daemons! Internal Passing Juice
Library Versioning Internal Passing Juice
Building Systems and The Cloud Internal Passing Juice
Use runit! Internal Passing Juice
My Next Chapter Internal Passing Juice
What’s new in Sidekiq Pro Internal Passing Juice
The Reconciliation Step Internal Passing Juice
Bounded Libraries Internal Passing Juice
Setting MySQL DATETIME column defaults in Rails Internal Passing Juice
Ruby Performance 2014 Internal Passing Juice
Sidekiq 3.0! Internal Passing Juice
Dipping a Toe into Open Source Internal Passing Juice
Happy 2nd Birthday Sidekiq! Internal Passing Juice
Don’t Forget What’s Important Internal Passing Juice
The Clymb 2013 Internal Passing Juice
Ruby’s GIL and transactional memory Internal Passing Juice
Advanced Sidekiq: Host-specific Queues Internal Passing Juice
The Emperor has no Clothes Internal Passing Juice
How to make $100k in OSS by working hard Internal Passing Juice
The Three Best Debugging Tools Internal Passing Juice
Please Use an Error Service! Internal Passing Juice
Lua and Sidekiq Pro Internal Passing Juice
Background Job Processing Overhead Internal Passing Juice
Sustainable OSS Meeting Notes Internal Passing Juice
Sustainable Open Source Internal Passing Juice
Celluloid and Sidekiq hackfest in Portland Internal Passing Juice
Blogging and the Paralysis of Choice Internal Passing Juice
The Sidekiq Pro Giveaway Winner! Internal Passing Juice
Sidekiq Pro reaches 1.0! Internal Passing Juice
Dealing with Stuck Workers Internal Passing Juice
Board Games and Beverages at Railsconf 2013 Internal Passing Juice
Railsconf 2013 events Internal Passing Juice
Signal Handling with Ruby 2.0 Internal Passing Juice
Bill Gates Internal Passing Juice
Happy Birthday Sidekiq! Internal Passing Juice
One Great Year at The Clymb Internal Passing Juice
2012 OSS Rookie Project of the Year! Internal Passing Juice
12 Gems of Christmas #1 – puma Internal Passing Juice
12 Gems of Christmas #2 – bullet Internal Passing Juice
12 Gems of Christmas #3 – thor Internal Passing Juice
12 Gems of Christmas #4 – mailcatcher and mail_view Internal Passing Juice
12 Gems of Christmas #5 – lograge Internal Passing Juice
12 Gems of Christmas #6 – childprocess Internal Passing Juice
12 Gems of Christmas #8 – wicked_pdf Internal Passing Juice
12 Gems of Christmas #7 – lunchy Internal Passing Juice
12 Gems of Christmas #9 – pundit Internal Passing Juice
12 Gems of Christmas #10 – konacha Internal Passing Juice
12 Gems of Christmas #11 – statsd-ruby Internal Passing Juice
12 Gems of Christmas #12 – awesome_nested_set Internal Passing Juice
The 12 Gems of Christmas Internal Passing Juice
Current Thoughts on MRI Performance Internal Passing Juice
One Happy User Internal Passing Juice
Sexism and Programming Internal Passing Juice
Say Hello to Sidekiq Pro Internal Passing Juice
MiniTest – Ruby 1.9’s test framework Internal Passing Juice
The Sidekiq Experiment, Part I Internal Passing Juice
Using Statsd with Rails Internal Passing Juice
Debugging with Thread Dumps Internal Passing Juice
Five Common Rails Mistakes Internal Passing Juice
One Quarter of Sidekiq Internal Passing Juice
Don’t Mistake Meetings for Process Internal Passing Juice
Converting a MySQL database from Latin1 to UTF8 Internal Passing Juice
The Perils of “rescue Exception” Internal Passing Juice
The State of Sidekiq – One Month Later Internal Passing Juice
Deleting Duplicate Rows in MySQL Internal Passing Juice
Sidekiq – simple, efficient messaging for Rails Internal Passing Juice
I’m back! Internal Passing Juice
Getting iChat to automatically reconnect Internal Passing Juice
Optimizing Heroku Internal Passing Juice
Threads Fibers Events and Actors Internal Passing Juice
Background Processing vs Message Queueing Internal Passing Juice
Actors and Ruby Internal Passing Juice
Node.js Roundup Internal Passing Juice
The Dangers of Shortcuts Internal Passing Juice
Filling out PDF forms with JRuby Internal Passing Juice
Moving On Internal Passing Juice
Using RDoc Internal Passing Juice
Contributing to Ruby Internal Passing Juice
Ruby Stdlib is a Ghetto, Pt. 2 Internal Passing Juice
The Ruby Stdlib is a Ghetto Internal Passing Juice
Apache Tuning Internal Passing Juice
Always Be Closing Internal Passing Juice
Dalli Performance and Garbage Collection Internal Passing Juice
Dalli – memcached for Ruby Internal Passing Juice
Securing Network Services Internal Passing Juice
Developing Rubygems with RVM and Bundler Internal Passing Juice
Detecting Duplicate Images with Phashion Internal Passing Juice
Stream Processing and Trending Data Internal Passing Juice
bayes_motel – Bayesian classification for Ruby Internal Passing Juice
Risk and Startups Internal Passing Juice
Phat News Internal Passing Juice
Introducing Phat, an Asynchronous Rails app Internal Passing Juice
Using ActiveRecord with EventMachine Internal Passing Juice
Cassandra Internals – Tricks! Internal Passing Juice
Ruby Open Files Internal Passing Juice
Cassandra Internals – Reading Internal Passing Juice
Cassandra Internals – Writing Internal Passing Juice
Touch a File Internal Passing Juice
The Trouble with Ruby Finalizers Internal Passing Juice
Changelog vs Commitlog Internal Passing Juice
Asynchronous DNS Resolution Internal Passing Juice
Cassandra and EventMachine Internal Passing Juice
Scalable Ruby Processing with EventMachine Internal Passing Juice
Varnish on 32-bit systems Internal Passing Juice
Speaking on January 26th Internal Passing Juice
Event-Driven Applications Internal Passing Juice
EventMachine Examples Internal Passing Juice
Document-oriented Database Shootout Part 2: Performance Internal Passing Juice
Looking for Machine Learning Specialist Internal Passing Juice
DataFabric – database sharding for Rails Internal Passing Juice
Heading to RubyConf 2009 Internal Passing Juice
Comparing Document-oriented Databases Internal Passing Juice
Rails Engines at LSRC Internal Passing Juice
Old versus New Internal Passing Juice
Slabs, Pages, Chunks and Memcached Internal Passing Juice
memcached vs memcache-client Performance Internal Passing Juice
Adding multi-get support to Rails Internal Passing Juice
Scraping with Typhoeus and Nokogiri Internal Passing Juice
Memory-hungry Ruby daemons Internal Passing Juice
A Guide to Varnish VCL Internal Passing Juice
Engines in Rails 2.3 Internal Passing Juice
memcache-client rdoc Internal Passing Juice
Caching and Rails Internal Passing Juice
Socket Timeouts in Ruby Internal Passing Juice
Using the Tokyo Tyrant native bindings Internal Passing Juice
SystemTimer 1.1 crash Internal Passing Juice
Tokyo Cabinet vs Memcached Internal Passing Juice
memcache-client 1.7.0 – the End of the Line Internal Passing Juice
Using memcache-client 1.6.x in Rails < 2.3 Internal Passing Juice
FiveRuns Dash, now with 100% more rimshot! Internal Passing Juice
Memcache-client Performance Internal Passing Juice
Improved Deadlock Retry Internal Passing Juice
memcache-client 1.6.2 released Internal Passing Juice
Testing Multipart Upload with Sinatra Internal Passing Juice
How I Achieved my Dream with the iPhone Internal Passing Juice
The Future of memcache-client Internal Passing Juice
Consistent Hashing in memcache-client Internal Passing Juice
Clojure vs Ruby, Part I Internal Passing Juice
Ruby.rewrite Ruby Internal Passing Juice
DataFabric 1.2 released Internal Passing Juice
Video: Distributed Computing Internal Passing Juice
Consensus Protocols: Two-Phase Commit Internal Passing Juice
fiveruns-memcache-client 1.5.0.4 released Internal Passing Juice
New Look Internal Passing Juice
Caption Contest Internal Passing Juice
data_fabric 1.1.0 released Internal Passing Juice
Rails Plugins with Multi-Threading Internal Passing Juice
RubyConf 2008: The Aftermath Internal Passing Juice
Introducing Politics Internal Passing Juice
EnvyCasts’ new Rails 2.2 screencast review Internal Passing Juice
Laziness Can Hurt Internal Passing Juice
Fall Speaking Schedule Internal Passing Juice
MySQL Optimization Internal Passing Juice
Bulk Import Internal Passing Juice
One Year of Ruby Internal Passing Juice
Upgrading tracknowledge.org Internal Passing Juice
How NOT to Build a Service Internal Passing Juice
Google Reader problem – Solved! Internal Passing Juice
Google Reader ignores language settings? Internal Passing Juice
MySQL InnoDB Clustered Indexes and Rails Internal Passing Juice
Explaining REST to Damien Katz Internal Passing Juice
Tough Lessons in Software Internal Passing Juice
Google Analytics Internal Passing Juice
Web 2.0 and Databases Internal Passing Juice
Introducing DataFabric Internal Passing Juice
Rails Bootup Internal Passing Juice
Using third-party services Internal Passing Juice
Finally! A Modern Development Tool Internal Passing Juice
Ich bin ein Berliner Internal Passing Juice
Lesson of the Day: Question Everything Internal Passing Juice
Speaking at Lone Star Ruby Conf 2008 Internal Passing Juice
Screencasts and Firefox 3 Internal Passing Juice
The MVC Song Internal Passing Juice
Starling and a reliable Memcached client Internal Passing Juice
MySQL lock debugging Internal Passing Juice
Ruby Scoping Oddity Internal Passing Juice
FiveRuns Public Beta Internal Passing Juice
DataMapper projects Internal Passing Juice
Ruby, Threads and Exit Codes Internal Passing Juice
Microsoft and America Internal Passing Juice
ActiveRecord 2.1 Performance (Part 1) Internal Passing Juice
Changing with the Times Internal Passing Juice
Syntactic Sugar Internal Passing Juice
VMWare question Internal Passing Juice
Introspecting RESTful APIs Internal Passing Juice
Expression Rescue is Evil Internal Passing Juice
COBOL ON COGS Internal Passing Juice
Speaking at OSCON 2008 Internal Passing Juice
FiveRuns is Moving! Internal Passing Juice
Detecting Event Storms Internal Passing Juice
Ruby, Rails and XFDL Internal Passing Juice
Monitoring with Monit Internal Passing Juice
Death, Doom and Daemons! Internal Passing Juice
Blogging @ FiveRuns Internal Passing Juice
Design and Tufte Internal Passing Juice
Java Developers moving to Ruby and Rails Internal Passing Juice
Assert { 2.0 } Internal Passing Juice
acts_as_conference Finale Internal Passing Juice
DSLs and XML Internal Passing Juice
acts_as_conference Day 1 Internal Passing Juice
Tuning ActiveRecord Internal Passing Juice
Housekeeping Internal Passing Juice
Blog Customization is Scary Internal Passing Juice
Austin jumping on Rails Internal Passing Juice
ActiveSupport Dependency arcanery Internal Passing Juice
Conversion to Array Internal Passing Juice
OpenOffice.org 2.4 for OSX Internal Passing Juice
Performance and ActiveRecord::Base.establish_connection Internal Passing Juice
Java is becoming the new Cobol Internal Passing Juice
Media Encoders Considered Evil Internal Passing Juice
BDB: The Conclusion Internal Passing Juice
Creating a counter_cache column Internal Passing Juice
Great Moments in Ruby History? Internal Passing Juice
Using Berkeley DB with Ruby Internal Passing Juice
Leopard Compilation Problems Internal Passing Juice
Berkeley DB and Ruby Internal Passing Juice
Amazon’s Kindle Internal Passing Juice
Mirror, mirror Internal Passing Juice
2D Dock in Leopard Internal Passing Juice
RubyConf pictures Internal Passing Juice
How to know if your airport is cool? Internal Passing Juice
RubyConf 2007 – Day Three Internal Passing Juice
RubyConf 2007 – Day Two Internal Passing Juice
RubyConf 2007 – Day One Internal Passing Juice
Using Fixtures without Rails Internal Passing Juice
Debugging Ruby with Netbeans Beta 2 Internal Passing Juice
Netbeans 6.0 Internal Passing Juice
Using the RRDTool Ruby bindings with OSX Internal Passing Juice
Using svn:externals Internal Passing Juice
Glassfish versus Mongrel Internal Passing Juice
Glassfish and JRuby Internal Passing Juice
Amazon’s Dynamo Internal Passing Juice
North Carolina in November Internal Passing Juice
File Uploads in Merb versus Rails Internal Passing Juice
Accessing LDAP from Ruby Internal Passing Juice
Using Apache DS, Part 2 Internal Passing Juice
Using Apache DS, Part 1 Internal Passing Juice
Using Apache DS with Mac OSX and Ruby Internal Passing Juice
Performance versus Scalability Internal Passing Juice
Slashdot – Thinking about Rails? Think Again Internal Passing Juice
Fun with Acronyms Internal Passing Juice
Welcome, Sun! Internal Passing Juice
Ruby/Rails IDE Internal Passing Juice
Welcome Aboard Internal Passing Juice
About this blog Internal Passing Juice
Life: urbanists.social/@getalifemike External Passing Juice

SEO Keywords

Keywords Cloud

gems faktory ruby christmas sidekiq pro using rails introducing performance

Keywords Consistency

Keyword Content Title Keywords Description Headings
sidekiq 47
ruby 37
rails 22
using 17
christmas 13

Usability

Url

Domain : mikeperham.com

Length : 14

Favicon

Great, your website has a favicon.

Printability

We could not find a Print-Friendly CSS.

Language

Good. Your declared language is en.

Dublin Core

This page does not take advantage of Dublin Core.

Document

Doctype

HTML 5

Encoding

Perfect. Your declared charset is UTF-8.

W3C Validity

Errors : 0

Warnings : 0

Email Privacy

Warning! At least one email address has been found in the plain text. Use free antispam protector to hide email from spammers.

Deprecated HTML

Great! We haven't found deprecated HTML tags in your HTML.

Speed Tips

Excellent, your website doesn't use nested tables.
Perfect. No inline css has been found in HTML tags!
Great, your website has few CSS files.
Perfect, your website has few JavaScript files.
Perfect, your website takes advantage of gzip.

Mobile

Mobile Optimization

Apple Icon
Meta Viewport Tag
Flash content

Optimization

XML Sitemap

Great, your website has an XML sitemap.

https://www.mikeperham.com/sitemap.xml
http://www.mikeperham.com/sitemap.xml

Robots.txt

https://mikeperham.com/robots.txt

Great, your website has a robots.txt file.

Analytics

Missing

We didn't detect an analytics tool installed on this website.

Web analytics let you measure visitor activity on your website. You should have at least one analytics tool installed, but It can also be good to install a second in order to cross-check the data.

PageSpeed Insights


Device
Categories

Free SEO Testing Tool

Free SEO Testing Tool is a free SEO tool which provides you content analysis of the website.