New World Conscience

The constant flow of political quotes on cute pictures has become the norm on Facebook. The marketer in me knows that the well placed brand could get some viral sharing.

What do these people hope to accomplish, and do they expect to be able to  “quantify” the impact?

These are two burning questions that I ask myself, as I am one of the “trendy” politicos who will share the relevant quip or quote.

What do I hope to accomplish? The ultimate goal, is to hopefully attract attention with the cute pic, and then open the mind with some thought provoking perspective. The current state of affairs has left many wondering what is going on with the economy, and why didn’t the “smart” people who run the economy, catch the trouble in time?

Unfortunately, many people want to blame politicians, they do have a hand in making the rules after all. The most overlooked piece of the puzzle, is our own part in the status quo. Remember election day, when you cast your ballot? Yeah, that was you putting the politicians in power. We fail to realize that it is our own street that needs cleaning. If your “connections” have helped you reach some goal, whether it is a building permit, or a parking ticket, we must acknowledge our own corruption of  the system. We do these small “favors” and get “favors” done for us. Then the same thing happens as you move further up the ladder. It starts with us. We have to be willing to let go of our own small contributions of corruption in order to improve the conscience at the top of the “pyramid”.

So the desired goal is to get people to at least think about their own actions and how it contributes to the way things are.

Player Please

Some of you may or may not know, but I am a purveyor of the free download phenomenon.

Back in August, Busta Rhymes, legend in the rap game, released a mixtape “exclusively” on Google Play. That should have been a nice check! It is available on every mixtape website now, but a nice jump start by Busta’s marketing team, nice move. I imagine it was Google’s effort to attract the “urban” market to their new “marketplace” Google Play. Can you say Itunes envy? Anyway, this “free” download was not just a marketing gimmick to introduce people to Google Play.
I don’t have a problem with that, actually I thought it was a pretty savvy move on their part. I actually had no interest in ever using Google Play. That being said, I decided to try out the free download from Busta Rhymes. Remember it was released exclusively back in August, it is now October, and available on just about every mixtape website, for free.

So I proceed to download the “free” mixtape, and I am confronted with a Shopping Cart. Yes, a shopping cart. Fine, I will just click through, as the item is free, I am logged in to my Gmail Account, all good. Not so fast bruh. Apparently this “free” item requires you to configure “Google Wallet” or whatever they are calling their attempt to compete with PayPal.

Ahh the days of pure honest Google have been long gone, but one always has hope. Nah, same old corporate hustle here. Gotta pay the stockholders, and definitely have to keep attracting new investors. You go Google. Whatever. I am not impressed, sadly disappointed, and I feel much better now. Thanks for reading my rant. 0_0.

Image

New Clients and The First Date

ProgrammingI would like to take a sec to address the “first date” when the freelancer meets the new client. Times have changed a great deal. Many clients are comfortable hiring freelancers nowadays, and will usually offer to meet at a public WiFi HotSpot for the first meeting.

That being said, this is not an excuse for either party to reduce any professionalism appropriate for such an important start of a relationship.

I like to get as much information about the needs of the client prior to the first meeting. Being prepared is the best approach. Many new clients, especially if they have a new domain, are unaware of the common pitfalls. This is where the developer, as an experienced professional, can anticipate and ask questions that may have not been considered by the client.

I cannot speak for all developers, but even the best laid plan has some issues. Planning for the link structure and database should be as generic as possible initially to allow for dynamic adjustments during the development process. This is one of the main reasons why I prefer to use Object Oriented Approach to building large projects. PHP is my programming language of choice, and is afforded to Object Oriented Principles. Simply put, it allows the developer to take a “modular” approach, allowing for dynamic expansion.

Some professionals disagree with my approach when it comes to proofs, but I like to have at least one layout to show for the first meeting. The earlier you can get a handle on the look and feel that will appeal to the client, the less time will be spent on design changes. That being said, it is also a good idea to have at least a standard css layout foundation prior to development. Finding out things like whether the client is interested in a left weighted two column, three column layout, etc are good things to prepare prior to the first meeting.

Google Glass Runway Debut

Google Glass teams up with designer Diane Von Furstenberg to show off the video capability of the new device.

Awesome is prob an understatement. This video is such an awesome way to get a first person perspective and share the experience with others.

It has been a few months now since Google released the glass device to sale to developers ($1500). People pay twice that for Oakleys that do not connect to the web!

One can only imagine the future. Great stuff.

Old Employer Revisited

Approximately 3 years ago, I was “let go” from a programmer position because the company was feeling financial strains. During the final months there, I was asked to build a product comparison website. The project was for the website to automatically pull data from several online marketplaces. The data would be limited to information related to the products my employer was selling online. The data would be used for content in a blog style, as well as offering a price comparison resource.

Read More…

Android Development – Preparation

Android App Development

I decided to finally build an app on the Android platform mainly because of my background in Java. I do not believe this is a prerequisite to begin developing for Android. Any programmer with a grasp on Object Oriented Programming, should be able to get a grasp, simply be reviewing the sample code examples available in the Android SDK, and other resources.

The reason I have decided to write yet another Android “How To” article, is that in my experience over the past month and a half, is that the code examples (most not all) tend to assume that you know many of the ins and outs that took me a great deal of time to decipher. The Android documentation really is the best resource. In my case, I would review the code samples, and then follow up by reading the documentation to gain a better understanding of what the sample code was actually doing. Many samples online will not tell you the impact of running the sample in a production environment. This is why I suggest including the official documentation in your research, as it will give you the ability to determine best practices. Very often code samples are a means to help you understand the classes, methods, and functions, and for performance or security reasons, they are not implemented in production.

Another issue to pay attention to when preparing the development environment, is to remain consistent with using x86 or x64. This seems trivial, but there are cases where the downloads are not readily distinguished on this basis and could lead to issues when you are ready to sign and publish your application.

The first platform to install would be the Java 6.33 SDK. Followed by the Android SDK, then finally use the Eclipse IDE (Juno was the release used in the code examples I will be providing). One should be able to safely use the default settings for the installation. My experience was with Windows 7, and as such additional configuration was required on my part.

The final process of developing an application for Android requires a secure digital signature file that is best when performed from the command line. In Win7, many of the Java commands will not execute across folder names with spaces, like “Program Files” for example. To resolve this issue, I manually added the path to the Java SDK and the Android SDK, to my PATH variable in Windows. Using The Properties of MyComputer, there is an option to edit “ENVIRONMENT VARIABLES”. Edit the Path variable to include the paths to java/sdk version/bin and the same for android-sdk/tools.

Control Panel > System and Security > System. Click on Advanced System Settings in the menu to the left. Then click on the button called ENVIRONMENT VARIABLES. The variable to edit is PATH NOT “CLASS_PATH”

At this point you should be ready to develop your first Android App.

Bus Route Finder Android App

I have been away for awhile, busily getting back into Java, and building my first Android App. The most recent project I completed, using the Google Maps API, was a logical first app.

The App uses the Broward County Bus Schedule, to allow riders to view route, direction, stop and stop times, next to a dynamically generated Google Map.

If you would like to try out the app, you can find the download here.

Learning the Android Codebase is by no means for the faint hearted. Many of the tutorials are not just incorrect, but nothing close to best practices. While this is fine for the learning stage of the process. One should consider though, that it would be more logical to provide information that would be suitable for production quality apps.

I am not going into too much detail here, as I would prefer that folks visit my site, and give it a test drive.

Thanks, B.

Google Maps API Hybrid

My latest project, screenshot above, involves reviewing the bus schedule for Broward County.

I  have recently had he pleasure of using the local transit system, and while I applaud their overall efficiency, trying to navigate the schedule is a bear! The times are all listed out on a grid that one must scan across to line up your stop with the time that you wish to depart.

Feel free to take a look for yourself at Route 55 for example.

I decided to scrape the data from their schedules, add a map and a little Ajax ;).

Basically one must select the route, the direction, and the stop. Once you select the stop, you will shown the times for that stop, as well as a map from Google with a marker at the stop you selected, and a line indicating the path of the route you selected. I hope you find it useful. 😉

TRY IT OUT HERE

GM vs FB Haters Unite

So, I heard about this news a little late, which I guess is good, because it gave me a chance to read a few more sources, and a few different perspectives. The Facebook skeptics were chomping at the bit on this one. IPO blah blah blah…overvaluation…blah blah. Yeah, they pretty much wish it was their website that had that valuation. As far as GM goes, I would need to hear more about what they are quantifying as results. The breakdown of their money spent, does justify some change if nothing else. I would put more weight into them choosing to re-evaluate their approach before throwing so much money at it. I just find it hilarious that bloggers are trying to suggest that Facebook ads would be ineffective.

Read More…

WordPress Theme Customization

Programming

This post was inspired by another post on sixrevisions.com.  The post is titled “Enhancing WordPress Custom Fields with Search Filtering”.

The post itself is excellent, but I wanted to actually address another issue that I really appreciated. Typically when one comes across WordPress tutorials, the custom queries will typically use examples that are not always portable, which is very important when it comes to building a WordPress Theme. Many of the examples, while very helpful, will use specific ids. The use of specific ids, at least in my case, did not encourage thinking about custom queries in a portable way. What do I mean? I mean that when I would build a custom theme for a client for example, I would typically hard code the specific id, post, page, category, whatever, into the query. The WordPress Codex has great examples for building custom queries.

A reliable solution when thinking portability would be to build queries based on slugs, and tags for example. The new or existing  installation will be easy to customize using slug names to fit the theme. The problem with relying on Ids is that typically the numbers will change unless you are importing all of the data from the development server to the live server. This could still create an issue in the future, when the client decides to add a new category to the slideshow, as an example, that is only pulling images from the category hard-coded into the theme.

More importantly a different coding approach I found helped me to pull the custom meta fields outside of the typical wp_query loop. I developed a custom theme with a custom meta field for each post and page. The meta field we are interested in allows the author to attach a slide to each post or page. In the theme, I wanted an easy way to pull all the slides for the slide show on the home page, for example.

I would typically use the reset posts function [ wp_reset_postdata(); ]  and run at least two wp_queries on any given page load. Without knowing for a fact, it just felt like WordPress was doing more work than it should to reset the query. Then you can also make the argument, well the function exists for a reason, so how bad could it be?

Kirsty Burgoine used a great code snippet that I have modified and will share here. This is easily customizable, and while not appropriate for all situations, it definitely helped me out.

 <?php
 $metakey = '_slides_attached_image';
 $slides = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
 if ($slides) {
 foreach ($slides as $slide_id) {
 $arr_post_slide = wp_get_attachment_image_src($slide_id, 'large');
 $post_slide_url = $arr_post_slide[0];
 echo "<img src=\"" . $post_slide_url . "\"/>";
 }
 }
 ?>

This sample allows you to build your own custom query without worrying about the post data for the specific page. Theoretically you could make this a function that would make theme development a lot cleaner.

I hope this code helps.

B.