The wonderful folks at Shiny Development have built a great crowd source driven tool that provides the average iTunes app store review times. It is fed by developers tweeting their review times. So, when you publish the next social media sensation you know that it will at least take the number of days that this site is publishing before you become rich and famous.
Check it out at: Shiny Development Average App Store Review Times
Yesterday, I headed to the grocery store because I needed 2 important things, shampoo and deodorant. I am by no means a "manscaper" but personal hygiene is important to me. I knew in my mind what these products were called and what their packaging looked like. As I searched down the aisle at Publix, my heart started to race and my palms began to sweat because I could not find either one of them. The brand names that I was looking for were there but the packing had changed and they were either marked "new and improved" or "now with 25% more". I settled on products that appeared close to what I had used before but I really wish I could have bought what I had run out of it. Hopefully these will work the same and my hair will look fabulous and I will smell "Spring Fresh".
This scenario also happens with software development tools and technologies. As with the consumer goods industry, technology and delivery systems have made change easy for the producers. But as a consumer, maybe we did want that change. "New and improved" may mean that much of my code base has to be refactored or that I have to update to other libraries that also have been "new and improved". Do not get me wrong, I like a good bug fix or a highly demanded feature but change just for the sake for change is sometimes detrimental.
As someone who has evangelized Agile methodologies, I realize it is a contributing factor to this issue. Should a team (producer) release to the development (consumer) community every time a sprint is complete? I think the producers need to weigh the benefits compared to the change that may be required to implement. I do some Android development and I know this arena is a moving target right now but every time I go to build in Eclipse something has to be updated. Which if you are careful programmer, you review the documentation of everything that changed and refactor for it. I know I have regretted the times I have been lazy and just accepted to update my toolset which may have lead to me spending a few hours fixing my development environment.
Let's look at the words "new and improved". "New" means something changed. A consumer product may change a chemical compound; normally this is to increase the bottom line for the stockholders. On rare occasions it does mean they have started from scratch and h hope that it does not flop. I am sure the engineers at Coca-Cola can tell you that. I wonder what happened to the guy who came up with "New Coke"? "New" in software also means something changed, though it does not say if it was for the better or not. Which brings us to "improved" which does mean something was made better. The word "improved" to a consumer is really subjective. I know that they probably tested it in a lab environment and hopefully with consumers but, if that "new and improved" deodorant that I purchased yesterday has an overpowering smell when the old did not. Well, then it has not improved for me. This holds true to software, many of us have had to upgrade operating systems, web servers, security implementations and many other parts of our environment because one of our toolsets decided to be "improved".
So to close this rant, my shampoo cleaned my hair and my deodorant seems to be working this morning. I am not sure if it is "new and improved" at this point but according to them, I will not have to buy a replacement until 25% later. In the software world, all of us should review the changes and understand how it affects the complete architecture of our environment from development to production. Test driven development(TDD) is a great tool to help when deploying “new and improved” technologies. Also, as developers we need to keep due diligence in informing the producers of when their product has failed.
While reviewing a few TedX videos on my Roku the other day, I watched a video of Matt Mills presenting a demonstration of Aurasma.
It is an interesting concept but could it go mainstream? With so many apps on my device, I suffer from the install and forget syndrome. It is probably something many of us deal with. Apps that looked really useful but never get touched again except to delete them. My mobile devices are now like my email, full of items that I wonder if I should get rid of which adds a level on maintenance to my mobile world. I can see Aurasma becoming one of those apps.
So back to Aurasma, I wish I had a pair of Google glasses to try because you could walk around and look for Aurasma enabled triggers. I have built a few of my own "Auras" with the Aurasma Studio tools and it has a small learning curve. I was able to create a couple within a matter of minutes. My understanding is that with the free account you can create Auras and make them public but the end user will have to subscribe to your channel to access them. I think the paid version allows your channel to be open without the extra step of subscribing. I am still checking on this.
So, QR Codes are ugly but when someone sees a QR code they normally know what to do with it. Aurasm has a small logo that you can put on your trigger image to guide users to install the app. I think if users start seeing the logo on more marketing pieces and see users using the app it will become more mainstream. Below are some examples of how this technology has been utilized so far, I especially liked the school videos demonstrating how they are benefiting from Aurasma.
I think building a virtual scavenger hunt with Aurasma would a great thing to do for parties and events.
Infographic by Veracode Application Security
Sencha Architect and Sencha Build
Phil Strong from the Sencha Architect Dev team provides a great forum post on using Sencha Architect along with the Sencha Cmd.
Sencha Touch 2 Local Storage Example
RobK on GitHub provides a Sencha Touch 2.1 LocalStorage example which shows how to use localstorage to provide a fallback / offline mode for mobile apps.
Sencha Touch 2 example of syncing localStorage store with remote JSONP proxy store
On Alex Graham's wordpress blog he provides a Sencha Touch 2 example of syncing localStorage store with remote JSONP proxy store.
Sencha Touch Custom Layout Manager
On Katarina Golbang's WordPress blog she posts about a Sencha Touch Custom Layout Manager.
An alternative to GitHub that provides private Git repositories for up to 5 team members. I have tried it with the Git command line and the Mac app SourceTree and it works great!
Can I use…
Compatibility tables for support of HTML5, CSS3, SVG and more in desktop and mobile browsers.
If you own a small desktop vinyl cutter that use rolls of vinyl like any of the Roland SX/SV series of cutters. You know that cutting long items can get tricky due to feeding the roll back and forth. Basically, it needs to move freely. I have built a cheap solution out of PVC pipe and it works very well for all my cutting jobs and lets the rolls feed with ease.
This is what we are building:
- 4 : PVC T-Joints (1/2")
- 1 : 4' section of PVC Pipe (1/2")
- 4: PVC End Caps (1/2")
- Measuring Tape
- Saw that will cut PVC
DO NOT GLUE YOUR STAND'S PIECES!!! If you glue the whole together you will not be able to pull the support from the T-Joint and put rolls of vinyl on it.
Cut 4 pieces 3.5" long
Cut 2 pieces 6.5" long
Cut 1 piece 20" long
Very basic and very easy to use. You could glue the joints except for the support bar but I did not and have been using one stand for years just on forcing the pieces together.
Thanks for reading and happy vinyl cutting!
One of the things I really like about Sketchup is the ability to create plugins. This has led to a large amount of plugins being developed by the user community. Sketchup plugins are written with a programming language called Ruby and there are sites dedicated to providing lists of the available plugins like SketchUcation (see the plugins link). I use a few plugins in my day to day Sketchup work:
- Random Painter: Select faces, run plugin, then enter any number of RGB numbers. Once you have you have finished entering your colors the plugin will take those colors and randomly assign them to the faces.
- Random - pushpull.rb: Select faces, run plugin, then enter a maximum and a minimum. This will randomly assign sizes to the selected interfaces.
- Woodworx Board Maker Plugin : Enter in your board specs and Sketchup will create the board as a component.
- 3d Shapes: Quickly create a sphere, pyramid or a cone.
- Round Corner: Add rounded or beveled edges to your 3d objects.
- Make Fur : This plugin will let you create blades of grass, fur or just about anything you want to populate as a multitude of items. I have just started playing with this one.
Indigo has released a new version 3 (3.0.14) of their excellent rendering software that can be used along with Google Sketchup 8. This combination of software the rendering somewhat realistic 3d graphics. Indigo provides a Sketchup Exporter which enables quick access to the rendering interface loading your Sketchup file as an .igs render file.
Indigo also provides the capability to setup other machines on your network as rendering slaves. I did discover that you cannot mix Windows and Apple machines together for network rendering. But, I did setup two Macbook Pros to render the above image in almost half the time. Rendering the cube file at that level took one hour but once I implemented the rendering slave it took about 35 minutes to achieve the same level of quality. I could have let it render longer but wanted to make a quick comparison. Indigo will actually keep rendering until you tell it to stop.
Indigo provides a 30 day demo that will render large files. After the 30 days, it only allows a certain maximum file size of around 720K. Great for playing around but if you are going to do commercial work you will need to plunk down the $835.00 plus $270.00 for each slave rendering node. It is the only rendering application that I have found that runs well on Mac while integrating with Sketchup.
More of my renders to appear on this blog.