The Great Crash of 2011

Firstly, welcome back to BlogShares! It has been a while.

tl;dr Version (for those who hate reading long blog posts)

  • The game is back up
  • We recovered all the data
  • We think we fixed all the server move-related bugs
  • A new game (‘BS3′) is coming
  • 4 months free Premium for anyone who was premium when we crashed
  • Please report any bugs/problems in The Forums
For the in-depth crash analysis, please Read More.

Corporate Cash Investments

Today we’re launching new functionality to the Corporation code. Corps can now accept cash for two different purposes. The first is a straight-forward cash donation which the Corp founder or admin can use as they see fit. The second is the ability of a Corporation’s members to invest cash in the Corp. The way this works is a bit complex, so let me explain it in detail.
Corporations are now transitioning to a sort of virtual mutual fund collective. Members invest cash in the Corp and, once daily, interest is calculated based on a couple of factors. The first factor is whether a member has selected the Corporation as her/his Primary Corporation. Selection can be made on your User -> Preferences page (the same place you can change your user name, email, password, etc). A player can receive interest from a Corporation ONLY if that Corp is selected as her/his primary. Investments in other Corps will not receive interest. This is done to prevent a serious exploitable situation.
Second, the share holdings (in cash value) are summed up for all members of the Corp who have selected that Corp as Primary (and only those members). Share value is simply shares x price for each blog held by the qualifying members at the time the script is run. This total share value determines the interest rate that will be used to figure member investments in each Corp. This value varies wildly from Corp to Corp, as does the applied interest rate.
Premium Members receive three times the interest rate of non-premium members. The minimum daily interest applied is 0.01%, with a maximum of 0.5%. Each B$10,000,000,000 in share value held by members is 0.1% of interest paid daily (for premium members). This may sound like very little, but compounded over time, it can be a nice return on cash that would have otherwise just sat inactive in your player account. The interest cash amount is figured by taking each member’s invested balance and multiplying it by the interest rate for that Corp.
Players have two options for how interest payments are handled: Reinvestment, or direct payout. Reinvestment adds the interest to the invested balance, allowing the amount to be compounded (meaning that the interest payment adds to the principal and starts earning interest itself immediately). Corporately held cash also benefits in the same way, with interest payments being reinvested automatically. Direct payout will deposit each day’s interest payments in your player cash balance. Players can withdraw any or all invested balance from the corps.php page on their row in the member’s table.
Now, to prevent a group of players snagging all the big blogs just before the interest script runs, a random factor has been thrown in. The script will run once and only once every day. But, the exact time is unknown, and could take place at any time of day. It might run at 11pm one night and then run again at 12am an hour later on the next day. This keeps players on their toes and (hopefully) encourages some team play to hold high value blogs over longer periods.
Data presented on corps.php pages and on corpmain will (unfortunately) be cached data from the last time the script ran. The summation of share values is quite a long-running part of the script, so trying to present that data live would kill the page loads. Instead, the data is stored and recalled only as one query to the db on page load. Any changes since the script last ran will not be reflected in cash balances or corporate assets. However, member investments are displayed live on corps.php pages (this adds nothing to page load).
I’m planning out a very light blog share search to help players find blogs out of the top 100 with good price / PE combos. I’m still working on finding the right queries to keep this very light on the db, but hopefully, I can get this together soon.
Also, a small addition will be made to blogs.php pages. A row in the main data table for the blog will show the Corporation flags of the top share holders in the blog (as determined by the share holders’ selections for primary Corp). You can see an example here. I’d encourage any Corps without a flag to add one. This change may take place at any time, so look for the new row on blogs.php pages.
Finally, no, this is not the final change that will be made to Corporations. I expect over time they will gain tremendous and powerful functionality, but what that might look like, no one yet knows. I’m hoping this is just one step toward improving Corporations, team play, and to a small extent, share play. More will certainly come. If you are not already a member, consider joining Task Force Corps to get B$ msg updates when I’m working on Corp code. TFC members have known about this new investment functionality for several weeks now, and a few have helped Beta test it. Suggestions are always welcome. Please let me know ASAP of any bugs or issues.

So Many Updates

We’ve been very busy behind the scenes today trying to optimize page loads and fix broken things on the site. A quick rundown follows:

  • Blog Alert Messages: If more than one player was watching a blog, a list of other players’ cancel Alerts links would be included in messages. This has been fixed.
  • Leaders: This page has been significantly cleaned up. It went from load times of 8-12 seconds down to consistently under 1 second. Huge improvement for the db.
  • Artefact Result Pages: You now get a P/E on the result page of Hypes and PRDs to give you some extra info on the price movement.
  • Unknown Blog on Artefact Use: If a blog had no title, an Artefact could not be used on it. This has been fixed.
  • Press Releases: There has long been an issue with blog owners trying to issue a PR on their own blog whenever someone has performed an Artefact action in the last day. Now, owners can post a PR on the blog even if Artefact functions have also posted automatic PRs. Also, the entire PR system was upgraded to really solely on BSIDs rather than the much slower-in-the-db URLs. This shaved 1-2 seconds of blogs.php load times.
  • Bonds A bug with failure messages when trying to bond out at the new 10,000,000 Ideas level was fixed. Also, the sort by time bug which caused it to sort by hour of the day rather than by date has also been fixed.

Mystery Solved: Silent Drops

Thanks to some keen insights from a clever veteran player and some detective code work, we have finally solved the mystery of ‘Silent Drops’. First lemme explain what this is for those who don’t know:
Silent Drops occur when a player reindexes a blog, expecting a rare industry listed in the top 5 industries of the blog’s page to have Ideas produced, but finds that no rare Ideas are produced. Even when the rare is listed as the top industry, it still does not get produced. In fact, once the blog is voted into 5 or more /other/ industries, the rare will never produce on that blog again.
Ever.
This has been both a frustration for some and a nifty bit of knowledge for some keen strategy by a select few. It’s not a bug in a traditional sense in that the code did exactly as it was expected to.
However, this effect was never the intended result, and as such, a change is being made immediately. The problem centered around the query used to select which industries to produce ideas during the drop. It did not consider total votes. So, for example, if Gaelic Football had +12 votes, and English, USA, Male, Sports, and Life all had +6, Gaelic Football would /never/ be produced because the query only looked for the first 5 Industries meeting requirements for production. That order was decided solely by industry id #, so older (and almost always /not/ rare) industries produced every time on that blog. Gaelic Football would never again have a chance to produce.
So, the change being made is to add an ORDER BY which considers vote total in order to select the 5 industries for production.
Be Forewarned This may well be a major change in Idea play. It means rare industries have significantly /underproduced/ over the past couple of years. We could see significant drops of previously rare or dead industries, we may see cash crunches hit the market, and many former great investments may slump as a result. All in all, this change /should/ be a very good thing for the economy since it will force the investment decision making to be proactive rather than inactive as it is now. As cash is consumed, purchase decisions will become more complicated.
This change will be made immediately, but you will only gradually begin to ‘feel’ the effects as blogs which haven’t produced rares in a long time are being reindexed. The effects will become significant over time, and the medium to long term market is not easily predictable.
Good luck!

Bond Upgrades

You can now filter the bonds market on the player who issued bonds, so you no longer have to hunt and peck to find her/him. Also, added new amounts which you can select for Idea amounts in your bonds, now up to 10,000,000 Ideas (!!!). Other new amounts offer middle ground between previous amounts, so if you would have issued 5 bonds of 100,000 ideas, you can now do one bond of 500,000 if you so choose.
Players have request bonds be offered in quantities of 1 Idea. Would love to do this, but the net effect on the bonds table, and more importantly, page load for the bonds market would make this absolutely untenable. We’re still working on either revamping the Players Market (not in the near future) or creating a way to gift or sell 1 idea at a time.

So…. Chances…

Yeah, this was kinda out of the blue. Jay and I had talked about having a slot machine/scratch ticket type game for some time, and many players have suggested it over the years, but it was really nothing more than a ‘want’ for the future. Well, Sunday i just ‘knew’ how to build it, and by Monday night it was mostly done. #blogshares IRC regulars helped us work out a few bugs Tuesday.
You can win shares in blogs (almost always old and dead, so like suggested elsewhere, check them and report them for sigma and more chips!), chips, B$cash, ideas in any industry that has already produced (even if there are no blogs. Matt Williams hit a great jackpot of Biathlon ideas earlier today), artefacts (only ones that you need), Pixel blocks, Raffle Tickets in a current raffle if available, and 1 day, 7 days, 1 month, or 1 year of Premium Membership (off-it snagged a year earlier today).
Chances has been written carefully to be extremely light on the db, with PHP handling most of the math behind it. Now, I can’t guarantee that there won’t be load issues at some point on this, so BE FOREWARNED that we will take it off line if necessary to keep the rest of the site from lagging.
The only folks who know the exact odds of things are the Admin, GIC, and the BoD. Even so, knowing the odds doesn’t really help you much since every prize/failure is a random event from a freshly seeded mt_rand() function (just generates a random number to be used later on in the calculations).
We’ve also got a way to work in some unique random prizes, which will be coded in soon.
We’re also keeping a close eye on the economic effects on the game due to Chances. Hopefully, this will help improve the overall health of things by finally having something to create friction, which should drive demand for chips and cash especially. However, if we find that Chances is destroying the economy in a non-recoverable way, we will take it offline.
So bottom line is, please enjoy it while it is available. We do not plan to take it down, but should events cause its necessity, it will be done. Please feel free to offer your feedback here, let us know what you think of it, how it may affect things, and as always, if you find a bug, please PM me immediately. Cheers, and good luck on Chances!

Moderation Updates

We’ve added Industry descriptions for each vote so that moderators can quickly understand what the Industry should contain. Descriptions are trimmed to the first 260 characters, which should give you the gist of it. The layout is the same as before, but it may take a bit of getting used to if you mod a lot. Hopefully this helps everyone out. Also, any blog titles on the mod page of more than 30 characters will be trimmed so the page doesn’t display like crap.
Also, as most of you know by now, moderation rewards increased significantly a few days ago. As a result, we’ve seent the pending vote queue go from around 20,000 to about 9500 this evening. Outstanding work, moderators.

Indices is now Links

You may have already seen the Quick News link or noticed the change on the top navigation bar. I consolidated the working links on index.php (front page), the Toolbox, and the previous version of major.php (Indices). There were some bad links that were not ported over, but will be added if/when they are functional again. If anyone knows of a missing link (other than the Wackos), or notices a bad one, please let me know.

Delist Protection

I added code today to check for a delistable status code before actually performing a delist. Currently, IMs and Admin can set or unset the protection status. We may open this ability up to other groups in the near future as well. All claimed blogs were set to ‘Protected’ just a bit ago, so they shouldn’t get caught accidently in spam sweeps or a ‘revenge’ error report. MrPilot set the current Top100 blogs to protected, and IMs have been encouraged to protect blogs that they come across that are active.

Crash and Recovery

I’m sure you’ve all grown quite frustrated these past couple of weeks with the frequent site outages. From everyone on this side of the issue, our most sincere apologies to all of you. We’ve been just as frustrated trying to diagnose the issue.
We upgraded our MySQL database a couple of weeks ago, and ever since, we’ve experienced multiple database crashes. Each time, it had to be restarted, tables repaired, and the site brought back up. SubWolf spent numerous hours running repairs and attempting to diagnose the problem. Unfortunately, we could not find a way to make the newer MySQL software work with the spiders and server, so earlier today, SubWolf downgraded back to the last known stable version (for our site).
Rest assured, we do everything possible to keep this site up 24/7/365, but with so many complicated code sets, outdated original site code, and the frequent software upgrades that must be tried live in order to test effectively, there are going to be times when the database will crash, and a recover, repair, and debug cycle must begin. We at BlogShares will continue to do everything we can to maintain this site, and we hope that today’s downgrade will effectively fix the frequent crashes of the past two weeks.
Once again, we apologize for these frustrating times. Your patience and kind encouragement has been very much appreciated during this. Cheers to you all.