A Training Database, Available Now!

One more repost from my professional website, announcing the open-source database

The World of Data

In my yesterday’s post, I mentioned that there was not one, but two projects. The first project being the book, the second one is closely related to the first. 

When Boris Novikov and I started to work on the book, we realized that we need a training database. 

For years, we used examples from the real projects we worked on during different periods of our professional careers. It won’t work for a book: we needed a running example. However, when we started the search for public databases, we could not find any available with the size big enough to demonstrate optimization techniques. After spending some time on the search, we realized that we need to create our own. 

That took a while and materialized as a separate project. We really liked the result and thought that it would be a great contribution to the community. 

With this, please meet

View original post 180 more words

The Book Is Official!

I will write more on one of the subsequent days, but I really want to share my news, which one of my former co-workers called “the next most important news of the day after inauguration.”

Last week, our book became official, we are on Amazon, and we will be published at the end of April.

Here is it: Amazon.

I made an official announcement a today’s meetup of Chicago PostgreSQL User Group. Also, we officially announced the open source database postgres_air, which we developed to illustrate the concepts from the book. But it ended up to be more than that, and we decided to give it to the community as our contribution.

I am happy in all possible ways 🙂

Here is the recording, if somebody wants to hear a lot of me :). Tomorrow, there will be LinkedIn blog posts, and I will upload the video there as well, but not everybody follows me on LinkedIn 🙂

Session Recording – I Do Not Think I Will Ever Do It Again!

If I could only imagine that the preparation for my talk at the PostgresBuild conference would take almost two days, I would never submit my talk proposal! A fun fact is that I invested a lot of time to submit a proposal for my bitemporal short tutorial, which was such a success at October Chicago PUG, and it was my last-minute decision to add one more proposal – for the NORM talk.

Then, just this last-minute-not-so-much-thought proposal got accepted. Only after it was accepted, I learned that it has to be only 30 minutes, and only after that, I learned that should be recorded! 

Do not take me wrong; I understand the organizers. With the tight schedule as it is, nobody wants technical difficulties at the moment of presentation. But imagine what does it take to record a tutorial! 

I had to record screen videos for several slides; I had to adjust their timing several times to make sure the whole presentation fits in 30 minutes. Then I had to come up with the background because they had very specific requirements. It turned out that my Mac Air is not powerful enough to have a custom background for zoom., so I had to move to the work laptop. Then – black sweater and makeup.

During my first full recording, I when six minutes over. When I started to record one more time, ten minutes into the recording, I realized that Boris left one extra field in the picture. (I asked him to re-draw the picture we used for the NORM talk in Cyprus to go with my new training example. Previously, he already re-drawn it for the book, and then one extra field from the airlines example was left. Good thing I had to re-recode! If not these six minutes extra, I won’t re-record, and it will still have an error in the presentation! 

Then I started recording from the updated slide, and then six minutes before the presentation’s end, Boris’s phone rang – with a spam call! 

We spend another hour and a half figuring out how to combine several pieces on QuickTime – this app has its ways of thinking what’s right!

There is one visible gap in the final presentation, but I decided I can’t do it any longer! 

We Did It!

On Sunday, we finally submitted Chapter 5, and I feel so good about it, I can’t even describe it! In the past ten days, I was so focused on that chapter that I could hardly think about something else.
I mean, I did many other things; I saw two movies, and I was at the Art Institute, and I went to the shelter, and yes, I worked. You can say that I did a variety of things, but to be honest, I felt guilty doing “anything else.”

I could not understand why this chapter takes so much time and effort until Saturday when I looked at the page count and realized that this chapter was almost as long as the previous four! No wonder!
I felt better right away :).

I have to admit that I didn’t challenge our delivery schedule because we do not have that much wiggling room until the end of the year anyway. I thought that a day here and a day there does not make a difference. And I hardly looked at the estimated chapters sizes.

The most time-consuming part was that I had to rework all of the examples, and several times through this process, I would find problems with our generated data. Then, I had to stop building examples and ask Boris to generate new data, and then I had to reload several tables and start over. And Anna had to do all her edits after we are done, and we were not done until the last moment. I am so thankful to Boris and Anna for their heroic efforts in the past several days!

We did it! And we did it well!

And we have eleven more chapters to go :).

A Follow-up To The “Critical Race Theory” Post

About three weeks ago, I wrote a blog post about racially skewed Google search results and received some thoughtful comments. Since then, I have tried to write a more detailed post in response to these comments and never did. Here is it, finally.

Why Google search results might be different: Google search is a VERY_VERY_VERY complex thing, and I am sure I do not know even half of the factors contributing to the results. Yes, it depends on geography, but not just a country or state. It depends on zip code, which defines the socioeconomic majority, on the computer, operating system and browser, on emails you recently received, on web sites you visited, on recent searches from your computer and your zip code, on what news sites you visit, what Kindle books you read and what audiobooks you listen.

And yes, mostly it depends on who pays :). 

All of the above explains what we mean when we say that searches should be properly tested. When we run tests on the application code, we have some test cases, and we know how to tell whether the code works correctly. How we can test whether a search works correctly? It works correctly if we receive expected results. But what results are expected? Should we expect to find pictures of white families on exotic beaches when the search is initiated in my zip code? Or should we expect to receive diverse results? More importantly, which search results a local five-grader should expect? 

My Canadian follower results were most likely different from mine because Canada is more progressive than the US. On the other hand, the fact that she received very few results with all-black families might mean that there are not that many homogeneous black communities in Canada compared to the US. To summarize, the search results reflect at least in part what’s going on in people’s minds—both in the minds of those who use the search engines and those who make them work. 

Every Evening…

The only thing I can write today is, “I have no time to write anything, except for what’s related to the book.” I was expecting things to be like this, but it is still quite an uncomfortable feeling of “all the time I have should be spent on writing.” The first two chapters are especially hard because there is almost no code, just words. Also, it took us a ginormous time to build the test data, and we are not done. In the past two days, I’ve changed my mind about how the tables should look at least six times. And each time it means changing the DDL, recreating the schema on m local, regenerating the ERD in Navicat, exporting to PNG, and re-inserting the picture. Only to realize that I forgot to change one more thing :).

Yes, I wanted it, 🙂 But I can’t imagine it will be like that for five more months! I hope I will have some life!

Guess What…

You would expect me to write that post in my professional blog. I didn’t want to do this, because I am at the very beginning of that new journey, and it is not even officially started yet. And what if I fail?!
But here, I am going to share with a small group of friends.

Last week, I signed a contract for a book, and it does not feel real. When somebody approached me and asked whether I thought about writing a book about Postgres performance, I felt that this might be a scam. You know, how they would tell you: pay us 10,000 dollars, and then…

So I was not even sure whether it is real and asked to reach out in April (the conversation happened in February). But it ended up being very real! I asked Boris whether he wants to collaborate because our work on performance is inseparable. He asked whether Anna would join us so that our work would sound more English than otherwise. To my surprise, she agreed.

Then, there was a lot of backs and forths; we worked on the proposal and the tentative book outline and schedule, and then, all of a sudden, everything started to look good, and we received the final proposal text, and everybody signed it, and … now we have to write that book!

I am excited and scared, and I won’t be talking about that until we make some progress, but I am going to be very busy in the next seven months!

A Moment of Real Happiness

Tonight, I presented my NORM talk at a PG Conf webinar. That was the second time I gave it after the SOFSEM conference in January. Two weeks ago, I used it to reopen Chicago PUG online, and I felt that the presentation went horrible. Other people were saying I did great, but I didn’t feel that way. It was challenging to present without hearing and seeing the immediate reaction of the audience. Besides, I faced some technical difficulties.

That time, I practiced in zoom the day before to make sure I almost know it by heart, including all the jokes, and it went really well. Even though I haven’t heard the audience, I could feel that people are engaged. The questions in the zoom chat started to appear while I was talking, and there were lots of them!

Also, I am so glad I put together a GitHub repo with a working example! I hope that this will open a new chapter in the life of the NORM framework.

I felt great after my presentation was over. It was probably as close to the atmosphere of the real conference as it could get:)

Taking Time off Work to do Work

Boris and I are trying to do several research projects together, and doing this is the best thing to preserve our togetherness when we are physically apart for an extended time. As much as I wanted to do all these things (one was his idea, and two others are mine), I was finding it challenging to squizz this extra work in. I do not know who is bored during quarantine, or who does not know what to do with their time, but it’s not me :). Each weekend I was thinking – I need an extra day! And then I thought – but I have some! Indeed, I checked my PTO balance and found that I have more than five weeks off this year. Yes, I hope to be able to use them to help Anna later in the year, but for the time being, traveling is not an option anyway.

I took Friday off to do some of that work. Granted, there was also some “waste of time” built-in, but I also did substantial writing, and we spent about two hours discussing one of these projects on FaceTime.

I do not know why I didn’t think about taking time off before, but I am glad I did :). Most likely, I will do it again in a week, I feel like it’s a great way to stay sane. Or, and I did turn my slack and work email off for that day!