Andrew Que Sites list Photos
Projects Contact
   The group had just defeated Sir Brancen Waike, an oath breaker who had driven Sovella, the queen, into hiding and was draining the resources of Artume.  The Outlaw Console killed the Sovella's husband and that is how Waike took power.  Sefer had made arrangements with Sovella in order to gain her support.  Vishtorian negotiates to hammer out the details.  Sovella agrees to be part of the Riverlands Empire Collective (REC).  In exchange for taxes and conscription Sovella is placed as the ruler until her toddler son, Edryd, is comes of age. 
   The groups fame quickly spreads.  Sovella was well liked, and Waike hated.  Words spreads and 37 individuals volunteer to join our takes.  Waike is sentenced to death.  Vishtorian and Sefer are allowed an hour of questioning, but get nothing out of him as his constitution is far too high.  After his death, Vishtorian asks to be given disposal of his body where she takes the blood of a worthy enemy and gives the skull to Crampus.
   From there much research is done about Outsea.  Vishtorian makes sure to be at Sovella's side for all public events, and REC's fame begins to spread from the Artume around the River Kingdoms.


I’ve been working on a Javascript graphing library. I started the project as part of doing an update for my web-based demos. In the past I have used Javascript/PHP with my library X/Y Plot for graphics. But this requires a server request for each update of the graphic. With the maturity of HTML5 canvas this back end for generating graphics is no longer needed—everything can be done via Javascript.

So I started a demo using pure Javascript. I looked at various graphing libraries, but all of them seem like they are designed for small data sets. I want very large data sets, and in particular, when I graph an X/Y data set, I want to see the minimum and maximums represented. I did some experiments over the summer and found I could generate a graph with around 10 million data points in about 600 ms. Starting from that base, I worked on a FFT demo (still not finished). While the demo is mostly functional, the weak area was the limits to graphing. So the last few days I have been working on improving this. I added divisions and labels (concepts developed for X/Y Plot) and have been breaking the function pieces down into modules.

After getting the graph divided and labeled, I went back to improve speed. Using a separate setup function to draw the divisions and labels that also allocated all memory block, I was able to redraw data on the graph at very high speeds.

Points Milliseconds
32,768 2.5
65,536 4
131,072 6
262,144 7
524,288 13
1,048,576 23
4,194,304 211
16,777,216 350
67,108,864 1,520
134,217,728 3,200
268,435,456 8,767

I find these numbers impressive for a script-based language. One million data points in 23 ms is fast enough to do real-time data—if you can get a million points of data that fast. Hundred million data points sets are a bit absurd in a browser just because of the memory required, but are possible.

   Did some measurements of the time it takes FFT4loc to compute an FFT.  The results are far from impressive.  For powers-of-two it can do 4,096 points in 7 seconds, 16,384 in 31 seconds, 65,536 in 140 seconds.  But for doing a prime number like 4,099 points it takes 90 seconds.  The library is functional, but it is not fast.  This is mostly do to the fact that ooBasic is an interpreted language and clearly doesn't have much optimization.

January 25, 2017

HTML5 Canvas Clip

   Working on HTML5 canvases today and I needed to enable clipping. Oddly I found that if clipping was enabled, I would get strange artifacts from the lines I was drawing.  The fix was to call beginPath after my line was complete.  Seemed to fix the problem, but why is unclear.
   I biked to work hoping that the chance of rain in the evening would not take place.  As the day went on, it was clear we would be getting precipitation.  Tuesdays I try and meet Pokie on State Street for dinner, but I wasn't found of the idea of getting rained on during the ride home.  So we decided I would bike home and meet up in Middleton instead.  As the time came around for precipitation it wasn't rain but large snowflakes.  Had I known this I would have ridden—riding in snow is fun.
   Last time, battle was upon the group.  After meeting the arrogant Sir Brancen Waike, Vishtorian was threatened and Brotton started the battle with a large bomb.  The opening round didn't go so well for the enemy.  Although their armor protected them fairly well against a powerful fire bomb, one ended up stabbing himself.  Vishtorian received a critical crossbow attack but her armor nulled the crit.  Brotton fumbled his next attack.  Zilrock's first attack caused the armor of his enemy to cave in, effectively disabling the adversary has they suffocated in their own plate.  Crampus took aim at the Nightmear.  When it was time for Vishtorian to go, she used Deathwatch to see the strength of the enemy.  Waike was basically unhurt and Vishtorian orders that everyone but Waike needs to die.  She takes aim at the Nightmear and hits it with a mimic bolt from the mimic crossbow.  In a double attack, Kint tries to stab the person who moved behind him but misses.  His second attack with claws goes critical and bloodies his opponent.  When it is Waike's turn, the attack is focused on Vishtorian and does a lot of damage.  The Nightmear also attacks but misses completely.  Brotton heals Vishtorian and then drops a large bomb that does some serious damage. 
   Sefer arrived at this time and starts by flying in, grabbing a guard and throwing them off the roof onto two other enemy.  Tilly, our cyclops, uses a club hit three enemy so hard to splatters blood all over the 40 foot wall.  Vishtorian threatens Waike, telling him that his evil ties will punish him for his extreme failure in battle.  So on Waike's next attack he misses due to lack of confidence.  Zilrok does one of his crazy 25 foot high jumps and yells "Blood!".  The successful mythic attack allows him to travel 20 feet and knock Waike off his Nightmear.  Sefer attacks Waike and does a large amount of damage.  Crampus follows up with an attack focused on Waike's legs which leaves him unable to walk.  The Nightmear disappears, presumably shifting into an other plane.  Vishtorian binds Waike using the mimic with a natural 20 roll, making it impossible for him to attack further.  The order is given to spill the blood of the enemy, causing frenzy among the attackers.  The Scrag, Cyclops and Ettin are butchering enemies and being brutal.
   The monks then show up, and Vishtorian must calm down.  With them is the rightful queen.  Waike is immobile and is pummeled significantly enough to prevent him from using any magic to escape.  He is then bound with magic shackles.  The battle is over, and the group is victorious.  The odds were not in our favor, but thanks to poor rolling on the part of the DM, and some impressively high rolls by the attackers we were able to capture Waike.
   At this point, the
Protesters on State Street

Protesters on State Street

   Small update to FFT4loc.  When playing around with some of the extremes of the functions I found that VBA the Integer type is 16-bit.  This caused problems for larger transforms to give overflow error and thus changed to Longs which are 32-bit.  I also added in the waveform function.  I had debated adding this in the original release and decided against it as it wasn’t directly related to doing discrete Fourier transforms.  However, I use it constantly and decided it was worth including.  If for no other reason then I download my own software on a remote computer, I would want this function for myself.