Saturday, December 31, 2011

Html5 Unobtrusive Form Validation for ASP.NET MVC

I have a project that I was able to make use of modern browsers HTML5 form validation. But I wanted to include the validation that also takes place from within aspnet mvc so there is a unified experience with the validating the form. I took the jquery.unobtrusive-validation.js and made some modifications to it to hook in to the aspnet mvc validation. It is not yet 100%, the “Required” aspnet mvc validation doesn’t seem to “trigger” unless the field is filled out, then attempted to be submitted, and then cleared again, but the default html5 “required” validation message still shows initially. Either way, I figured I would share this and maybe someone could build on it and improve it. Enjoy.

Here are some screenshots of the results.

Failed Regex Validation
image 

Failed Minimum String Length Validation
image 

Failed Remote Password Strength Validation
image

Failed Compare to Password Field Validation
image


Download from Skydrive

Wednesday, December 21, 2011

Visual Studio Achievements app for iPhone

mzl.fkogmsgw.170x170-75A friend of mine liked the idea of the VSA app that I wrote for Android and decided to write an iOS version. It uses the exact same web API that the android version uses so it has the same features like the Leaderboard, viewing achievement details, user details, and marking users as a “favorite”. He also created the 9guy logo you see on the right for the iOS app.

The app will be available for free in iTunes once it passes the Apple approval process.

Now we just have to wait for the Channel9 Team to make the Visual Studio Achievements available to the public.

album[4]

Update: The app has been approved by apple and should appear in the app store any time now.

Update 2: You can now get the iOS version of Visual Studio Achievements in iTunes

Sunday, December 4, 2011

Visual Studio Achievements for Android

feature

View Visual Studio Achievements right on your Android de vices. Don’t let those Windows Phone users have all the fun.

  • View current leaderboard standings
  • View user information on all completed and started achievements
  • View information on each achievement

Once the service is fully launched, other features will come. Including the ability to monitor your achievements and progress, search and view other users achievements, and mark users as a favorite and easily monitor their progress to see if they are catching up to your score.

InlineRepresentation2c1e7a5c-b931-43ad-ab11-d27038087c3b[2]

Thursday, November 24, 2011

Black Friday Web Hosting Sale

Arvixe-Bird-Flying My host, Arvixe, is having a 48 hour Black Friday sale offering 50% off web hosting FOR LIFE. They offer the best options I have ever seen for Windows ASP.NET hosting then any other host for the cost. They also offer Linux hosting at even lower prices then the Windows ASP.NET hosting.

For example, I have unlimited disk space, monthly data transfer, dedicated application pools, domain aliases, subdomains, ftp accounts, pop3/imap email accounts, MySQL databases, ODBC DSNs, and MSSQL 2008 Databases. And I pay ~$8.00 a month. If you use the coupon code “Black Friday”, this will only cost you ~$4.00 a month!

Arvixe has LIVE customer service via phone available 24 hours a day, 7 days a week, 365 days a year. They also have Live Chat available as well. I have never had any issue reaching someone when I had an issue (that was usually my fault). They were always quick in resolving the issue as well as explaining what the cause was.

The coupon code “Black Friday” will be valid from 12:00AM PST Thursday, November 24th 2011 through 11:59:59PM PST Friday, November 25th 2011.

Arvixe Black Friday Sale

Wednesday, November 23, 2011

Mount Manager License 3 Day “Black Friday” Sale!

black_friday-e12890218179751Following the strange times that all the stores seem to be having this Black Friday, I am having my own “Black Friday” sale on the license for Mount Manager. If you buy the license for Mount Manager between now and 11:59PM CST on Friday 11/25/2011, you will save $1.00 on the cost of the license.

If you do not yet see the lower price, try again later, the market has to push the changes out before it takes affect.

Purchase License from the Android Market

Tuesday, November 15, 2011

Eclipse Color Theme

To go along with the other themes that I have posted here in the past based on Coding Instinct, here is a Coding Instinct theme for Eclipse Color Theme. The site also has a download in EPF format (Eclipse Preferences).

java-codinginstinct

Eclipse Color Theme (XML) – for Eclipse Color Theme Plugin
Eclipse Preferences (EPF) – for Eclipse Import

Monday, November 14, 2011

Connecting to Nook Color w/ CyanogenMod7 via ADB over USB

nook-colorThe Nook Color is a great device, especially when CyanogenMod is installed on the device. The only issue I was having with the device, I was unable to connect to the device via ADB over USB.

I followed the steps here, but was still unable to see the device via ADB. After looking through the “fix” that was linked from XDA, I noticed that it modifies, or creates a file in %USERPROFILE%\.android\ called adb_usb.ini. That file contains vendor id’s for the devices and it contains 0x2080. As I was digging around looking to fix this issue, I noticed that in the root of my Android SDK installation there is a folder called .android. In that folder, just like the one in my user profile, there is a file called adb_usb.ini. This file is empty, except a couple comments describing the file. I added the 0x2080 to this file, then I restarted adb by doing an adb kill-server, then an adb start-server.

Now when I do adb devices, I can see the Nook Color and I can perform any adb or shell commands on the device via adb over USB.

Sunday, November 13, 2011

New version of Mount Manager available

I published a new version of Mount Manager last night that addresses some issues along with adding new functionality.

  • Fixed bug when mounting / unmounting a share that contains a “space”
  • Fixed bug when mounting / unmounting when mount point contains a “space”
  • Fixed bug if the share path or mount point contains a trailing slash
  • Changed the default mount point “base” to /sdcard/cifs/ instead of /mnt/cifs/. This eliminates the need to remount / as read/write. If you have mounts already defined to /mnt/cifs/, I suggest that you move them to /sdcard/cifs/ otherwise you will get errors when mounting and you will manually have to remount / as read/write.
  • Added a built-in file/folder browser used for selecting the mount point or browsing for module files to load.
  • Added ability to browse for network shares. Some machines are not browsable, depending on how the shares are set up. In these cases, you will just have to manually enter the share path.
  • Updated the admob library to the latest version.

mm-nui-1 mm-nui-2 mm-nui-3 mm-nui-4 mm-nui-5 mm-nui-6

Friday, August 12, 2011

Getting GPS working again on the Vibrant w/ CM7 nightlies

I love CyanogenMod and I thank all of them for their hard work that they do for basically nothing except the “thrill”. I have been using that since the very first version on my HTC ADP1. Then I bought the Samsung Galaxy S Vibrant from T-Mobile and CM was not available for the device. I stuck with the “Stock” Samsung TouchWiz UI that I made some tweaks to here and there to get a better experience for myself. I did things like rooting the device, adding the CarDock, removing the crap software that I don’t ever use, removed the “WorldClock” and added the stock Alarm Clock and other things here and there.

The GPS on this device has always been a topic of discussion, as there were issues with it from launch. It would take up to 10 minutes or more, to get a lock, and once you got the lock, you would probably lose it. There were people much smarter then me that found ways to make the GPS usable on the Stock TouchWiz UI.

After some time, Team Whiskey released the Bionix ROM. This was/is a ROM still based off the TouchWiz version of Android at its core, but was a better experience as it included functionality that was not in stock TouchWiz, and it didn’t include the bloatware. The biggest thing that Team Whiskey brought to the Vibrant with Bionix was Voodoo. Now, I know they did not create Voodoo, and other ROMs had support too, but I am just babbling about what Bionix did for me. I ran this ROM for some time, and a mod that I created that brought the Gingerbread keyboard with working the hepatic feedback to FroYo ROM is even included in the distribution. But there was still something missing for me.

I believe, at least for me, that the Vanilla Android is a better user experience, and the CM modifications, is that experience, plus more for your “die-hard” android users. I would go to the CyanogenMod website often to see if there was any developments on getting a build of CM running on the Vibrant. Now, you may read this and say “It ran on the Vibrant for a while”, and that is true, but the steps needed to install it on the device was a pain in the ass, not to mention that there were a lot of things that were not working. These are the things that kept me on Bionix. Then the CM team that work on the Vibrant (and other Galaxy S devices too) got the install process to be a lot less of a pain. At that time, I decided to give it a try, and I knew that GPS, among some other bugs existed.

Then shortly after I started flashing these unofficial builds of CM, the nightlies started. At the time of this post, they have over 75 nightlies, but there are still some issues with it, including GPS. Which brings me to the actual title of this post. I found this thread over on XDA by stricklyrude27. He put together a set of scripts and files and steps that were created by other people (see thread for their credit) and placed them in to a single update.zip package.

I am running CM7.1-N76 with the GPSFix v1.4 and GPS works great. I get a lock in just a couple of seconds. If you are running CM7 on your Vibrant, head over to the thread and give it a try, at least until an official CM7 solution comes about.

Thank you to all that contribute to the CyanogenMod and especially to the SGS Team, also thanks to all that were involved in getting this fix working too. The android community is great and love that just about always, a solution to any issue is found.

Thursday, August 11, 2011

Logitech Revue and Acoustic Research XSight Touch

Yesterday was a good gadget day for me. Both my Logitech Revue and Acoustic Research XSight Touch arrived in the mail.

logitech-revue-8So far I like the Revue. $99 is a much better price for that device, I don't know if I would have been too happy if I paid the $249 for it. What I really want is ADB access to it, or I would settle for the Android Market. It needs "more" apps. My TV has more apps then the Revue, but I really like Chrome and the Logitech Media Player (I think its just a DLNA client). It works well, I watched a couple videos streamed from my PC to the Revue and used TVersity to do the transcoding.

The Netflix app is what you would expect, actually, it is the exact same app that is on my Vizio TV. The gallery app will pull down your images from Picasa.

I also like the Queue, but I will probably use it more for NetCasts like TWiT and TWiG. The Queue does fall a little short when it comes to searching for NetCasts. There is no way to manually type in the RSS feed in the Queue, and some that I searched for, like TWiG, would only give me the audio feed. You can get around this limitation by opening up Chrome and visit the NetCast site and select the RSS icon in the Search bar, or open the RSS feed directly if it is available. This will open up the Queue subscription option screen.

I am very eager for the Market to come to the Revue. I can’t wait to start writing Android applications for this and other Google TV enabled devices.

I still have a lot of playing around to do with the Revue, but so far, I am of the opinion that it is well worth the $99. If you don't have one, and thought about getting one before, I say go get it now.

 

acoustic-research-xsight-charging-cradleThat brings me to the AR XSight Touch Universal Remote. I got the XSight Touch off Woot.com when they had it on there about a week or so ago. It was a good deal, they retailed for about $250, but Amazon has them now for about $75. Woot had them for $40 with shipping.

The remote will control up to 18 different devices and has a 2.2" Color LCD touch display. It has built in 433 MHz RF but requires an accessory to make use of that. The buttons are back-lit and are easy to see in the dark. The remote as an accelerometer of some sort, as it will automatically turn on the display and key lights when the device is picked up. It comes with a lithium-ion battery and a dock for charging the remote. The remote can "learn" from other IR remotes, programmed via the remote itself, or you can program it using an online tool with a huge collection of devices in their database.

Setup was pretty easy, I did one device from the remote, and 2 more from the website. The website tool did seem a little slow, but I hope it was because all the "wooters" were trying to setup their devices. The website saves your configuration so if the remote loses its configuration, it can be easily restored. You can also setup "key macros" so you can easily turn on/off a range of devices with one key press. It can even control some home automation stuff, like security systems, lighting, etc. I have mine set up to control my Vizio TV, Xfinity HD Cablebox and Xbox 360.

Overall, I am happy with the XSight, and I will be using that as my main remote for the TV/Cable, and the Revue keyboard will be when I want to actually make use of the Google TV functionality.

Logitech Revue w/ Google TV - http://amzn.to/pulB7a
XSight Touch Universal Remote - http://amzn.to/oFHrNE

Saturday, July 2, 2011

PowerShell Script to pull Album Art for missing directories

I recently went and downloaded Album Art Downloader to get some missing album art for some of the albums I have. But I quickly noticed that it would be a manual process to find the directories that needed the art added, and I am lazy.

Luckily there is a command line interface for AAD. But that alone would not accomplish what I wanted to do. I figured now would be a good time to try my hand at a powershell script.

This script will take each artist/album and use AAD to get album art and save it as folder.jpg. The script expects the root directory to contain “artist/album” hierarchy.

You will have to change the “root” and possibly the location of the aad.exe.

Wednesday, May 25, 2011

Droid Explorer 1.0 on Non-Rooted Devices

I hit somewhat of a milestone today. I got the Droid Explorer 1.0 branch to build. Not only that, about 90% of the communication from Droid Explorer and the device is now done through MadBee. That’s the Managed Android Debug Bridge, if you were not aware. MadBee is basically an enhanced port of the Android Debug Bridge library that ships as part of the Android SDK. There are other features that I have added to it, like the ability to check if the device has BusyBox, or if the device can execute SU commands.

MadBee is available from NuGet, but is still very young. I occasionally notice some issues with how things work while using it as the “power” behind Droid Explorer, and go in and make some modifications. But I always update on NuGet, but that means I may update there often.

What, exactly does MadBee mean for Droid Explorer? Well, I am glad I asked. MadBee is the link between the device and Droid Explorer. Since it is based off the original Android Debug Bridge, it was initially meant for non-rooted devices. It has always been my intentions, and goal, to have Droid Explorer working on ALL devices, not just rooted ones. MadBee helps make that happen. Now, MadBee does not circumvent any security that is already in place on your device, so if you don’t have a rooted device, you will not be able to perform any tasks that would require root, like remount /system with read-write.

There is still a lot of work to be done before this build of Droid Explorer will be ready for the public, but here is a teaser of Droid Explorer connected to a non-rooted Galaxy Tab.

de-on-unrooted-gtab

Wednesday, May 18, 2011

The spirit of Android is piracy?

JackI have voiced my opinions a couple of times about the use of Ad Blocking tools on android devices and how they are a form of Piracy. I am a software developer by trade and I write software to make money. Any software that I release is written in my “spare time”, which is limited, having 3 children between 12 and 17. I do not write software strictly for fun, but I do usually enjoy doing it.

Initially, when the Android Market launched, there was no way for developers to sell their applications. They had to be free. Over time, Google implemented solutions to allow developers to charge for their applications. A lot of developers still offer a free version, that is usually limited in functionality or ad-supported. The key word that is “Ad-Supported”. This means the developer is putting the application on the Android Market at zero monetary cost to the user, but still is looking to generate some revenue from the application via advertising. Users were “spoiled” by the early days of the Android Market. When developers started charging for applications twitter and other social media outputs were populated with complaints about having to pay $0.99USD for an application.

Let’s take a little look at the most common price point of an application, $0.99USD. That is cheaper then a bottle of soda pop, cup of coffee, a McDonalds McChicken and even a candy bar. The minimum wage, in the state of Illinois, is $8.25 per hour, so a person working a place like McDonalds, makes at least that to make your McChicken. Now, myself, when I freelance for a client, I charge $90.00USD per hour, minimum. So if I sell my application for $0.99USD, and it takes me 20 hours of development, testing, etc, to build and release the application (which it could really take a lot more, depending on the application), I would have to sell ~2609 licenses of the software title before I actually started to make a “profit” from the application. Why ~2609, when 90 * 20 = 1800 and 1800 / 0.99 = ~1818? Well, of that $0.99USD, Google takes $0.30USD off the top, so I am only making $0.69USD for each license sold. If the application is free, the ROI from advertising, usually, is a lot lower, unless you have a “hit” application that sees millions of downloads. But it does still generate some revenue for the developer.

Just the other day, I received an email from a user of one of my applications that I check for software on the Android device that is know to “block ads”. He voiced how he was upset that I would actually stop my application from being usable if there is “ad blocking” software installed on the device.

I just wanted to email you to let you know how much I loved the application. I tried it out after freezing [ad blocking app] just so I could give it a try. I REALLY wanted to buy this app but I really couldn't justify buying it from a developer who tells me what I can and cant run on my device. This goes against the whole spirit of android. I'm sorry that I will not be able to purchase your product at this time and will have to go with other solution even if it is less advanced. If you ever decide to change your app so people can try it freely without having to uninstall other programs I would be more than glad to buy it.

One of the key statements in that email that caught my attention is “This goes against the whole spirit of android.”. Is the spirit of Android to steal or does this person mean because Android is open source that he should be able to block my ads? Let me point out, just because something is open source, doesn’t mean it is free, or that everything associated with it is free. Just because Android is open source, do you think that Google just lets the phone manufactures and the mobile carriers have the “with Google” apps like the Android Market, Gmail, YouTube, etc. for Free? I can tell you, with 100% certainty, they do not. Those applications, and the “with Google” are licensed to the manufacturers/carriers, for a fee. Another example is MySql, an open source database engine, they have “Enterprise” versions that range from $2,000.00USD to $10,000.00USD, per server, per year. So just because something is open source doesn’t mean that it is Free. Also, just because Android is open source, does not mean the software that developers write for the platform are also open source or Free.

Tuesday, May 17, 2011

Droid Explorer 0.8.8.2 Released

sgstabshotdeviceselectiondialogI released an update to Droid Explorer today that addresses some needed issues.

  • New Device selection dialog
  • all assemblies are now signed again
  • fixed the "runner" so apk's can now be installed from the machine (along with the other plugins)
  • when upgrading, and using an existing SDK, the value will now be pulled from the registry, if it exists.
  • fixed bug in uninstall that would remove the sdk, even if you used an existing sdk
  • removed anda.pk plugin since the site is dead.
  • added a link in the bootstrapper (installer) to download the sdk.
  • refactored some strings to the external resources files in the bootstrapper (installer)
  • changed the reboot commands to use the adb commands, not the shell commands
  • fixed rm command to now use busybox as it was passing args that are not supported on the "stock" rm command.
  • added the sph-p100 (Sprint Samsung Galaxy Tab) device icon

 

Download Droid Explorer v0.8.8.2

CyanogenMod 7 on Galaxy S Vibrant

CM7_256_072The nightly builds for CyanogenMod 7 for Samsung Galaxy S line of devices is now available via Rom Manager. It is now a “Single Update” install, 2 if you want to add gapps.

Here are some of the issues I had when doing the install, and how I worked around them.

  • Follow the instructions Here and Read the FAQ here. This is just a “helper” for some of the issues I had, not a replacement or step by step.
  • You will need to be able to get in to the Recovery via the 3 Button Method. If you cannot, then you will have problems.
  • Before you start with ROM Manager, you need to download the gapps package and place it on the internal sdcard. You cannot use ROM Manager to install the gapps, it will not work.
  • The easy part is installing CM7 from ROM Manager. Open up Rom Manager and download the CM ROM
  • ROM Manager will now download the ROM. Once completed, it will prompt you to wipe data and cache and backup. You should do them ALL. Then Click OK.
  • The device will reboot and it will install the CM package. Be patient, it can take a while.
  • Once the device is rebooted you will want to turn the device off. DO NOT USE ROM Manager, or any other shiny thing, to get in to the recovery, it will not work correctly.
  • Power the device back on using the 3 Button Recovery method. Hold down Vol+ & Vol- & Power. Once you see the “Vibrant” Screen release ONLY THE POWER button.
  • Now that you are in Clockwork, select install package from sdcard and select the gapps package you downloaded before you started.
  • Reboot your device and enjoy.
  • Update: If your PC does not recognize your device any more, you need to install the Google USB Drivers.

I forgot how much I missed using AOSP + the things that the CM team adds to the party. Being stuck using TouchWiz for so long, it is like getting a new phone again. Even if you run ROMs like Trigger or Bionix, you are still stuck with the TouchWiz additions.

Thanks TeamHackSung, my Galaxy S is happy now.

Wednesday, May 4, 2011

I always feel like, somebody’s watching me…

1984-bookThere has been a lot of news lately about Android devices logging, and reporting GPS information back to Google. Not to mention the same thing going on with the iPhone. Two women from Michigan have even filed a Class Action suite against Google. I think this is ridiculous! Of course they are reporting your location back to Google/Apple. How do you think they can give you maps with your current location? Or even Turn-By-Turn directions… How about when you “check in” on Facebook, how do you think they know your location? You give it to them with the GPS coordinates.

Ok, you may argue that “you are giving them permission” when you get directions, or check in to Facebook, but you already gave Google permission also when you set up your phone and the little checkbox that said “provide Google with location data” was checked, or when you downloaded an application and it said one of the “permissions” that is uses is “GPS Location”.

Let me talk about this GPS data that everyone is talking about. Google, and Apple for that matter, couldn’t care less about where you are. What they actually care about is that you will continue to use their products, so they use your data to make the experience better, for you. That location data that you are so worried about is telling Google where WiFi access points are and cell towers are in regards to your location. This information is used so when you fire up Google Maps, or Google Navigation, they can quickly pinpoint your location, even if you don’t yet have a GPS lock. If they did not have this data, the time it would take for you to get your location and the information you want to know, like where you are going, would take way longer.

If you don’t want your device to report GPS info, there is a quick and easy “opt out”, don’t turn on your GPS, and also turn off “use wifi to find your location”. Also, when you set up your device, uncheck the option to send the data to Google. If you want someone to “worry” about, worry about companies like AT&T and Verizon, for example, that know, basically, where you are at all times of the day, even if you turn off your GPS. They know exactly what cell towers you are in range of at any given time of day. Where is the case against them asking how they use this data and if they store it.

I like the benefits that I get out of having the data sent. I use Google Maps, and Navigation all the time, if you don’t use it, or don’t want your data “sent” then don’t send it, but don’t screw things up for the people that do use it, and don’t think it’s 1984.

Tuesday, April 26, 2011

Droid Explorer 0.8.8.1

Since the release of version 0.8.8.0 a few days ago, some users have reported an error during the install of Droid Explorer. I have identified the issue and have published a release addressing this. A couple other minor changes are in there too, along with icon support for additional devices. Finally, the use of an existing SDK is now the default, and recommended option during the install.

Download Droid Explorer 0.8.8.1

Friday, April 22, 2011

Droid Explorer 0.8.8.0 Released

explorer-viewLast night I released a new version of Droid Explorer that addresses some major issues that were introduced with the latest versions of the SDK.

  • Fixed the issue with the latest android SDK using “platform-tools” directory instead of “platforms/android-{platformversions}/tools”.
  • Fixed the screen shot tool to support newer devices (some are now using 32bpp RGB, instead of 16bpp RGB565)
  • Fixed an issue with the Bart plugin license not being detected on the device.
  • Fixed the console not working on some devices.
  • Added Device icons for the LG G2X and Samsung Galaxy S variants.
  • The Google USB drivers have been removed from the installer
  • Use existing SDK is now the default and recommended option
  • Other minor fixes

Download Droid Explorer 0.8.8.0

As always, there are x86 and 64 bit versions available.

The Standalone version is an “Offline Installer” where the other can download additional files (if you are not using an existing SDK).

The last release of Droid Explorer (0.8.7.2) has ~139,000 downloads since August 21 2010, exactly eight months ago. The plan is for more releases of Droid Explorer, in much shorter time frames again. So lets see if the 0.8.8.0 can exceed the number of downloads before the next release (I doubt it will happen Smile)

Wednesday, April 20, 2011

Droid Exporer Update

It has been a while since there has been any real progress on Droid Explorer. We now have a couple other active developers on the project, one of which is working on a Mono port of the Droid Explorer.

We have also started integrating Mad Bee (Managed Android Debug Bridge) in to the core of Droid Explorer. What does that mean, you ask? Well, it means, that there will be more support for devices, including devices that are NOT ROOTED. Obviously, you will not have the functionality that requires root, but you will have everything else. This is an on going process, so initially, support for non-rooted devices may not exist, as it is now in Droid Explorer.

I have also started to make some needed changes to address the issues with using the latest android SDK, since google decided to change the location of where the platform tools reside, and moving ADB in to the new location. The screenshot plug has had some minor fixes as well, so more devices should now successfully take screenshots.

Keep your eyes open for version 0.8.8.0 release this week, maybe even as early as tonight.

Sunday, March 20, 2011

Ad-Blocking in Apps is Piracy

I recently received some negative feedback on Mount Manager in the Android Market regarding my strict identification of ad-blocking applications.

The user said:

While I understand where the dev is coming from, the ad blocking restriction on this app is ridiculous. Ryan Conrad needs to understand that he is only encouraging piracy in his own app. Apps like this hurt the dev community for android.

This is not the first time that someone has complained about having to remove their ad-blocking software in order to use Mount Manager. Also keep in mind, this restriction is ONLY in place on the free version, if you purchase a license, you can use ad-blockers if you choose.

I feel very strongly against the use of ad-blocking, especially in applications. The ads that are displayed, potentially, generate revenue for the developer. If you have software that blocks these advertisements, you are preventing the developer to earn revenue, and thus committing piracy.

You probably completely disagree with me. You think ads in applications are annoying and get in the way and you never click on them any how, right?

Ok, well, Mount Manager, like many other applications, offers an ad free version, that also includes other features. But guess what, it isn’t free! I understand that you don’t want to see the ads, even if you never plan on clicking on them, and I offer a way for that to happen, while still allowing me, as the developer, to earn some revenue from the application. Remember back in the day, you had NetZero (it was actually free at one time), a free internet service provider. But guess what, they loaded advertisements up on your screen that were there while you were connected to their service. If you didn’t want to see the ads, guess what you had to do, that’s right, you had to pay for internet service.

So, that is my stance on ad-blocking applications for use with applications. I don’t expect it to change either. As long as I write applications, that display advertisements, I will have code that blocks the ad-blockers… I actually think it is sort of funny that people are mad that I have an “ad-blocker blocker”.

Friday, March 4, 2011

1Way Licensing by Atma Software

key1I will start this post by saying that I am, in no way, associated with 1Way or Atma Software. I just think it is a great product and more developers, especially independent ones, should know about this product.

1Way is an ActiveX Licensing component by Atma Software. The product offers a secure and flexible way to create time limited trial versions of your products at a very affordable price. License Keys (Serial Numbers) can be generated to unlock the product. It is also flexible enough to allow you to unlock “parts” of your application if you choose too.

It has basically “drop in” support for online validation for your licenses on your own website, which allows you to limit the number of computers that can use a particular serial number and track the serial usage.

256-bit AES encryption, SHA-256 hashes and data redundancy are used for all information that is saved.

Since it is an ActiveX component, it is easy to implement in almost any programming language. Including C#, VB.NET, C++, Java, PHP, Delphi, Python, just to name a few.

Some Features

  • Registration can be permanent or they can expire
  • Serial Numbers can be set to expire.
  • Works on all versions of Windows
  • Users cannot get a new trial period by reinstalling
  • 1Way checks for changes in the System Date
  • Trial periods can be extended and registrations changed via serials
  • 1Way is entirely under your own control

You can purchase 1Way for a single individual, or a company with less then 3 employees for $39.00 USD, or a Commercial License, for a company employing more then 3 employees, for $89.00 USD.

You will not find a product that works this well, this flexible, and with the great support that Atma Software offers for anywhere near this price.

Saturday, February 26, 2011

Mount Manager License

The $2.99 price for Mount Manager License was originally just a discounted price for the first 100 sales. I have decided to extend this sale price indefinitely. This price seems very far, and a good price point. So the permanent price of Mount Manager License is $2.99.

I would like to thank everyone that has reported any issues in Mount Manager and helped make it a better product. You are the reason that the product is keeping this discounted price.

Thursday, January 13, 2011

Mount Manager + Locale / Tasker

The latest version, just published on the Android Market contains a new feature for licensed users. You can now use Locale / Tasker to automate the mounting or unmounting of your shares.

By setting up your conditions, like using the Wifi Connection plug-in, you can set shares to mount when you are connected to a specific wifi network, or unmount others.

Mount Manager Mount Manager License

The license is currently available for $2.99 for the first 100 sold. After that, the regular price of the license is $4.99.

Wednesday, January 12, 2011

Mount Manager License on Sale

The Mount Manager License that removes the advertisements from the application, plus will enable the Locale/Tasker plug-in once completed, is now on sale in the android market.

Mount Manager Mount Manager License

The price of the license is $4.99, but for the first 100 people that purchase the license it is available at a discounted price of $2.99. The license will guarantee that you have access to all the features in Mount Manager.

The application is fully functional as it is, but the license will enable other features, plus remove the ads.

Monday, January 10, 2011

Check if the user is running AdBlock

A lot of applications on the android market use admob, or some other advertising method to keep the application free but still be able to generate some revenue. The ads are good for both the developer and the user. It generates revenue for the developer, and gives the user relevant advertising.

There is an application, which was recently pulled off the android market, called AdBlock that blocks these advertisers from displaying ads. This application can be a thorn in the side of the developers, as it is hindering income that the developer could be receiving.

Now you could probably argue that these people that run AdBlock wouldn’t click on the ads any how, and for the most part, that is probably true. But at the same time, a lot of applications on the market offer a license key or some other way to remove the ads from the application buy paying the developer a small fee. If the user is running AdBlock, they are circumventing this licensing model and in a way, stealing the application.

One of the great things about android is the ability to launch other intents. And by having this ability, we can check if the user has AdBlock installed. If they have it installed, we can then render the application useless until they remove AdBlock, or purchase the license.

This code block below will check if the user is running AdBlock, if they are, it will display an alert dialog and launch the market to purchase a license, or they can close the application.

private static void performCheck ( final Activity activity ) {
PackageManager pm
= activity.getPackageManager ();
Intent intent
= pm.getLaunchIntentForPackage ( "de.ub0r.android.adBlock" );
if ( Reflection.isPackageInstalled ( activity, intent ) ) {
new AlertDialog.Builder ( activity )
.setTitle (
"License Required" )
.setMessage (
"Since you are running software to "
+ "block the ads that keep this software free, you must purchase a "
+ "license to use this software from "
+ "the android market." )
.setPositiveButton ( android.R.
string.ok, new DialogInterface.OnClickListener () {
@Override
public void onClick ( DialogInterface dialog, int which ) {
Reflection.launchMarketDetails ( activity, Reflection.getPackageName ( activity )
+ ".license" );
activity.finish ();
}
} ).setNegativeButton ( android.R.
string.cancel, new DialogInterface.OnClickListener () {
@Override
public void onClick ( DialogInterface dialog, int which ) {
Toast
.makeText (
activity,
"You will not be able to use this application until a license is purchased or the ad "
+ "blocking is removed.",
Toast.LENGTH_LONG ).show ();
activity.finish ();
}
} ).show ();
}
}

Wednesday, January 5, 2011

Mount Manager Now Available

I just released the first version of Mount Manager. A tool to manage mount points on your android device. Mainly geared towards CIFS, but I will be expanding to other file system types in the future. The application is available for free on the android market. There will be a license in the near future that will remove ads and possibly enable additional features.

device3 

You can easily add/edit your cifs mounts and see the amount of space used/free on the share.

device1 device9 device2 

Some devices do not come with support for CIFS out of the box, so in order to account for that, the application has the ability to load modules in order to add the file system support.

device6  device8

These modules can be added and removed from the interface as well.

device7 device4 device5

Html5 Unobtrusive Form Validation for ASP.NET MVC

I have a project that I was able to make use of modern browsers HTML5 form validation. But I wanted to include the validation that also takes place from within aspnet mvc so there is a unified experience with the validating the form. I took the jquery.unobtrusive-validation.js and made some modifications to it to hook in to the aspnet mvc validation. It is not yet 100%, the “Required” aspnet mvc validation doesn’t seem to “trigger” unless the field is filled out, then attempted to be submitted, and then cleared again, but the default html5 “required” validation message still shows initially. Either way, I figured I would share this and maybe someone could build on it and improve it. Enjoy.

Here are some screenshots of the results.

Failed Regex Validation
image 

Failed Minimum String Length Validation
image 

Failed Remote Password Strength Validation
image

Failed Compare to Password Field Validation
image


Download from Skydrive

Visual Studio Achievements app for iPhone

mzl.fkogmsgw.170x170-75A friend of mine liked the idea of the VSA app that I wrote for Android and decided to write an iOS version. It uses the exact same web API that the android version uses so it has the same features like the Leaderboard, viewing achievement details, user details, and marking users as a “favorite”. He also created the 9guy logo you see on the right for the iOS app.

The app will be available for free in iTunes once it passes the Apple approval process.

Now we just have to wait for the Channel9 Team to make the Visual Studio Achievements available to the public.

album[4]

Update: The app has been approved by apple and should appear in the app store any time now.

Update 2: You can now get the iOS version of Visual Studio Achievements in iTunes

Visual Studio Achievements for Android

feature

View Visual Studio Achievements right on your Android de vices. Don’t let those Windows Phone users have all the fun.

  • View current leaderboard standings
  • View user information on all completed and started achievements
  • View information on each achievement

Once the service is fully launched, other features will come. Including the ability to monitor your achievements and progress, search and view other users achievements, and mark users as a favorite and easily monitor their progress to see if they are catching up to your score.

InlineRepresentation2c1e7a5c-b931-43ad-ab11-d27038087c3b[2]

Black Friday Web Hosting Sale

Arvixe-Bird-Flying My host, Arvixe, is having a 48 hour Black Friday sale offering 50% off web hosting FOR LIFE. They offer the best options I have ever seen for Windows ASP.NET hosting then any other host for the cost. They also offer Linux hosting at even lower prices then the Windows ASP.NET hosting.

For example, I have unlimited disk space, monthly data transfer, dedicated application pools, domain aliases, subdomains, ftp accounts, pop3/imap email accounts, MySQL databases, ODBC DSNs, and MSSQL 2008 Databases. And I pay ~$8.00 a month. If you use the coupon code “Black Friday”, this will only cost you ~$4.00 a month!

Arvixe has LIVE customer service via phone available 24 hours a day, 7 days a week, 365 days a year. They also have Live Chat available as well. I have never had any issue reaching someone when I had an issue (that was usually my fault). They were always quick in resolving the issue as well as explaining what the cause was.

The coupon code “Black Friday” will be valid from 12:00AM PST Thursday, November 24th 2011 through 11:59:59PM PST Friday, November 25th 2011.

Arvixe Black Friday Sale

Mount Manager License 3 Day “Black Friday” Sale!

black_friday-e12890218179751Following the strange times that all the stores seem to be having this Black Friday, I am having my own “Black Friday” sale on the license for Mount Manager. If you buy the license for Mount Manager between now and 11:59PM CST on Friday 11/25/2011, you will save $1.00 on the cost of the license.

If you do not yet see the lower price, try again later, the market has to push the changes out before it takes affect.

Purchase License from the Android Market

Eclipse Color Theme

To go along with the other themes that I have posted here in the past based on Coding Instinct, here is a Coding Instinct theme for Eclipse Color Theme. The site also has a download in EPF format (Eclipse Preferences).

java-codinginstinct

Eclipse Color Theme (XML) – for Eclipse Color Theme Plugin
Eclipse Preferences (EPF) – for Eclipse Import

Connecting to Nook Color w/ CyanogenMod7 via ADB over USB

nook-colorThe Nook Color is a great device, especially when CyanogenMod is installed on the device. The only issue I was having with the device, I was unable to connect to the device via ADB over USB.

I followed the steps here, but was still unable to see the device via ADB. After looking through the “fix” that was linked from XDA, I noticed that it modifies, or creates a file in %USERPROFILE%\.android\ called adb_usb.ini. That file contains vendor id’s for the devices and it contains 0x2080. As I was digging around looking to fix this issue, I noticed that in the root of my Android SDK installation there is a folder called .android. In that folder, just like the one in my user profile, there is a file called adb_usb.ini. This file is empty, except a couple comments describing the file. I added the 0x2080 to this file, then I restarted adb by doing an adb kill-server, then an adb start-server.

Now when I do adb devices, I can see the Nook Color and I can perform any adb or shell commands on the device via adb over USB.

New version of Mount Manager available

I published a new version of Mount Manager last night that addresses some issues along with adding new functionality.

  • Fixed bug when mounting / unmounting a share that contains a “space”
  • Fixed bug when mounting / unmounting when mount point contains a “space”
  • Fixed bug if the share path or mount point contains a trailing slash
  • Changed the default mount point “base” to /sdcard/cifs/ instead of /mnt/cifs/. This eliminates the need to remount / as read/write. If you have mounts already defined to /mnt/cifs/, I suggest that you move them to /sdcard/cifs/ otherwise you will get errors when mounting and you will manually have to remount / as read/write.
  • Added a built-in file/folder browser used for selecting the mount point or browsing for module files to load.
  • Added ability to browse for network shares. Some machines are not browsable, depending on how the shares are set up. In these cases, you will just have to manually enter the share path.
  • Updated the admob library to the latest version.

mm-nui-1 mm-nui-2 mm-nui-3 mm-nui-4 mm-nui-5 mm-nui-6

Getting GPS working again on the Vibrant w/ CM7 nightlies

I love CyanogenMod and I thank all of them for their hard work that they do for basically nothing except the “thrill”. I have been using that since the very first version on my HTC ADP1. Then I bought the Samsung Galaxy S Vibrant from T-Mobile and CM was not available for the device. I stuck with the “Stock” Samsung TouchWiz UI that I made some tweaks to here and there to get a better experience for myself. I did things like rooting the device, adding the CarDock, removing the crap software that I don’t ever use, removed the “WorldClock” and added the stock Alarm Clock and other things here and there.

The GPS on this device has always been a topic of discussion, as there were issues with it from launch. It would take up to 10 minutes or more, to get a lock, and once you got the lock, you would probably lose it. There were people much smarter then me that found ways to make the GPS usable on the Stock TouchWiz UI.

After some time, Team Whiskey released the Bionix ROM. This was/is a ROM still based off the TouchWiz version of Android at its core, but was a better experience as it included functionality that was not in stock TouchWiz, and it didn’t include the bloatware. The biggest thing that Team Whiskey brought to the Vibrant with Bionix was Voodoo. Now, I know they did not create Voodoo, and other ROMs had support too, but I am just babbling about what Bionix did for me. I ran this ROM for some time, and a mod that I created that brought the Gingerbread keyboard with working the hepatic feedback to FroYo ROM is even included in the distribution. But there was still something missing for me.

I believe, at least for me, that the Vanilla Android is a better user experience, and the CM modifications, is that experience, plus more for your “die-hard” android users. I would go to the CyanogenMod website often to see if there was any developments on getting a build of CM running on the Vibrant. Now, you may read this and say “It ran on the Vibrant for a while”, and that is true, but the steps needed to install it on the device was a pain in the ass, not to mention that there were a lot of things that were not working. These are the things that kept me on Bionix. Then the CM team that work on the Vibrant (and other Galaxy S devices too) got the install process to be a lot less of a pain. At that time, I decided to give it a try, and I knew that GPS, among some other bugs existed.

Then shortly after I started flashing these unofficial builds of CM, the nightlies started. At the time of this post, they have over 75 nightlies, but there are still some issues with it, including GPS. Which brings me to the actual title of this post. I found this thread over on XDA by stricklyrude27. He put together a set of scripts and files and steps that were created by other people (see thread for their credit) and placed them in to a single update.zip package.

I am running CM7.1-N76 with the GPSFix v1.4 and GPS works great. I get a lock in just a couple of seconds. If you are running CM7 on your Vibrant, head over to the thread and give it a try, at least until an official CM7 solution comes about.

Thank you to all that contribute to the CyanogenMod and especially to the SGS Team, also thanks to all that were involved in getting this fix working too. The android community is great and love that just about always, a solution to any issue is found.

Logitech Revue and Acoustic Research XSight Touch

Yesterday was a good gadget day for me. Both my Logitech Revue and Acoustic Research XSight Touch arrived in the mail.

logitech-revue-8So far I like the Revue. $99 is a much better price for that device, I don't know if I would have been too happy if I paid the $249 for it. What I really want is ADB access to it, or I would settle for the Android Market. It needs "more" apps. My TV has more apps then the Revue, but I really like Chrome and the Logitech Media Player (I think its just a DLNA client). It works well, I watched a couple videos streamed from my PC to the Revue and used TVersity to do the transcoding.

The Netflix app is what you would expect, actually, it is the exact same app that is on my Vizio TV. The gallery app will pull down your images from Picasa.

I also like the Queue, but I will probably use it more for NetCasts like TWiT and TWiG. The Queue does fall a little short when it comes to searching for NetCasts. There is no way to manually type in the RSS feed in the Queue, and some that I searched for, like TWiG, would only give me the audio feed. You can get around this limitation by opening up Chrome and visit the NetCast site and select the RSS icon in the Search bar, or open the RSS feed directly if it is available. This will open up the Queue subscription option screen.

I am very eager for the Market to come to the Revue. I can’t wait to start writing Android applications for this and other Google TV enabled devices.

I still have a lot of playing around to do with the Revue, but so far, I am of the opinion that it is well worth the $99. If you don't have one, and thought about getting one before, I say go get it now.

 

acoustic-research-xsight-charging-cradleThat brings me to the AR XSight Touch Universal Remote. I got the XSight Touch off Woot.com when they had it on there about a week or so ago. It was a good deal, they retailed for about $250, but Amazon has them now for about $75. Woot had them for $40 with shipping.

The remote will control up to 18 different devices and has a 2.2" Color LCD touch display. It has built in 433 MHz RF but requires an accessory to make use of that. The buttons are back-lit and are easy to see in the dark. The remote as an accelerometer of some sort, as it will automatically turn on the display and key lights when the device is picked up. It comes with a lithium-ion battery and a dock for charging the remote. The remote can "learn" from other IR remotes, programmed via the remote itself, or you can program it using an online tool with a huge collection of devices in their database.

Setup was pretty easy, I did one device from the remote, and 2 more from the website. The website tool did seem a little slow, but I hope it was because all the "wooters" were trying to setup their devices. The website saves your configuration so if the remote loses its configuration, it can be easily restored. You can also setup "key macros" so you can easily turn on/off a range of devices with one key press. It can even control some home automation stuff, like security systems, lighting, etc. I have mine set up to control my Vizio TV, Xfinity HD Cablebox and Xbox 360.

Overall, I am happy with the XSight, and I will be using that as my main remote for the TV/Cable, and the Revue keyboard will be when I want to actually make use of the Google TV functionality.

Logitech Revue w/ Google TV - http://amzn.to/pulB7a
XSight Touch Universal Remote - http://amzn.to/oFHrNE

PowerShell Script to pull Album Art for missing directories

I recently went and downloaded Album Art Downloader to get some missing album art for some of the albums I have. But I quickly noticed that it would be a manual process to find the directories that needed the art added, and I am lazy.

Luckily there is a command line interface for AAD. But that alone would not accomplish what I wanted to do. I figured now would be a good time to try my hand at a powershell script.

This script will take each artist/album and use AAD to get album art and save it as folder.jpg. The script expects the root directory to contain “artist/album” hierarchy.

You will have to change the “root” and possibly the location of the aad.exe.

Droid Explorer 1.0 on Non-Rooted Devices

I hit somewhat of a milestone today. I got the Droid Explorer 1.0 branch to build. Not only that, about 90% of the communication from Droid Explorer and the device is now done through MadBee. That’s the Managed Android Debug Bridge, if you were not aware. MadBee is basically an enhanced port of the Android Debug Bridge library that ships as part of the Android SDK. There are other features that I have added to it, like the ability to check if the device has BusyBox, or if the device can execute SU commands.

MadBee is available from NuGet, but is still very young. I occasionally notice some issues with how things work while using it as the “power” behind Droid Explorer, and go in and make some modifications. But I always update on NuGet, but that means I may update there often.

What, exactly does MadBee mean for Droid Explorer? Well, I am glad I asked. MadBee is the link between the device and Droid Explorer. Since it is based off the original Android Debug Bridge, it was initially meant for non-rooted devices. It has always been my intentions, and goal, to have Droid Explorer working on ALL devices, not just rooted ones. MadBee helps make that happen. Now, MadBee does not circumvent any security that is already in place on your device, so if you don’t have a rooted device, you will not be able to perform any tasks that would require root, like remount /system with read-write.

There is still a lot of work to be done before this build of Droid Explorer will be ready for the public, but here is a teaser of Droid Explorer connected to a non-rooted Galaxy Tab.

de-on-unrooted-gtab

The spirit of Android is piracy?

JackI have voiced my opinions a couple of times about the use of Ad Blocking tools on android devices and how they are a form of Piracy. I am a software developer by trade and I write software to make money. Any software that I release is written in my “spare time”, which is limited, having 3 children between 12 and 17. I do not write software strictly for fun, but I do usually enjoy doing it.

Initially, when the Android Market launched, there was no way for developers to sell their applications. They had to be free. Over time, Google implemented solutions to allow developers to charge for their applications. A lot of developers still offer a free version, that is usually limited in functionality or ad-supported. The key word that is “Ad-Supported”. This means the developer is putting the application on the Android Market at zero monetary cost to the user, but still is looking to generate some revenue from the application via advertising. Users were “spoiled” by the early days of the Android Market. When developers started charging for applications twitter and other social media outputs were populated with complaints about having to pay $0.99USD for an application.

Let’s take a little look at the most common price point of an application, $0.99USD. That is cheaper then a bottle of soda pop, cup of coffee, a McDonalds McChicken and even a candy bar. The minimum wage, in the state of Illinois, is $8.25 per hour, so a person working a place like McDonalds, makes at least that to make your McChicken. Now, myself, when I freelance for a client, I charge $90.00USD per hour, minimum. So if I sell my application for $0.99USD, and it takes me 20 hours of development, testing, etc, to build and release the application (which it could really take a lot more, depending on the application), I would have to sell ~2609 licenses of the software title before I actually started to make a “profit” from the application. Why ~2609, when 90 * 20 = 1800 and 1800 / 0.99 = ~1818? Well, of that $0.99USD, Google takes $0.30USD off the top, so I am only making $0.69USD for each license sold. If the application is free, the ROI from advertising, usually, is a lot lower, unless you have a “hit” application that sees millions of downloads. But it does still generate some revenue for the developer.

Just the other day, I received an email from a user of one of my applications that I check for software on the Android device that is know to “block ads”. He voiced how he was upset that I would actually stop my application from being usable if there is “ad blocking” software installed on the device.

I just wanted to email you to let you know how much I loved the application. I tried it out after freezing [ad blocking app] just so I could give it a try. I REALLY wanted to buy this app but I really couldn't justify buying it from a developer who tells me what I can and cant run on my device. This goes against the whole spirit of android. I'm sorry that I will not be able to purchase your product at this time and will have to go with other solution even if it is less advanced. If you ever decide to change your app so people can try it freely without having to uninstall other programs I would be more than glad to buy it.

One of the key statements in that email that caught my attention is “This goes against the whole spirit of android.”. Is the spirit of Android to steal or does this person mean because Android is open source that he should be able to block my ads? Let me point out, just because something is open source, doesn’t mean it is free, or that everything associated with it is free. Just because Android is open source, do you think that Google just lets the phone manufactures and the mobile carriers have the “with Google” apps like the Android Market, Gmail, YouTube, etc. for Free? I can tell you, with 100% certainty, they do not. Those applications, and the “with Google” are licensed to the manufacturers/carriers, for a fee. Another example is MySql, an open source database engine, they have “Enterprise” versions that range from $2,000.00USD to $10,000.00USD, per server, per year. So just because something is open source doesn’t mean that it is Free. Also, just because Android is open source, does not mean the software that developers write for the platform are also open source or Free.

Droid Explorer 0.8.8.2 Released

sgstabshotdeviceselectiondialogI released an update to Droid Explorer today that addresses some needed issues.

  • New Device selection dialog
  • all assemblies are now signed again
  • fixed the "runner" so apk's can now be installed from the machine (along with the other plugins)
  • when upgrading, and using an existing SDK, the value will now be pulled from the registry, if it exists.
  • fixed bug in uninstall that would remove the sdk, even if you used an existing sdk
  • removed anda.pk plugin since the site is dead.
  • added a link in the bootstrapper (installer) to download the sdk.
  • refactored some strings to the external resources files in the bootstrapper (installer)
  • changed the reboot commands to use the adb commands, not the shell commands
  • fixed rm command to now use busybox as it was passing args that are not supported on the "stock" rm command.
  • added the sph-p100 (Sprint Samsung Galaxy Tab) device icon

 

Download Droid Explorer v0.8.8.2

CyanogenMod 7 on Galaxy S Vibrant

CM7_256_072The nightly builds for CyanogenMod 7 for Samsung Galaxy S line of devices is now available via Rom Manager. It is now a “Single Update” install, 2 if you want to add gapps.

Here are some of the issues I had when doing the install, and how I worked around them.

  • Follow the instructions Here and Read the FAQ here. This is just a “helper” for some of the issues I had, not a replacement or step by step.
  • You will need to be able to get in to the Recovery via the 3 Button Method. If you cannot, then you will have problems.
  • Before you start with ROM Manager, you need to download the gapps package and place it on the internal sdcard. You cannot use ROM Manager to install the gapps, it will not work.
  • The easy part is installing CM7 from ROM Manager. Open up Rom Manager and download the CM ROM
  • ROM Manager will now download the ROM. Once completed, it will prompt you to wipe data and cache and backup. You should do them ALL. Then Click OK.
  • The device will reboot and it will install the CM package. Be patient, it can take a while.
  • Once the device is rebooted you will want to turn the device off. DO NOT USE ROM Manager, or any other shiny thing, to get in to the recovery, it will not work correctly.
  • Power the device back on using the 3 Button Recovery method. Hold down Vol+ & Vol- & Power. Once you see the “Vibrant” Screen release ONLY THE POWER button.
  • Now that you are in Clockwork, select install package from sdcard and select the gapps package you downloaded before you started.
  • Reboot your device and enjoy.
  • Update: If your PC does not recognize your device any more, you need to install the Google USB Drivers.

I forgot how much I missed using AOSP + the things that the CM team adds to the party. Being stuck using TouchWiz for so long, it is like getting a new phone again. Even if you run ROMs like Trigger or Bionix, you are still stuck with the TouchWiz additions.

Thanks TeamHackSung, my Galaxy S is happy now.

I always feel like, somebody’s watching me…

1984-bookThere has been a lot of news lately about Android devices logging, and reporting GPS information back to Google. Not to mention the same thing going on with the iPhone. Two women from Michigan have even filed a Class Action suite against Google. I think this is ridiculous! Of course they are reporting your location back to Google/Apple. How do you think they can give you maps with your current location? Or even Turn-By-Turn directions… How about when you “check in” on Facebook, how do you think they know your location? You give it to them with the GPS coordinates.

Ok, you may argue that “you are giving them permission” when you get directions, or check in to Facebook, but you already gave Google permission also when you set up your phone and the little checkbox that said “provide Google with location data” was checked, or when you downloaded an application and it said one of the “permissions” that is uses is “GPS Location”.

Let me talk about this GPS data that everyone is talking about. Google, and Apple for that matter, couldn’t care less about where you are. What they actually care about is that you will continue to use their products, so they use your data to make the experience better, for you. That location data that you are so worried about is telling Google where WiFi access points are and cell towers are in regards to your location. This information is used so when you fire up Google Maps, or Google Navigation, they can quickly pinpoint your location, even if you don’t yet have a GPS lock. If they did not have this data, the time it would take for you to get your location and the information you want to know, like where you are going, would take way longer.

If you don’t want your device to report GPS info, there is a quick and easy “opt out”, don’t turn on your GPS, and also turn off “use wifi to find your location”. Also, when you set up your device, uncheck the option to send the data to Google. If you want someone to “worry” about, worry about companies like AT&T and Verizon, for example, that know, basically, where you are at all times of the day, even if you turn off your GPS. They know exactly what cell towers you are in range of at any given time of day. Where is the case against them asking how they use this data and if they store it.

I like the benefits that I get out of having the data sent. I use Google Maps, and Navigation all the time, if you don’t use it, or don’t want your data “sent” then don’t send it, but don’t screw things up for the people that do use it, and don’t think it’s 1984.

Droid Explorer 0.8.8.1

Since the release of version 0.8.8.0 a few days ago, some users have reported an error during the install of Droid Explorer. I have identified the issue and have published a release addressing this. A couple other minor changes are in there too, along with icon support for additional devices. Finally, the use of an existing SDK is now the default, and recommended option during the install.

Download Droid Explorer 0.8.8.1

Droid Explorer 0.8.8.0 Released

explorer-viewLast night I released a new version of Droid Explorer that addresses some major issues that were introduced with the latest versions of the SDK.

  • Fixed the issue with the latest android SDK using “platform-tools” directory instead of “platforms/android-{platformversions}/tools”.
  • Fixed the screen shot tool to support newer devices (some are now using 32bpp RGB, instead of 16bpp RGB565)
  • Fixed an issue with the Bart plugin license not being detected on the device.
  • Fixed the console not working on some devices.
  • Added Device icons for the LG G2X and Samsung Galaxy S variants.
  • The Google USB drivers have been removed from the installer
  • Use existing SDK is now the default and recommended option
  • Other minor fixes

Download Droid Explorer 0.8.8.0

As always, there are x86 and 64 bit versions available.

The Standalone version is an “Offline Installer” where the other can download additional files (if you are not using an existing SDK).

The last release of Droid Explorer (0.8.7.2) has ~139,000 downloads since August 21 2010, exactly eight months ago. The plan is for more releases of Droid Explorer, in much shorter time frames again. So lets see if the 0.8.8.0 can exceed the number of downloads before the next release (I doubt it will happen Smile)

Droid Exporer Update

It has been a while since there has been any real progress on Droid Explorer. We now have a couple other active developers on the project, one of which is working on a Mono port of the Droid Explorer.

We have also started integrating Mad Bee (Managed Android Debug Bridge) in to the core of Droid Explorer. What does that mean, you ask? Well, it means, that there will be more support for devices, including devices that are NOT ROOTED. Obviously, you will not have the functionality that requires root, but you will have everything else. This is an on going process, so initially, support for non-rooted devices may not exist, as it is now in Droid Explorer.

I have also started to make some needed changes to address the issues with using the latest android SDK, since google decided to change the location of where the platform tools reside, and moving ADB in to the new location. The screenshot plug has had some minor fixes as well, so more devices should now successfully take screenshots.

Keep your eyes open for version 0.8.8.0 release this week, maybe even as early as tonight.

Ad-Blocking in Apps is Piracy

I recently received some negative feedback on Mount Manager in the Android Market regarding my strict identification of ad-blocking applications.

The user said:

While I understand where the dev is coming from, the ad blocking restriction on this app is ridiculous. Ryan Conrad needs to understand that he is only encouraging piracy in his own app. Apps like this hurt the dev community for android.

This is not the first time that someone has complained about having to remove their ad-blocking software in order to use Mount Manager. Also keep in mind, this restriction is ONLY in place on the free version, if you purchase a license, you can use ad-blockers if you choose.

I feel very strongly against the use of ad-blocking, especially in applications. The ads that are displayed, potentially, generate revenue for the developer. If you have software that blocks these advertisements, you are preventing the developer to earn revenue, and thus committing piracy.

You probably completely disagree with me. You think ads in applications are annoying and get in the way and you never click on them any how, right?

Ok, well, Mount Manager, like many other applications, offers an ad free version, that also includes other features. But guess what, it isn’t free! I understand that you don’t want to see the ads, even if you never plan on clicking on them, and I offer a way for that to happen, while still allowing me, as the developer, to earn some revenue from the application. Remember back in the day, you had NetZero (it was actually free at one time), a free internet service provider. But guess what, they loaded advertisements up on your screen that were there while you were connected to their service. If you didn’t want to see the ads, guess what you had to do, that’s right, you had to pay for internet service.

So, that is my stance on ad-blocking applications for use with applications. I don’t expect it to change either. As long as I write applications, that display advertisements, I will have code that blocks the ad-blockers… I actually think it is sort of funny that people are mad that I have an “ad-blocker blocker”.

1Way Licensing by Atma Software

key1I will start this post by saying that I am, in no way, associated with 1Way or Atma Software. I just think it is a great product and more developers, especially independent ones, should know about this product.

1Way is an ActiveX Licensing component by Atma Software. The product offers a secure and flexible way to create time limited trial versions of your products at a very affordable price. License Keys (Serial Numbers) can be generated to unlock the product. It is also flexible enough to allow you to unlock “parts” of your application if you choose too.

It has basically “drop in” support for online validation for your licenses on your own website, which allows you to limit the number of computers that can use a particular serial number and track the serial usage.

256-bit AES encryption, SHA-256 hashes and data redundancy are used for all information that is saved.

Since it is an ActiveX component, it is easy to implement in almost any programming language. Including C#, VB.NET, C++, Java, PHP, Delphi, Python, just to name a few.

Some Features

  • Registration can be permanent or they can expire
  • Serial Numbers can be set to expire.
  • Works on all versions of Windows
  • Users cannot get a new trial period by reinstalling
  • 1Way checks for changes in the System Date
  • Trial periods can be extended and registrations changed via serials
  • 1Way is entirely under your own control

You can purchase 1Way for a single individual, or a company with less then 3 employees for $39.00 USD, or a Commercial License, for a company employing more then 3 employees, for $89.00 USD.

You will not find a product that works this well, this flexible, and with the great support that Atma Software offers for anywhere near this price.

Mount Manager License

The $2.99 price for Mount Manager License was originally just a discounted price for the first 100 sales. I have decided to extend this sale price indefinitely. This price seems very far, and a good price point. So the permanent price of Mount Manager License is $2.99.

I would like to thank everyone that has reported any issues in Mount Manager and helped make it a better product. You are the reason that the product is keeping this discounted price.

Mount Manager + Locale / Tasker

The latest version, just published on the Android Market contains a new feature for licensed users. You can now use Locale / Tasker to automate the mounting or unmounting of your shares.

By setting up your conditions, like using the Wifi Connection plug-in, you can set shares to mount when you are connected to a specific wifi network, or unmount others.

Mount Manager Mount Manager License

The license is currently available for $2.99 for the first 100 sold. After that, the regular price of the license is $4.99.

Mount Manager License on Sale

The Mount Manager License that removes the advertisements from the application, plus will enable the Locale/Tasker plug-in once completed, is now on sale in the android market.

Mount Manager Mount Manager License

The price of the license is $4.99, but for the first 100 people that purchase the license it is available at a discounted price of $2.99. The license will guarantee that you have access to all the features in Mount Manager.

The application is fully functional as it is, but the license will enable other features, plus remove the ads.

Check if the user is running AdBlock

A lot of applications on the android market use admob, or some other advertising method to keep the application free but still be able to generate some revenue. The ads are good for both the developer and the user. It generates revenue for the developer, and gives the user relevant advertising.

There is an application, which was recently pulled off the android market, called AdBlock that blocks these advertisers from displaying ads. This application can be a thorn in the side of the developers, as it is hindering income that the developer could be receiving.

Now you could probably argue that these people that run AdBlock wouldn’t click on the ads any how, and for the most part, that is probably true. But at the same time, a lot of applications on the market offer a license key or some other way to remove the ads from the application buy paying the developer a small fee. If the user is running AdBlock, they are circumventing this licensing model and in a way, stealing the application.

One of the great things about android is the ability to launch other intents. And by having this ability, we can check if the user has AdBlock installed. If they have it installed, we can then render the application useless until they remove AdBlock, or purchase the license.

This code block below will check if the user is running AdBlock, if they are, it will display an alert dialog and launch the market to purchase a license, or they can close the application.

private static void performCheck ( final Activity activity ) {
PackageManager pm
= activity.getPackageManager ();
Intent intent
= pm.getLaunchIntentForPackage ( "de.ub0r.android.adBlock" );
if ( Reflection.isPackageInstalled ( activity, intent ) ) {
new AlertDialog.Builder ( activity )
.setTitle (
"License Required" )
.setMessage (
"Since you are running software to "
+ "block the ads that keep this software free, you must purchase a "
+ "license to use this software from "
+ "the android market." )
.setPositiveButton ( android.R.
string.ok, new DialogInterface.OnClickListener () {
@Override
public void onClick ( DialogInterface dialog, int which ) {
Reflection.launchMarketDetails ( activity, Reflection.getPackageName ( activity )
+ ".license" );
activity.finish ();
}
} ).setNegativeButton ( android.R.
string.cancel, new DialogInterface.OnClickListener () {
@Override
public void onClick ( DialogInterface dialog, int which ) {
Toast
.makeText (
activity,
"You will not be able to use this application until a license is purchased or the ad "
+ "blocking is removed.",
Toast.LENGTH_LONG ).show ();
activity.finish ();
}
} ).show ();
}
}

Mount Manager Now Available

I just released the first version of Mount Manager. A tool to manage mount points on your android device. Mainly geared towards CIFS, but I will be expanding to other file system types in the future. The application is available for free on the android market. There will be a license in the near future that will remove ads and possibly enable additional features.

device3 

You can easily add/edit your cifs mounts and see the amount of space used/free on the share.

device1 device9 device2 

Some devices do not come with support for CIFS out of the box, so in order to account for that, the application has the ability to load modules in order to add the file system support.

device6  device8

These modules can be added and removed from the interface as well.

device7 device4 device5