Tuesday, September 13, 2011

"Compliant sergeants rarely become great generals."

In Seth Godin's recent blog post Confusing obedience with self-control he spoke of the value of obedience. He also stated that, “obedience transforms into self-control. That at some point, people start obeying themselves and become leaders.”
 
In other words, to be a leader, you must think for yourself and be obedient to what you know is correct. Your creativity and ideas should be your guide as you understand and comply with others such as your employer and civil authorities for the common good.

In short, we must not confuse self-control with mindless adherence.

Posted via email from Mark's Musings

Tuesday, August 02, 2011

It is OK to not know it all.

Recently, when I upgraded from my first generation Motorola Droid to the new Droid 3, I called by the local Verizon store and asked if the chargers, cradle, and car mount that I have with my current Droid would work with the Droid 3. I was told that all the hardware that I have with my droid would work with the droid 3. Well...not so. Both the cradle and the car mount will not work. As the buyer we always need to do our homework and understand the stipulations, etc. with the purchase. However, if as the vendor or service provider, you do not know for certain an answer to a question, please do not respond as though you do.

I understand that the phone store personnel are good people. Nor do I think anyone is trying to deceive or bait and switch. With that said I do think that being clear and complete with the customer goes a long way. In other words, if you do not know then state that as far as you understand this or that is true but you really need to meet face-to-face to discuss all the details or research the question further and then you can make a determination. It is OK to not know it all.

Monday, August 01, 2011

Random Rebooting of the Droid 3-Synced WIFI Settings?

Since I updated to the new Droid 3, I am finding that the phone randomly reboots every now and then. While I love the response time of the phone and the crisp view screen, the phone deciding to restart on its own is not OK. After a quick search I found a series of messages that show the issue may be tied to how WIFI networks are restored from Google during the syncing of your previous WIFI settings.

Here is a blurb from Google:
Further testing & confirmation from other testers on forums correlates this crash strongly to the restoration of wifi settings during provision of the phone & sync to google.  Users who have factory-reset the phone and disabled google syncing have solved the problem, and users who have deleted all restored wifi networks have seen similar benefits.  The twitter account in the 'my accounts' manager was indeed a red herring and does not seem to be related to the bug, as removing it has not re-introduced the problem. Workaround:  Delete ALL wifi networks after provisioning phone, and recreate them using the Droid3 UI.

This was found at: http://code.google.com/p/android/issues/detail?id=18460. I really do not want to go back to factory settings so I am hoping a simple removal of the WIFI network settings and manually rebooting the phone will cure the random reboots. Thus far, since doing the above steps no more reboots.

Posted via email from Mark's Musings

Sunday, July 31, 2011

Review of Programming HTML5 Applications: Building Powerful Cross-Platform Environments in JavaScript by Zachary Kessin

rc_cat.gif

With the emergence of the popularity of HTML5 many books are quickly hitting the shelves. Here is an offering that provides both a high-level overview along with example code.

The first chapter, The Web as a Platform for Applications provides an historical backdrop for the HTML5 standard by reviewing the founding of the web, JavaScript’s history, the emergence of DHTML and AJAX, and laying of the ground work for the present environment.

The second chapter, The Power of JavaScript, reviews some nice aspects of the language such as functional programming,  closure, being able to expand objects, and functions with prototypes.

Chapter three, as the chapter title implies covers the JQuery, “a JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.”

The next chapter details ExtJS. While ExtJS is another JavaScript library, this library provides more than a DOM manipulation and event handling. ExtJS has several objects that provide the developer with several tools to create rich internet applications. The chapter contains good content but still needs another “proof-reading pass” as there are several typos and even a “TODO” or two.Chapter 5 details using QUnit and Selenium to test JavaScript. This chapter provides good code examples using these two test frame works. Chapter 6 shows the developer how to use the browser’s localStorage and sessionStorage objects as well as consider browser-based databases.

The next chapter, Take it Offline,  deals with using HTML5’s new manifest file from which a user can load multiple files. Chapter 8, Splitting Up Work Through Web Workers, takes the reader through use of web workers to do, as the chapter title suggests, a division of tasks.

The reader is then brought to the topic of Web Sockets where bidirectional data can be established over TCP. Finally the chapter Internet, 2017 takes the user through the consideration of new and future technologies, of which HTML5 is a part.

In summary, while this book does provide a good overview of the above topics, it may not provide the detail that some developers desire. Also, at least in its early release stage, as of July 2011, the text shows many signs of a draft in progress with missing punctuation and various TODO’s sprinkled in some of the chapters. However, it does provide a quick and basic overview of the concepts and parts of HTML5 and JavaScript that are necessary to move forward.

Thursday, June 16, 2011

Review of An Introduction to Machine Learning with Web Data by Hilary Mason

An Introduction to Machine Learning with Web Data by Hilary Mason; O'Reilly Media.

The video itself is presented in five sections: (1) Introduction, (2) Classifying Web Documents - The Theory, (3) Classifying Web Documents - The Code, (4) Clustering , Recommendations, and Probability, and (5) Conclusion. In short, the video Hilary uses web based data to show the audience how to work with data to solve problems you may have by using basic machine learning techniques. The video is particularly directed at programmers who do not have statistical training.  
The viewer will sit with a group of a few other students and feel the imtimate setting of a small classroom. For myself, a video where you can re-watch segments, stop the video to reference a suggested resource, or pause to experiment with a variant of the code is both helpful and handy. For example, in the introduction, Hilary references a link (http://bit.ly/9RYQEF) that explans the concept of "data science." At that point, I paused the video and browsed to the link and found it quiet informative. By the second section, Classifying Web Documents - The Theory, the audience is gently taken into statistical techniques such as naive bayes and shown a step-by-step approach in how the math is applied. In the  Classifying Web Documents - The Code, the participant utilizes python code and the New York Time API to classify words from the New York Times web site. Within the Clustering, Recommendations, and Probability video the viewer is taken through code that demonstrates how to take data with which little is known and learn from the clustering results. Finally, the conclusion section deals briefly with the concepts of probability and then reviews the entire sessions content. 
While being able to navigate around in python is beneficial and by following along with the running of the code one can learn and retain more information, the participant can just view the video content as both the code and concepts are displayed and explained. What is nice is Hilary provides the code used in the video from her Git repository at https://github.com/hmason/ml_class. If the viewer wants to participate she will need to make sure that they have the proper python modules installed. 
In conclusion, the software developer that has little more than the required stats college class would do well to purchase this video. Seeing the actual application of code to the basic statistical algorithms is extremely informative and applicable in various problem domains.

Thursday, May 19, 2011

Playing my Daily Healthmonth Turn and to Posting to 750words via my Droid

For over the past three months I have been using a few sites that help me to reach my personal goals within a "gamified" process.
 
The first site, healthmonth, is according to its creator Buster Benson, "an online adaptation of a game some friends used to play every year right after New Years."
 
The second, 750words also created by Benson, is a site that encourages the daily writing of...you guessed it, 750 words. The site provides an online, private space to compose an essay, journal, or just write what is on your mind. As you type, the site saves your work, tracks and displays your word count, and lets you know when you've passed the coveted 750 word mark. The fun aspect is in the fact that 750words keeps a score card of points for the days you enteract with the site. 750words also keeps track of the consecutive number of days (or streaks that) you submit completed posts. You can also see how others are doing point and streak-wise to fuel your competitive nature.
 
My wife and I were away from home for a few days and I was not certain if we would have reliable wifi access to play my daily healthmonth turns and to post to 750words to keep my 100 day plus streak alive. So, I wanted to find away to use my Droid to utilize the sites. 
 
I was able to play my turn on the healthmonth site easily with the Droid via the native web browser. However, posting to 750words was a little more tricky. While I could type a 750 word submission with the droid keyboard, I found it more feasible to create the post on my desktop, laptop, or netbook and import them into the Droid via a text app I use, AK Notepad. Then, once in AK Notepad I could copy and paste the text into the 750words site via the web browser. Note that any text editor should work in a similar manner in your Smart Phone. Specifically, here are the steps I took:
 
First you have to import your 750word posting into the AK Notepad. To import text (.txt) files into the Andriod AK Notepad app you will need to do the following:
1) Have a folder that is created during an export. You will need to use this folder as AK Notepad will not see folders created manually. If it is not there, create a directory to use by selecting and holding down a note from the list of notes, then select the "Export to text file" menu option.
2) With the droid connected to a computer via a USB cable place the files that you desire to import into AK Notepad in the directory in step 1 above.
3) Disconnect the USB cable and opened the app on the phone.
4) Select "Menu" and then "Settings"
5) Under Import/Export section select "Import notes" and then browse to the folder in step 1 above. NOTE: each file in the selected folder will be imported.
6) Select and hold the folder and then from the popup menu select "Use this folder." This should import all the files in the folder.
Next, open the note that you want to post on the 750words site and select and hold down the text until the popup menu is displayed and select the "Copy all" option. Now that the text is copied to memory, open the web browser, browse to the 750words site, and paste the text into the site page. The site will auto-save the entry.
 
Now, if I plan to be away from reliabe internet access I can still play my daily healthmonth turn and to post to 750words to keep my streak alive.
 

Posted via email from Mark's Musings

Wednesday, May 18, 2011

Not Being the Expert

It is interesting to note as you move throughout your day, we are fearful to appear as not being the expert. Why? Perhaps there is an expectation that you are to be the person who is considered the expert in this or that? Maybe you have a self-image that you are the go-to-person on this subject or that topic?
 
Regardless, why is it OK to not be the expert? Isn't there value in just being the person that is trying to learn as much as he/she can and enjoying the journey? What is more important, being seen as the person that is the expert or being known as the individual that is open to learning, realizes that there is always more to understand, and is known to be gracious to others who lack their level of knowledge? I think the latter.

Posted via email from Mark's Musings

Sunday, February 27, 2011

Where's that taboo when I need it? To Social Media I go....

Historically, communities with their various cultural taboos, acted as societal controls and helped its citizens curb harmful behaviors. Granted, while come taboos were used as instruments of oppression, others did and do help one restrain oneself unto positive outcomes.

In the New York Times article by Stephanie Rosenbloom, I Resolve. World, Don’t Fail Me Now, Rosenbloom deal with New Year's resolutions:

Certainly, you don’t need cyberspace to share your resolutions. But the potential humiliation of failure is more potent online. Social networking sites also enable you to formalize and, in many cases, regularly track your goals, which makes it harder to blow them off. Some sites reward you with a badge on your Facebook page or a congratulatory message. Nearly every site makes it easy to tell friends about your ambitions as well as to help find strangers who share your goals. The latter is useful if you don’t want to discuss your resolutions with friends and family.

A site that I started using recently, 750words, has assisted me in journaling daily. The site, create by Buster Benson offers stats and analysis of one's writing. This feature is what drew me to use the site as I am on a year long personal data collection and analysis venture to test the value of personal data analytics. In addition to the 750word site, starting in March I will be using another site created by Benson, HealthMonth.com. There, one can set up rules to help change behavior in either a public or private manner. This site, along with others on the web, act as both a daily motivator and reminder of the goals.

In summary, the visible nature of these sites assist with self-imposed, virtual taboos that help motivate me.

Posted via email from Mark's Musings

Friday, January 07, 2011

The Future of Business Intelligence--Everyone a Data Analyst?

I follow a local LinkedIn group, Cincinnati Regional Business Intelligence Networking Group, where the question “Where do you think the future of Business Intelligence is headed?” was posted. My response was:
Personally, in addition to the normal predictive data analysis, I see a real strength is to have everyone that deals with data, the administrative assistant to the CEO, understanding how to properly interpret the data that they deal with. Therefore, everyone in the organization has the ability to provide insight into better decision making at their level.
  
Another member of the group then asked in response, “Mark, what data tools do you see being developed or expanded upon to reach this goal? I believe that total company comprehension of corporate data could also be the way of the future.”
  
This caused me to further reflect and consider how enterprise wide data analysis, by most if not all employees, might look. I replied:
Foremost, standard data understanding needs to be basic training for employees. For example, training them how to: disassemble complex problems in order to better evaluate and solve the issues, develop hypothesis and experiment with the data to find unknown causal relationships, use of current common tools such as spread sheet apps (for example, using the Solver function for data optimization) and free tools such as R, understanding how to use data visualization, understanding and using Bayesian rules, etc.
    
Along with the standard extract, transform and load (ETL) and reporting tools, apps that can assist in the above would be very valuable. Given that the above are really processes that can be applied to various situations, tools that shorten the steps is what I would consider. To be honest, I am not sure that the tools would be as valuable as training employees to understand and do basic data analysis with the data they work with.
  
The consideration of the importance of understanding data and how to interpret it came from an interesting and informative talk by Danah Boyd at Gov 2.0 entitled "Transparency Is Not Enough." The talk is available at http://goo.gl/GraT
  
Per Boyd, "The #1 goal of transparency is to empower people, to give them an opportunity to be informed as citizens, to allow them to be a check to power. But when those in power release data in a way that allows them to maintain power, we've got a huge problem....We must also help people develop the skills to interpret data.....Information is most useful to people when they have the skills to interpret it....Because of this, making information available alone is not the great democratizer. It must be coupled with enabling people to have the skills to interpret it."
  
Applying this premise to the Business Intelligence arena, having access to terabytes of data in and of itself does not result in helping the organization make better decisions. “It must be coupled with enabling people to have the skills to interpret it.”

Posted via email from Mark's Musings

Thursday, December 30, 2010

Lending Kindle eBooks Now Enabled

You can now lend Kindle eBooks. It is still controlled by Digital Rights Management set by the publisher, etc. but it is a next step!

Posted via email from Mark's Musings

Thursday, December 16, 2010

HTML5 Canvas Tag Basic Example II - Gradients and Images

Per my previous post, working with the canvas tag in HTML5, here is some more code with gradients and an image.
  
Thanks again to Mark Pilgrim and his wonderful Dive into HTML5 site.
  
Enjoy: 
  

Wednesday, December 15, 2010

Loving Posterous' use of Github Gist to post code

Loving Posterous' use of Github Gist to post code in your Posterous blog. Just paste a Github Gist URL on its own line and Posterous pulls in the contents automatically, even for your RSS feed and autopost sites. 

Posted via email from Mark's Musings

HTML5 Canvas Tag Basic Example

It has been a while since I posted any example code. Was messing with the canvas tag in HTML5 and thought I would post it up.
  
Thanks to Mark Pilgrim and his wonderful Dive into HTML5 site, I was working through the canvas tag page and put this together (only got as far as the gradient section though). Enjoy:

Saturday, October 02, 2010

"How good software makes us stupid"-You're still smart, what does that say about your software?

In his post to BBC News Technology, "How good software makes us stupid." Like it or not, the research outcomes consistently show that the tools we use to learn also shape our ability to learn. The premise of the article is that good software makes things easier and us more stupid.
 
In retrospect, I know, hang around, and work around a lot of smart people. Therefore, their software must not be that good! Gaaa! I develop software! Must get better at making people dumber...or I a mean make things easier for them!

Posted via email from Mark's Musings

Tuesday, August 31, 2010

RSS - The Really Unknown Syndication

At work, on the corporate intranet site, there is a daily survey question. Today's question was, "Do you use an RSS feed to capture news or similar info from websites?" The possible responses were:
Yes – I like that it sends me news I request. 
Yes – I’m just learning how this works.
No – I’ve never used it. 
No – I don’t know what that is.
 
With most survey components, you do not see the tabulated results until after you answer the question. Before I answered I thought that the response rate would be about 60% answering either "Yes – I like that it sends me news I request" or "Yes – I’m just learning how this works." Wow, was I off. Here are the actual results as of the time of this post:
The "Yes – I like that it sends me news I request" had 719 out of 13,856 or  5% of total.
The "Yes – I’m just learning how this works" received 300 responses out of 13,856 for a 2% affirmative rate.
The "No – I’ve never used it" got a 2,766 out of 13,856 or 20% of the total.
Finally, the "No – I don’t know what that is" answer received a whopping 10,071 out of 13,856 for a 73% response rate.
 
Again, wow! 93% of the respondents are not using RSS even though it has been broadly available since 2005. Given that the RSS acronym means Really Simple Syndication there are a good many of my fellow employees that have yet to discover the convenience and pleasure of using RSS to gather and consume their news and information.

Posted via email from Mark's Musings

Wednesday, August 25, 2010

Wired Mag is bumming me also!

From his August 23, 2010 blog entry, Nicolas Carr states that "he is bummed." Why? Because of Wired magazine's statements over the last 5 years:
 
Wired magazine cover story, August 2005: "We Are the Web"
Wired magazine cover story, September 2010: "The Web Is Dead"
Unavoidable conclusion: "We Are Dead"

 
He is right. If we are something and that something is dead, then irresistibly, we are dead. Wow! I could easily become bummed too!

Posted via email from Mark's Musings

Sunday, August 22, 2010

The Citizen Developer

I have been thinking about the rise of user friendly development tools. Recently, Google released the Android App Inventor tool which according to Google, "App Inventor requires NO programming knowledge. This is because instead of writing code, you visually design the way the app looks and use blocks to specify the app's behavior."
 
In addition to the Android App Inventor, Microsoft as released their beta version of WebMatrix, which "is for developers, students, or just about anyone who just wants a small and simple way to build Web sites."
 
So I did a search for the phrase "Citizen Programmer" or "Citizen Developer" to see what was out there. I found where last October, Gartner Group posted an article where they shared that by 2014, 25% of business applications will be done by these citizen developers. Interesting! The article defines a citizen developer as "a user operating outside of the scope of enterprise IT and its governance who creates new business applications for consumption by others either from scratch or by composition."
 
Historically, CASE tools were to enable the business person to do basic application development. In fact the programming language COBOL was meant to provide that ease of use and comprehension given its verbose and common-language structure.
 
I consider myself to be an example of a Citizen Developer as my educational background shows that you do not have to have formal development training to be a software developer. Since I received a B.S. in Education from Ohio University in 1993, I have basically learned to program by taking the time to learn to think computationally while learning and using the various interpreted and compiled languages and database systems.

The pattern in the past has been that tools that were marketed to enable business line personnel to create business applications actually required some development skills (such as Microsoft's WebMatrix discussed above). The result was that the tool was moved into the development teams as another tool in the software programming arsenal, leaving the users still depending on the software team to produce the programs.

However, it is my hope that tools such as Android App Inventor will proliferate and result in the growth of the Citizen Developer.
 

Posted via email from Mark's Musings

Thursday, August 05, 2010

Lions, tigers, tracking, oh my!

Just looked at a Wall Street Journal Blog article What They Know. While I agree that apps that record and retrieve keystrokes are evil, in my view, most tracking is for data purposes to better serve customers with more relevant advertisements. Agreed?

Posted via email from Mark's Musings

Saturday, July 10, 2010

Time...between compiles

Remember in the first Jurassic Park movie, Dennis Nedry the programmer who attempted to sell/smuggle dino-embryos off the island? He stated that it would take several minutes for the section of the software that he had just added code to compile, and that certain systems would be down during this compile. It was during this gap in time that he attempted to smuggle the embryos.
 
Anyway, I often have 5 minutes here, 15 minutes there waiting for compiles to complete. During these times I refuse to be involved in illegal activity! My employer will be glad to know that I am sure. But seriously, I try to get other things done such as planning the next section of code to write, consider more optimal database queries, and complete emails, etc in that time.
 
The point is that I have to plan the break or I catch myself surfing the net and wasting time. What do you do with your time in between tasks to stay focused? A list of items to complete? Does your type of work govern the web and flow of the day for you?
 
Oh... the build is complete...got to get going...bye!
 

Posted via email from Mark's Musings

Future of Tech: Mobile or the Living Room?

Was listening to the Pipeline podcast, episode 20 where "Dan Benjamin interviews Clayton Morris, self-described casual geek and anchor of Fox and Friends about inspiration and creativity, authenticity online and on TV, the way we as viewers are changing the shape of media, pursuing your dreams, balancing work and personal life, and more."
 
Towards the end of the show the discussion arose as to where the future of technology would be focused. The two spaces discussed were the mobile space and the living room. I aways thought that while mobile and home based technologies would have there own areas of products and services, the two would converge together into a "personal, electronically assisted living" that was not restricted by location but existed and functioned in your home as well as transportation.
 
We shall see.

Posted via email from Mark's Musings