Nav: (Display/Hide) - Home - About the Author / this page

Current Projects: Americana Engine (Game Engine Development)

Thursday, November 10, 2016

Return to Twitter

So I can see all my five year old posts at a glance.

As I begin to transition up to the smartphone era, I may be getting back to Twitter. Now that I'm back to a fulltime job, my smartphone will probably get significantly more usage time than before, and I'll need to find new ways to be informed about current events as I can't use RSS feeds here (I've used this since 2009 to keep me up to date, and I have no fewer than 70 on my main computer).

I have had worse experiences there when I was active five years ago with more spam accounts following my twitter than there were actual ones; however, there's probably a better chance of people noticing content there (with mentions / tags / media) than on this blog, which actually takes me longer to write these posts than the total time people spent reading them, so it's probably worth another go.

Unlike the past, twitter posts will now focus more towards what (and who) I care about as well as topics that interest me the most.

My next goal is to figure out what to start posting on a regular basis; most likely it will contain content I would normally post here (but are too short to be considered a post), any art posts, as well as commentary on other posts.


  • Wipe old posts that were more intended to be towards closer hs-era friends
  • Unfollow inactive, empty, or spammy compromised accounts (may be archived to list if I need to refer back to it later)
  • Like any posts that interests me, based on my following list (or accounts I have viewed) - this is approximate due to searching for various keywords for each person I was following, and I might miss posts that I might otherwise like. I won't hesitate to like posts retroactively (up to a max of two years). No retweets will be done during this time.
  • Create private lists, add people to list, and unprotect the list (accounts are not notified they were added during this phase)
  • Unprotect Twitter (most follower requests will be accepted). I may or may not have recent posts up for a short period of time after this happens.
  • Follow a lot more people. My twitter suggestions list is bad enough that I wouldn't follow a single one there, so I'll figure out who to follow manually - this might take some time. Most sites and people whose posts I'm currently reading on a regular basis (via RSS) are also followed if possible. They might be added to a side list instead (that I check regularly) if they don't fit who people expect me to follow, or they consistently occupy too much or too little of my main timeline.
  • Will start retweeting at 50 followers.

Friday, September 2, 2016

Americana Dawn: (Old) Official Soundtrack

The old Americana Dawn soundtrack used in the RPGMaker/C++ engine era has now been recently released on Soundcloud, with commentary and the cover art for each of the songs from screenshots spanning between the two eras (including songs that didn't make it between the transition). However, what's more interesting is the backstory regarding the release of these tracks.

The soundtrack descriptions might reveal spoilers and important plot points about the game, though it may not be relevant anymore considering the fact that AD may be headed into a new direction. Notably, this includes Cadence; despite her appearing in various pieces of concept art in 2013, her character bio included in the soundtrack was never publicly released.

It is worth noting that as the result of this music no longer being used in the game, none of the original assets as seen in the original (2012) Kickstarter trailer will be part of the final product.

None of the official game pages have made mention of this album release.

Friday, August 12, 2016

Robinhood CLI

Five seconds to a buy order

Links: Download (build Aug 25, 2016) - Source Code

Robinhood CLI (rh-cli) - a simple (unofficial) Windows command line client for Robinhood that no one asked for.

Despite being command line, it's more focused on usability than automated trading, and attempts to reduce the time to place a trade to that of other trading platforms, helping to avoid possible price fluctuations in between.

I mainly use this project as a means to get myself into C# programming (making something that works and is something people will use irl) and to learn the more advanced aspects of that language (such as asynchronous programming and parsing json files), but it might be useful to a number of people.

I intend to add features to this program for at least several more months while I'm still looking around for a full-time software development job; feel free to point out any changes made in the backend that prevents this program from working, or any corner cases that I didn't check (such as whether rh positions with > 150 stocks owned will fail to load (either partially or at all), because URI length > 8k ).


This program adds a number of things not seen (afaik) in any other unofficial RH implementation. This list will be added to as time goes on.

  • Increased Realtime Quote Speed - Increased the update time to once per second (this is slightly faster than the update speed on Google Finance), particularly since battery drain is not a real issue on a PC. This is around 5x the speed which Robinhood updates. There might be rate limits, but so far I haven't hit any of them. (If you have a lot of stocks up at one time then updates are slower)
  • Margin Buying Power - Displays how much actual buying power you have in your account in an Instant account. In Robinhood Gold accounts, this also factors in extra buying power based on the tier you have subscribed to, although you will be informed if you cannot use all of it when buying that stock. (A number of assumptions were made on how margin is implemented, so this value may be inaccurate)
  • Maintenance Margin / Initial Margin - Gives you information on how big of a position you can open when extra buying power from RH Gold is considered. (We assume that "extra buying power" represents additional funds handed to you by RH, and are subject to margin requirements). If either of these percents are above 50%, you might not be able to utilize all of your extra buying power on that stock. The official app will adjust your buying power accordingly but will not give you exact margin requirements.
  • Intraday Buying Power (Day Trading Buying Power) - Determines how much you can trade during the day. It's based off of 4x excess margin, so accounts comprised of blue-chip stocks (example) will have substantially higher buying power than those who are mainly holding low-priced and/or volatile stocks (example). On non-PDT accounts, you may start getting High Volatility warnings once you go negative; you will receive a Day Trading Margin Call if you are flagged as a PDT. Buying leveraged ETFs will reduce this faster, so your intraday buying power will be adjusted accordingly. (The app will limit your buying power to prevent this, and does not make any mention of DTBP at all, except in Disclosures.)
  • Max Buy/Sell: Tells you how much of that stock you can buy right now given your buying power, as well as how many shares you have currently and in open orders. (If the price does move past 5% between when you entered the command market orders may not fill). Currently this does not factor the max amount when you place a limit buy order, so be warned if you are planning to spend to the last penny.
  • Stock Split Indicator - If your shares vanished (or were adjusted) because of a reverse stock split, didn't see a notification regarding this (or never got them), and it happened within the last two weeks or so, you will know now. (If you don't have enough shares to meet the reverse split ratio, they are usually converted to cash.) You will also be informed if the opposite holds true.
  • Fees Paid if Applicable - If you are charged a fee when the order is filled, it will inform you. The commission might be zero but the regulatory fees aren't. This fee is more noticeable when selling tens of thousands of dollars worth of shares at once. (FYI: For options, the cost from options regulatory fees alone bumps the total fee to 4 cents a contract, whether you are buying or selling, so make note of that when they support options trading.)
  • Account / Portfolio View - You can display either basic account info and/or a list of all your stocks in your portfolio (including quantity held, equity, cost basis, current price, and profit/loss so far) If your portfolio consists of a lot of stocks it may take a while to load.
  • Extended Hours Trading - Allows you to choose whether your orders will be active during normal market hours or extended hours as well. RH Gold has no setting to toggle this off, so this might be useful in some cases.
  • Additional Warning Messages - Because you are using an unofficial app you may be able to get by some of the restrictions that the official RH app has set in place should those orders fill, so it is my responsibility to cover these scenarios. There is one additional warning if the limit price you are entering is substantially lower than the current price.

    Also, market sell orders executed on this program will not execute if the price would be below 75% of current price (most likely due to significant slippage), at which point you should do a limit sell instead.

Monday, August 1, 2016

Project: Unofficial Robinhood (Web) App Development

When I need more info and a substantial decrease in latency when making trades.*

The lack of non-mobile trading options on Robinhood has led to a large amount of unofficial implementations (most on Github) that allow you to trade while away from a smartphone (other than using an emulator), however a majority of them cover only basic functions to do trading (such as buy/sell stock, get quote information). Seeing an opportunity to enter into the field of web application development, I decide to join in as well, believing I can bring something new to the table.

My first open-source (and real C#) project starting my Github programming portfolio involves use of the console to assist with active trading utilizing the RH API. You still have to manually enter your orders, but it's able to enter positions faster (mainly by skipping the Trade Preview step).

This program was based on other open-sourced apps that used the API; I don't know why most of these implementations have been largely abandoned in recent times, but I guess I'm about to find out.

Github source for the above available here.

Please note: This project exists mostly as a coding portfolio piece; I only have part-time working experience but completing this might get me much closer to getting my foot into the door somewhere.


This project is divided into four segments:

  • Robinhood API docs: A forked version of an existing RH API documentation with more endpoints filled out and more focused on consistency.
  • RobinhoodNET: A C# .NET API that allows easy access for most parts of the RH API.
  • rh-cli: command line interface to get various quote information, buy/sell stocks, and a few other things. Stock quotes are updated once per second while placing an order.
  • rh-alt: Alternate* Web Client interface (might be coded with a combination of Angular.JS, Javascript, HTML5 canvas, d3.js, and more)

Saturday, May 14, 2016

Joann Fabrics Closing Sale

While in the area, I noticed a sign that Joann Fabrics was closing and that all of its items were on sale. Normally I would have at least a paragraph or two about how I went there in order to get a few supplies years ago (typically perler beads for several projects) and how they had weekly 40% off an item coupons. However... they are just relocating.

I did go in and half its shelves were empty. There's a sign at the front saying that the sale will end at the end of June, when they finish opening up the new store. They specified an address where they were moving to, which I could just simply look up.

I didn't have to. It's much closer - as in next door.

I still don't know why a sell-off is needed for moving into an adjacent building, but I'm guessing it's due to both a renovation and moving into a space half the size of the original building. (On a similar note the Wal-Mart in Lodi moves next block in July, but its new location stands to be one of the largest in the US.)

Wednesday, April 13, 2016

Marie Callender's - Stockton

This will be the last time I see the Marie Callender's building in Stockton (or at least what's left of it anyways) after it closed down last January.

It apparently will be replaced with Chick-fil-A over here; I have previously heard about it but never gone over there, so it might be something new to try when they open.

Thursday, April 7, 2016

Krispy Kreme Superhero Day

On April 28th, Krispy Kreme has a Superhero Day promotion where you get a dozen glazed doughnuts for free if you buy a dozen on April 28th. There's a doughnut box to match, with the appearance of a comic book.

This is the first time I've actually heard about it, and there's nothing on the official website about this year's event at the time of writing, but it can be assumed to be valid since they ran this in previous years.

Saturday, February 20, 2016

Red Robin Black and Bleu Burger

A true knife-and-fork burger... once you ask for them.

The Black and Bleu burger at Red Robin sounded like a good idea at the time when it came to finding something new to eat, as I've almost always gotten burgers with swiss and portabello mushrooms at restaurants and never had blue cheese on a burger before.

It's not as salty as other burgers I've been normally eating at fast food restaurants, it's much worse.

At 4,496 mg worth of sodium as is, this beats the Saltiest Burger in 2015, as well as being way more sodium that I'm willing to handle in one day, let alone one meal. I had to split the sandwich into two parts as a result. Note that the sodium count does not include those from the endless fries.

Remind me to order this burger without the sea salt and pepper, as it effectively cuts the sodium down by more than half, and there's a supply of that on the table to season it to taste.

Wednesday, February 3, 2016

Inverse Crude Oil

Falling too fast.*

It seems like investing in inverse crude is always a bad time; it keeps going up, and a day after buying, it drops sharply. I might have enough to put in a few more shares at this point but no more.

My stance on crude oil going down to sub-26 still stands (at least for the next few months), particularly because of increased efficiency of getting that oil, and that no one, especially smaller companies, can keep that much crude oil forever due to storage costs (the price has even gone negative in some cases).

Then there's the possibility that even if all countries agree to reduce oil production, someone might break it to gain increased market share...

Unlike the above screenshot, I was unable to buy DWTI for whatever reason so I went for SCO (which instead has a -17% drop in this case). This is probably better since it drops less overall during a period of high volatility and they are cheaper allowing me to average down for less. I don't have the ability nor the funds to buy commodity futures / options contracts yet but I would use them if I could.

I've seen this volatility before when I had money in bitcoin a year ago so I'm used to it; unlike the former this is an ETF so I can't margin call on this one. The best bet would to be buying shares when the RSI for crude oil futures is high... and hodl.

UPDATE: On Feb 9th, crude price oil went down very quickly below 28, and I have since sold those shares for a profit noting a possible rebound.

Thursday, January 21, 2016

Robinhood Stock Trading

Still waiting, but no longer.

After hearing about Robinhood on a Reddit post in /r/investing back in December that allows you to trade stocks without commissions, I decide to sign up for it at the start of the year in order to get into more diversified stock trading without having to pay a lot from commissions.

What appears to be an easy entrance instead may turn out to be a high barrier to entry. Despite the official FAQ stating approval can take up to five business days, it was at least two weeks after signing up and stuck with an 'account pending' (with the buy button on stocks visible but disabled) before allowing me to proceed. It doesn't appear to be limited to myself, though, as a post shows.

I was eventually approved and was able to start trading at the beginning of February. Initially, trading was an issue as my tablet died and I didn't have a smartphone* available to get on; however I was later able to do so via an Android emulator (such as Bluestacks).

I obtained API access later that year and built my own program to execute trades when away from a mobile device and to focus on implementing the things I wanted to see. As of August 2016 over half of my trades are done off-app.

I opened an account on another brokerage generally as a backup, which got approved quickly, so I'll keep that one mainly for some other trades (such as leaps and options) and for other things RH does not yet support.

Would like to see:

  • Updates the GUI based on actual current time, not the time on the Android device
  • Show max shares to buy on order window instead of tap
  • Buy up to X stocks over a period of time during the day below a set price
  • Tap / confirm = quick market order (in the official app to a certain extent)
  • Toggle line indicators on placed orders and/or breakeven points
  • Notify at certain price (other than +/- 10%)
  • Quick Stock Lists (useful if watching a lot of stocks)
  • Trailing stops
  • IOC, FOK, or pegged orders


  • The time between stock price updates is 5 seconds (and 15 during the order entry window). It takes at least 10 to buy or sell shares.
  • Place any market orders made off trading hours as day orders so you don't get unexpected trades; market orders have a 5% collar and they're not 'immediate or cancel' (at least at the time of writing) so they won't trigger if the stock difference between closing and next day's opening is too high (ex. NUGT Feb 11, 2016, +20.7% increase from previous close), but they aren't cancelled either, so the queued order might trigger unexpectedly at some point in the future if the stock slumps. You also cannot tell what price the market order was made at (nor does the email) should it still remain active so you'll need to write it down somewhere.
  • It seems like Twitter mentions to @AskRobinhood or through other social media channels are more likely to go through than standard emails if there is no reply from the latter.
  • After account approval, it is strongly recommended you delete all messages related to any information you attached and sent to them via email, particularly since they now exist as web links and not attachments.
  • You are more likely to get High Volatility Protection warnings when you start a day with a low amount of cash and your portfolio mainly consists of high volatility and/or penny stocks.

Saturday, January 9, 2016

Americana Engine - Into 2016

"Glad to see it's still alive and kicking."

For months I have considered on exiting the game development market; I have previously made future plans on the basis that after my departure from AD, the game was well on its way with a new Kickstarter and a beta out at the end of 2015, with my efforts gone uncredited and my game engine completely unnoticed since its switch over to Unity.

It appears this was not the case, however, and I have chosen to resume production after looking through this month's statistics.

My career as a software developer may very well depend on completion of the game engine (as well as an optional game) and released for others to see; as many companies take working projects into their hiring considerations, I have determined that it is my responsibility to bring usable quality updates on a timely basis if I want even a remote chance at getting hired.

Upcoming in 2016: (not a complete list)

  • Porting to HTML5 - to make it more accessible to web and mobile devices, and also to serve as a means for others to present small demos without requiring the base game.
  • Possible open-source release on GitHub
  • Customizable GUI (what kind of information you can get, however, will be limited)
  • Project Website adjustments

Tuesday, January 5, 2016

Superhuman, Chess Pieces, and Binary Code

The first performance of the Jan 4 premiere of Superhuman has Zoe Wheeler reciting from memory the sequence of 60 chess pieces (30 white, 30 black). Only there are two types of pieces to memorize: a King (White) and Queen (Black). A 0 or a 1. Binary Code.

Although there are over 1 trillion combinations (more like 118 quadrillion) that figure need not apply here.

Memorizing 60 1's and 0's might be a difficult task, but there are ways to cut down on the memorization significantly.

There are various methods of memorizing groups of binary code, including hexadecimal (grouping four 1/0s together to get 0-9, a-f), and base64 (grouping six 1/0s together to produce a letter or a number). I use the latter since I can memorize a string of 10 letters/numbers easier than other options.

Base 64 Summary:

A set of six 0 and 1's (64 possible combinations) are grouped together to form a single letter or number (A-Z, a-z, 0-9). Two more characters are used for the binary values of 63 and 64 since the total number of letters and numbers = 26+26+10 = 62. There aren't a string of seven black/white pieces in a row, so they can be skipped for the purposes of memorizing this.


The order the pieces are laid out are as follows (Treating a white piece as a 1, with the piece closest to her as the first):

100101 001001 010010 001001 010100 111010 110110 001010 111001 101101

This can be encoded to base 64 as follows:

37 9 18 9 24 58 54 10 57 45
kIRIT 51J4s

Now it's a matter of memorizing this string, converting it back to binary, and reciting it... in front of a live audience.