Are you over 18 and want to see adult content?
More Annotations
A complete backup of stavangerhousing.net
Are you over 18 and want to see adult content?
A complete backup of thepescetariansociety.org
Are you over 18 and want to see adult content?
A complete backup of valleycentral.com
Are you over 18 and want to see adult content?
A complete backup of theschooloflife.com
Are you over 18 and want to see adult content?
A complete backup of successdigestforum.com
Are you over 18 and want to see adult content?
A complete backup of plus-model-mag.com
Are you over 18 and want to see adult content?
A complete backup of discoveraustralia.com.au
Are you over 18 and want to see adult content?
Favourite Annotations
A complete backup of www.aerisdies.com
Are you over 18 and want to see adult content?
A complete backup of www.azz-overload.net
Are you over 18 and want to see adult content?
A complete backup of femaledominationworld.com
Are you over 18 and want to see adult content?
A complete backup of www.www.hotgirlclub.com
Are you over 18 and want to see adult content?
A complete backup of www.www.amyellisnutt.com
Are you over 18 and want to see adult content?
A complete backup of www.www.thetabutales.com
Are you over 18 and want to see adult content?
A complete backup of www.argentinalove.net
Are you over 18 and want to see adult content?
A complete backup of www.onlytease.com
Are you over 18 and want to see adult content?
A complete backup of www.www.kinky.nl
Are you over 18 and want to see adult content?
Text
SAM SAFFRON
Programming, Technology and the Art of Hacking* Ruby
* MiniProfiler
* SQL
* Dapper
* Media Browser
* C#
* Home
* About
DEBUGGING HIDDEN MEMORY LEAKS IN RUBYover 1 year ago
This article covers some advanced techniques you can use to debug memory leaks in Ruby.Continue Reading
Posted by: Sam Permalink| Comments
TESTS THAT SOMETIMES FAILabout 2 years ago
Over the years one of the most complex issues we have had to deal with at Discourse was flaky tests, in this post I would like talk a bit about the various patterns we have come across and ways we tackle thisissue.
Continue Reading
Posted by: Sam Permalink| Comments (11)
MY I3 WINDOW MANAGER SETUPabout 2 years ago
It has been about 3.5 weeks since I moved from Windows to Linux, during the switch I also moved to using the tiling i3 window manager. I would like to tell you a bit about it.Continue Reading
Posted by: Sam Permalink| Comments (4)
WHY I STUCK WITH WINDOWS FOR 6 YEARS WHILE DEVELOPING DISCOURSEabout 2 years ago
I stuck with Windows 10 as my primary OS for 6 years, despite being a Ruby developer. In this blog post I would like to cover why thishappened.
Continue Reading
Posted by: Sam Permalink| Comments (16)
LOGSTER AND OUR ERROR LOGGING STRATEGY AT DISCOURSEover 2 years ago
Effectively dealing with logs is a critical skill you should hone. In this blog post I will cover how we handle web application error logs at Discourse, both in production and in development.Continue Reading
Posted by: Sam Permalink|
Comments
FINDING WHERE STDOUT/STDERR DEBUG MESSAGES ARE COMING FROMalmost 3 years ago
Often in development we have an annoying message in our console that we simply can not find the source of, here is a little trick you can use to hunt messages like this down.Continue Reading
Posted by: Sam Permalink| Comments
RUBY'S EXTERNAL MALLOC PROBLEMalmost 3 years ago
In this post I would like to cover a severe, extremely hard to debug vector for memory bloat in Ruby which can be triggered by the PG gem.Continue Reading
Posted by: Sam Permalink| Comments
(8)
AN ANALYSIS OF MEMORY BLOAT IN ACTIVE RECORD 5.2about 3 years ago
Current patterns in Active Record lead to enormous amounts of resource usage. Here is an analysis of Rails 5.2Continue Reading
Posted by: Sam Permalink| Comments (16)
MANAGING DB SCHEMA CHANGES WITHOUT DOWNTIMEabout 3 years ago
How we manage schema changes at Discourse minimizing downtimeContinue Reading
Posted by: Sam Permalink|
Comments (7)
REDUCING STRING DUPLICATION IN RUBYover 3 years ago
It is very likely your Rails application is full of duplicate strings, here are some tricks you can use to get rid of them.Continue Reading
Posted by: Sam Permalink| Comments
INSTRUMENTING RAILS WITH PROMETHEUSover 3 years ago
How we instrument Rails at Discourse and how you can, too.Continue Reading
Posted by: Sam Permalink| Comments
(11)
DEBUGGING 100% CPU USAGE IN PRODUCTION RUBY ON RAILS SYSTEMSover 3 years ago
How do you go about debugging high CPU usage in a production Railssystem?
Continue Reading
Posted by: Sam Permalink| Comments (13)
FASTEST WAY TO PROFILE A METHOD IN RUBYover 3 years ago
What is the fastest and most elegant way to instrument a method inRuby?
Continue Reading
Posted by: Sam Permalink|
Comments (1)
THE CURRENT STATE OF BROTLI COMPRESSIONalmost 5 years ago
Chrome recently pushed out support for Brotli, in this post I will cover what this means to you.Continue Reading
Posted by: Sam Permalink|
Comments (10)
WEBSOCKETS, CAUTION REQUIRED!over 5 years ago
WebSockets seem to be gaining a resurgence, suddenly they are sexy again. I think this is the wrong message.Continue Reading
Posted by: Sam Permalink| Comments (30)
FIXING DISCOURSE PERFORMANCE REGRESSIONSover 5 years ago
Recently, I discovered a performance regression on a very common page on Discourse. This post documents my approach and specific fixes Iapplied.
Continue Reading
Posted by: Sam Permalink|
Comments
DEBUGGING MEMORY LEAKS IN RUBYabout 6 years ago
Tools, tips and techniques for diagnosing and fixing Ruby memory leaksContinue Reading
Posted by: Sam Permalink| Comments (20)
ANNOUNCING RUBYBENCH.ORGover 6 years ago
Announcing rubybench.orgContinue Reading
Posted by: Sam Permalink| Comments
SPEEDING UP RAILS 4.2over 6 years ago
Optimising Rails 4.2 using Flame Graphs and Memory ProfilerContinue Reading
Posted by: Sam Permalink| Comments (16)
RUBY 2.1 GARBAGE COLLECTION: READY FOR PRODUCTIONabout 7 years ago
Continue Reading
Posted by: Sam Permalink| Comments (16)
VINTAGE JAVASCRIPT BEGONEover 7 years ago
One major issue all “one page” JavaScript apps have is updating clients, this is how I solved this for Discourse.Continue Reading
Posted by: Sam Permalink| Comments (12)
CALL TO ACTION: LONG RUNNING RUBY BENCHMARKover 7 years ago
Wishing for a long running ruby benchmark.Continue Reading
Posted by: Sam Permalink|
Comments (2)
COMMENTING POWERED BY DISCOURSEover 7 years ago
Lessons learned moving commenting to DiscourseContinue Reading
Posted by: Sam Permalink| Comments (10)
DEMYSTIFYING THE RUBY GCover 7 years ago
The Ruby GC may seem exceedingly complex to some, in this article I try to shed some light on it.Continue Reading
Posted by: Sam Permalink| Comments (19)
LIVE RESTARTS OF A SUPERVISED UNICORN PROCESSover 7 years ago
I just added some helpers that allow you to easily perform live restarts of unicorn processes with zero downtime.Continue Reading
Posted by: Sam Permalink|
Comments (9)
DISCOURSE IN A DOCKER CONTAINERover 7 years ago
Recently I spent some time working on a Docker container for Discourse to ease our deployment story.Continue Reading
Posted by: Sam Permalink| Comments (21)
DISCOURSE AS MY BLOGGING PLATFORMover 7 years ago
This Blog is now 100% powered by DiscourseContinue Reading
Posted by: Sam Permalink| Comments
(11)
ELIMINATING MY TRIVIAL INCONVENIENCES BUILDING DISCOURSEabout 8 years ago
The number #1 productivity killer for me is the trivial inconvenience, it does not stop me from working… just make my job very frustrating.Continue Reading
Posted by: Sam Permalink| Comments
(29)
FLAME GRAPHS IN RUBY MINIPROFILERabout 8 years ago
Analysis of performance issues in Ruby can often be fairly complex, in this post I cover a new technique you can use with MiniProfiler.Continue Reading
Posted by: Sam Permalink| Comments (8)
DO YOU SMOKE TEST?
over 8 years ago
I just introduced the first smoke test for Discourse. Reasoning, techniques and lessons learned.Continue Reading
Posted by: Sam Permalink| Comments (19)
MOBILE MAPPING IS NOT A CARTOGRAPHIC PROBLEM, IT IS A SEARCH PROBLEMover 8 years ago
iOS6 is out, and with it an essentially broken maps app, here are my thoughts on this matter.Continue Reading
Posted by: Sam Permalink| Comments (1)
MINIPROFILER RUBY EDITIONalmost 9 years ago
For the last few months we have been working on a version of MiniProfiler for Rails, here is the low-downContinue Reading
Posted by: Sam Permalink| Comments (15)
LEAVING STACK EXCHANGEalmost 9 years ago
I am leaving Stack Exchange, why this happened and what is next?Continue Reading
Posted by: Sam Permalink| Comments (51)
TESTING 3 MILLION HYPERLINKS, LESSONS LEARNEDalmost 9 years ago
Recently I embarked on a mission to find and and build tools for dealing with broken links on the Stack Exchange network, here are somethings I learned.
Continue Reading
Posted by: Sam Permalink|
Comments (36)
SAM'S ULTIMATE WEB PERFORMANCE TOOL AND RESOURCE LISTabout 9 years ago
While preparing for my talk at Codemania I started filling my slides with links, clearly not something that scales. So, instead, here is a big list of interesting tools and resources that can help you journey through the murky waters of web performance.Continue Reading
Posted by: Sam Permalink| Comments (33)
WHY UPGRADING YOUR LINUX KERNEL WILL MAKE YOUR CUSTOMERS MUCH HAPPIERover 9 years ago
Learn about a change introduced in the 2.6.39 kernel that has huge impact on your users perceived web performance.Continue Reading
Posted by: Sam Permalink| Comments (46)
MINIPROFILER 2.0, ALMOST OUT OF THE GATEover 9 years ago
We are pushing a 2.0 public release of MiniProfiler, the following post describes most of the awesome changes.Continue Reading
Posted by: Sam Permalink|
Comments (17)
STOP PAYING YOUR JQUERY TAXover 9 years ago
The last script holding in your header is usually jQuery, learn how to move it to your footer and why you should.Continue Reading
Posted by: Sam Permalink| Comments (48)
THAT ANNOYING INSERT PROBLEM, GETTING DATA INTO THE DBover 9 years ago
A common issue many users have with Dapper is the ability to insert records into a database, in this post I cover some options and a solution I developed.Continue Reading
Posted by: Sam Permalink| Comments (12)
IN MANAGED CODE WE TRUST, OUR RECENT BATTLES WITH THE .NET GARBAGECOLLECTOR
over 9 years ago
In this post I cover the history, diagnosis and eventual repair of some erratic performance we were experiencing at Stack Overflow.Continue Reading
Posted by: Sam Permalink| Comments (50)
OPTIMIZING ASP.NET MVC3 ROUTINGover 9 years ago
In this post I outline the process and method we used to optimize routing at Stack OverflowContinue Reading
Posted by: Sam Permalink| Comments (11)
SPAM, BACON, SAUSAGE AND BLOG SPAM: A JAVASCRIPT APPROACHover 9 years ago
Using rather simple techniques I practically eliminated all of the spam on this blog, here is a technical explanationContinue Reading
Posted by: Sam Permalink| Comments (29)
EXTENDING THE ASP.NET ERROR PAGE (SHOW ME THE SQL EDITION)over 9 years ago
In this post I demonstrate how to extend the ASP.NET error page with additional information about the SQL that failed.Continue Reading
Posted by: Sam Permalink| Comments (22)
PORTING LINQ-2-SQL TO DAPPER FOR GREAT JUSTICEover 9 years ago
In this post I explain how I ported a rather tricky page to dapper, it highlights usage of a new helper called SqlBuilder, that lives inDapper.Contrib
Continue Reading
Posted by: Sam Permalink| Comments (9)
OH VIEW WHERE ARE THOU: FINDING VIEWS IN ASP.NET MVC3almost 10 years ago
Finding views in ASP.NET MVC3 is an often overlooked performance concern.Continue Reading
Posted by: Sam Permalink| Comments (7)
AUTOMATICALLY INSTRUMENTING AN ASP.NET MVC3 APPalmost 10 years ago
In this post I work through one method you can use to get controller, view and partial render times in an MVC3 app.Continue Reading
Posted by: Sam Permalink|
Comments (22)
PROFILING YOUR WEBSITE LIKE A TRUE NINJAalmost 10 years ago
I am very happy to re-announce the MVC mini profiler, used in production at Stack Overflow.Continue Reading
Posted by: Sam Permalink|
Comments (39)
A DAY IN THE LIFE OF A SLOW PAGE AT STACK OVERFLOWabout 10 years ago
I have been spending a fair amount of time tuning Stack Overflow, in this post I will walk through the process of tuning a single page.Continue Reading
Posted by: Sam Permalink| Comments (35)
HOW I LEARNED TO STOP WORRYING AND WRITE MY OWN ORMabout 10 years ago
Does the world even need another ORM? Why we took a step back at Stack Overflow and wrote our on mini ORMContinue Reading
Posted by: Sam Permalink| Comments (61)
INTERESTING ANSWERS ON STACK OVERFLOW FROM JULYalmost 11 years ago
At my new job
I have been looking at better ways of highlighting recent interestinganswers.
Here is a list of answers I came across in July that I foundinteresting.
Continue Reading
Posted by: Sam Permalink| Comments (4)
DIAGNOSING RUNAWAY CPU IN A .NET PRODUCTION APPLICATIONover 11 years ago
Diagnosing runaway/high CPU in production .Net apps has always been a dark art reserved for the true master debuggers._No longer._
Continue Reading
Posted by: Sam Permalink| Comments (27)
GOT FLARE?
over 11 years ago
A little bit about my new bug tracker. Can tracking bugs be fun?Continue Reading
Posted by: Sam Permalink |Comments (5)
BEHAVIOUR DRIVEN DESIGN USING RSPEC IRONRUBY AND C#almost 12 years ago
I love rspec , and wanted to see what happens if you bring it to .Net, here is a tiny step by step guide to writing your own rspec tests for a C# project.Continue Reading
Posted by: Sam Permalink| Comments (7)
OUR NEW STARTUP, MEDIA BROWSERalmost 12 years ago
After a lot of thought and research I have decided to see if we can make a business out of Media Browser.Continue Reading
Posted by: Sam Permalink| Comments (83)
WILL PROGRAM FOR FOOD, THE FUTURE OF MEDIA BROWSERalmost 12 years ago
Media Browser / Video Browser has always been free "as-in-beer":http://c2.com/cgi/wiki?FreeAsInBeer and freeas-in-speech.
Will it remain free?Continue Reading
Posted by: Sam Permalink| Comments (43)
UPCOMING FEATURES FOR MEDIA BROWSERabout 12 years ago
About some upcoming feature for Media Browser.Continue Reading
Posted by: Sam Permalink| Comments (30)
MEDIA BROWSER SOURCE CODE LICENSE CHANGESabout 12 years ago
We just changed the way our source code is licensed, this post covers the reasons and details of the changes.Continue Reading
Posted by: Sam Permalink|
Comments
REFACTORING MEDIA BROWSER - ENTITY RESOLUTIONabout 12 years ago
I am going to try to post a little bit about my adventures refactoring Media Browser. In this post I am covering a some aspects of entityresolution.
Continue Reading
Posted by: Sam Permalink|
Comments (2)
SIMPLER DEBUGGING OF VISTA MEDIA CENTER PLUGINSover 12 years ago
In this post I offer a streamlined mechanism for debugging Vista Media Center plugins in Visual Studio.Continue Reading
Posted by: Sam Permalink| Comments (3)
SLOW RESPONSE-TIME IS USABILITIE'S ALCOHOLISMover 12 years ago
For the last few weeks I have been forced to use a very slow website. This has left me feeling very demoralized. This is why.Continue Reading
Posted by: Sam Permalink|
Comments
MY SERVER JUST DIED, LONG LIVE MY NEW VPSover 12 years ago
Earlier this week I lost my old trusty server which hosts www.samsaffron.com and www.mediabrowser.tvdied.
I decided to migrate all the data to a new VPS (virtual private server), here is a sketchy account of how this all happened.Continue Reading
Posted by: Sam Permalink|
Comments (2)
DEADLOCKED
almost 13 years ago
In SQL Server a SELECT statement can deadlock against an UPDATE statement without being in a transaction. Why does this happens? What is a good approach to SQL Server deadlocks?Continue Reading
Posted by: Sam Permalink |Comments (11)
SSH JUMPHOSTS TUNNELING AND OTHER CURIOSITIESalmost 13 years ago
Recently, I had to support a rails server which is deep behind a firewall. Here I offer a somewhat sketchy account of how I am able tosupport it.
Continue Reading
Posted by: Sam Permalink|
Comments
VIDEO BROWSER: PAST, PRESENT AND FUTUREalmost 13 years ago
Why I started off Video Browser, where it is today, and what are thefuture plans.
Continue Reading
Posted by: Sam Permalink| Comments
(13)
SPEED UP YOUR FEED GENERATION IN RAILSabout 13 years ago
In general when generating rss feed in Rails you will be using the builder library, it can be fairly slow unless you take special care.Continue Reading
Posted by: Sam Permalink|
Comments (4)
YOU SHOULD BE VERY CAREFUL WHEN USING ACTIVERECORD EAGER LOADINGabout 13 years ago
Watch out when you use ActiveRecord eager loading, it has the potential to wreak havoc if you are not careful.Continue Reading
Posted by: Sam Permalink| Comments (2)
I FIXED UP VIDEO BROWSERS SORT BY DATEover 13 years ago
A new release of Video Browser contains a few bug fixesContinue Reading
Posted by: Sam Permalink|
Comments (18)
GENRE AND RUNTIME SORT OPTIONS FOR VIDEO BROWSERover 13 years ago
I just posted a new version of Video Browser that support “by genre” and “by runtime” sort options for movies.Continue Reading
Posted by: Sam Permalink| Comments (1)
A CLEANER WAY TO ITERATE THROUGH ENUMERABLE LISTS IN PROTOTYPEover 13 years ago
Yet another way to enumerate through Enumerables if you are using the prototype javascript library.Continue Reading
Posted by: Sam Permalink| Comments
REDO YOUR MIGRATIONS IN RAILS AND KEEP YOUR DATAover 13 years ago
On Rails, I find myself quite often fixing up an old migration early in my projects, at this point I already have a bunch of data in my database and I would like to keep it. So I created a Rake task that takes care of this.Continue Reading
Posted by: Sam Permalink| Comments (3)
A FEW NEW FEATURES FOR VIDEO BROWSERover 13 years ago
I just posted a new version of video browser in my download section!Continue Reading
Posted by: Sam Permalink| Comments
(13)
GETTING STARTED WITH RUBY ON RAILS ON WINDOWSover 13 years ago
In this post I would like to give you all the information you need to get started with Ruby On Rails, on Windows. I will cover the tools you need, the resources you need and some tips.Continue Reading
Posted by: Sam Permalink|
Comments (8)
WHY THE HELL WRITE YET ANOTHER BLOG ENGINE?over 13 years ago
Writing your own blog software is an ideal first exercise when faced with learning a new web platform.Continue Reading
Posted by: Sam Permalink|
Comments (1)
HELLO WORLD
over 13 years ago
Continue Reading
Posted by: Sam Permalink |Comments
A NEW VERSION OF VIDEO BROWSER FOR VISTA MCEover 13 years ago
Video browser, is a little plugin for Vista MCE that let's you browse your videos the way they were _meant_ to be browsed.Continue Reading
Posted by: Sam Permalink |Comments (15)
GOODBYE ALTIRIS
over 13 years ago
Well, it’s that time to change jobs. Goodbye Altiris.Continue Reading
Posted by: Sam Permalink |Comments (4)
VIDEO BROWSER FOR VISTA MCEover 13 years ago
This is a post about my first attempts with Video Browser.Continue Reading
Posted by: Sam Permalink |Comments (13)
IDISPOSABLE IN RUBY
almost 14 years ago
An example implementation of the IDisposable pattern in the Rubylanguage.
It looks much nicer in Ruby.Continue Reading
Posted by: Sam Permalink |Comments
INSERT OR UPDATE PATTERN FOR SQL SERVERabout 14 years ago
Implementing the UPSERT (insert or update) pattern in MS SQL Server can be tricky. In this post I explore the various advantages and disadvantages of various implementations.Continue Reading
Posted by: Sam Permalink |Comments (31)
EXCLUDING CHANGES TO ASSEMBLYINFO.CS FROM SUBVERSIONabout 14 years ago
Continue Reading
Posted by: Sam Permalink |Comments (1)
.NET MEMORY PROFILER 3.0 JUST RELEASEDover 14 years ago
Continue Reading
Posted by: Sam Permalink |Comments
KEEP IT SIMPLE
over 14 years ago
4 different embedded databases offer 4 different APIs to create adatabase.
Continue Reading
Posted by: Sam Permalink |Comments
EMBEDDED .NET DATABASE SHOOTOUTover 14 years ago
Testing .NET embedded DBsContinue Reading
Posted by: Sam Permalink |Comments (5)
TWITTER UPDATES
* @samsaffron
STACK OVERFLOW
* recent questions
* recent answers
ONLINE CONTENT
* Off the Rails
* Measuring Ruby
* Why I am excited about Ruby 2.1? * Docker Deploys on Ruby Rogues * Discourse on Ruby RoguesABOUT ME
I am a co-founder of Discourse . I live in sunny Sydney. I love writing about performance, Ruby, Mini Profiler and technology related topics. syndication: rss atomDetails
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0