Category Archives: Meta

Andrew Luck Contest Winners

A couple of days ago, I asked what you would bid on Andrew Luck if he was the first player nominated in your ottoneu Fantasy Football auction draft. There were a bunch of great answers, but three answers stood out:

  1. Chike
    This is a pretty interesting breakdown of how teams may budget in ottoneu Fantasy Football, and even pops back with another great question. Maybe contest number two…
    http://about90feet.com/2015/08/10/ottoneu-fantasy-football-is-live-get-a-free-team/#comment-1973
  2. Tom O
    Part two of a two-part comment that lays out some good rationale for spending a lot on Luck
    http://about90feet.com/2015/08/10/ottoneu-fantasy-football-is-live-get-a-free-team/#comment-1961
  3. Chris Brown
    There’s always someone who rejects the entire premise of the question, but that doesn’t mean they are necessarily wrong. ottoneu games are all about value, and if it is impossible to extract value out of Andrew Luck, you should look elsewhere.
    http://about90feet.com/2015/08/10/ottoneu-fantasy-football-is-live-get-a-free-team/#comment-1968

Chike, Tom O, Chris Brown – email me at help at ottoneu dot com once you’ve paid for a team this season and I’ll make sure you get your money back. We’ll try this again next week, so check back for another chance at a free season of ottoneu Fantasy Football!

Weekly Summary: Improving Baseball

I read through all the comments in the post about the database and realized something important: some ottoneu Fantasy Baseball players seem to think Baseball is going to be negatively affected by Football. Nothing could be further from the truth. While ottoneu is a one-person (me!) company, there is currently enough time in the day to keep building and improving both Fantasy Football and Fantasy Baseball until there is enough revenue to justify growing the company. Now, onward to the Fantasy Baseball improvements!

First, the Trade Wizard now has a confirmation screen, so you can double-check your trade offer before it ends up in someone else’s hands. This much-requested feature should reduce the number of loan mistakes in your trade offers and allow for more complicated trade offers to be put together.

Second, the Live page was re-written to make it faster to see how other teams in your league are doing. It is still a little slow to initially load, and I’m continuing to make that page faster since I know the majority of you check it daily.

Third, the Roster Organizer was made accessible year-round, as some owners indicated that they’d like to use this planning tool even while the season is on-going.

Fourth, I rolled out some new information on player cards. Average salaries, projected positional eligibility, and ownership percentages are now available on player cards, so you can make smarter personnel decisions.

Finally, I’ve started work on a tool that will allow commissioners to retroactively change lineups. It is being built to directly address the kind of data loss that occurred last Friday. This tool will have a significant number of checks in place to prevent it from being used inappropriately. I’m hoping to roll it out to a few leagues towards the end of this season and it should be available to all baseball leagues this off-season.

On the Football side, more steps were taken to ensure that another database event never occurs. I now feel confident that the mistake I made Friday night cannot be replicated, and that if another database event occurs due to my error or any other reason that there are more fallbacks than were in place last week.

As always, find me on Slack, e-mail, or leave a comment here.

Database issue on 6/12-6/13

It’s a little after 1am ET on Saturday, June 13th, and I’m about to get ottoneu back up after messing up the database about 1.5 hours ago.

I’m working on getting ottoneu Fantasy Football ready for this fall, and in setting up some testing this evening I accidentally ran some operations meant for the football database on the baseball database. The end result is that all lineup changes made on Friday, June 12th have been irrecoverably lost.

I apologize, of course. It is unacceptable for a fantasy game to lose even a tiny bit of integrity in scoring.

The bright side, if you can call it that, is two-fold: 1) whoever you had in your lineup for Thursday will get stats on Friday, so teams will not get 0s across the board, and 2) this affects everyone equally.

Again, I apologize. I am working very hard on making ottoneu a world-class fantasy experience, and tonight was a slight misstep. I will do everything in my power to prevent mistakes like this from occurring in the future. As always, please reach out to me via email if you have any concerns or would like to have a longer conversation.

UPDATE: Just realized that if you started an auction on 6/12, it will probably need to be started again. Trades may also need to be re-accepted too – if this is causing a significant problem, please let me know. I’m hoping that because it was only one day, it shouldn’t have too great an impact.

UPDATE 2: I have made the following measures to prevent these events from occurring in the future: 1) database backups every other hour instead of once a day, 2) a change to how I connect to the ottoneu database

UPDATE 3: I’ve taken more steps to ensure this kind of mistake won’t happen again. I’m looking into building a tool that would allow commissioners to retroactively change lineups, though the jury is still out on if this is a good idea or a reasonable response to losing one day’s worth of lineup changes in 3+ seasons. Comments, Slack, and email remain the best ways to reach out!

Auction Drafts, ottoneu, and you

Tonight, two leagues had long delays with their auction drafts. I want to write about what happened, the full context around the circumstances, and how it will be fixed going forward. I think it is very important to be transparent about these issues to show how ottoneu is going to improve to address these concerns.

At 3:07pm ET, I received this tweet:

I am currently in Copenhagen, Denmark on vacation from my day job, and my data plan is wonky to say the least. I received tweets regarding this issue for the next hour:

I also received a number of emails during this time period.

I happened to see this last tweet when opening my Twitter client on my phone. Up to this point in the trip, I received push notifications upon new tweets, but this time I didn’t see anything until I happened to open my phone’s client. As soon as I saw these tweets, I rushed back to the apartment I am staying in and spent about 2 minutes debugging the issue and resolving it.

There are a number of questions about this scenario:

  1. Why was the issue not acknowledged earlier?
  2. How was it fixed so quickly when it was open for so long?
  3. Why are there so many issues with auction drafts on ottoneu?

I will address each of these issues in order. Of course, if you have other concerns, I’m more than happy to address them over email or in the comments.

1. Why was the issue not acknowledged earlier?

I am in Denmark right now, for my first vacation since July of last year. Unlike last July or the previous vacation in November 2012, my laptop was not with me the entire trip and I did not put someone else in charge of any issues in my absence. This is also my first trip during the peak ottoneu months, which are February and March, when all the auction drafts occur. Finally, while I expected Twitter push notifications to my phone, I did not receive any this evening.

Solution:

While ottoneu does not make very much money at all, what little I do make this year will go towards a small laptop that I can keep on my person throughout February and March. I will also be more conscientious of vacations during this time, and much closer to this or some computer during this time, until ottoneu makes enough money to warrant a second employee. There is no excuse for this not being addressed faster during such a sensitive time.

2. How was it fixed so quickly when it was open for so long?

Plenty of ottoneu issues are actually quite simple, and only come up when some code I hastily write is pushed into production. In this case, I did a big rewrite of the auction draft in the offseason to try and improve performance. Part of this was to introduce redis to the ottoneu technology stack. Redis comes highly recommended from the aforementioned day job, and I have some experience with it but I made a couple of fairly simple mistakes. These cropped up quickly when faced with production load, and I was able to sort them out and resolve them quickly.

Solution:

See the above – faster response time will almost always mean a faster resolution. A longer-term outlook has a better test environment and more robust testing, but honestly that is a luxury right now.

3. Why are there so many issues with auction drafts on ottoneu?

While no one has straight-up asked me this question, this is a question I ask myself often. There are basically two competing interests:

1) auctions are hard to schedule and when they are scheduled, everyone wants to run their auction.
2) auctions are computationally difficult to keep real-time, and they are also very sensitive to errors, so there should be 100% confidence in live auction drafts when they are run.

There are two solutions that I am capable of: the first is rewriting large portions of the auction draft code to use more redis and less database. Database bad, cache good. The second is to invest in more servers. I plan on doing the former extensively, as talking to a few colleagues indicates that this will increase capacity considerably. I’ve already done this a bit, and I hope to do this more.

I’ve already increased the number of auction drafts that can run at a single time by 50% over last year. I’m hoping to pop it up to a full 100% and then start exploring more server capacity. So this is a “stay-tuned”, but is also a catch-22, because like I said earlier, ottoneu really doesn’t make much money at all (it was a net-loss the last two years even without any full-time employees). So until ottoneu truly has enough users to afford more server capacity, more efficient code is the best way forward. Like I said, I will continue to work towards this end to make this a reality.

That is the full situation around the issue tonight and the overall auction draft issue. I’m back home in 2 days and will be vigilant on any draft issues through April, when capacity drops considerably and we return to the predictable, boring, wonderful grind of a new baseball season. I hope this has been helpful, and please let me know if you have any further questions or concerns.

Raising Money

Sorry about the recent lack of posts.  Things always get quiet towards the end of the year, and I have been traveling and coding and coding and traveling non-stop the last few weeks.  Hopefully Geoff and I will get things going again as baseball season nears.

A few days ago, my friend Zach and I had a discussion over email about raising funding for internet startups.  The conversation was spurred by this article from the Economist, discussing a possible pending tech bubble.  Zach argued that the bubble was clear to him when someone, somewhere decided that the reported $6 billion bid on Groupon by Google was not enough money and called the deal off.  My counter point or more accurately put continuation of the conversation is below, slightly edited.

[T]o me the ‘bubble’ aspect is that a lot of pointless things (as the economist points out) are getting funded.  Like, pointless things.  gimmicky neat tech demos are getting funded.  And to me that is the main point of irrationality.

[It] sounds like irrationality is closing in on two fronts though.  one on the “spray and pray” front where angels will fund idiotic ideas, and another on the high end where companies are being overvalued.  the former seems more pervasive, and the latter seems bubble-y.

Part of this has to do with comfort.  Stupid-to-less-than-stupid-to-reasonable-but-unproven ideas should all be bootstrapped.  Instead, we have these idiots who are so afraid of eating ramen that they spend all their time and effort on figuring out how to raise money instead of how to build a true business.  The raising money is the goal, because then you can make 80k a year doing your own stupid thing and it’s living the dream.

I interviewed with that Sunfire place again last night.  the woman I spoke with asked me if i wanted to raise money.  I said preferably no, but i could see reasons to.  And i said the only reason I would was if I was not at enough users to pay for itself but enough users that I saw a future in the business.   And she made a reality-based statement that depressed me – it’d be really hard to raise money if I don’t have the numbers I was hoping for – its easy if you get huge amounts of growth, of course.  But I was like – wait, if i have enough users, why would I ever raise money?

And part of that is the thing too.  If you don’t have ANY proof, you’re in a better spot than if you have numbers that aren’t stellar.  And in a way, that is the investor needing comfort too – either the comfort of the irrational kool-aid or the comfort of stellar numbers.  Less than awesome numbers on a launched product that might require (gasp) work was looked at by the woman I was talking to, accurately, as a liability.

So, this is why I don’t want to raise money.  mostly because investors are risk-averse assholes.  And also because I like ramen.

Despite being one of the risk-averse assholes I called out in that email, Zach liked the response, and the more I think about it, the more I like it as well.  I understand the need to raise money even if your startup proves itself spectacularly – growth can always use more capital, etc, etc.  But there is a lot of weirdness in the money-raising world, and until I find some people who see things a bit more in line with how I see things, I don’t see myself actively pursuing funding.

Leaping

Much like Geoff, I haven’t checked in over here in far too long.  The last time I posted, I mentioned that I had given notice at my previous job and was going full time on the project that most of you know about already.  So it seems like that is as good a place as any to start.

While Geoff is working on an extreme research project, I am working on almost the opposite: a new consumer-facing fantasy sports service, ottoneu.  In the vein of Yahoo! Fantasy Sports, ottoneu will provide fantasy games for users, but with an emphasis on niche users and in-depth, hardcore games.  Without getting in to the details (and blowing any fun surprises that might be coming down the line), I can safely say a few things.

  1. The fantasy baseball product I am working on is unique and fun
  2. Working for yourself is fun and stressful
  3. It is incredibly rewarding to spend 100% of the day working on something that you are not only interested and invested in, but you truly enjoy

So I have leapt.  I am now the Founder and CEO of ottoneu, Inc.  Soon, I will be bringing you better fantasy sports – richer, more interesting, more engaging, and much, much more fun.  My goal here is to, without ruining any good surprises, take you along on the ride to launch day.

Goals

I don’t have much left in me tonight, so not much thought involved in this one. Niv and I are heading to Phoenix in early November, and that’s obviously a big driving force to get some stuff done. In time for the trip, I would like to accomplish the following:

  1. Register the chosen domain name (this is really like step 0 and probably should have been done already)
  2. Have a website template up for what I want the site to look like, with probably one hitter and one pitcher as examples (so that I don’t have to worry too much yet about how to do all the back end stuff)
  3. Have a very good understanding of what I can do with the data
  4. Be reasonably close to having all of the necessary equations and statistics down

If I can accomplish all that in time I think it will be a pretty successful trip. No need to have a finished product, but I at least need to be 90% of the way there in my mind and have some sort of a product available to help explain everything.

Management concepts

This isn’t a fun week – in a contracts class from 8-4 every day and then it’s into the office for another few hours to do a ton of work that got thrown at me because the people who are really responsible for it don’t know how to work with huge data sets. So there won’t be as much baseball work to get done this week as I would want, but I still have to keep up the blog posts! And obviously sitting in a classroom for 8 hours will give my mind ample time to wander and contemplate some things for this project.

For instance, today I found myself thinking more about what a true talent level actually means – basically an extension of the second paragraph of this post. As I said there, players have many different talents and trying to collect all of that information in a single statistic is going to be problematic. In what proportions do you mix these different talents? You could just assume that all hitters face pitchers with totally average pitches that they throw at the same rate as the major league average and have handedness in line with the actual breakdown in MLB by innings pitched. But is that meaningful? A left handed hitter that struggles against lefties may face a ton of LOOGYs and therefore face a higher percentage of lefties than normal – but then again he might get lifted for a pinch hitter in that situation or sit more often with a lefty on the mound and therefore face fewer than normal.

Regardless, there is no doubt that I’d rather be thinking about this stuff than the lifestyle of a Federal contract. Which is pretty good motivation to keep thinking about it even further.

This time it counts

So we’ve brought back A90F (that’s what all the kids were calling it back in our July 2008 heyday) in order to document our experience trying to make it in the baseball world. There is a lot of interesting stuff going on, and it’s my goal to have some sort of a update every day. Regardless of how things turn out in the end, I’m very excited for this journey and hope to share the experience!