Archive for the ‘Computing’ Category

Earlier this week I added an automatic poem generator to my web site. This was basically a conversion of a Java program I wrote a long time ago into a Python program. In testing the program, one of the poems generated was The Neophyte Pixel Pusher:

The Neophyte Pixel Pusher
The neophyte pixel pusher is sleeping in harmony with the hyper IBM.
Boldly the pixel pusher debugs.
The IBM imaging beyond a variegated computer.

A few more of the poems created while I was testing out the code follow.

The Parallel Landscape
The parallel landscape conceives far beyond the young cubist.
Carelessly the landscape attacks.
The cubist drawing within a wiry graphic designer.

The Solitary Artisan
The solitary artisan conceptualizing in competition with the multithreaded silicon chip.
Hesitantly the artisan computing.
The silicon chip laughs in harmony with a shadowy processor.

Generally the algorithm I used to create these poems generates nonsense doggerel but every once in a while it does manage to come up with a combination of words that paint a mental picture that sort of works. Frankly, the fun part of the process was in designing and coding the program and in building the word lists.

A few days ago I added an Art Title Generator to my web site. I did so as a consequence of having writer’s block on coming up with a title for a generative artwork I had created at the beginning of the week. I wrote the Python program for the generator using word dictionaries I had created for a Haiku generator I had written using Java. I added it to my web site and promoted it via some of my social media accounts.

I was surprised when I heard from a couple of people who said that it was not working. Surprised because this is a Python program running on the server and delivering to the user a complete web page with the generated artwork title clearly visible. I couldn’t imagine why these folks were not seeing the title – but were seeing the rest of the generated page.

Impossible.

I went to my son’s computer and used his browser (Chrome) to view the page. And what I saw was no title. It just wasn’t there – which was impossible. I did a view source to take a look at the code that was received by his browser – and the title was there – right where it was supposed to be. So why wasn’t it visible?

And why did the art title display in my Chrome browser but not my son’s? Then it occurred to me. I asked my son if he was using an ad blocker. He said yes. Looking at my CSS, I had used a CSS class that I had named "contentad" and used it to display quotations about art at the bottom of quite a few of my web pages. The only explanation for the invisibility of the generated art titles was that an ad blocker was looking at the name of the CSS class and saying to itself "oh, this is an advertisement so I’ll hide it from the viewer."

To test my theory, I renamed the CSS class and then updated the 102 html files on my site that used it – as well as the Python program. I went back to my son’s browser and voila – there was the art title in full view – no longer hidden by the ad blocker plugin.

To read more about my art title generator and generate a title for yourself, you can proceed to the introductory page Automatic Art Title Generator. Or if you are the impatient sort and want to see an art title right now, load the Art Title Generator.

Here’s hoping that you enjoy the algorithmically generated artwork titles.

I write this post on my Dell XPS 17 laptop which I purchased in the summer of 2011. It has served as my main computer for everyday tasks and has served me reasonably well except for its failing hardware. My only real complaint after getting it was its lack of enough USB ports and that it came loaded with a bunch of crapware (aka bloatware) which I had to manually uninstall.

And just what is the current status of this five year old laptop? The internal keyboard is dead so I use a USB-attached keyboard. The touchpad is dead so I use a USB mouse. The DVD/CD reader/writer is dead so I use a USB-attached external device. The built-in Intel Centrino Wireless component is dead so my laptop is tied to a wired connection. And the battery has no life so it must continuously be connected to its charger. In short, my laptop is no longer portable. Fortunately none of these hardware failures have prevented me from continuing to use this laptop.

Two weeks ago a new problem appeared. My ability to load very large images into the laptop’s NVIDIA GeForce GT 555M graphics card stopped working. My Java graphics programs that previously worked fine failed. Even small Processing sketches were spitting out error messages when running in 3D mode. To troubleshoot the problem, I ran the OpenGL Extensions Viewer program I had previously installed as a part of updating the version of OpenGL installed on my laptop. Unfortunately it crashed before telling me anything. And it was the same story with a another testing program I tried to run. It’s worth pointing out that I bought this Dell laptop when the graphics card on my old laptop went kablooey. On the plus side, I experienced no loss of data at that time because I was able to boot up into a DOS session. And I was able shed an old laptop running Windows 95 for a new one running Windows 7.

Now it may well be that my graphics problem is nothing more than a corrupted driver and hence easily fixable. But I now have another more pressing reason to migrate to a new, more capable computer. I’m expecting to take on a consulting project that will require more disk space than I currently have available and for which I will need to install and run a web server stack – Apache, PHP, MySQL or MariaDB, WordPress, Perl, and Python as well. This project provides the perfect opportunity to finally upgrade to a new PC.

Laptop Replacement Strategy

So I have to find a new computer. The one solid criteria I have is that I want my new computer to run Windows 7 Professional. I’m sticking with Windows 7 because I have older Windows XP applications that I know will work with Windows 7. Also I have no interest in taking the time to learn how to use and manage a new version of Windows.

There is another decision that I must make as well: do I buy a laptop or a desktop? The only reason to buy a laptop is for portability. But I already have portability. Not only did I inherit my older son’s old Windows 7 laptop, but I also have my own Ubuntu Linux laptop that I’ve been using since 2014. So the older laptops I already own provide me with portability. Something else to consider is that to achieve a certain level of computing power is more expensive with a laptop than it is with a desktop. Also, desktops are much easier to work with when it comes to adding new hardware or replacing existing hardware.

Given my situation, it makes sense to replace my Dell laptop with a desktop. The next set of decisions that must be made are with respect to identifying what components (CPU, memory, graphics card, SDD/HDD storage, motherboard, power supply) I want in a new desktop. Three requirements that leap out are a) a minimum of 16 gigabytes of DDR4 memory, b) an Intel CPU operating faster than 3 GHz (gigahertz), c) a minimum of two hard drives (HDD) with total storage of at least 5 terabytes (TBs). Most challenging will be identifying a specific CPU and graphics card.

Once I’ve identified a hardware configuration, the next step will be to identify a vendor. Whose computer will I buy? Currently on my list of possible sources are (in alphabetical order): Asus, Boxx, Dell, Digital Storm, Falcon Northwest, Maingear, Origin, Samsung, and Velocity Micro. Note that I deliberately exclude HP (Hewlett-Packard) – a company I had been happy with until buying one of their computers – a mistake I will never make again. I also exclude Lenovo as they are a Chinese company that jump started their business by buying the IBM Thinkpad computer line. Disclosure – I’m a former IBM employee and bought IBM personal computers before and during my term of employment with IBM. Don’t get the wrong idea – I have nothing against buying imports. I’ve bought cars made in Japan and Germany and smartphones from South Korea, etc. Lenovo may make fine computers but I abstain from doing business with companies that are a part of a system as corrupt and unethical as the Chinese system is.

And My Desktop Choice Is…

I’ve already started my research on desktop systems both in terms of components and vendors. I will say that I have ruled out Boxx as being excessively high priced. I’ve also ruled out Falcon Northwest and Maingear as they only ship Windows 10 systems – not to mention that Maingear is also quite pricey. With respect to hardware, I’ve ruled out using a SDD for my system drive as the benefits for a desktop system just aren’t there. My particular needs are better served going with a HDD. One thing I do know and that has to do with monitors. Do not buy a monitor from the company you buy your computer from. In each of the cases I’ve checked I’ve found that I could buy the same monitor on Amazon for a substantially lower price. While I haven’t checked, I assume that this also applies to NewEgg, an online computer retailer I’ve previously done business with.

What can I say but that Christmas is coming early this year and that my Christmas present will be in the form of a desktop computer. I expect that my next post here will be about what system I finally decided to go with. Stay tuned.

My use of social media has always been erratic because it has never been a high priority for me. That does not mean that I don’t have accounts on many platforms – I do. A number of the accounts I set up are simply for learning about that platform’s features and usability – an area of professional interest for me.

To improve my knowledge of social media, I’ve read articles, books, and taken online classes. I’ve even taught classes for artists and photographs on how to use social media. But knowing and doing are two separate things. Let me provide an example. I attended an online seminar on how to be successful at Twitter. The key take away from this class, other than the completely generic advice to post great tweets was that the teacher spent three hours a day every day engaging on Twitter. For me, that is far too high a price to pay just to be popular on Twitter. Personally, I don’t spend three hours a year using Twitter.

My periods of absence from social media are driven by two key factors. First is the availability of time. Second is the variety of platforms I have accounts on. The more accounts you have, the less time you can devote to any one of them and skipping out on one makes it easier to skip out on the others.

Social Media Platforms

The main social media platforms I have accounts on and on which I am actually at all active are:

I have left off this list the many niche social networks I am on as well as sharing platforms like Tumblr and FLickr. And of course there are the more-than-a-handful of social media platforms that have gone out of business.

It has now been several months since I have engaged on any of my social media accounts. What happened? The most striking of my absences is from Linkedin – which was in large part driven by Linkedin’s own actions – two in particular. First they made a number of platform changes that were particularly harmful to members who managed groups. In trying to make the platform more mobile-friendly, Linkedin eliminated a number of usability features. Fortunately there was a strong user backlash and Linkedin eventually restored many of those features. The second was driven by the fact that I stopped receiving group updates from Linkedin. I reported the problem to Linkedin and their response was to basically say "yeah, we made some changes to the platform and a small number of our users were adversely impacted. But because it’s a small number, it’s not a priority for us to fix it." What is small for them was critical for me. That sort of customer service led me from using Linkedin on a daily basis to being only an occasional visitor and that in light of the fact that Linkedin had a couple years ago wanted me to promote the fact that I was in the top one percent of profiles on Linkedin!

So what have I done with the time I gained by ignoring my social media accounts?

Reading is FUNdamental

Two principle areas occupied my reading time. One area was for pleasure and knowledge. The other area was for professional development. Yes, its true, following are books I read for pleasure and knowledge:

Business

Making It In America – A 12 Point Plan for Growing Your Business and Keeping Jobs At Home by John Bassett and Ellis Henican

Good Profit: How Creating Value for Others Built One of the World’s Most Successful Companies by Charles G. Koch

Space Development

The Business of Space: The Next Frontier of International Competition by L Brennan et al

Realizing Tomorrow: The Path to Private Spaceflight by Chris Dubbs

Crowded Orbits: Conflict and Cooperation in Space by James Clay Moltz

Law and Regulation of Commercial Mining of Minerals in Outer Space by Ricky Lee

The Twenty-First Century Commercial Space Imperative – SpringerBriefs in Space Development by Anthony Young

The books I read for professional development dealt with computing: specifically web design and programming.

Web Design

Earlier this year I decided to dig into learning the Bootstrap framework for responsive web design. I had already converted by own sites to mobile-friendly designs using the general principles of responsive web design – but I wanted to learn Bootstrap. My first tangible product was to convert theChicago Society for Space Studies website to a mobile friendly design using Bootstrap. Having learned Bootstrap to an acceptable level of proficiency, I was able to design and code and implement the new site in a single weekend.

I am still learning Bootstrap and am close to releasing a new web site – Digital Art Prints which will feature some of the artwork and photography that I offer for sale on a few of the POD (Print On Demand) services I have accounts with.

Python Programming

For some time I’ve been wanting to learn the Python programming language in order to create scripts for GIMP and possibly Blender. What finally pushed me over the edge was the decision to create a new web site (Digital Art Prints) and to use a Python program to construct the web pages from a database I maintain for all my art and photography. My first actual productive use of Python was to create an auto-mailer program for email distribution for Chicago Society for Space Studies. I also have a couple of other projects in mind for interactive website queries.

Presentations

I give a number of talks over the course of a year. These talks tend to fall into four distinct categories. As a NASA JPL Solar System Ambassador, I give talks about planetary science and planetary exploration – the most recent of which was about the New Horizons mission to Pluto. As President of the Chicago Society for Space Studies, I give talks that focus on space business, space development, and space policy. For more about this, see my Chicago Society for Space Studies Speakers Bureau page. As an artist, I give talks on a number of digital art subjects and on various aspects of web use for art marketing. You can see a full list on my lectures and presentations page.

My last presentation was last Saturday (for details see Space Art Program At Elmhurst Art Museum). My next presentation will be this coming Monday for the Nineteenth Century Club and Charitable Association on the topic Globalization of the Solar System – a presentation that asks the question can the economic and technological principles that make globalization possible here on Earth work for a human civilization that is spread across the solar system?

I also completed work on a new presentation titled The Impact of Space Policy on Space Settlement and am working on a presentation about the history of lunar art and another on Earth imaging and remote sensing.

Digital Art Prints website

As I mentioned, I’ve been working on a new web site – digital-art-prints.com where I will have a portfolio of art and photography that I have made available on certain POD (Print On Demand) sites, like Redbubble and Crated for example. The design of the site, which is built using the Bootstrap framework, is complete. I’m not using a CMS (WordPress for example) for the site but am instead working on a Python program that will take the information I have for each artwork and use that information to automatically build the site’s web pages and image gallery. This will allow me to swap out web page designs very easily. I have also written a program using the Processing programming language to automatically generate all the images that the web site will need. Stay tuned as I hope to have the site up before the end of November – assuming no more computer problems.

And What About Social Media?

I certainly expect to return soon to the world of social media but probably not until after I have rolled out my Digital Art Prints website, which is my number two priority at the moment. My number one priority is putting together the next issue of Spacewatch – the quarterly e-newsletter of the Chicago Society for Space Studies.

In the event that I don’t have any more blog posts before Thanksgiving, here is wishing everyone a happy and hearty Thanksgiving.

In my previous blog post, Fresh Brewed Coffee Digital Art, I made mention of the fact that I create my digital art using software of my own design and that for those digital artists interested in pursuing this aspect of digital art creation, there were some alternative tools available. In that post I mentioned Processing, openFrameworks, and Cinder. I would like to take this opportunity to say a little more about each of these three options.

Processing

Starting with Processing, this is a framework and programming language that is built on top of Java, an object-oriented programming language. Like Java, Processing is free and available on a variety of platforms. Personally I use Processing on both Windows 7 and Ubuntu Linux. Because the Processing programming language was created for artists and musicians with little or no programming background, beginners can quickly be up, running, and creating with this wonderfully flexible software tool. The flexibility of Processing as an environment for creative coding is expanded by the abundance of third party libraries that have been made available. It is also the most flexible tool in terms of the variety of platforms it works with. I have taken advantage of the ability to write Processing sketches for the web using the Javascript version of Processing (Processing.js) as well as for creating Android apps and for interacting with the Arduino (see The Arduino Starter Kit – Official Kit from Arduino with 170-page Arduino Projects Book). For those new to programming and creative coding, Processing is my number one recommendation.

Processing Resources

Following are three books on Processing that I recommend and own. There are a number of other books on Processing that are also quite good. Please be aware that Processing is now on version 3 and version 2 is still widely used but do avoid any book that was written for version 1 of Processing.

openFrameworks

Like Processing, openFrameworks is also free and available on multiple platforms. In fact I even had the opportunity to write some openFrameworks programs on a Raspberry Pi (see CanaKit Raspberry Pi 3 Ultimate Starter Kit – 32 GB Edition) that was running the Raspbian operating system. The primary difference between Processing and openFrameworks is that whereas Processing is a framework that sits on top of the Java programming language, openFrameworks sits on top of the C++ programming language. Personally I find openFrameworks to be somewhat more challenging than Processing, particularly with respect to the use of off-frame buffers in conjunction with OpenGL. And by challenging, I am speaking in terms of the number of lines of code I must write in order to achieve some objective.

If you are searching on Amazon for books about Processing and/or openFrameworks, you may come across the book Programming Interactivity: A Designer’s Guide to Processing, Arduino, and openFrameworks by Joshua Noble. My advise is do not buy this book. It is quite out of date and the source code for the examples never was made available.

Cinder

Cinder is a third creative coding platform and, like openFrameworks, relies on the C++ programming language. I have no personal experience with Cinder but I will say that when I was investigating openFrameworks vs Cinder as a creative coding toolset for the C++ environment, openFrameworks won out.

I hope you’ve found this information useful. I also hope that, even if you are not a digital artist or musician or programmer, you check one or more of these creative coding toolsets because you never know – you just might have a knack for creative coding.

Last night I held my breath and swapped out my old blog theme files and CSS with the new responsive web design replacements I had just finished coding up. Why? Well, if you follow the news of the web then you are no doubt aware of the big change Google made last month (4/21 to be exact) to its search engine ranking algorithm. The heart of that change was to penalize web sites that are not mobile-friendly – or to put a positive spin on it – to reward web sites that are mobile friendly.

It was last September that I re-coded my main web site using the responsive web design paradigm to make my web site mobile friendly. You can read about that in my post Artsnova Digital Art Gallery – Mobile Friendly At Last. And in December when I launched my Jim Plaxco Photography web site, I did it as a mobile friendly web site from the start. It’s much easier to design a mobile friendly web site from scratch than it is to convert an existing web site!

Tackling my blog was another matter entirely, particularly since I had to first edit all of my previous blog entries to ready them for use with a responsive web design layout. That took time. Plus I had to insure that the responsive design theme I came up with for my blog provided the same look and feel as my separately managed web site. This extra challenge is a consequence of having created my web site first and only later adding a blog – for which I simply used a default theme at the time. With all the other items on my agenda, I really did not want to spend time making this design change but I viewed it as a necessity given Google’s actions. Note that mobile visits to my web site for the last month accounted for 16.9 percent of my traffic.

I’m happy to say that the implementation work is now done. I only have two more tasks. First I must revisit all my posts that contain embedded videos and determine how I will handle them as they use a fixed-width definition (just 425 pixels wide so not a big deal – I just need to create a CSS class for them). Second, I need to revisit every blog post using a combination of browsers and mobile devices to make sure that nothing broke in terms of the page layout. You could say that I’m doing my testing in a "live" environment. This is not considered good practice but given my time constraints, it is a better course of action for me to pursue.

If in the course of wandering around my blog you find something amiss, please contact me so that I can put things right. Thank you.