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

Current Projects: Americana Engine (Game Engine Development)

Monday, February 25, 2013

End of CKI Days


The new E-Board for UOP CKI, Lawrence Tran not shown.

Like all of my other friends who were in my graduating class, retirement from college and CKI is inevitable. I believed I have reached that point, given that a large volume of projects is headed my way in my classes, which are the only things left towards that master's degree. Although I was supposed to be done last year, people wanted me back so I continued on for another semester, but knowing I couldn't make new lasting friendships at the rate I did a year or two ago, I decided to stop here.

So this is where the story ends. (Cue up When Can I See You Again?)

Sometimes I wonder if some of the people who I have thanked in the past, had concern over, or even like, have ever seen me in the same way, or even seen my posts (besides that one time which I showed certain people the blog). Or if I can see them again, for that matter. By leaving, there were many loose ends I had to resolve somehow; since I'm out of the transportation option provided by UOP CKI, I have to find other means of reaching them (via online might not be enough).

Looking back a year ago, I had the option of running for a district committee position... even though I didn't have any support, I should've taken it - it could have changed the outcome of this year with a high position and I might've still remained in CKI for a bit longer.

Wednesday, February 20, 2013

Moving non-friends into Facebook friend lists


Custom coded Zuma Blitz friendlist that limits the share list to only friends and followers who are playing Zuma Blitz, preventing unnecessary spam to friends. (In reality, only 32 of those people in the list are my FB friends.)

On Facebook, although friend lists are designed to organize your friends, they can go past their intended purposes. The API can read lists and add / remove members to lists with the proper permissions, but nowhere in the documentation does it say that it's limited to adding friends.

Steps:

The following applies to version 1 of the Graph API only.

  • Go to Graph API Explorer
  • Click on Get Access Token, on Extended Permissions check read_friendlist and modify_friendlist and click 'Get Access Token'.
  • Enter me/friendlists to get your friend lists, copy the id for the friend list you want to add people in replacing {friendlist_id} and {user} with the appropriate values, and press submit:
    {friend_id}/members?members={user}
  • It returns true of succeeded, and some error message otherwise.
  • Check your list back on FB and it will have that person added.

This allows you to share stuff in a way similar to Google+ Circles (speaking of that, there is an unofficial Facebook Circles app that allows you to do this, but only for friends) by selecting a list of friends and non-friends (they won't be informed you are sharing stuff to them). If you allowed following on your profile they can like or comment on your stuff and will show up on their newsfeed if they are following you if you share a post using that list (the friends of friends privacy preset doesn't allow this). Note you won't see any posts from non-friends even though they're on that list, since you're technically not following their posts (this is on another request - the follow options are only presented to you when you send them a friend request or follow, and revoked if they reject), but this can be worked around somehow without sending them a request.

Practical Applications:

  • Given that I have a bunch of pending add requests from Zuma Blitz players (I have followers on), I can simply put them on a custom list to share related posts without having to confirm the request or show up on their leaderboard - I won't be able to share gifts to them but I don't do it anyways.
  • Facebook Games can use this as an additional filter when sending gifts or requests, since in my apps only half (the game friends) are actively playing and the rest (the real friends) aren't and I don't want to spam them. Currently I haven't seen this done anywhere.
  • A separate list called 'Untrusted' can be made, by placing people on that list and setting privacy settings to exclude that list, I can essentially prevent groups of people from seeing Friend of Friend posts (or posts for Friends but one of their friends are tagged) - whether they're friends or not.

Notes and Anomalies:

  • Directly posting to that list with that privacy setting is disabled. This does not stop you from posting on the newsfeed with the default share being that custom list.
  • Non-friends have a lower profile picture resolution when the list is browsed, and no profile pic showing at all when searching the list.
  • The order of friends on that list are no longer alphabetical.
  • People's public posts can appear on that feed during realtime updates, and are counted when it tells you how many of your friends were using an app (if their activity for that app was set to Public).

Limitations:

  • You can't add non-friends in the Restricted list in order to prevent them from seeing anything other than Public posts, which means anyone with at least a mutual friend can see a good deal of your stuff. (Or any list you didn't create yourself, for that matter.) This is probably a bad security practice at the very least and I would have to resort to blocking people.

Updates: (added 6/8/2014)

API v2.0 (and above) prevents any type of friend list management, such as viewing the friends of a friendlist (which returns a empty list, no errors), or adding / deleting friends from a list (it requires the manage_friendlist permission, which you cannot give to Graph Explorer). This can cause some apps (like the circles app mentioned above) to fail altogether. FB games that use that method as a means of creating custom send lists will need to be recreated via a separate database.

Although accessing a friendlist will not display any of your friends, the API will still display both user ids and names of people who were added using the above method.

Additional data might be needed in order to conclude whether a nonfriend on that list who declines the user_friendlist permission will affect this as well.

Friday, February 15, 2013

Americana Dawn: Week 4


Challenge of February: Screen Space and Understanding how this DirectX stuff works. (Photo credit: The Lone CS Major)

Ironically, I would be the one resembling the lone CS major, not him.

Four weeks have gone by since I started the project, and plenty of stuff has gone on during that time. I recruited another developer to help with the project (from CKI, it's the connections btw), and over fifteen whiteboards were filled with game data, skillsets, overall game planning, etc. Work now begins on both the game engine and the editor in question. The game engine, as well as memory management (to ensure the game fits under 200MB, if possible) will make it a real challenge (see note below).

Less than two months to go before that demo rolls out. (The game won't be completed by end of April - though the engine might be completed, the assets for a large scale game probably might not be.)

CS and DirectX: DirectX was never taught in any basic or upper level Comp Sci course that I have taken - at most MFC was introduced in one project and practically everything else was command prompt.

Thursday, February 14, 2013

Heartwood: Board of Broken Balls... and broken hearts


That board's not going to help with the latter. (You can, however, take a Pink Frog for use in future boards.)

Yep, it's Valentine's day, it's like past years - but now with a broken heart. Even though I may have a project or two to finish, and two people to talk things through, eventually there won't be a way for me to not think about this for a long time. Of course, there's a few other options.

Two people in CKI remain that I have interest in who are not taken, and I'm currently not friends with either. I'll either have to look elsewhere, or be more active in events to get a chance of getting them up to at least a friend. What will it be...

Board Strategy: Enough with the dating stuff - it's kinda typical anyways that gamers and CS students are less likely to get that gf.

Get a Spirit Turtle with Curvy Fries/Fruit/Inferno Frog/Timelord, the gaps might be tough to score well but you can curve clear in two hot frog shots. If you're not fast, then a Spirit Eagle with Chocolate Loves will work to a certain extent (up to around 13M). I'm not breaking any balls today... The Spirit Turtle did that yesterday with its 20M scores.

Sunday, February 10, 2013

Chinese New Year at Thunder Valley


I've decided to head to another location for Chinese New Year, this happens to be Thunder Valley. I don't think I've been anywhere specifically to see a Chinese lion dance in another city (other than San Jose, and that was by coincidence). Two things: One, is louder than I originally expected, and two, it was different than what I've normally seen. Especially the 'lion goes through the casino' part, where lots of people are trying to get a picture of the dragon as it goes by.

Two dragons and two lions was a bit much in that small space, it's hard to see all of them at the same time... given how close you are to them (around 10 feet).

I got my calendar and some red envelopes from that event. (In reality, it doesn't take too long to get to 50 points when you're at the table for some time. Pulled in around 500 points in two hours of play, and didn't lose any money in the process. I'm still 14k short to next tier though, but I don't think it'll happen anytime soon with my current income level.)

Footnote Regarding DLSSP:

Note that there was DLSSP (CKI-wise) that day in Stockton, but I already long retired from that club mainly since I've finished undergrad and such (it would also be pointless to attend since the chances of procuring additional friends would be much lower than before). There were reports that tons of Davis students were there working on the fields - I guess they were farming service hours.

(I wanted to put that in the above post but I didn't think it would be related)