My MySQL Conference Schedule

Sunday, April 13th, 2008

Were there too many "my"'s in that title? Anyway… this week's MySQL conference is promising to be really busy and exciting. I can't wait to finally be there and experience it in all its glory. Thanks to the O'Reilly personal conference planner and scheduler and the advice of my fellow conference goers, I was able to easily (not really) pick out the speeches I am most interested in attending.

Here goes (my pass doesn't include Monday :( ):

Tuesday

8:30am Tuesday, 04/15/2008

State of MySQL

Keynote Ballroom E

Mårten Mickos (MySQL)

In his annual State of MySQL keynote, Marten discusses the current and future role of MySQL in the modern online world. The presentation also covers the acquisition by Sun of MySQL, the role open source is playing for users and customers all over the planet, and what the visions for the future are. Read more.

 

9:05am Tuesday, 04/15/2008

Open Source: The Heart of the Network Economy

Keynote Ballroom E

Jonathan Schwartz (Sun Microsystems)

Free software and open communities are the lifeblood of network innovation. Sun Microsystems CEO Jonathan Schwartz will highlight the rising open source tide and how Sun's recently announced acquisition of MySQL furthers free software as a platform for the web economy. Read more.

 

9:40am Tuesday, 04/15/2008

A Head in the Cloud - The Power of Infrastructure as a Service

Keynote Ballroom E

Werner Vogels (Amazon.com)

There are many challenges when building a reliable, flexible architecture that can manage unpredictable behaviors of today's internet business. This presentation will review some of the lessons learned from building one of the world's largest distributed systems; Amazon.com. Read more.

 

10:50am Tuesday, 04/15/2008

Performance Guide for MySQL Cluster

MySQL Cluster and High Availability, Performance Tuning and Benchmarks Ballroom D

Mikael Ronstrom (MySQL)

Learn about all the tricks required to make MySQL Cluster high performance. This includes using real-time scheduling, batching in all its form, cluster interconnects, and locking threads to CPUs. Read more.

 

11:55am Tuesday, 04/15/2008

The Future of MySQL: What You Need to Know About What's Coming

Architecture and Technology, General Ballroom B

Robin Schumacher (Sun/MySQL), Rob Young (Sun/MySQL)

What enhancements can you expect in the MySQL Server in the next few years? What new tools, services, and software is MySQL going to deliver this year and next to help you deploy and maintain MySQL applications? This session will let you in on all the plans MySQL has for the server, the Enterprise Monitor, the upcoming Load Balancer and Query Analyzer, management tools, and more. Read more.

 

2:00pm Tuesday, 04/15/2008

InnoDB: Status, Architecture, and New Features

Architecture and Technology Ballroom F

Heikki Tuuri (Innobase / Oracle Corp.), Ken Jacobs (Oracle / Innobase)

Ken Jacobs and Heikki Tuuri will describe the InnoDB architecture in depth, and discuss the new powerful performance-enhancing capabilities in InnoDB. Read more.

 

3:05pm Tuesday, 04/15/2008

Investigating Innodb Scalability Limits

Performance Tuning and Benchmarks Ballroom F

Peter Zaitsev (MySQL Performance Blog), Vadim Tkachenko (MySQLPerformanceBlog.com)

You may have heard Innodb has limited scalability with multiple CPUs and some of these were fixed in recent MySQL 5.0 versions. In this presentations we will look into which problems are fixed. Read more.

 

4:25pm Tuesday, 04/15/2008

Disaster is Inevitable—Are You Prepared?

Security and Database Administration Ballroom B

Farhan Mashraqi (Fotolog)

What’s the worst disaster you expect to happen? What can you do to better prepare for the disaster? Join us in this heart-racing, real-life inspired presentation for answers to these questions and more. Read more.

 

5:15pm Tuesday, 04/15/2008

Mitigating Replication Latency in a Distributed Application Environment

Architecture and Technology, Business and Case Studies, Replication and Scale-Out Ballroom E

Jeff Freund (Clickability)

Master-Master replication provides high availability and serviceability for the applications. Publishing web sites is a read-intensive operation, and the combination of Master-Slave replication with an application layer that intelligently splits database read and write operations allows for rapid scale out. Hear how Clickability solves issues for both environments. Read more.

 

Wednesday

8:30am Wednesday, 04/16/2008

Copyright Regime vs. Civil Liberties

Keynote Ballroom E

Rick Falkvinge (Swedish Pirate Party)

Rick Falkvinge, founder of the Swedish Pirate Party, talks about the rise and success of pirates and why pirates are necessary in today's politics. He'll also outline the next steps in the pirates' strategy to change global copyright laws. Read more.

 

9:15am Wednesday, 04/16/2008

Scaling MySQL - Up or Out?

Keynote Ballroom E

John Allspaw (Flickr (Yahoo!)), Jeff Rothschild (Facebook.com), Monty Taylor (MySQL), Domas Mituzas (MySQL), Paul Tuckfield (YouTube)

This lively panel discussion keynote will address the challenges large, modern web properties face in scaling MySQL. Panelists from Facebook, YouTube, and Flickr pair up with MySQL engineers in discussing the current and future problem domain and possible solutions. Read more.

 

10:00am Wednesday, 04/16/2008

Faster, Greener, Cheaper: Why Every MySQL Database Server Will One Day Have a SQL Chip

Keynote Ballroom E

Raj Cherabuddi (Kickfire)

The history of computing is full of algorithms such as graphics processing that are fine-tuned in general purpose CPUs over decades. Only when they are finally ported to dedicated hardware are tremendous improvements in speed, cost, and power realized. Raj Cherabuddi explains how a new SQL chip will revolutionize today’s database query processing. Read more.

 

10:50am Wednesday, 04/16/2008

Portable Scale-out Benchmarks for MySQL

Architecture and Technology, Performance Tuning and Benchmarks, Replication and Scale-Out Ballroom D

Robert Hodges (Continuent.com)

This talk presents new open source tools that allow users to set up and run database scale-out benchmarks easily. Hodges illustrates with benchmark results from your favorite MySQL configurations. Read more.

 

11:55am Wednesday, 04/16/2008

Applied Partitioning and Scaling Your Database System

General Ballroom D

Phil Hildebrand (thePlatform)

Take advantage of MySQL partitioning to allow your database applications to scale in both size and performance. A practical look at applying partitioning to OLTP database systems. Read more.

 

2:00pm Wednesday, 04/16/2008

Architecture of Maria: A New Storage Engine with a Transactional Design

Architecture and Technology, Performance Tuning and Benchmarks Ballroom E

Michael Widenius (MySQL)

A deep tour into the design of Maria, a new MVCC storage engine for MySQL from the original authors of MySQL that is designed to support transactions and automatic recovery. Read more.

 

3:05pm Wednesday, 04/16/2008

An Introduction to BLOB Streaming for MySQL Project

Java, Storage Engine Development and Optimization Ballroom A

Paul McCullagh (PrimeBase Technologies GmbH)

This session explains how the BLOB Streaming engine solves the problems involved in storing pictures, films, MP3 files, and other binary and text objects (BLOBs) in the database. Read more.

 

4:25pm Wednesday, 04/16/2008

Benchmarking and Monitoring: Tools of the Trade (Part I)

Performance Tuning and Benchmarks Ballroom D

Tom Hanlon (MySQL)

Benchmarking and Profiling are extrememly important and a large array of tools exist for the job. Join Tom Hanlon for a tour of the current landscape. Demos of each tool wil be shown. Read more.

 

5:15pm Wednesday, 04/16/2008

Benchmarking and Monitoring: Tools of the Trade (Part II)

Performance Tuning and Benchmarks, Security and Database Administration Ballroom D

Tom Hanlon (MySQL)

Join us for a presentation of the wonderful world of benchmarks and monitoring tools. Here you will learn what is available, how each tool works, and a demonstration using each tool against a running database from a veteran MySQL expert. Read more.

 

8:30pm Wednesday, 04/16/2008

Sun Sponsor Party

Event Ballroom F

Have a drink, mingle with fellow conference participants, and enter our raffle to win great prizes, including a a Sony PS3! Sponsored by Sun Microsystems. Read more.

 

Thursday

8:30am Thursday, 04/17/2008

Who is the Dick on My Site?

Keynote Ballroom E

Dick Hardt (Sxip Identity Corporation)

Much of the data in a database is about people. Identity 2.0 technologies will lower the friction for people to provide and easily move data about themselves online. This fast paced keynote will offer a background on Identity 2.0, discuss current roadblocks and future opportunities, and explore the potential impacts these will have on databases. Read more.

 

9:15am Thursday, 04/17/2008

A Match Made in Heaven? The Social Graph and the Database

Keynote Ballroom E

Jeff Rothschild (Facebook.com)

Social applications integrate information about many different facets of people’s lives. Join us as Jeff Rothschild from Facebook looks at the power of the social graph, how it can increase the utility and adoption of applications, and its implications on storage architectures. Read more.

 

10:50am Thursday, 04/17/2008

MySQL Proxy, the Friendly Man in the Middle

Architecture and Technology Ballroom F

Jan Kneschke (MySQL), Jimmy Guerrero (Sun-MySQL)

MySQL Proxy is a tool to route, rewrite, handle, and block queries on the MySQL Protocol level. Load Balancing, Query Replay, Online Query Rewrites, and more with a grain of scripting. Read more.

 

11:55am Thursday, 04/17/2008

Sphinx: High Performance Full Text Search for MySQL

General Ballroom C

Andrew Aksyonoff (Sphinx Technologies), Peter Zaitsev (MySQL Performance Blog)

Sphinx is an open source full-text search engine designed for indexing databases and integrated especially well with MySQL. We'll talk about its features, capabilities, and real-world applications. Read more.

 

2:00pm Thursday, 04/17/2008

Top 20 DB Design Tips Every Architect Needs to Know

Architecture and Technology, Data Warehousing and Business Intelligence, Security and Database Administration Ballroom B

Ronald Bradford (Primebase Technologies)

Each database product has strengths and weaknesses. Having chosen MySQL as your database product, leverage the strengths of the product to maximize design and performance. Learn the things to avoid. Read more.

 

2:50pm Thursday, 04/17/2008

The Power of Lucene

Architecture and Technology, Java, Ruby and MySQL Ballroom G

Farhan Mashraqi (Fotolog)

Lucene is a high performance, scalable, full-text search engine library that allows you to add search to any application. This presentation shows you how you can use Lucene within your environment. Read more.

 

3:50pm Thursday, 04/17/2008

The Science and Fiction of Petascale Analytics

Keynote Ballroom E

Jacek Becla (Stanford Linear Accelerator Center)

Scientists are trying to understand dark matter, discover distant galaxies, hunt for the Higgs boson, detect asteroids, and take movies of molecules. Their science is fascinating but their analysis requirements may seem like science fiction. Few have experienced the reality of petascale analytics so far, but everybody, including you, will face it tomorrow. Are we ready? Read more.

 

4:35pm Thursday, 04/17/2008

Farewell Closing Reception

Event Ballroom E

Take the opportunity to network one last time at this closing event. Say thank you and exchange contact information until next year. Read more.

 

Phew. I think I've picked out the most interesting topics. I'm excited to see Peter, Farhan, Ron, Paul, Jan, and everyone else. I hope I didn't skip anything interesting…

Updated: April 23rd, 2008

[WORK IN PROGRESS] Here is a list of commands that I use every day with vim, in no particular order. Out of a billion possible key combinations, I found these to be irreplaceable and simple enough to remember.

     

    *

    search for the word under cursor (to the end of the file)

    #

    search for the word under cursor (to the top of the file)

    ctrl-p,ctrl-n

    suggest (p)revious or (n)ext autocomplete from the list of existing keywords in the file or included files (!).

    :go NNN

    go to byte NNN

    .

    redo last command

    /SEARCH TERM

    search document for SEARCH TERM

    :%s/FOO/BAR/gci

    replace FOO with BAR (g)lobally, case (i)insensitively, and asking for (c)onfirmation

    n (N)

    next (previous) search result

    %

    find and jump to a matching brace or parenthesis

    u

    undo

    ctrl-r

    redo

    r CHAR

    replace character under curson with CHAR

    i

    start editing before current character

    I

    start editing in the beginning of current line

    a

    start editing after current character

    A

    start editing at the end of current line

    o

    start editing on the next line

    O

    start editing on the previous line

    :wq or ZZ

    write file and exit

    ctrl-v

    visual block select (rectangular)

    shift-v

    visual line select

    ctrl(or shift)-v y or d

    copy or delete selected text

    yy

    yank (copy) current line

    yNNN arrow up/down

    yank NNN lines above or below

    p

    paste the yanked buffer

    cw

    change word (delete word under cursor and go into edit mode)

    cNw

    change N words

    e!

    reload the file (revert)

Why do I dread doing taxes every year? One of the main reason was having to figure out ways to import hundreds of transactions from my stock brokers: Scottrade and InteractiveBrokers. I love IB but come on, it's 2008 and they still don't provide .txf files to import into TurboTax (or TaxCut, but I use TurboTax myself). Scottrade, on the other hand, is directly importable through TurboTax but it only imports sale amounts and not purchases, so TurboTax thinks I got my stocks for free and wants to tax me on the full sale amount rather than the profits. That is, of course, very incorrect. Here are the best solutions I could find to these problems:

1. Scottrade.

This one is easy. Instead of doing a direct import through the tax program itself, log into your Scottrade account, go to My Account -> GainsKeeper -> Export Data and download this report available in .txf format: Aggregate Realized for 20XX (whatever the tax year is). It contains both the properly filled out cost bases (amounts paid + commissions) and final sale amounts for all stocks traded. Then just import this file into your tax software. Done.

image 

 

2. InteractiveBrokers (IB).

Since these guys have been too lazy to write a .txf exporter, only providing HTML, Excel, and PDF reports, you would either have to import all trades manually (yeah right), write a quick script (meh, boring), or use an existing tool to convert these reports into .txf. There are a few tools potentially suitable for this task, some costing hundreds of dollars but the absolute best and cost efficient option I found is InvestoTek Excel macro called ConverExcel2TXF. It only costs $5 and does the job perfectly. Here's what to do:

  • log into your InteractiveBrokers account -> Report Management -> Tax Forms -> Schedule D Gain/Loss Summary Worksheet, select your tax year, MS Excel, and View Report. Now you have an Excel spreadsheet with all trades made.

image

  • purchase and download the ConvertExcel2TXF macro. There's a trial macro that converts only 2 trades here, so try it out before you buy (but seriously, $5 is nothing). The macro comes as an Excel spreadsheet. Fire it up and enable macros.

 image

  • with the macro spreadsheet running, fire up the IB spreadsheet downloaded earlier. Go to View -> Macros (at least that's where they sit in my Office 2007) and run ConvertExcel2TXF.xls!Run

image

  • Here's where you have to tell the macro which fields are which - I think it's all pretty self-explanatory. Take a look at a sample from my report:

image

  • click Generate TXF File and import it into your tax software.

Well, that should do it. Tax time is arduous and stressful, hopefully you'll find this article helpful. Do you know a better way to import trades? Do you do it differently? Please share in the comments.

Today I was asked a question about defining custom extensions for vim syntax highlighting such that, for example, vim would know that example.lmx is actually of type xml and apply xml syntax highlighting to it. I know vim already automatically does it not just based on extension but by looking for certain strings inside the text, like

image

After digging around I found the solution. Add the following to ~/.vimrc (the vim configuration file):

1
2
3
syntax on
filetype on
au BufNewFile,BufRead *.lmx set filetype=xml

After applying it, my .lmx file is highlighted:

image

Same principle works, for instance, for mysql dumps that I have to do from time to time. If they don't have a .sql extension, you'll get something like:

image

After

1
2
3
syntax on
filetype on
au BufNewFile,BufRead *.dump set filetype=sql

everything is fine:

image

But why and how does it work, you ask?

:help au :au[tocmd] [group] {event} {pat} [nested] {cmd}
Add {cmd} to the list of commands that Vim will execute automatically on {event} for a file matching {pat}.
:help BufNewFile When starting to edit a file that doesn't exist.
:help BufRead When starting to edit a new buffer, after reading the file into the buffer.
:help filetype will actually tell this whole story in part B.

And that's how you do it, folks.