Posts

Showing posts from February, 2014

Penguins Rising: Caching in Google App Engine

Image
      One day while I was exploring Google's Page-speed Insights to determine whether there was anything I could possibly improve with Penguins Rising. I discovered that I was not Leveraging the browser cache. Up to this point the only type of caching I had done was with the HTML5 cache manifest, however this was different than what Page-speed insight was advising me with and this was also what lead me to my question that is the majority of what this article is about. QuestionLucky for me, I am not the only person to have asked this, but "What is the difference between a Cache Manifest and a Cache header?" As it stand with Page-speed Insight my current results with Penguins Rising (will vary) as you can see for yourself.

Using Expiration in the Content Header
You can set the expiration time however you like, I tested my application with 10 minute expiration date.
//Inside the app.yaml default_expiration:"10m"


Warning
Once you set the expiration in the header it will…

Coursera: Gamification Notes

    Gamification is not turning everything into a game but changing the user's experience to be similar to one. It is not the same as Game theory and is about recognizing the point of fun. In short it is parts of a game but without the full blown version in the user's face. From the definition of Gamification it can become some difficult to understand the differences from a game. So I ask myself what is a game or how does it explain more what gamification is?Unfortunately this question is a little more philosophy than a cut and dry answer, but a few people have tried. Such as Bernard Suits who puts it into these terms...

Terms
Per-Lusory GoalConstitutive RulesLusory AttitudeVoluntarily overcoming unnecessary obstacles.Characteristics of games
    Participation is voluntary    Players work towards achieving an objective    There are rules defining how the objective can be reached.Pyramid of Elements (Top to Bottom)
Shows variety of options and lower levels tend to implement one or…

Setting up QunitJs for Asp.net MVC Debugging

    Using QUnit is important for me on some of my projects that are more front-end driven. So developing, debugging and testing all need to happen in javascript but without being in the final production. One thing I do not want to do is include the QunitJs in my bundles and would serve no purpose because the bundling and minifying does not happen for debugging. Instead what I did was create an extension method and return a bool, like the one shown in the resources.
//Location ../Helpers/IsDebuggingpublic static bool IsDebugging(this HtmlHelper helper) { #if DEBUG return true; #else return false; #endif } //Location ../Views/Shared/_Layout.cshtml//These two files are not apart of any bundled packages.@if(Html.IsReleaseBuild()) { @Scripts.Render("~/Scripts/qunit-1.14.0.js") @Styles.Render("~/Content/qunit-1.14.0.css") }Side Notes
The intellisense will do some weird things with the coloring for code inside the else statement but it will have …

My Python Experience

    I was first introduced to the Python during my first year of college. However sadly it was not the focus of the class and it was only added as a extra piece of material. The class, I was took was more focused around pseudo-code or basic programming concepts and the professor just added the book Python Programming: An Introduction to Computer Science by John M. Zelle for students who had no programming experience prior or to those who would like to use their pseudo skills in programming language. I had no prior programming experience but I also had little time during college to complete extra work on top of my two jobs and full college semester. I did try to read in between semesters while I worked the phones at my desk job which had me handling IT calls but it was just impossible to do. Once I completed college I had experience C++, C#, Java, and almost everything else so I felt it was time to return to Python.
    With all my new skills I felt getting Python under my belt would …

Research on JQuery Editable Table Plugins

    My goal here was to find or create a jquery editable table that I could custom to my needs with a little or no work and helpfully be easy to maintain. I also wanted to make sure that what I chose would not impact how I implemented my back-end. The following is the basic a starting point of what I am working with but not limited to...
<table class="table table-condensed"> <thead class="storage"></thead> <tbody></tbody> </table> From this point I would pull my table data in by either a model binder or simply create the table via ajax and appending it there. Still is without looking at how a plugin is design or needs to be setup so I might have to look at that before I begin implementing which I got with. I started my research by listing what I was looking for and what I thought I might have to customize.

My Requirements
 Input check for duplicates.character input limiting (no more than 12 chars).Highlighting if a in…

Using Entity Framework and a Storage Procedure with Parameters

    So I was stuck sometime ago on a problem I had where I was using my sql store procedure with the Entity Framework. Eventually found what I needed and the purpose of this article is just to write out a small example. I've come up with multiple ways to achieve the same thing now but this is the most basic form of it.

public IList<KeyValuePair> GetIds(string id) { using (var db = DBFactory.GetDB()) { return db.Database.SqlQuery<KeyValuePair>( "EXEC db.MyDatabase @id", new SqlParameter("id", id)); } }
ResourcesHow to pass parameters to DbSet.SqlQuery Method in Entity FrameworkHow to use DbContext.Database.SqlQuery(sql, params) with stored procedure? EF Code First CTP5The data reader has more than one field. Multiple fields are not valid for EDM primitive types
KeyValuePair(TKey, TValue) Structure (System.Collections.Generic)

Introduction to Hadoop and MapReduce Notes

Image
Class Listing on Udacity
What isbig data - a subjective term but mostly large amount of data that is usually difficult to be processed on a small machine not necessarily large amounts of data.
Challenges with data are that data comes in really fast and from multiple places.
The three V's  Volume, Variety, Velocity

References
When to use HBase and when to use Hive - Stack OverflowApache Flume – Architecture of Flume NG | Cloudera Developer Blog
CDH - distribution of Apache Hadoop and related projects.Hadoop Streaming
Hadoop Storing format.
Introducing Parquet: Efficient Columnar Storage for Apache Hadoop | Cloudera Developer Blog
hadoop - Storage format in HDFS - Stack Overflow

Terms
NameNode MapReduceShuffle and SortApache SpoopApache NutchThe Final
Much of this information below is on a Google doc that was some what hidden in the course wiki but not provided on the final's instructions. The doc can also be found in the forms for the class but rather then simply reference the class I wa…

Nexus 7 Not Appearing Over the USB

Image
    This should have been a easy setup but since I ran into a few problems that weren't simple nor obvious I thought I would share and record my notes. For much of my android development I use the ADT Bungle for Windows, I have the Android Studio Development but just playing out with it. Regardless the problem with my setup was my Nexus 7 not appearing. At this point I had already gotten the debugger mode enabled and the usb connected but still 'adb' is not seeing my device.
     Simply put the Nexus 7 by default (for me at least) was set to MTP and if you can see the connection mode notification can change it from there to PTP. The notification for me appeared briefly, so what I did was have the notification bar open as I plugged in my nexus.



The first link you below holds the location where to install drivers for your windows setup which you might need to know for when you switch from MTP to PTP, but the last link is the most important. The two others are just a little…

HTML5 Audio doesn't Autoplay for Chrome on Android

    Recently I was playing Penguins Rising on my nexus 7 and notice that the background music wasn't playing but strangely all the other sounds were. After a hard look at the code, I found no reason for the audio not to be work. So I could tell right away this wasn't going to be an easy fix. The first thing I did was check the support to see if  the HTML5 audio element had any support issues. Since the support for the audio element seemed to be alright with what I was using, the next thing I thought was that it must be the attribute autoplay. Its important to note that I am also using the loop attribute but I will return to that later.

Example from Penguins Rising
<audioautoplayloop><sourcesrc="content/ArcticWind.wav"type="audio/wav"><sourcesrc="content/ArcticWind.ogg"type="audio/ogg"><sourcesrc="mp3/ArcticWind.mp3"type="audio/mpeg"></audio>
Currently I have for my solution is to simply st…

An Introduction to the Hero Engine

    The Hero Engine was actually the first Game Engine I was introduced to, and to be honest I really didn't get into it very much just because I didn't quite see the point of a license agreement. I also had wanted do things my way and  does but with all the extra lifting for you with media content for the most part. I will be skipping the installation part since for me it was very specific with files and such, and I didn't encountered any problems.
   After everything has been installed I started from: How to write a script and then going moving my way up to writing Your First HSL Script. In the documentation it was recommended to attempt or understand the server side script and be taken along side with the client side tutorial. However I skipped the server side tutorial since I already knew the methods behind it. So far from what I've seen and done, I consider the Hero Engine to be pretty much in the same perspective as a browser but of course with a lot more fun an…