What can you learn from blog spam?

What can you learn from blog spam? You can learn that one famous sunglass manufacturer is alive and well and hasn’t been relegated to a sticker on the rear window of an Australian teenager’s car in 80s. You can also learn about two new golf clubs that are now available, a Japanese golfer and their preferred golf club manufacturer.

Screen capture of the email I received informing me of a ‘comment’ that had been made on my blog.

I don’t normally get the chance to read blog spam. It’s normally automatically placed directly into my blog’s spam queue ready to be trashed. This time they (the person or people who wrote the script or bot that was able to bypass my spam protection) must have done something different for the spam to be identified as a legitimate comment on my blog. Well played gents.

Besides learning about what’s being shilled by some potentially harmful website, I thought it (and an intense survey of spam over a period of time) could possibly suggest what’s in fashion or the must-have item or what potentially could be the next-big-thing in fashion. Simply, does spam act as some sort of social, fashion, event or even a lifestyle barometer for online purchases?

Does spam direct online purchases or reflect purchases? If so, how is it measured and then how is that information fed back into the spam generating machine and identified as a success? Is spam targeted and strategic? If so, how?

Someone’s business must be going okay financially for the spam racket to continue, even if it’s for a limited time. How do they do it? I’m curious!

I’m having trouble with the surfaceTouchEvent

I’m having trouble with the surfaceTouchEvent in the Responding to touch interaction recipe from the Processing 2 Creative programming cookbook source code on GitHub.

I’ve worked through the Troubleshooting,  Discussion and Known issues, Common problems, Understanding changes to processing.core sections of the Android page of the Processing Wiki, but still no success.

Unsurprisingly, someone else posted a similar issue with Android Multitouch on Processing 2.0.X on the Android Processing Forum. Unfortunately their solution (import. android.view.motionEvent) doesn’t seem to resolve my issue.


Time to sort this one out.

Accessing screen size and density

Making my way through the Accessing screen size and density recipe from the Processing 2 Creative programming cookbook source code on GitHub.

In this recipe I learned how to use the Android DisplayMetrics class to determine general information about the display of the device used to run the sketch.  While this is more of a diagnostic recipe than a creative one, I think it’s pretty useful way for finding out more about the capabilities of your device which could then inform the way you code your sketch. Nice.



I don’t always require an affirmation, but when I do, I prefer the Bene Gesserit’s litany against fear

Inspired by Tom Woodwards’s Dune-themed tweet on 24 April 2014, Rhys Fulber and Bill Leeb’s production on Fear Factory’s Fear Is the Mindkiller EP and the Bene Gesserit’s litany against fear and based on Jan Vantomme’s Drawing text and Running your sketch on an Android device  Processing recipes on Github, I created this portable litany against fear as a fun exercise in combining , expanding and learning further from the recipes I’ve worked through so far.


Extending the functionality

I’d like to extend the portable litany against fear by creating functionality that allows for use of:

  • sound by including pre-loaded audio samples that play as each line of the litany is displayed
  • custom text and audio affirmations to be entered by users
  • events such as display of text and playing of audio or other events to be triggered by touching and swiping of screen by the user.


Running a sketch in the Android Emulator and on a device

Making my way through the Running your sketch on the Android Emulator recipe from the Processing 2 Creative programming cookbook source code on GitHub.

In this recipe I learned how to run a sketch on my Android device. I did this by  creating a sketch from the sample code, enabling USB debugging on my device and then selecting Run on device from the Sketch menu in Processing. Processing then compiled the code and then installed it on my device. Neat.



Unfortunately, I had some issues with running my sketch in the Android Emulator. Not a huge problem.


I also learned how much fun it can be to install an Android SDK and then try and get it to work properly with Processing. I had an issue with successfully running a sketch in the emulator and on a device using Processing 2.1.2 and the latest Android SDK.


Of course, I didn’t think that I was the only person who’d ever had this issue. So, I poked around on the Processing Forum and found a forum post with solutions to the Android java issue that was similar to my own. Downgrading Processing from 2.1.2 to 2.0.3 was the solution that worked for me. Awesome.

Drawing triangle and quad strips

Making my way through the Drawing triangle and quad strips recipe from the Processing 2 Creative programming cookbook source code on GitHub.

In this recipe I learned how to use the QUAD_STRIP and TRIANGLE_STRIP parameters inside the beginShape function to draw triangle or quad 3D geometry to screen. With some work, QUAD_STRIP and TRIANGLE_STRIP could be used to draw 3D grass and lawn geometry on screen for Sew, Grow and Mow as an alternative to pre-modelled geometry. Maybe.


This code draws the QUAD_STRIP and then rotates it around the centre of the screen. I particularly like how vertex (x1, y1, 0) and vertex(x2, y2, 50 + i) are used to add two vertices to the shapes with each iteration of the for loop.


Mixing 2D and 3D objects

Making my way through the Mixing 2D and 3D objects recipe from the Processing 2 Creative programming cookbook source code on GitHub.

In this recipe I learned how to use the ENABLE_DEPTH_TEST and the DISABLE_DEPTH_TEST parameter inside the hint function at the beginning and end of the draw function to to enable and disable the z buffer. This means the first black square intersects the coloured 3D cubes, while the second white square is drawn on top of the coloured 3D cubes. The DISABLE_DEPTH_TEST parameter would be useful if you wanted to display user interface elements such as buttons, banners or instructional text on top of the 3D environment.