MySQL Query Profiling Tools — part 0, Ma’atkit Query Profiler

Today I’ve been checking out a new client environment. My mission is to figure out (cold) some of the characteristics of the queries being run, and particularly if they’re “good” or “bad”. In my arsenal of “tools I really want to check out” has been Ma’atkit’s Query Profiler.
They’re very different tools. Ma’atkit’s query […]

Today I’ve been checking out a new client environment. My mission is to figure out (cold) some of the characteristics of the queries being run, and particularly if they’re “good” or “bad”. In my arsenal of “tools I really want to check out” has been Ma’atkit’s Query Profiler.
They’re very different tools. Ma’atkit’s query […]

Maatkit on Ohloh


This morning I was looking for something on Ohloh and realized I should “stack” maatkit. Since I couldn’t find “maatkit” nor “mysql toolkit” in Ohloh, I created a new project for it at:

http://www.ohloh.net/projects/10083

If you’re on Ohloh, stack it!

www.ohloh.net is a neat social networking tool for open source software. Instead of searching freeware lists, search ohloh, and you can find reviews, # of people using the software, and direct links to download pages. My profile is at:

http://www.ohloh.net/accounts/8446http://www.ohloh.net/accounts/8446
and you can see my stack at:
http://www.ohloh.net/accounts/8446/stacks/default


This morning I was looking for something on Ohloh and realized I should “stack” maatkit. Since I couldn’t find “maatkit” nor “mysql toolkit” in Ohloh, I created a new project for it at:

http://www.ohloh.net/projects/10083

If you’re on Ohloh, stack it!

www.ohloh.net is a neat social networking tool for open source software. Instead of searching freeware lists, search ohloh, and you can find reviews, # of people using the software, and direct links to download pages. My profile is at:

http://www.ohloh.net/accounts/8446http://www.ohloh.net/accounts/8446
and you can see my stack at:
http://www.ohloh.net/accounts/8446/stacks/default

MySQL Proxy Presentation at the September 2007 Boston MySQL User Group

I have finally managed to watch and slightly edit the September 2007 Boston MySQL User Group presentation I did on the MySQL Proxy.

It’s geared towards beginners, and has lots of examples, including explaining some of the examples that come bundled with the MySQL Proxy.

Direct Play

Download video (.wmv file, 612 Mb)
Download video (.wmv file, 76.10 Mb)

Enjoy!

Some resources:
Presentation Slides PowerPoint (ppt) or PDF or Flash (swf)

read more

I have finally managed to watch and slightly edit the September 2007 Boston MySQL User Group presentation I did on the MySQL Proxy.

It’s geared towards beginners, and has lots of examples, including explaining some of the examples that come bundled with the MySQL Proxy.

Direct Play

Download video (.wmv file, 612 Mb)
Download video (.wmv file, 76.10 Mb)

Enjoy!

Some resources:
Presentation Slides PowerPoint (ppt) or PDF or Flash (swf)

read more

Sysadmins, Developers and DBAs

I think the briefest way to sum up the difference between a good developer mindset and a good sysadmin mindset is “a good developer thinks, ‘how will this work?’ and works accordingly. A good sysadmin thinks, ‘how will this break?’ and works accordingly.”

Developers think in terms of “edge cases” and “off by 1” errors, which start from a default of things working. This is good as a design skill; developers need to think algorithmically, pondering a main way of something functioning and then dealing with anomalies.

However, sysadmins tend to install systems and maintain them with scripts, as opposed to building new software — usually. Sysadmins deal with systems when anomalies happen, so they must have a mindset of “how will this break?” vis-a-vis — “how will this break and how can I be notified of the breakage before my boss/the customers call?” which leads to “what if the notification system breaks?”

Now, a DBA leads a double life. In fact, DBA has come to mean “database professional”. There are plenty of folks who use DBA when in fact they’re great Database Programmers, who can code their way around any problem but haven’t touched a config file and never have GRANTed anyone access. On the other end of the spectrum are folks like me, who fiddle with stored procedures but are great at administration.

I’ve always thought that “database professionals” bridged the gap between Systems and Development, almost by sheer need. I wonder if that’s true for any “major application professional” such as an Apache/Tomcat/Resin/Jboss administrator.

What do you think about the different qualities of Sysadmins, DBAs and Developers?

I think the briefest way to sum up the difference between a good developer mindset and a good sysadmin mindset is “a good developer thinks, ‘how will this work?’ and works accordingly. A good sysadmin thinks, ‘how will this break?’ and works accordingly.”

Developers think in terms of “edge cases” and “off by 1” errors, which start from a default of things working. This is good as a design skill; developers need to think algorithmically, pondering a main way of something functioning and then dealing with anomalies.

However, sysadmins tend to install systems and maintain them with scripts, as opposed to building new software — usually. Sysadmins deal with systems when anomalies happen, so they must have a mindset of “how will this break?” vis-a-vis — “how will this break and how can I be notified of the breakage before my boss/the customers call?” which leads to “what if the notification system breaks?”

Now, a DBA leads a double life. In fact, DBA has come to mean “database professional”. There are plenty of folks who use DBA when in fact they’re great Database Programmers, who can code their way around any problem but haven’t touched a config file and never have GRANTed anyone access. On the other end of the spectrum are folks like me, who fiddle with stored procedures but are great at administration.

I’ve always thought that “database professionals” bridged the gap between Systems and Development, almost by sheer need. I wonder if that’s true for any “major application professional” such as an Apache/Tomcat/Resin/Jboss administrator.

What do you think about the different qualities of Sysadmins, DBAs and Developers?

Put Me To Work For You

(The Executive Summary: I left my job last week, and I start working at The Pythian Group on Monday. Go to their website if you’d like to work with me, or with people just as knowledgeable as me.)

I get inquiries all the time about consulting. Folks are madly searching for experienced MySQL DBAs. The lure of a new environment is always tempting, however, working for any one environment has its quirks. In October I realized I was coming up on having worked 2 years at my job. That’s not a very long period of time, but it certainly was long enough for me to learn the environment and get stuck in a rut — mostly my rut was doing more systems work than database work.

I looked around for other places of work, and had a wonderful interview at an awesome company to boot. However, they were also a product company, and I’d decided that I wanted to move to a service company. That is, a company that provides database services to a wide variety of environments. A company that sells products still usually has one environment, or at least one environment that I would work in. With a service-oriented company, such as a consulting firm, I can gain the experience of many environments and many setups.

Learning from my co-workers is important too — too many shops have only 1 or 2 MySQL DBA positions, which leaves me with 1 or 0 MySQL colleagues at work. Being the big fish in a small pond has its advantages, but it’s also too easy to get caught in my own ways of doing things and not see another side of things.

So, I thought about where I’d want to work. There are many great MySQL consulting firms out there. I looked at the ones I knew about — most of the ones run by Planet MySQLers I ruled out because either I didn’t have the right skillset (I’m not a programmer, C or otherwise!) or because I thought there might be personality conflicts, or because I’d have to move.

That was a big one — having to move. I have to stay in the Boston area, at least for now. My husband and I discussed things, and we’re not willing to move right now. Also, I hate too much travel. Anything more than 10% really wears me down. And that, sadly, put MySQL’s own consulting out of the running. I just cannot travel that much.

So where does that leave me? Well, I called up The Pythian Group and we had a few hours of great phone conversations.

Next week, I fly to Ottawa for training! There will be a Boston office opening, but that’s after I finish 2-3 weeks of training.

I’m very excited to learn more about how The Pythian Group operates, as well as getting down and dirty with different environments, and solving lots of problems.

(The Executive Summary: I left my job last week, and I start working at The Pythian Group on Monday. Go to their website if you’d like to work with me, or with people just as knowledgeable as me.)

I get inquiries all the time about consulting. Folks are madly searching for experienced MySQL DBAs. The lure of a new environment is always tempting, however, working for any one environment has its quirks. In October I realized I was coming up on having worked 2 years at my job. That’s not a very long period of time, but it certainly was long enough for me to learn the environment and get stuck in a rut — mostly my rut was doing more systems work than database work.

I looked around for other places of work, and had a wonderful interview at an awesome company to boot. However, they were also a product company, and I’d decided that I wanted to move to a service company. That is, a company that provides database services to a wide variety of environments. A company that sells products still usually has one environment, or at least one environment that I would work in. With a service-oriented company, such as a consulting firm, I can gain the experience of many environments and many setups.

Learning from my co-workers is important too — too many shops have only 1 or 2 MySQL DBA positions, which leaves me with 1 or 0 MySQL colleagues at work. Being the big fish in a small pond has its advantages, but it’s also too easy to get caught in my own ways of doing things and not see another side of things.

So, I thought about where I’d want to work. There are many great MySQL consulting firms out there. I looked at the ones I knew about — most of the ones run by Planet MySQLers I ruled out because either I didn’t have the right skillset (I’m not a programmer, C or otherwise!) or because I thought there might be personality conflicts, or because I’d have to move.

That was a big one — having to move. I have to stay in the Boston area, at least for now. My husband and I discussed things, and we’re not willing to move right now. Also, I hate too much travel. Anything more than 10% really wears me down. And that, sadly, put MySQL’s own consulting out of the running. I just cannot travel that much.

So where does that leave me? Well, I called up The Pythian Group and we had a few hours of great phone conversations.

Next week, I fly to Ottawa for training! There will be a Boston office opening, but that’s after I finish 2-3 weeks of training.

I’m very excited to learn more about how The Pythian Group operates, as well as getting down and dirty with different environments, and solving lots of problems.

Log Buffer #72 — a Carnival of the Vanities for DBAs

Welcome to the 72nd edition of Log Buffer, the weekly review of database blogs.

Oracle OpenWorld (OOW) is over, and Lucas Jellema of the AMIS Technology blog notes the OOW Content Catalog has been updated with most of the presentations available for download.

On his way home from OOW, Chris Muir of the appropriately titled One Size Doesn’t Fit All blog notes how OOW and the Australian Oracle User Group Conference and OOW compare with regards to 99% fewer attendees in AUSOUG Perth conference – from 45k down to 350.

Mark Rittman of Rittman Mead Consulting summarizes OOW’s impact on business intelligence and data warehousing in Reflections on Oracle’s BI Strategy. On his way home, Mark found time for A First Look at Oracle OLAP 11g, noting the pros, cons, gotchas and suggestions for improvement for many useful new features.

Microsoft SQL Server also has a new release in the works. Ted Malone in Agile Methods for the DB Dev is excited about SQL Server 2008 “Katmai” CTP 5 New Features and descries almost 20 of them.

Ian Barwick of PostgreSQL Notes talks about Converting tsearch2 to 8.3 now that the tsearch2 full text search engine has been integrated as a core PostgreSQL feature.

Patrick Barel of the Bar Solutions Weblog explains a new feature of Oracle 11g called Virtual Columns. While virtual data may be a new topic, using databases on virtual machines is an ongoing issue. Marco Russo of SQL BI gives his opinion on when to use virtual machines in SQL Server Virtualization.

Database professionals can be real characters, and set in their ways. Bad puns make good transitions, and Corrado Pandiani sheds light on MySQL’s rules for Charsets and Collations on Multicolumn Fulltext Indexes. Adam Douglas of Binary Expressions fixed some trouble with MySQL and French Characters not rendering properly.

Greg Sabino Mullane shows reasons for his Problems with pl/perl and UTF-8. In Tending the Garden, Selena Deckelmann goes through the very easy process of Automatic Character Set Conversion in PostgreSQL. Selena has also been busy organizing the development of ptop, an interactive, command-line tool for monitoring the current status of a PostgreSQL database. If you read this in time and are in the Portland, Oregon area you can join the ptop hackathon at noon (local time) tomorrow, Saturday November 24th, or you can read the ptop meeting summary from pdxpug.

While some of us are database tools, some of us prefer to contribute database tools. Baron Schwartz honors MySQL’s trademark by announcing that MySQL Toolkit is now Ma’atkit. Ma’at, pronounced “mott”, is the ancient Egyption patron saint of truth, harmony and order. In addition, Baron proclaims “Ma’atkit Version 1297 Released!”

Hubert Lubaczewski notes the changes to the analyze.pgsql.logs.pl script of pgsql-tools in update 3 and update 4.

Hubert also notes how to find overlapping time ranges and how to find the number of ranges a time belongs to in time ranges in postgresql – part 2. Though written for PostgreSQL, both posts can easily be applied to another DBMS. In the same vein, Yves Trudeau shares the DBMS-independent graphical images of Unix memory usage in Generating graphs from vmstat output.

Jeromy McMahon posts sample SQL code for viewing Oracle extent segments for tablespaces, temporary spaces and sort segment space. The Cheap DBA gets Oracle specific with a Slick Shell Script for Reporting on Oracle Workload. Krister Axel of codeboxer.com has A really clean dynamic insert proc for PL/SQL ETL packages, including validation checking and exception handling. zillablog‘s Robert Treat treats us to a function for tracking plperl shared variables.

Jen M is Keeping IT simple by coding capacity measurements to show How Not to Outgrow Your DB Infra: A Simple Step. She follows up with more code to monitor a specific cache to resolve unexplainable slowness/resource leak in SQL Server.

This post began with a conference, and so it shall conclude. The Call For Proposals for PgCon 2008 is underway, and David Fetter lets us know that PgCon 2008 will be held May 22-23 at the University of Ottawa. This is different from Joshua Drake‘s call for volunteers for Command Prompt’s Postgresql Conference East 08, on March 28-29 at the University of Maryland. Neil Conway informs us of a Jim Gray Tribute, consisting of a general session and 9 half-hour technical sessions reviewing some of the 1998 Turing Award winner’s work.

In case this edition did not give you enough to read, Beth Breidenbach of Confessions of a Database Geek created an aggregate blog feed for posts relating to information quality.

Welcome to the 72nd edition of Log Buffer, the weekly review of database blogs.

Oracle OpenWorld (OOW) is over, and Lucas Jellema of the AMIS Technology blog notes the OOW Content Catalog has been updated with most of the presentations available for download.

On his way home from OOW, Chris Muir of the appropriately titled One Size Doesn’t Fit All blog notes how OOW and the Australian Oracle User Group Conference and OOW compare with regards to 99% fewer attendees in AUSOUG Perth conference – from 45k down to 350.

Mark Rittman of Rittman Mead Consulting summarizes OOW’s impact on business intelligence and data warehousing in Reflections on Oracle’s BI Strategy. On his way home, Mark found time for A First Look at Oracle OLAP 11g, noting the pros, cons, gotchas and suggestions for improvement for many useful new features.

Microsoft SQL Server also has a new release in the works. Ted Malone in Agile Methods for the DB Dev is excited about SQL Server 2008 “Katmai” CTP 5 New Features and descries almost 20 of them.

Ian Barwick of PostgreSQL Notes talks about Converting tsearch2 to 8.3 now that the tsearch2 full text search engine has been integrated as a core PostgreSQL feature.

Patrick Barel of the Bar Solutions Weblog explains a new feature of Oracle 11g called Virtual Columns. While virtual data may be a new topic, using databases on virtual machines is an ongoing issue. Marco Russo of SQL BI gives his opinion on when to use virtual machines in SQL Server Virtualization.

Database professionals can be real characters, and set in their ways. Bad puns make good transitions, and Corrado Pandiani sheds light on MySQL’s rules for Charsets and Collations on Multicolumn Fulltext Indexes. Adam Douglas of Binary Expressions fixed some trouble with MySQL and French Characters not rendering properly.

Greg Sabino Mullane shows reasons for his Problems with pl/perl and UTF-8. In Tending the Garden, Selena Deckelmann goes through the very easy process of Automatic Character Set Conversion in PostgreSQL. Selena has also been busy organizing the development of ptop, an interactive, command-line tool for monitoring the current status of a PostgreSQL database. If you read this in time and are in the Portland, Oregon area you can join the ptop hackathon at noon (local time) tomorrow, Saturday November 24th, or you can read the ptop meeting summary from pdxpug.

While some of us are database tools, some of us prefer to contribute database tools. Baron Schwartz honors MySQL’s trademark by announcing that MySQL Toolkit is now Ma’atkit. Ma’at, pronounced “mott”, is the ancient Egyption patron saint of truth, harmony and order. In addition, Baron proclaims “Ma’atkit Version 1297 Released!”

Hubert Lubaczewski notes the changes to the analyze.pgsql.logs.pl script of pgsql-tools in update 3 and update 4.

Hubert also notes how to find overlapping time ranges and how to find the number of ranges a time belongs to in time ranges in postgresql – part 2. Though written for PostgreSQL, both posts can easily be applied to another DBMS. In the same vein, Yves Trudeau shares the DBMS-independent graphical images of Unix memory usage in Generating graphs from vmstat output.

Jeromy McMahon posts sample SQL code for viewing Oracle extent segments for tablespaces, temporary spaces and sort segment space. The Cheap DBA gets Oracle specific with a Slick Shell Script for Reporting on Oracle Workload. Krister Axel of codeboxer.com has A really clean dynamic insert proc for PL/SQL ETL packages, including validation checking and exception handling. zillablog‘s Robert Treat treats us to a function for tracking plperl shared variables.

Jen M is Keeping IT simple by coding capacity measurements to show How Not to Outgrow Your DB Infra: A Simple Step. She follows up with more code to monitor a specific cache to resolve unexplainable slowness/resource leak in SQL Server.

This post began with a conference, and so it shall conclude. The Call For Proposals for PgCon 2008 is underway, and David Fetter lets us know that PgCon 2008 will be held May 22-23 at the University of Ottawa. This is different from Joshua Drake‘s call for volunteers for Command Prompt’s Postgresql Conference East 08, on March 28-29 at the University of Maryland. Neil Conway informs us of a Jim Gray Tribute, consisting of a general session and 9 half-hour technical sessions reviewing some of the 1998 Turing Award winner’s work.

In case this edition did not give you enough to read, Beth Breidenbach of Confessions of a Database Geek created an aggregate blog feed for posts relating to information quality.

Virtualization and MySQL

So, the article at:

http://mysql-dba-journey.blogspot.com/2007/11/mysql-and-vmware.html says:

Don’t get seduced to the dark side unless you understand all the issues.

And that’s wonderful and all, but….what are all the issues? What are some of the issues? Is it related more to VMware, or more to MySQL, or more to MySQL on VMware? Is it something like “VMware isn’t stable” or more like “load testing on vmware isn’t always going to work because you won’t have full resources”?

Many people talk about using virtualization for development and testing….but if you develop and test on a virtual machine and then put it on a physical machine for production, isn’t that basically having differing environments for dev/testing and production, which is usually seen as bad? If a line of code crashes a virtual machine but is fine on production, is it worth tracking the bug down? How many hours will you spend doing that?

Also, how is using a virtual machine better/worse/different from using something like mysqld_multi on a machine with many IPs, or other strategies folks use in dev/test so they don’t have to buy the exact same hardware as in production, but still have the same separation of databases, etc?

So, the article at:

http://mysql-dba-journey.blogspot.com/2007/11/mysql-and-vmware.html says:

Don’t get seduced to the dark side unless you understand all the issues.

And that’s wonderful and all, but….what are all the issues? What are some of the issues? Is it related more to VMware, or more to MySQL, or more to MySQL on VMware? Is it something like “VMware isn’t stable” or more like “load testing on vmware isn’t always going to work because you won’t have full resources”?

Many people talk about using virtualization for development and testing….but if you develop and test on a virtual machine and then put it on a physical machine for production, isn’t that basically having differing environments for dev/testing and production, which is usually seen as bad? If a line of code crashes a virtual machine but is fine on production, is it worth tracking the bug down? How many hours will you spend doing that?

Also, how is using a virtual machine better/worse/different from using something like mysqld_multi on a machine with many IPs, or other strategies folks use in dev/test so they don’t have to buy the exact same hardware as in production, but still have the same separation of databases, etc?

What’s in a Name? Everything!

Peter makes an interesting post about the MySQL company’s trademarks at http://www.mysqlperformanceblog.com/2007/10/26/mysql-support-or-support-for-mysql-mysql-trademark-policies/

The point is that Peter is not selling “MySQL Support” — he is selling “Support *for* MySQL”. “MySQL Support” is the name of a product that MySQL offers. Even if some other consulting company used the name before the MySQL company ever did, MySQL still has the rights to the name.

I chose to name my podcast “OurSQL: The MySQL Database Podcast for the Community, By the Community.” I chose every word carefully. For instance, I call it “the MySQL Database Podcast” so that anyone looking for a podcast about “database” will find it.

I could have just called it “MySQL Podcast”. But if the company MySQL (AB or Inc) ever makes a podcast, they would do the same thing to me that they do to you. I have to distinguish it’s “a podcast about MySQL”, not “MySQL’s podcast”. In fact if you look for “oursql” references, there is actually software released in September 2001 called “oursql”, but it was only released once and I have only ever found a handful of e-mails about it.

Similarly with “Technocation, Inc”. I googled around for it and found that a Baltimore, MD USA paper has a column called “technocation”, and it’s similar to why I picked the name — technology + education. But there’s no way anyone would confuse the two.

Same thing as MySQL would do if they made their own toolkit. “MySQL Toolkit” is in fact a really bad name because it’s so generic. Right now there’s no confusion, because MySQL doesn’t have a toolkit. Same with the “MySQL Magazine”. If MySQL ever puts out a magazine, they’ll send a letter right away. I was actually worried that “The MySQL Guy Podcast” at http://www.themysqlguy.com/ would get a letter from them. After all, there are plenty of “MySQL guys” out there, and he doesn’t work for the company……(hence why I’m the “She-BA”, not “MySQL Gal”).

In fact, Microsoft seems to do this on purpose. They named their database engine “SQL Server”. I’ve been frustrated when I get Microsoft pages when I’m just looking for “something relating to SQL”. I’d much rather get something related to the SQL standard. Same with their “Windows Mobile” platform. Check out their list of servers on the right-hand side of the page at http://www.microsoft.com/servers/default.mspx — if you’re looking for “security” on a Windows server, chances are most of your search result will be for the “Security Server” that Microsoft offers. Ditto with “Content Management Server” and “Data Protection Manager” and “Speech Server” and “Virtual Server” and “Small Business Server”…etc.

If you have questions about Intellectual Property (IP) or Patents in the United States, I highly recommend retaining services from the law firm of Bakos and Kritzer — http://www.bakoskritzer.com/. It’s not just a law firm where my brother is a partner, it’s also a damn good one.

(Speaking of name, I will likely be changing my name in the near future to “Sheeri K. Cabral”, so if you see it around, don’t get confused. You can always find me at www.sheeri.com )

Peter makes an interesting post about the MySQL company’s trademarks at http://www.mysqlperformanceblog.com/2007/10/26/mysql-support-or-support-for-mysql-mysql-trademark-policies/

The point is that Peter is not selling “MySQL Support” — he is selling “Support *for* MySQL”. “MySQL Support” is the name of a product that MySQL offers. Even if some other consulting company used the name before the MySQL company ever did, MySQL still has the rights to the name.

I chose to name my podcast “OurSQL: The MySQL Database Podcast for the Community, By the Community.” I chose every word carefully. For instance, I call it “the MySQL Database Podcast” so that anyone looking for a podcast about “database” will find it.

I could have just called it “MySQL Podcast”. But if the company MySQL (AB or Inc) ever makes a podcast, they would do the same thing to me that they do to you. I have to distinguish it’s “a podcast about MySQL”, not “MySQL’s podcast”. In fact if you look for “oursql” references, there is actually software released in September 2001 called “oursql”, but it was only released once and I have only ever found a handful of e-mails about it.

Similarly with “Technocation, Inc”. I googled around for it and found that a Baltimore, MD USA paper has a column called “technocation”, and it’s similar to why I picked the name — technology + education. But there’s no way anyone would confuse the two.

Same thing as MySQL would do if they made their own toolkit. “MySQL Toolkit” is in fact a really bad name because it’s so generic. Right now there’s no confusion, because MySQL doesn’t have a toolkit. Same with the “MySQL Magazine”. If MySQL ever puts out a magazine, they’ll send a letter right away. I was actually worried that “The MySQL Guy Podcast” at http://www.themysqlguy.com/ would get a letter from them. After all, there are plenty of “MySQL guys” out there, and he doesn’t work for the company……(hence why I’m the “She-BA”, not “MySQL Gal”).

In fact, Microsoft seems to do this on purpose. They named their database engine “SQL Server”. I’ve been frustrated when I get Microsoft pages when I’m just looking for “something relating to SQL”. I’d much rather get something related to the SQL standard. Same with their “Windows Mobile” platform. Check out their list of servers on the right-hand side of the page at http://www.microsoft.com/servers/default.mspx — if you’re looking for “security” on a Windows server, chances are most of your search result will be for the “Security Server” that Microsoft offers. Ditto with “Content Management Server” and “Data Protection Manager” and “Speech Server” and “Virtual Server” and “Small Business Server”…etc.

If you have questions about Intellectual Property (IP) or Patents in the United States, I highly recommend retaining services from the law firm of Bakos and Kritzer — http://www.bakoskritzer.com/. It’s not just a law firm where my brother is a partner, it’s also a damn good one.

(Speaking of name, I will likely be changing my name in the near future to “Sheeri K. Cabral”, so if you see it around, don’t get confused. You can always find me at www.sheeri.com )