Tag sqlpass

PASS 2011 Session Abstracts

PASS 2011 Session Abstracts

Every November, a bunch of database geeks gather for the Professional Association for SQL Server’s (PASS) international Summit. This year it’s going to be held October 11-24 in Seattle, Washington. I didn’t submit last year since I was involved with the abstract selection process. This year I’m not involved, so I decided to submit a few abstracts.

Rewrite Your T-SQL for Great Good!

Refactoring SQL is not like refactoring application code. This talk will cover proven SQL refactoring techniques that will help you identify where performance gains can be made, apply quick fixes, improve readability, and help you quickly locate places to make sweeping performance improvements. Jeremiah Peschka has years of hands on experience tuning SQL applications for performance, throughput, and concurrency.

Why I submitted this session: I submitted this session because it’s a fun session to give, it crosses boundaries between DBA and developer, and I’ve given it a few times before.

The Database is Dead, Long Live the Database

If relational databases are so great, why are people talking about NoSQL? Shouldn’t we explore other ways to store and manipulate data? We’ll look at four scenarios – caching, session state, flexible data models, and batch processing – and discuss how traditional databases perform in each situation and what other options exist on the market. At the end of this session, attendees will have a better understanding of how different workloads perform in RDBMSes, best practices, and alternative storage solutions to make your life easier.

Why I submitted this session: I wrote this session when I was asked to speak at Stir Trek: Thor Edition. Writing it has been a lot of fun and has started the process of crystallizing a lot of the ideas in my head around data storage. This talk focuses on a few areas where relational databases don’t do a good job and proposes solutions to pick up the slack.

Rules, Rules, and Rules

Computers are governed by the rules of physics: electrons, drive heads, and disk platters can only move so fast. Database systems are built according to those rules: memory is faster than disk which is faster than the network. Database schemas and queries are built within the rules of database systems. You will hit the limitations of these rules. If you know what the rules are and why they are in place, you’ll know when it’s time to break them… and how to succeed.

Why I submitted this session: This is also a session I’ve given before. Andy Leonard asked me to speak at the inaugural SQLPeople event about my passion. One of my passions is learning about computer science and how it can be applied to databases in a practical way. (There’s a lot of purely theoretical information that only matters when you’re implementing an RDBMS.) This session is an extended version of the talk I gave at SQLPeople. I’m incredibly excited about it and I’ll be bummed if it doesn’t get accepted.

The Other Side of the Fence: Lessons Learned from Leaving Home

Traveling the world changes your outlook on things, home just doesn’t look quite the same once you’ve traveled. The same can be said for SQL Server; working with databases like PostgreSQL, Cassandra, and Hadoop forced Jeremiah Peschka to re-learn concepts that he took as a given. Learn from his experiences about the importance of understanding isolation levels, data storage and retention, querying patterns, and even database functionality in this talk drawn from his experiences as a DBA, consultant, and developer.

Why I submitted this session: There’s a theme going on here – I’ve learned a lot about database and application design and how it’s sometimes necessary to move outside of my comfort zone to build an effective system. This is a 3.5 hour session that will cover a lot of features in SQL Server. I learned a lot working with other databases, and I hope that this information helps some other people.

The times they are a changin’

Last week, I sent an email to the PASS Board of Directors. It said, in short, that I was stepping down from my seat on the board. In fact, here’s the email:

A few months ago I made a huge change in my career and stepped out of my role as a production DBA and into a new career working with new databases. The more time I spend with these databases, the more I realize that they need an exciting, vibrant community like we have here in PASS. I want to help these communities grow and thrive, but there are only so many hours in the day. I have enjoyed the time that I’ve served on the PASS Board of Directors and I will continue to be involved in the community, but there are new communities that need what we have at PASS.

This has not been an easy decision to make, but I am stepping down from the PASS Board of Directors.

Just so you don’t think it sounds contrived, here it is again:

I love PASS and I love the SQL Server community. Being a part of PASS has given me a phenomenal sense of community. The SQL Server community has readily welcomed new members and new technologies and continues to grow the meaning of being a SQL Server professional. The community has embraced knowledge sharing in a way that many communities should envy. I keep learning so much every day from all of your blogs, presentations, books, and white papers.

And this is where things get difficult. I love what I’m doing with PASS, but I also love what I’m doing outside of SQL Server. There is a lot of knowledge there, but it’s silo’d and stuck in people’s heads. That knowledge needs to get out into the wild. One of the easiest ways to spread knowledge is to help it spread through communities. It’s difficult building a community from the ground up. Hell, maintaining an existing community is difficult. Doing both at the same time is impossible.

I asked myself how I could help when I started with PASS several years ago. I jumped in and started a chapter, then I took over a virtual chapter, and then I ran for the Board of Directors. Along the way, I met a ton of people who were kind, helpful, thoughtful, and more than ready to help out. As I slowly came to the realization that I couldn’t build a new community and grow an existing community at the same time, I also came to the realization that there were a lot of people ready to step up and help PASS grow.

Knowing that so many of you care and want to help made it a lot easier to come to this decision. I know that no matter what, there are a lot of people who will steer PASS and help it grow.

PASS showed me a wonderful community and I want to share that community with other people. I’m not running away and I’m not leaving, I’m just spreading the love around.

Chalk Talk 2010 – It’s not your Senior DBA’s Chalk Talk

I don’t know if you’re familiar with the Chalk Talk sessions at the PASS Community Summit. These sessions are shorter, 40 minute sessions, and they happen in the vendor expo hall at the Summit. In the past, this has been a Microsoft sponsored event with Microsoft sponsored speakers. These were discussion focused sessions – a combination of presentation and Q&A session.

Guess what? It is a Microsoft exclusive event no longer!

We’re opening up the Chalk Talk sessions to community speakers. There’s a catch, though.

  • You are currently attending the PASS Community Summit.
  • You are not speaking at the PASS Community Summit.
  • You submitted a session to the PASS Community Summit that was not accepted.

That’s pretty stringent requirements. So, what do you get in return? Unfortunately, we can’t offer comp codes for this. But we’ve got something special in store.

Lightning Talks

Yeah, that’s right: Lightning Talks. We’re doing them at the Summit this year. Just in case you don’t know, a lightning talk is a short, prepared talk. We’re going to aim for 5 minute talks. That should keep things moving quickly.

We like this idea so much that we’ve dedicated one session every day to nothing but lightning talks!

All of the details aren’t finalized yet, but we’ll keep you posted.

How Does This Help You?

If you’re not going to get a comp code (BOO!), how does giving a Chalk Talk help you?

1) You get exposure – You can put on your speaker resume that you spoke at the PASS Summit.
2) You get exposure – You’ll be presenting a lightning talk with other speakers and it will be witnessed by a boatload of people.
3) You get exposure – see points 1 & 2

Should I Submit the Same Abstract?

I would say “probably not.” Chalk Talks are a different format than a standard 75 minute session. They’re shorter (only 40 minutes) and they involve more audience participation (a lot more). Feel free to submit similar topics, but be prepared for a different audience and delivery.

We’ll be pushing out an official announcement soon. Stay tuned!

Speaking at SQL Saturday Nashville

- or -

It’s Going to be a Busy Week

This week is going to be an incredibly busy one. On Saturday I’m very honored to be presenting twice at SQL Saturday Nashville.

Fundamentals of SQL Server Internals: Want to know what makes SQL Server tick? Ever wonder what SQL Server is doing when you run a query? Ever wonder which parts of SQL Server are responsible for specific functionality? Want to know what a HOBT is? I can’t promise answers to every question, but I can set you on the path to knowledge about the inner workings of SQL Server.

Taking Control of Your Career: Raises, promotions, and job offers don’t happen by accident; you need a plan. Through careful planning you can create and reach impressive goals. But what’s the point of reaching your goals if nobody notices? “If you build it, they will come” doesn’t apply when you’re building your career.

“But Jeremiah,” you say, “you are clearly a slacker. Getting ready for two presentations can’t be that difficult for someone with as much ego as you!” And you would be correct; getting ready for two presentations isn’t difficult (mainly because I’m amazing). This week I am also travelling to beautiful Nashville for the PASS Board of Directors meeting.

The BoD meetings are always a good time, but they can be a little tiring (as do most meetings). This meeting promises to be a good one. As best as I recall, we’re going to be talking about PASS at a much higher, strategic, level. There will be less “down in the details” discussion and more “head in the clouds” type of talk. It’s good to put aside worrying about nitty gritty details and focus on the future of an organization. Too often we don’t do that.

Kendra Little at CBusPASS

Hey, good news! Kendra Little (blog | twitter) will be presenting for us, remotely, on August 12th at 6:30 PM. The meeting is at the usual place, Battelle for Kids – 1160 Dublin Rd Suite 500, Columbus, OH 43215.

What is Kendra going to be talking about?

Stay Agile, Stay Sane

Agile software development emphasizes continuous depolyment and its methods do not directly include long term planning. DBAs must ensure data integrity and have a long term view for application scale, so Agile methods present challenges. Come learn about successful real-world practices iteratively developed in a high transaction internet service environment over the last five years. We have create a flourishing Agile shop while meeting high requirements for uptime, customer response, and data consistency. In this session we’ll cover key habits for success, practices to avoid, how and when to get started, and why Agile development can be a great thing for DBAs. Topics will also include how “Testing in Production” can be a huge benefit.

About Kendra

Kendra Little is a Senior DBA in the online advertising industry who has spent ten years nerding out on SQL Server. Kendra works closely with an Agile development team to deploy frequent incremental changes to scale and improve a busy production environment. She likes tuning production servers, developing tools to automate tasks, building SQL Reports for trending, and secretly enjoys writing troubleshooting guides and documentation. Kendra has a Masters degree in Philosophy and a salt shaker full of certifications, but all the best stuff she’s ever learned has come from her smarty-pants colleagues and the SQL Server community. Read her blog at http://littlekendra.com.

The Board of Directors and You

The deadline for nominations to the PASS Board of Directors is rapidly approaching. I figured that it would be great if I chimed in and mentioned what I’ve learned on the Board, what I think would be typical for a board member, and… I don’t know what else, but I really felt that this list needed a third item. Mainly because I wanted to show off that I know how to properly use an Oxford comma.

What Do These People Want From Me?!

When I stepped up and ran for the PASS Board of Directors, I had no idea what I was doing. I knew that I wanted to help make PASS better. Better how? I had a few ideas. We were going to change the world! There would be speaker mentoring and education for all! A chicken in every garage and mittens on our feet! It turns out that my chickens and mittens proposal isn’t going so well, but we’re working on a speaker mentoring program and I’ve been working with Microsoft to get your feedback to them about certifications.

Enough about me! More about you!

Have a Plan

KPBB-12So, this Board of Directors thing, you should have a strong idea of what you would like to change. That could be changes to how we’re governed, increasing our revenue streams, or finding a new Summit location. The point is that you should have a vision of the future. Beyond a vision, it would be helpful if you have some ideas about how you’re going to fulfill that vision. You don’t need to have a complete business plan, although that never hurts.

I can’t stress how important having a strong vision is. The goal is to have Board members act in a strategic role. Rather than plan things and implement them, you should be coming up with broad plans. Once you’ve come up with plans and goals you’ll work with PASS HQ and a few key volunteers to implement things. That isn’t always how things work out, but that should be the goal.

Without a strong vision, it’s very easy to get swept along. This is a two year commitment. if you’re being swept along for two years, you’re going to feel very lost, purposeless, and burnt out. Make sure that you know you have something that you plan to accomplish. When you’re finished with your term you can look back and say “I did that and I’m damn proud of it.” I know that when I’m done, we will have happily gone through and codified and documented more of the abstract selection process. There will be less tribal knowledge and more of it will be available for easy public consumption. I’m going to be happy about that. Know what you’re doing. Have a goal, make a plan. Don’t be afraid to revise it.

The Time of Your Life

Pinhole: Clock

People always say that you need to be willing to donate “a few hours a week” of your time if you want to be on the PASS Board of Directors. (They say this for just about anything else, too.) So, how much time does it really require?

That all depends on how much work you take on, how much you can delegate, and your own personal comfort level. The amount of time that I spend on my own portfolio is not typical – that’s not to say that they work less, it’s just that my time commitments come in spikes where I’ll be incredibly busy for three or four months and then a lot of the year things are very quiet. I’m hoping that other Board members will comment here and put forward their opinions and help to add to this article and clear things up for the people who are thinking about running for the Board of Directors. The point is: there’s no fixed amount of time. It’s as much or as little time as you want to put into it.

There’s a one hour conference call once a month. As often as once a quarter there will be an in-person Board meeting. You’ll typically spend a day traveling to and from the meeting and two days on site. This ends up being four week days, in my experience. Of course, one of these in person Board meetings ends up being the PASS Community Summit. So that’s one less week that you have to take off from work.

Skills in Magic

hella dope

What kind of skills do you need to be on the PASS Board of Directors? We’ve already covered one: planning. You should be reasonably good at planning. You don’t need to be a genius strategist, but you should be able to put together a simple plan and execute on it. These are the skills that you’ve built as a DBA or database developer. You know how to make a list, prioritize, delegate, and execute on that list. If you can do that effectively, you’re halfway there.

The other skills that you would use in running a business the size of PASS… it would help if you had them before starting, but they’re not necessary.

The Free MBA

The PASS Board of Directors is the cheapest and most entertaining MBA program I have found. Nowhere else will you find the opportunity to manage a 7 figure budget while dining on bacon.

You can quote me on that.

One of the greatest things about the PASS Board of Directors is that it really is like an MBA program. I’ve learned about budgeting on a 7 figure scale, about how decisions play out, how to think strategically, how to plan, delegate, project, and all of the other things that they talk about in fancy business classes. Instead of one instructor and a few students, you’re one student with many other instructors. There are five other board members, three members of the Executive Committee, four vendor board members, the immediate past president, and let’s not forget our non-voting representative from Europe. Right there, you’re going to be learning from fourteen other people.

In the last seven months, I’ve learned more about my abilities as a manager than in the rest of my career. I was speaking with a friend recently, and he asked me what I thought about the PASS Board of Directors. Knowing that this friend was in management I said “It’s an awful lot like being a manager without the benefit of a company car and a reserved parking space.” After a hearty chuckle, we proceeded to play golf using a corporate AmEx. Okay, maybe that was a lie. But we did talk about the experience. The one thing that struck me is what I’ve mentioned here – it’s been the greatest education about business and about myself. There are days when I joke that I don’t know why people complain about being managers, all you do is tell people to do something and wait until they get it done. There are other days when I want to shove my head in a mailbox and scream.

The biggest thing that I’ve learned is how to listen. I don’t always see eye-to-eye with my fellow board members. But I’ve learned to listen to what they’re saying and to try to understand where they’re coming from. Sure, we all say things like this, right? That’s what marriages and friendships are about. When you’re making large decisions about the PASS Community Summit or a spring event or a budgetary decision, you suddenly realize how little you listened before and how much you need to listen. You want to know something funny? I don’t find myself agreeing with people any more than I did before I started listening closely, but I do find myself understanding them. That alone has made a huge difference for me professionally and personally.

The Round Up

That’s not a ringing endorsement, but there are bad days. The good days and the learning experiences far outweigh the bad days and the stress.

In the end, it’s been worth it. If I had to do it again, would I still run for election? Absolutely.

SQL Saturday 42 Musings

SQL Saturday 42 has been and gone. I don’t have a ton to say, but I wanted to try to post my thoughts on the event before they were completely gone from my mind.

The people who put this event on – Dave Schutz, Stuart Johnson, Marc Kuyper, Jim Stoltz, and John Jakubowski – deserve a big round of applause. They put together a very strong event and it seemed like they were incredibly well prepared.

Despite Brent Ozar suffering from incredible jet lag, and another speaker not showing up, things went off well. Allen White and I were able to cover Brent’s time slots, but not his presentations. This led to the funny moment of an attendee walking into the room and saying “You’re not Brent Ozar.” I replied, “No, I am not, but I’m talking about SQL Server Internals, it’ll be fun.” They just said, “Oh,” and walked away. So, apparently, I’m nowhere near as engaging as Brent talking about his stupid and dangerous T-SQL tricks. Clearly they don’t know that I’m just stupid and dangerous.

Outside of that, things went very well. My Dynamic SQL talk went over well, although I think I need to re-work it. I felt like I was flipping back and forth between demos and code a bit too much. It gave the entire experience a jerky feel. I suspect I’m overly critical of the presentation since I’ve given it a few times, but it’s always good to improve.

My internals presentation wasn’t well attended – this is probably due to me not being Brent Ozar. However, that didn’t stop us from having fun talking about SQL Server Internals. If anything, having a room of 6 people made the topic more fun to talk about. We were able to digress onto different topics, delve a little bit deeper than normal, and have a lot of fun watching me not trip over an extension cord.

Last but not least was my Indexes and Other Free Performance Boosts. I had a full room on this – I suspect it had something to do with the word “Free” in the presentation title. This is a really fun presentation because it’s a whirlwind tour of indexes, keys, statistics, and how they work together to coax SQL Server into giving us data faster. Once again, I think I need to smooth up the code samples, but on the whole things went really well.

I don’t have any of the evaluations, but I hope the SQL Saturday team is able to get those out to the speakers soon. From the ones I glanced at, I did a passable job. I’m looking forward to the next event in Columbus.

How I Analyzed the PASS 2010 Summit Submissions

Want to know how I analyzed the Summit session data? I exported the data from the abstract selection system into a tab delimited file. Since I use a Mac at home, I used the tools available to me: PostgreSQL.

I loaded the data using the PostgreSQL COPY command to bulk load the report output and then did some data mojo using PostgreSQL. Most of it was exactly the same as it would be for SQL Server with a few differences. Here’s the code that I used:

SELECT  COUNT(*) AS total_sessions
FROM    abstracts;
GO
-- Yup, I used the GO statement separator. This is a byproduct
-- of the client that I use, not because of PostgreSQL.

SELECT  COUNT(DISTINCT first_name || ' ' || last_name) AS name_count
FROM    abstracts ;
GO

SELECT  job_title,
        COUNT(job_title) AS jt_count
FROM    ( SELECT  job_title,
                  first_name,
                  last_name
          FROM    abstracts
          GROUP BY job_title,
                  first_name,
                  last_name
) AS x
GROUP BY job_title
ORDER BY jt_count DESC;
GO

WITH c AS (
  SELECT  job_title,
          first_name,
          last_name
  FROM    abstracts
  GROUP BY job_title,
          first_name,
          last_name
)
SELECT  SUM(CASE WHEN LOWER(job_title) LIKE '%engineer%' THEN 1 ELSE 0 END) AS engineer_count,
        SUM(CASE WHEN LOWER(job_title) LIKE '%manager%' THEN 1 ELSE 0 END) AS manager_count,
        SUM(CASE WHEN LOWER(job_title) LIKE '%developer%' THEN 1 ELSE 0 END) AS developer_count,
        SUM(CASE WHEN LOWER(job_title) LIKE '%consultant%' THEN 1 ELSE 0 END) AS consultant_count,
        SUM(CASE WHEN LOWER(job_title) LIKE '%business intelligence%' THEN 1
                 WHEN LOWER(job_title) LIKE '%b.i.%' THEN 1
                 WHEN LOWER(job_title) LIKE '%BI%' THEN 1
                 ELSE 0 END) AS bi_count,
        SUM(CASE WHEN LOWER(job_title) LIKE '%architect%' THEN 1 ELSE 0 END) AS architect_count
FROM    c;
GO

SELECT  COUNT(DISTINCT company) AS company_count
FROM    abstracts;
GO

SELECT  DISTINCT
        category,
        track,
        COUNT(track) OVER (PARTITION BY category) AS the_count_by_category,
        COUNT(track) OVER (PARTITION BY category, track) AS the_count_by_track
FROM    abstracts
ORDER BY category, track;
GO

SELECT  AVG(author_count) AS author_average
FROM    ( SELECT  DISTINCT
                  first_name,
                  last_name,
                  COUNT(session_title) OVER (PARTITION BY first_name, last_name) AS author_count
          FROM   abstracts
        ) AS x;
GO

-- You might be weirded out by this string_to_array and array_upper.
-- PostgreSQL has an array data type. We're using an array of strings
-- to get an accurate word count
SELECT  AVG(CHAR_LENGTH(abstract)) AS avg_char_count,
        STDDEV(CHAR_LENGTH(abstract)) AS char_count_stddev,
        AVG(array_upper(string_to_array(abstract, ' '), 1)) AS avg_word_count,
        STDDEV(array_upper(string_to_array(abstract, ' '), 1)) AS word_count_stddev
FROM    abstracts;
GO

-- Hey, look at that, we can use a single TRIM function to do all work
SELECT  SUM(CASE WHEN TRIM(BOTH FROM presented_before) = 'YES' THEN 1 ELSE 0 END) AS presented_before,
        SUM(CASE WHEN TRIM(BOTH FROM presented_before) = 'NO' THEN 1 ELSE 0 END) AS never_presented
FROM    abstracts;
GO

SELECT  level,
        COUNT(*)
FROM    abstracts
GROUP BY level
ORDER BY level;
GO

Presenting for the PASS Professional Development Virtual Chapter

Wednesday, June 16th, I will be presenting for the PASS Professional Development Virtual Chapter.

The Live Meeting starts at 1PM EST and will last for around an hour. You can click on this glorious link to attend.

Title: Taking Control of Your Career

Abstract: Raises, promotions, and job offers don’t happen by accident; you need a plan. Through careful planning you can create and reach impressive goals. But what’s the point of reaching your goals if nobody notices? “If you build it, they will come” doesn’t apply when you’re building your career.

In this session I will show you:

  • How to set achievable goals
  • The importance of planning your career
  • Methods for recording and communicating your accomplishments

What the heck are you people talking about?

The call for speakers is closed and the selection committees are about to begin reviewing the abstracts. Before they get started, here are a few little pieces of trivia about the sessions.

Keep in mind that I have done minimal cleansing on this data so it’s going to be a bit messy and unreliable for anything apart from entertainment purposes.

Raw Numbers

There were 574 sessions submitted this year by 209 speakers working for a total of 163 separate companies.

Out of a total of 127 job titles, the most common one was “Consultant”. Or, it would be until you take into account the different variations of DBA, Database Administrator, etc. Taking that into account, 20 of you are some kind of DBA.

If you want to get a bit fuzzier about the numbers:

  • 17 of you are an engineer and are probably measuring something with calipers right now
  • 12 of you identify as a manager
  • 12 of you think you’re a developer
  • 27 of you claim to be a consultant
  • 11 of you work in B.I.
  • 32 of you claim to be architects. You draw squares and arrows to represent work.

All of you work for a total of 163 different companies. Unless some of you can’t spell your company’s name right. Then you may work for fewer, I’m not sure. The data, as I said, is dirty.

The Submissions

The average length of a session abstract was 617.7 characters or 99.19 words with a standard deviation of 243 characters and 39 words. Out of all the presentations, 187 have never been presented before. They may very well be 100% fresh in November when you arrive.

Here’s the distribution between the different levels:

  • 100 Level (Novice) – 109 sessions
  • 200 Level (Intermediate) – 239 sessions
  • 300 Level (Advanced) – 178 sessions
  • 400 Level (Expert) – 44 sessions
  • 500 Level (Advanced Expert) – 2 sessions

Pre/Post Conference

42 total pre/post conference sessions were submitted. That’s a lot of competition for a few slots.

  • 14 were B.I. (9 for architecture and 5 for reporting/delivery)
  • 13 relate to DBA work
  • 12 relate to application development
  • 3 relate to professional development

The only conclusion I can draw is that very few of us are prepared to talk about our careers for a single work day. Are you playing Legend of Zelda at work all day? What’s up with that, guys? People making a living talking about this kind of stuff.

Spotlight Sessions

There were 58 spotlight sessions submitted and I’m afraid to say that your day jobs faired even worse in this section.

  • 20 were DBA related topics
  • 15 were development topics (this better not be all IronPerl … I mean PowerShell)
  • 13 were somehow related to B.I. architectural whatnot
  • 5 were related to B.I. reporting and delivery. Apparently these guys are too busy making money to talk at the PASS Summit for 8 hours.
  • 5 of you thought that you could talk about your job for 90 minutes. Good for you. That’s long enough to get to the good parts in Krull or watch any number of amazing kung fu movies.

The distribution is starting to skew a bit here. If we combined the BI tracks it would look a lot more like the pre/post conference situation.

Community Sessions

Here is where you guys clearly shine. You submitted a whopping 472 sessions. That’s an average of 2.25 per person. While not bad, you could have submitted 4. I’m just saying that maybe next year you should pick it up a little bit.

  • 137 application development topics. We’re number 1, we’re number 1
  • 135 DBA topics put this in at a close second.
  • 113 BI architecture topics
  • 48 Professional development (you can talk for 75 minutes about your job, but not 90?)
  • 39 B.I. reporting topics. I think these people really must have jobs to do, because that’s not a lot.

This site is protected with Urban Giraffe's plugin 'HTML Purified' and Edward Z. Yang's Powered by HTML Purifier. 219 items have been purified.