Saturday, July 16

AliExpress #73, #82 ( )

Pin - British Flag
Day 97

These are small, but do look like the flag. The only complaint I have, is if you watch the video, you can clearly make out that the back of the pin had pierced the packaging.

  • Order #73
    • Day 65   - Ordered
    •      ** AliExpress did not list a ship date **
    • Day 97   - Arrived in Mailbox
    • 32 Days Shipping Time

Packaging Video

Earing - Silver Dragon (Cuff, Piercing)
Day 95

This is pretty heavy. I expect that after a day of use, you might find your earlobe drooping southward. It comes with that cheap rubbery earing back that most of these come with.

  • Order #82
    • Day 74   - Ordered
    •      ** AliExpress did not list a ship date **
    • Day 95   - Arrived in Mailbox
    • 21 Days Shipping Time

Packaging Video

AliExpress #70, #71 ( Novelty Pens)

Novelty - Pen - Lipstick
Day 97

This pen does not retract, but even from a foot away it could pass as lipstick. For the novelty of it, the person I got this for thought it is pretty cool.

  • Order #70
    • Day 62   - Ordered
    •      ** AliExpress did not list a ship date **
    • Day 97   - Arrived in Mailbox
    • 35 Days Shipping Time

Packaging Video

Novelty - Pen - Match Stick
Day 94

Though this does barely resemble a match stick. Being that it is yellow of color, and has a red end on it. You can tell that it was cheaply made. This was fairly cheap to buy so I figure I have my moneys worth.

  • Order #71
    • Day 70   - Ordered
    •      ** AliExpress did not list a ship date **
    • Day 94   - Arrived in Mailbox
    • 30 Days Shipping Time

Packaging Video

AliExpress #61, #63, #65 ( VGA Port Protector )

Mini VGA Port Protector
Day 97

I should have read the details better before I ordered these. I thought I was ordering VGA male - male converters, but after looking at the original details these were listed as female to male Port Protector.

This is also going to be in a little bit of a different format seeing as I ordered three of these, on three separate days and they all arrived on the same day. In different packages.

  • Ordered
    • Day 53   - Ordered #61
    • Day 55   - Ordered #63
    • Day 57   - Ordered #65
  • Day 97   - Arrived in Mailbox
  • Shipping Time
    • 44 Days  - #61
    • 42 Days  - #63
    • 40 Days  - #65
Packaging Videos

Order #61
Order #63

Order #65

Tuesday, July 12

UI Playground - Samaritan (Person of Interest)

UI Playground?

Every day we are inundated with user interfaces. Television shows, video games, restaurants, and stores. User interface are everywhere. Some of them are really well done works of art. Others can make your eyes bleed, not really, or at least give the user a bad headache.

I have decided that I want to document, and experiment, with some of the more interesting user interfaces I find. The first one I am going to start is "Samaritan" from the tv show "Person of Interest".


According to the television series Person of Interest: Samaritan is an artificial super intelligence by a student colleague of Harold Finch's. Samaritan was first discussed in the episode "Lethe", season 3 episode 11. You get part of the start sequence for Samaritan in season 3's episode 23.

The Template Files

Every project starts somewhere. I will be programming this in HTML with the help of CSS and Javascript. This code is the bare template I use.

Samaritan's Startup Sequence

The first screen we see of Samaritan starting up is one where the background is white, and the display is sectioned into three sections. The left and right sections appear to be roughly 17.5% of the width each. Leaving the center section to have a width roughly of 65%.

For my purposes I am going to recreate Samaritan's user interface inside a main "DIV" element with the name of "Samaritan". and a second "DIV" element which will contain everything displayed in the center section of Samaritan's interface. This should make things easier later on when I want to animate elements of the interface.

There are a couple of places where there is information initially displayed on this screen. Now I was not able to completely make out what that information was. I was able to approximate that information using two different ordered list elements.

The first ordered list is used for the information displayed at the top left. The second ordered list is used for the information displayed at the bottom right of the center section.

Continue with ...
.#2 - ???

Sunday, July 10

Week in Review (Week 27)

Monday June 4, 2016 - Sunday July 10, 2016
According to ISO-8601 standard, weeks start on Monday. The first week of each year is the week which contains that year's first Thursday. This oddly gives the capability for the year to have 53 weeks instead of the school taught 52.

1. Game Ideas: Occasionally I think of ideas which could, possibly, make for interesting games. Usually when this happens I just think about the idea, wish I had the free time, and then forget about them. Now I have decided I might as well write about them.

2. Aliexpress: Only eight items arrived this week. Considering I only actually order seven orders a week, in all likely hood there will be times when I receive less orders then there are days in the week.

#72, #79 ( Farts & Jewelry )
#62, #80 ( Passive Crystal & NE555's )
#39, #60 ( Clock Display & Passive Crystals)

3. Procedural Generated People: I have always thought procedural generated content is fascinating. The possibility of created large amounts of data from a few simple seed values and some programming code is awesome, in my opinion.

4. Other: Some times there are posts which may not fall into a the normal style of what I post here. This week that includes a post I did with some ideas of how to improve BBC's Top Gear UK tv show. The show still has a lot of potential, and with a few changes I think they can do it.
Week in Review (Week 27)

PGP - Part 3 "Internal Data Structures"

Now what?

In the last post we created the code needed to generate a large number of people and those peoples "randomly" generated genders. Our current code creates a visual representation of that data, but after it is created their is little we can do with it. We are currently processing the data as we create it, and not actually storing it afterwards.

How to store people...

Currently we will be storing every person's data in a single array for the sake of simplicity. While this will work at the moment. This will not be the final data structure. Javascript code in this post will be colored blue.

var people = [];

Now we have to remember to create a new person object for each person we create.

var person = {};

Every person will need a unique identifying number we can use to index and find them. Since we are storing everything in an array, we will simply use the persons position in the array as their id.

person.uniqueId = people.length;

Finally we get to the start of the fun part of this experiment. Instead of storing massive amounts of generated data for each person we create. We will just store a unique "DNA" number which we can use to generate all that persons data when we need it. This way if we never actually manipulate this person their stored data will only be their uniqueId, and their DNA value.

person.DNA = Math.round( prng(4124532765) );  // Maximum number of unique people

Now here is where I would normally embed a link to a pen created to demonstrate the code I introduced above. Since the code so far is used behind the scenes, there really is not much that would be shown.

Proof of current concept...

Bellow is link to another pen which demonstrates what I have been discussing here. Now this one generates only the basic person, with no extra generated content. And when you hover over a box that is displayed it will generate the extra information for the person at that time.

If you choose not to hover over any of the boxes, I have it set to automatically generate a new person's information every 500 milliseconds.

Continue with ...

PGP - Part 2 "Pesudo Random Numbers Revisted"

A Revisit already?!

This is only the second part, of what I can already tell will likely be a large collection of posts, and we are already revisiting some of the content from the original post. At the end of part 1 you may have noticed that I remarked about a second possible PRNG we might use.

After thinking about it more I decided I wanted to implement multiple PRNGs from the start. This will give us the capability to see the difference in the output just by switching which PRNG we use. Also making these changes now will make it much easier for us to add additional PRNGs later without having to make excessive changes.

My Prng Global Javascript Object

  • function Prng ( seed, name )
    • function MWC (seed)
      • return function (max,min)
    • function INDIEGAMR (seed)
      • return function (max,min)
    • switch (name)
      • case "INDIEGAMR"
        • return INDIEGAMR(seed)
      • case "MWC"
      • default:
        • return MWC(seed)

function MWC - (Source Code)

function INDIEGAMR - (Source Code)

function Prng - (Full Source Code)

Introductory Foray into Procedural Generation

There was a lot of changes, and additional support code needed in order to make our lives easier later. Now we finally get to start experimenting with procedural generation. Starting very simply I have created a couple pens which test that my Javascript works.

The first test simply pseudo randomly generates 625 people who are determined to either be "Male" or "Female."

The second test adds an additional option. This could be Ogre, Dragon, or any other option you might wish to have.

The "brains" of these versions:

Changing the value in the call to prng() from 2 to 1 changes the options to two. The reason for this is that the function prng will always return a value between 0 and which ever value you call it from. Using the Math.round function allows us to convert the results to a integer value.

update: 2016.07.10

I realised after I had finished this post, and gone on to do other things, that the variable name "sex" did not exactly describe what I thinking it should. Like so many things, variable names, can be hard to get the perfect name the first time.

I have changed the variable name in the examples, and added a updated version of the current "brains" to this post.

The "brains" (updated version):

Continue with ...

Procedurally Generated People - Part 1 "PRNG-MWC"

In the beginning...

I have always thought procedurally generated content is fascinating. The possibility of created large amounts of data from a few simple seed values and some programming code is awesome, in my opinion.

In the last decade there have been several remarkable games which have used procedurally generated content to give their users much more playable content then their creators could have. This idea has grown greatly in use even in the last few years.

The introduction of No Man's Sky almost boundless space content has sparked more and more game creators to try procedurally generated content, instead of releasing a game with far less content. Thanks also to procedurally generated content we also get a collection of rogue like games which change each time you play them.

Where I'm going ...

Better developers, programmers, game designers, overall more intelligent people have accomplished far more then I ever expect to. They have created whole worlds, galaxies, visions of which I can not expect to best.

I have not seen procedural generation used much for creating vast game character backgrounds and genealogies. This is the one area of procedural generation which I am going to experiment with in this series of posts.

I am interested in seeing how many "game characters" and their families I could create using procedural generation. To see how much detail I can add to each character. To try and make each of the game characters have enough background information to seem virtually real. This is a tall order, and I have no idea how well I will do.

No matter how well I do, this will be a learning experience.

Where to start?

The fundamental basis of procedurally generated content, in my opinion, is a random number generating procedure which given a specific seed value will also produce repeatable pseudo random numbers. It may seem counterproductive for your random number procedure to produce repeatable numbers, but this is how we will be able to create a lot of content by just providing the seed value.

I am going to, at least initially, use a random number generator code that is from some talented programmers who responded to a stackoverflow question. You can see and experiment with the code I am going to use in the pen linked bellow.

See the Pen PRNG - multiply-with-carry (MWC) by Failed Sleep (@FailedSleep) on CodePen.

There is another interesting PRNG that is found on: I may implement this one as well, just so we have the capability to have multiple PRNG's to play with.

Continue with ...