Friday, November 20, 2015

How to Run Hubot on Azure Websites

I wanted to get Hubot working in our slack channels at work and I thought I would share the process I took to get it working and running on Azure Websites.

 

First, make sure you have nodejs installed

> choco install nodejs.install -y

Make sure npm is up to date

> npm install -g npm

At this point, I also installed coffee-script because the first time I tried running it, I got errors about coffee script

> npm install -g coffee-script

Install the azure-cli node modules to generate the deploy file that will be used

> npm install –g azure-cli

Next we install the yo hubot generator

> npm install –g yo generator-hubot

create a directory for your hubot. I have found that you should not initially name it “hubot”, as npm will fail with some of the package installs (specifically, the hubot package). Then lets start the hubot configuration

> mkdir myhubot

> cd myhubot

> yo hubot

Now you will answer the question it asks to configure hubot. Again, I wouldn’t name it “hubot” when it asks. I will show you where to change it later so it will respond to hubot.

yohubot

Mine showed some error messages while running this, but still functioned correctly.

Now lets install the slack adapter

> npm install hubot-slack --save

next we need to create the azure deploy command.

> azure site deploymentscript –node

lets now make a couple tweaks to the hubot files:

first, open up external-scripts.json and remove

"hubot-heroku-keepalive",

"hubot-redis-brain"

if you want to use azure blob for the brain we can set that up now. while still in the external-scripts.json, add the line:

"hubot-azure-scripts/brain/storage-blob-brain"

Save the file and go back to the command prompt:

> npm install hubot-azure-scripts --save

You can go to https://github.com/hubot-scripts and find some other script that you may want to add

first install from npm:

> npm install [scriptname] --save

Then add it to the external-scripts.json

 

next we have to modify the deploy.cmd slightly. There is an issue with azure where it doesn’t like that hubot doesn’t have a file extension. So we copy the hubot file and add the coffee extension.

After :: 3. Install npm packages block add the following:

:: 4. Create Hubot file with a coffee extension
copy /Y "%DEPLOYMENT_TARGET%\node_modules\hubot\bin\hubot" "%DEPLOYMENT_TARGET%\node_modules\hubot\bin\hubot.coffee"

Since we created the hubot.coffee, we need to configure the server to use that:

> echo require('coffee-script/register'); > server.js & echo module.exports = require('hubot/bin/hubot.coffee'); >> server.js

you can either copy this and run in command prompt, or create a file called server.js and add the following:

require("coffee-script/register’);

module.exports = require("hubot/bin/hubot.coffee");

Here is when we can change the name of the hubot back to acutally be hubot.

Open ./myhubot/bin/hubot.cmd in notepad and change “myhubot” to “hubot”.

You may also want to edit the readme.md and replace “myhubot” with “hubot” as well.

 

At this point you should make your github repo for your hubot and then commit your changes to github. (Use your github and your own repo)

> git init

> git add .

> git commit -m "initial hubot commit"

> git remote add origin https://github.com/[your-user-name]/[your-hubot-origin]

> git push -u origin master

 

Azure setup

Login to your Azure portal and create a new Web App: (The name has to be unique)

webapp1

 

If you are using Azure blob for the brain, create the storage account as well.

blob1

 

After the storage is created, we will need the Storage Account Name, and Primary Access Key. Copy these for use a little later:

keys

Go in to the settings for your newly created web app and click on “Continuous Deployment”. We are going to configure Azure Web Site to pull directly from the Github repo for the hubot configuration.

Choose Github as the provider and then authorize Azure to connect. Then choose your Hubot

cd

 

Finally we have to set up the environment variables that Hubot needs to function:

properties

You will create the following keys:

HUBOT_SLACK_TOKEN:  Your Slack Token for Hubot when you enable the integration

HUBOT_SLACK_TEAM:  myslack (from https://myslack.slack.com)

HUBOT_SLACK_BOTNAME: The name of your hubot

HUBOT_ADAPTER: slack

HUBOT_BRAIN_AZURE_STORAGE_ACCOUNT: The storage account name we saved from above

HUBOT_BRAIN_AZURE_STORAGE_ACCESS_KEY: The storage access token we saved from above

 

Go to your webapp to test that your hubot is working.

http://myhubot1.azurewebsites.net/hubot/help

help

Sometimes it doesn’t respond the first time, but if it continues to fail when requesting, there there may be an issue. Try running locally (you will have to remove the azure-blob when running local) and see if everything is working.

That’s about it. Enjoy!

Friday, November 6, 2015

Persistent Command History in PowerShell

If you are familiar with .bash_history or just wish you had a history of your powershell commands persist between sessions here is a handy little script. It will persist command history when you exit a powershell session to a file in %USERPROFILE% called .ps_history.

Copy the code below and save to a file called “Microsoft.PowerShell_profile.ps1” and save it in “%USERPROFILE%\Documents\WindowsPowerShell”

$HistoryFilePath = Join-Path -Path ([Environment]::GetFolderPath('UserProfile')) -ChildPath ".ps_history"; 
function Persist-History {
Register-EngineEvent -SourceIdentifier PowerShell.Exiting -Action {
Get-History | Select-Object -Unique | Export-Clixml -Path $HistoryFilePath;
} | Out-Null;
if (Test-path -Path $HistoryFilePath) {
Import-Clixml -Path $HistoryFilePath | Add-History;
}
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward;
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward;
}
Persist-History;
 

Disclaimer: I have only tested this with PowerShell 5


If it doesn’t work, you could probably make it work by installing the PackageManagement modules for PowerShell and install the “PSReadline” module.

Saturday, October 31, 2015

Microsoft Channel9 Addon for Kodi

To add to the my list of hobby projects, I created a fork of an addon for Kodi that provides browsing of videos on Microsoft Channel9. This was my first attempt at a Kodi addon, and really my first time working with writing python. I started out by just reading over the original code and tweaking it a bit because some things were not working. Then I started following the pattern that existed and implementing new features, like being able to browse Channel9 authors, and Channel9 events.

Once I got these features in place, I started doing some real refactoring of the original code base. There was a ton of code that was duplicated in multiple places. I spent a few hours of the day really rewriting the entire addon. As the project stands right now, it is basically a complete rewrite of the original addon.

The project is on Github and building on AppVeyor.

Download the latest Release

Sunday, October 4, 2015

Simplify standing up an IE Virtual Machine with PSIEVM

Over the weekend I was bored and decided to start a project to automate the process of standing up an IE VM with powershell. I would like to introduce PSIEVM. A powershell module that allows you to stand up an IE VM in VirtualBox (other hosts coming in the future) in one line.

PS> Get-IEVM –OS Win7 –IEVersion 9

That is the simplest form of the command.

Installation

To install, download from the github project releases page and extract to $env:USERPROFILE\WindowsPowerShell\Modules. Then to use it just import it

PS> Import-Module psievm
PS> Get-IEVM –OS Win7 –IEVersion 10 –AlternateVMLocation "G:\VMs\" –VMRootPath "G:\VMs\"

 

The parameters for Get-IEVM:

Name

Required

Type

Default

OS

YES

String

[Empty]

The OS to use:

  • WinXP, WindowsXP, Windows XP, XP
  • WinVista, WindowsVista, Windows Vista, Vista
  • Win7, Windows7, Windows 7, 7
  • Win8, Windows8, Windows 8, 8
  • Win8.1, Windows8.1, Windows 8.1, 8.1
  • Win10, Windows10, Windows 10, 10

IEVersion

YES

String

[Empty]

The version of IE. This is dependant on the version of Windows (See the table below).

  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Edge

Shares

NO

String[]

[Empty]

These are the paths to add as a share in the VM through the VMHost. May not be fully supported in all VMHosts.

AlternateVMLocation

NO

String

[Empty]

By default the VM images will be downloaded from Microsoft, but if you have the images downloaded already, you can use this to tell the script where to get them. This can be a URL, Network Share, or a local path. The images need to follow the following pattern:

IE: IE<IEVersion>.Win<OSVersion>.For.Windows.<VMHost>.zip
Edge: Microsoft%20Edge.Win10.For.Windows.<VMHost>.zip

VMHost

NO

String

VirtualBox

The VM Host to use. Only VirtualBox is currently supported but here is the full list that will be supported (and maybe others).

  • VirtualBox
  • HyperV
  • Vagrent
  • VPC
  • VMWare

IgnoreInvalidMD5

NO

Boolean

$False

After the zip image is downloaded, the file MD5 hash is validated. If you use your own images, you will want to set this to $True.

VMRootPath

NO

String

$PWD

This is the path to download the zip image to and create the VM image folder where the VM will reside. By default it will use the Current Working Directory.

OS / IEVersion

This is the version of the OS that you want hosted and the version of IE you want with it. Here are the supported values:

 

IE 6

IE 7

IE 8

IE 9

IE 10

IE 11

MS Edge

Requires 64-bit Emulation

XP

X

 

X

 

 

 

 

 

Vista

 

X

 

 

 

 

 

 

Win7

 

 

X

X

X

X

 

 

Win8

 

 

 

 

X

 

 

 

Win8.1

 

 

 

 

 

X

 

X

Win10

 

 

 

 

 

 

X

X

Download PSIEVM

Friday, September 18, 2015

Droid Explorer 0.9.0.4 Released

This is a pretty big release for being a maintenance release. There are some bug fixes and a couple new features.

New Features:

Sqlite files are now edited using Sqlite Browser. This tool is far more stable, and advanced than the tool that was included before in Droid Explorer. The way this tool works, the database that you want to query/modify will be copied to your PC. You can query or modify the data. Once you close the Sqlite Browser, it will ask you if you want to push the changes back to the device.

changes

ScreenCast is now called Screen Monitor and now uses a fork of Android Screen Monitor. The fork just removes the need to have the user select the device, since Droid Explorer already knows the device.

monitor

Screen Capture: This allow you to record your device screen for up to 3 minutes.

capture

Rotation is done when you copy the video to the PC. This uses FFMpeg to do the rotation.

Sample video:

Changelog:

  • Fixed the install apk shortcut to default to install. [workitem:17512]
  • Added screen capture functionality. The Plugin will show up if the connected device supports screen capture. [workitem:17417]
  • Tweaked the SaveFileDialog, OpenFileDialog, & FileDialog to better support an 'initial directory'.
  • Tweaked the way the plugin toolstrips are created to hopefully support reloading when connecting to another device. 
  • Fixed launching screenshot from the shortcut or jumplist item. [workitem:17416]
  • Replaced the JNLP with a more active developed androidscreencast and launch a jar file directly.
  • Changed the window of the ScreenRecorder to be fixed.
  • Updated the InstallDialog to make use of the PluginHost which provides device and other information.
  • Fixed the regex for checking if an app was installed successfully and fixed the regex for getting the permissions
  • Fixed the device backup so it launches correctly from the shortcut.
  • Added Sqlite Browser to replace the feature lacking sqlite explorer that was part of this project. See http://sqlitebrowser.org/ for info on Sqlite Browser.
  • TransferDialog now usable by plugins. [workitem:17521]
  • Consolidation of some string resources in to the Global App Resources
  • Default the file name when saving a screenshot to be 'screenshot-{yyyy-MM-dd-hhmmss}.png' [workitem:17516]
  • All PluginForms now require IPluginHost to be passed in. 
  • Updated image resources for the screenshot plugin
  • added toolbar item to screenshot to "edit in default application"
  • removed SqliteEditForm since it isn't used any more.
  • fixed the saving size of the screenshot. It will save as the original source size [workitem:17517]
  • Added ability to rotate screen capture video 90/180/270 degrees when copying to pc. uses ffmpeg to rotate video. [workitem:17519]
  • Added option to delete capture file after copy to pc [workitem:17525]
  • set a default filename on '/sdcard/' for screen capture [workitem:17523]
  • Changed when disconnected from device that the 'connect to device' button is not disabled. [workitem:17528]
  • Fixed crash when the monitor service is not running and you disconnect from the device because the ADB daemon shuts down and status cannot be retrieved.
  • Added link to WiFi ADB app on the remote connect dialog. This will help people enable wifi adb. [workitem:17533]
  • Added method to IPlugin interface to initialize the plugin. This can be used to set up files on the device before the plugin executes.
  • Removed androidscreencast, switched to using android screen monitor fork (https://github.com/camalot/android-screen-monitor). The fork allows the device ID to be passed as an argument. This way the user does not have to select the device again.
  • Changed the call to launch the jar for screen monitor to call "java.exe", before it was just "java" and that was causing issues. [workitem:17531]
  • Added more logging during initialization to help with debugging start up issues. [workitem:17527]
  • Set the toolstrip renderer on screenshot plugin to be the same that is used elsewhere.
  • Added functions for Forward & Reverse to be used with the port manager
  • Added option to restart ADB server on the connection dialog

 

 

32bit-128  64bit-128

Sunday, September 13, 2015

New feature coming to Droid Explorer

I want to give a sneak peak of a feature in the upcoming release of Droid Explorer called Device Screen Capture. On devices that support it, you will be able to record screen activity for up to 3 minutes.

If you choose to copy to your computer after capture, you will be able to also apply rotation to the video.

 

Here is a sample video with the following settings:

  • Length: 20 seconds
  • Bitrate: 4Mbps
  • Size: 1440x2560
  • Rotate: 90 degrees

Tuesday, September 8, 2015

Droid Explorer 0.9.0.3 Released

There is a new release of Droid Explorer that is now available for download. This release is mainly some bug fixes. The most important is fixing support for the changes to ADB where the feature ‘status-window’ was removed. Droid Explorer used this feature to monitor the status of the connected devices. The removal of this required a little reworking of the monitoring, but at this point I think I am happy with the new functionality.

Full change log is available on Droid Explorer Site:

  • updated the location of the device images to use the program data directory. This is mainly for the service because a normal user, on windows 10, will not have access to read the icon file.
  • updated to use Visual Studio 2015
  • updated to .net 4.5.2
  • updated to use Wix 3.10 - it will try to use the installed version of wix, if it has created the WIX environment variable
  • changed the position of the Ask for Help button on windows 8+ devices to account for the larger buttons (on windows 10)
  • fixed when looking for the build tools versions it will only take directories in to account that match a version string regex.
  • Reworked the 'status-window' to use existing functionality in ADB so a different binary does not have to be distributed with Droid Explorer.
  • Updated some of the plugins that launch tools. It now checks for the tools, if it can't find them, they will not show up.
  • Updated the application manifest files to support current features in windows.
  • Added check to see if user (or user policy) has recent document tracking disabled. If it is, do not attempt to create jump lists.

 

32bit-128  64bit-128

Tuesday, August 11, 2015

Growl for Windows Display

I have been a user of Growl for Windows for a long time. I recently upgraded to Windows 10 and installed Growl, like I usually do. I liked the way the new notifications in Windows 10 looked and wanted that look for Growl so I created a Windows 10 Style Display for Growl.

 

Right now, there is really only one option to set, and that is where you would like it to show up on screen.

settings

Here is a preview of the Display.

preview

You can manually install by downloading from Github (source is also available), or you can automatically install to Growl for Windows.

Monday, August 3, 2015

How to enable Use default gateway on remote network with Windows 10

There are a lot of tutorials out there that are for previous versions of Windows that say to right click on the VPN and choose properties, then select IPv4 and click properties. The problem is with Windows 10, at least for me, nothing happens when you click the properties button.

 

The way I have found to enable this functionality is via PowerShell.

 

Start PowerShell as an administrator then run Get-VpnConnection

1

Next run Set-VpnConnection –Name MY_VPN_NAME –SplitTunneling $true
Replace MY_VPN_NAME with the name of your VPN connection.

2

Saturday, July 25, 2015

AttachToAny updated to support Visual Studio 2015

I have updated AttachToAny so it can be installed on both Visual Studio 2013 and Visual Studio 2015. No other changes have gone in to this release.

 

Download the update through the Extension Manager, or from the Visual Studio Extensions website.

Sunday, March 8, 2015

Droid Explorer 0.9.0.2 Released

I just published a minor update to Droid Explorer. This fixes a couple bugs with the Shell console where some lines that should be on a new line are not. There are some new shortcuts now added to the start menu for quick access to launch the shell console, device backup, apk installation, taking a screenshot, and to launch the screencast plugin.

Also addressed is an issue where some older devices do not show up in the device selection. This was because Droid Explorer now uses ‘adb devices –l’ to get more detailed information about the device, but it appears that some older devices do not display this information. To resolve this, it will try to look for the additional information, if it isn’t found, it will fall back to use the information without the details. A downside to this, which I may address later, is the device icon will not be the true device icon because the web service will not know what device it is.

See the full change log for this release here.

Download this release here.

 

Update 3/10/2015 : updated to 0.9.0.2 to fix a bug that prevented the device icon from loading.

Tuesday, March 3, 2015

Hangouts App In Chrome Super Tiny, Then It Vanishes.

My Hangouts app in Chrome has been vanishing on me on my home computer and I could not figure out why. I tried to uninstall it and reinstall it. Nothing fixed it. When I would close it and restart the app, it would show the “loading spinner” as normal size, but then it would shrink to an extremely tiny icon. If I then tried to click on the Hangouts app, it would vanish, never to be seen again until I reloaded the app again.

tiny

After some searching, turns out that this is a bug, that is being tracked here.

Here is how I worked around the issue, not sure how permanent this work around is though.

  • Go to: chrome://settings/search#page%20zoom
  • Make sure the Page Zoom is 100%
  • Even if it is 100%, change it to something else.
  • Now change it back to 100%. (You could probably change it to some other default, but YMMV).

Now my Hangouts app is back to normal… For now.

Monday, March 2, 2015

Amazon Echo Api

As I posted in my previous post, I recently bought an Amazon Echo. I saw some videos of people using their Echo to do home automation with a Raspberry Pi or Adriano. They did this by using something like Node, or python to monitor the tasks that are added to the Echo. To do the monitoring, they used the undocumented, unsupported, Api of the Echo.

I wanted to play around too. While I really don’t do anything related to home automation, I still wanted to explore the Echo Api and see if I could implement some type of wrapper for it in C#.

Here is what I found with the undocumented Api:

  • The desktop app connects to a WebSocket on the Echo device. I have not yet successfully connected to the socket, nor have I tried yet.
  • There is a url to get the latest “cards” - /api/cards?limit=N
  • Get the tasks - /api/todos?type=TASK
  • Get the shopping list - /api/todos?type=SHOPPING_ITEM
  • Get registered devices - /api/device
  • Get the media state for a device - /api/media/state?deviceSerialNumber={0}&deviceType={1}
  • Get the connected bluetooth devices - /api/bluetooth
  • Get music accounts - /api/music-account-details
  • logout - /logout
  • Get the capabilities of each provider - /api/media/provider-contenttype-capabilities

I also found that I should be able to send commands to Play, Stop, Next Track, Previous Track, Shuffle, Repeat, and set the Volume. The web app does this by first doing an HTTP/OPTIONS request, followed by an HTTP/POST. The post contains a JSON payload that contains the meta data of the device and what the volume is (if setting the volume). I have been unable to successfully POST these commands as there should be a CSRF token sent along with the POST. This token should be available in the cookies, but for some reason that I have not figured out yet, the token does not exist in the CookieContainer.

Currently, I have a working wrapper Api to Login, Logout, Get Tasks (TODO or SHOPPING), and update a task. I have posted my code on GitHub and I will push changes when I make them. This is just a little toy project that I decided to play with when bored. I will continue to work on it in free time, while I am interested in it. Feel free to fork it.

Amazon Echo Api

Happy Hacking of your Echo

Sunday, March 1, 2015

Amazon Echo Material Design Stylish Theme

echoI bought an Amazon Echo last week. I was looking for a Bluetooth speaker and for $100 (for Prime Members), it is a decent Bluetooth speaker, plus it integrates with Prime music, and other Amazon services. It allows you to purchase items from Amazon directly from the Echo. It also has other features like TuneIn radio, iHeartRadio, a timer, an alarm (seems like it should support more than one timer and alarm, hopefully they will add this functionality in the future), todo list, and a shopping list.

The Echo has a companion app for iOS and Android devices, and it has a web app for your desktop. I was playing around with the CSS the other day while I was off work and decided to re-theme all (or most) of the desktop app using Stylish (Chrome|Firefox).

 

Download Amazon Echo Material Theme

 

 

 

 

Here are screenshots of just about every page within the Echo desktop app. Some are pretty boring, but they do show some of the elements that have been changed on the page.

1 

2

3

4

5

6

7

8

9

10

Friday, February 13, 2015

Droid Explorer 0.9.0.0 Released

droid-explorer-256 Today is Friday the 13th, but it doesn’t mark a day for superstition. Instead it marks the release of a long over due update to Droid Explorer. I have been working hard the past couple months getting this release ready. As I have mentioned in some previous posts, there are a lot of redesigned components, like the Shell Console, LogCat Console, the Device Selection dialog, and much more. Another key change is the handling of, non-issue, questions. Instead of being part of the discussion on CodePlex, there is now a tag on Android Enthusiasts. If using Android Enthusiasts, be sure to be detailed in what your issue is. I am not the only one that would be monitoring questions there. I wouldn’t want to see the questions closed because of lack of information.

 

On top of the changes that went in to Droid Explorer, I am also announcing the launch of http://de.bit13.com/, a new home for the Droid Explorer project. Besides being a place that contains screenshots and information on the releases, it acts as a central service for the device icons that are displayed when choosing the device to connect to and the icon that is shown in Explorer. As I get more information on devices, more icons will be added. Over time, other features will possible integrate more with the website.

 

splash 

selectdevice

shell_console

iconhandler

 

Highlights of the Changelog for 0.9.0.0

  • Added support for connecting to devices via TCP/IP New web service for getting device icons.
  • Upgraded .NET Framework Requirement to 4.5.1
  • Device lookup now uses 'detailed' call. Gets device name, model, and product name. see adb devices -l.
  • Redesigned the GenericDeviceSelectionForm
  • Updated the [default] image for devices
  • Options Windows: added information to show the build tools version that is being used. [workitem:17313]
  • Added ActiveMenu to add button to DWM.
  • Moved DDMS launcher to be a plugin
  • Moved Hierarchy Viewer to be a plugin
  • Removed the "reboot" buttons, instead there is now a reboot plugin that supports all forms of reboot: normal, recovery, bootloader, download.
  • Added a warning dialog when the app launches that will let the user know if droid explorer was unable to gain root access via adb root.
  • Some refactoring to some plugins, like the shell, so it can be launched independently.
  • Added links to ask questions on android enthusiasts.
  • Removing some code that is unused.
  • removed out of date plugins / tools.
  • Some refactoring of the ConsoleControl. Moved to the Core.UI.
  • Added reference to Camalot.Common.
  • Updated LogCat to use ConsoleControl.
  • Updated the Debug Console to use ConsoleControl.
  • Updated ConsoleWriter to work with the ConsoleControl.
  • Added OutputProcessors to handle different content for logging.
  • Adb Root call is now called during initialization, after device selection.
  • if adb root fails, a warning is displayed to the user. Future warnings can be ignored.
  • A minor redesign to the splash screen.
  • Plugins are now grouped in to separate toolbars.
  • Added SDK Manager plugin
  • Added AVD Manager plugin
  • updated icons across the application.
  • Plugins now grouped in the plugin menu.
  • Fixed the cloud image path to support the new site.
  • Fixed the file names when transfering to PC to remove invalid characters.
  • Fixed the device monitor service.
  • Added PluginSettings (not yet used really)
  • Added icon handler interface
  • Added picture extension handler using the icon handler interface

Tuesday, January 20, 2015

New functionality for Droid Explorer Extensions

Extensions in Droid Explorer can already handle specific file types. The shell console and sqlite explorer are good examples of that. When you right click on a file that is handled by an extension you will see it as an option.

main1 main3

Extensions can now implement DroidExplorer.Core.Plugins.IFileTypeIconHandler. This will allow an extension to define how the icons for the specified file are rendered. Here you will see the new PictureExtension. It shows a small thumbnail of the picture as the icon of the file.

iconhandler

These icons will be cached in the users Droid Explorer Data/Assets directory so they can be loaded from the cache to load faster.

Saturday, January 17, 2015

Getting help when using Droid Explorer

A few days ago I showed some screenshots of some of the work that I have done in the next version of Droid Explorer. One of the things that I talked about was how I will monitor the DroidExplorer tag on Android Enthusiasts. Here is how that will also play a part in the next version of Droid Explorer.

askforhelp

Right from the UI, you will be able to quickly get to the Android Enthusiasts questions that are tagged with DroidExplorer. If those don’t help, you can ask your own question. Just make sure you use the correct tag and that your questions are detailed and specific. If they are bug reports, they will not be answered and they will probably be closed. Bug reports will still go on the Issue Tracker.

 

I have also implemented another way to keep up to date with new releases and new code commits. If you are a Pushbullet user, you can subscribe to the Droid Explorer Channels:

Wednesday, January 14, 2015

Features coming to Droid Explorer

I've been working on some updates to Droid Explorer (which will probably get a name change with the next release).
These updates include:

  • Being able to connect to devices via TCP/IP.
  • A new Shell Console (which is much needed as the old one is very buggy and only works on a few devices correctly, or at all) that has full color processing.
  • A new layout for the Device Selection dialog. Less clutter, more information.
  • An updated debug console
  • An updated logcat console.

 

shell logcat devices


Effective immediately, I will be monitoring a tag [DroidExplorer] over on Android Enthusiasts Stack Exchange for non-bug related support. If it is an actual bug, it should be created as a bug, if you are just having an issue, or a question, then you can ask it over on Android Enthusiasts.


Finally, I am considering moving the source code to Github. If I do decide to move it, releases will probably still stay on CodePlex, at least for the time being. They have a good api that is already built in to my build scripts so I can easily publish new releases.

Some of the reasons I may be moving:

  • It seems that Microsoft has abandoned CodePlex.
  • The blog hasn't been updated in over a year.
  • Performance of the site has decreased.
  • Analytics have been having issues since October. And I have attempted to contact the CodePlex team, via Email and Twitter, without a response.

Until then, you can get the latest version from the Droid Explorer project page.

How to Run Hubot on Azure Websites

I wanted to get Hubot working in our slack channels at work and I thought I would share the process I took to get it working and running on Azure Websites.

 

First, make sure you have nodejs installed

> choco install nodejs.install -y

Make sure npm is up to date

> npm install -g npm

At this point, I also installed coffee-script because the first time I tried running it, I got errors about coffee script

> npm install -g coffee-script

Install the azure-cli node modules to generate the deploy file that will be used

> npm install –g azure-cli

Next we install the yo hubot generator

> npm install –g yo generator-hubot

create a directory for your hubot. I have found that you should not initially name it “hubot”, as npm will fail with some of the package installs (specifically, the hubot package). Then lets start the hubot configuration

> mkdir myhubot

> cd myhubot

> yo hubot

Now you will answer the question it asks to configure hubot. Again, I wouldn’t name it “hubot” when it asks. I will show you where to change it later so it will respond to hubot.

yohubot

Mine showed some error messages while running this, but still functioned correctly.

Now lets install the slack adapter

> npm install hubot-slack --save

next we need to create the azure deploy command.

> azure site deploymentscript –node

lets now make a couple tweaks to the hubot files:

first, open up external-scripts.json and remove

"hubot-heroku-keepalive",

"hubot-redis-brain"

if you want to use azure blob for the brain we can set that up now. while still in the external-scripts.json, add the line:

"hubot-azure-scripts/brain/storage-blob-brain"

Save the file and go back to the command prompt:

> npm install hubot-azure-scripts --save

You can go to https://github.com/hubot-scripts and find some other script that you may want to add

first install from npm:

> npm install [scriptname] --save

Then add it to the external-scripts.json

 

next we have to modify the deploy.cmd slightly. There is an issue with azure where it doesn’t like that hubot doesn’t have a file extension. So we copy the hubot file and add the coffee extension.

After :: 3. Install npm packages block add the following:

:: 4. Create Hubot file with a coffee extension
copy /Y "%DEPLOYMENT_TARGET%\node_modules\hubot\bin\hubot" "%DEPLOYMENT_TARGET%\node_modules\hubot\bin\hubot.coffee"

Since we created the hubot.coffee, we need to configure the server to use that:

> echo require('coffee-script/register'); > server.js & echo module.exports = require('hubot/bin/hubot.coffee'); >> server.js

you can either copy this and run in command prompt, or create a file called server.js and add the following:

require("coffee-script/register’);

module.exports = require("hubot/bin/hubot.coffee");

Here is when we can change the name of the hubot back to acutally be hubot.

Open ./myhubot/bin/hubot.cmd in notepad and change “myhubot” to “hubot”.

You may also want to edit the readme.md and replace “myhubot” with “hubot” as well.

 

At this point you should make your github repo for your hubot and then commit your changes to github. (Use your github and your own repo)

> git init

> git add .

> git commit -m "initial hubot commit"

> git remote add origin https://github.com/[your-user-name]/[your-hubot-origin]

> git push -u origin master

 

Azure setup

Login to your Azure portal and create a new Web App: (The name has to be unique)

webapp1

 

If you are using Azure blob for the brain, create the storage account as well.

blob1

 

After the storage is created, we will need the Storage Account Name, and Primary Access Key. Copy these for use a little later:

keys

Go in to the settings for your newly created web app and click on “Continuous Deployment”. We are going to configure Azure Web Site to pull directly from the Github repo for the hubot configuration.

Choose Github as the provider and then authorize Azure to connect. Then choose your Hubot

cd

 

Finally we have to set up the environment variables that Hubot needs to function:

properties

You will create the following keys:

HUBOT_SLACK_TOKEN:  Your Slack Token for Hubot when you enable the integration

HUBOT_SLACK_TEAM:  myslack (from https://myslack.slack.com)

HUBOT_SLACK_BOTNAME: The name of your hubot

HUBOT_ADAPTER: slack

HUBOT_BRAIN_AZURE_STORAGE_ACCOUNT: The storage account name we saved from above

HUBOT_BRAIN_AZURE_STORAGE_ACCESS_KEY: The storage access token we saved from above

 

Go to your webapp to test that your hubot is working.

http://myhubot1.azurewebsites.net/hubot/help

help

Sometimes it doesn’t respond the first time, but if it continues to fail when requesting, there there may be an issue. Try running locally (you will have to remove the azure-blob when running local) and see if everything is working.

That’s about it. Enjoy!

Persistent Command History in PowerShell

If you are familiar with .bash_history or just wish you had a history of your powershell commands persist between sessions here is a handy little script. It will persist command history when you exit a powershell session to a file in %USERPROFILE% called .ps_history.

Copy the code below and save to a file called “Microsoft.PowerShell_profile.ps1” and save it in “%USERPROFILE%\Documents\WindowsPowerShell”

$HistoryFilePath = Join-Path -Path ([Environment]::GetFolderPath('UserProfile')) -ChildPath ".ps_history"; 
function Persist-History {
Register-EngineEvent -SourceIdentifier PowerShell.Exiting -Action {
Get-History | Select-Object -Unique | Export-Clixml -Path $HistoryFilePath;
} | Out-Null;
if (Test-path -Path $HistoryFilePath) {
Import-Clixml -Path $HistoryFilePath | Add-History;
}
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward;
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward;
}
Persist-History;
 

Disclaimer: I have only tested this with PowerShell 5


If it doesn’t work, you could probably make it work by installing the PackageManagement modules for PowerShell and install the “PSReadline” module.

Microsoft Channel9 Addon for Kodi

To add to the my list of hobby projects, I created a fork of an addon for Kodi that provides browsing of videos on Microsoft Channel9. This was my first attempt at a Kodi addon, and really my first time working with writing python. I started out by just reading over the original code and tweaking it a bit because some things were not working. Then I started following the pattern that existed and implementing new features, like being able to browse Channel9 authors, and Channel9 events.

Once I got these features in place, I started doing some real refactoring of the original code base. There was a ton of code that was duplicated in multiple places. I spent a few hours of the day really rewriting the entire addon. As the project stands right now, it is basically a complete rewrite of the original addon.

The project is on Github and building on AppVeyor.

Download the latest Release

Simplify standing up an IE Virtual Machine with PSIEVM

Over the weekend I was bored and decided to start a project to automate the process of standing up an IE VM with powershell. I would like to introduce PSIEVM. A powershell module that allows you to stand up an IE VM in VirtualBox (other hosts coming in the future) in one line.

PS> Get-IEVM –OS Win7 –IEVersion 9

That is the simplest form of the command.

Installation

To install, download from the github project releases page and extract to $env:USERPROFILE\WindowsPowerShell\Modules. Then to use it just import it

PS> Import-Module psievm
PS> Get-IEVM –OS Win7 –IEVersion 10 –AlternateVMLocation "G:\VMs\" –VMRootPath "G:\VMs\"

 

The parameters for Get-IEVM:

Name

Required

Type

Default

OS

YES

String

[Empty]

The OS to use:

  • WinXP, WindowsXP, Windows XP, XP
  • WinVista, WindowsVista, Windows Vista, Vista
  • Win7, Windows7, Windows 7, 7
  • Win8, Windows8, Windows 8, 8
  • Win8.1, Windows8.1, Windows 8.1, 8.1
  • Win10, Windows10, Windows 10, 10

IEVersion

YES

String

[Empty]

The version of IE. This is dependant on the version of Windows (See the table below).

  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Edge

Shares

NO

String[]

[Empty]

These are the paths to add as a share in the VM through the VMHost. May not be fully supported in all VMHosts.

AlternateVMLocation

NO

String

[Empty]

By default the VM images will be downloaded from Microsoft, but if you have the images downloaded already, you can use this to tell the script where to get them. This can be a URL, Network Share, or a local path. The images need to follow the following pattern:

IE: IE<IEVersion>.Win<OSVersion>.For.Windows.<VMHost>.zip
Edge: Microsoft%20Edge.Win10.For.Windows.<VMHost>.zip

VMHost

NO

String

VirtualBox

The VM Host to use. Only VirtualBox is currently supported but here is the full list that will be supported (and maybe others).

  • VirtualBox
  • HyperV
  • Vagrent
  • VPC
  • VMWare

IgnoreInvalidMD5

NO

Boolean

$False

After the zip image is downloaded, the file MD5 hash is validated. If you use your own images, you will want to set this to $True.

VMRootPath

NO

String

$PWD

This is the path to download the zip image to and create the VM image folder where the VM will reside. By default it will use the Current Working Directory.

OS / IEVersion

This is the version of the OS that you want hosted and the version of IE you want with it. Here are the supported values:

 

IE 6

IE 7

IE 8

IE 9

IE 10

IE 11

MS Edge

Requires 64-bit Emulation

XP

X

 

X

 

 

 

 

 

Vista

 

X

 

 

 

 

 

 

Win7

 

 

X

X

X

X

 

 

Win8

 

 

 

 

X

 

 

 

Win8.1

 

 

 

 

 

X

 

X

Win10

 

 

 

 

 

 

X

X

Download PSIEVM

Droid Explorer 0.9.0.4 Released

This is a pretty big release for being a maintenance release. There are some bug fixes and a couple new features.

New Features:

Sqlite files are now edited using Sqlite Browser. This tool is far more stable, and advanced than the tool that was included before in Droid Explorer. The way this tool works, the database that you want to query/modify will be copied to your PC. You can query or modify the data. Once you close the Sqlite Browser, it will ask you if you want to push the changes back to the device.

changes

ScreenCast is now called Screen Monitor and now uses a fork of Android Screen Monitor. The fork just removes the need to have the user select the device, since Droid Explorer already knows the device.

monitor

Screen Capture: This allow you to record your device screen for up to 3 minutes.

capture

Rotation is done when you copy the video to the PC. This uses FFMpeg to do the rotation.

Sample video:

Changelog:

  • Fixed the install apk shortcut to default to install. [workitem:17512]
  • Added screen capture functionality. The Plugin will show up if the connected device supports screen capture. [workitem:17417]
  • Tweaked the SaveFileDialog, OpenFileDialog, & FileDialog to better support an 'initial directory'.
  • Tweaked the way the plugin toolstrips are created to hopefully support reloading when connecting to another device. 
  • Fixed launching screenshot from the shortcut or jumplist item. [workitem:17416]
  • Replaced the JNLP with a more active developed androidscreencast and launch a jar file directly.
  • Changed the window of the ScreenRecorder to be fixed.
  • Updated the InstallDialog to make use of the PluginHost which provides device and other information.
  • Fixed the regex for checking if an app was installed successfully and fixed the regex for getting the permissions
  • Fixed the device backup so it launches correctly from the shortcut.
  • Added Sqlite Browser to replace the feature lacking sqlite explorer that was part of this project. See http://sqlitebrowser.org/ for info on Sqlite Browser.
  • TransferDialog now usable by plugins. [workitem:17521]
  • Consolidation of some string resources in to the Global App Resources
  • Default the file name when saving a screenshot to be 'screenshot-{yyyy-MM-dd-hhmmss}.png' [workitem:17516]
  • All PluginForms now require IPluginHost to be passed in. 
  • Updated image resources for the screenshot plugin
  • added toolbar item to screenshot to "edit in default application"
  • removed SqliteEditForm since it isn't used any more.
  • fixed the saving size of the screenshot. It will save as the original source size [workitem:17517]
  • Added ability to rotate screen capture video 90/180/270 degrees when copying to pc. uses ffmpeg to rotate video. [workitem:17519]
  • Added option to delete capture file after copy to pc [workitem:17525]
  • set a default filename on '/sdcard/' for screen capture [workitem:17523]
  • Changed when disconnected from device that the 'connect to device' button is not disabled. [workitem:17528]
  • Fixed crash when the monitor service is not running and you disconnect from the device because the ADB daemon shuts down and status cannot be retrieved.
  • Added link to WiFi ADB app on the remote connect dialog. This will help people enable wifi adb. [workitem:17533]
  • Added method to IPlugin interface to initialize the plugin. This can be used to set up files on the device before the plugin executes.
  • Removed androidscreencast, switched to using android screen monitor fork (https://github.com/camalot/android-screen-monitor). The fork allows the device ID to be passed as an argument. This way the user does not have to select the device again.
  • Changed the call to launch the jar for screen monitor to call "java.exe", before it was just "java" and that was causing issues. [workitem:17531]
  • Added more logging during initialization to help with debugging start up issues. [workitem:17527]
  • Set the toolstrip renderer on screenshot plugin to be the same that is used elsewhere.
  • Added functions for Forward & Reverse to be used with the port manager
  • Added option to restart ADB server on the connection dialog

 

 

32bit-128  64bit-128

New feature coming to Droid Explorer

I want to give a sneak peak of a feature in the upcoming release of Droid Explorer called Device Screen Capture. On devices that support it, you will be able to record screen activity for up to 3 minutes.

If you choose to copy to your computer after capture, you will be able to also apply rotation to the video.

 

Here is a sample video with the following settings:

  • Length: 20 seconds
  • Bitrate: 4Mbps
  • Size: 1440x2560
  • Rotate: 90 degrees

Droid Explorer 0.9.0.3 Released

There is a new release of Droid Explorer that is now available for download. This release is mainly some bug fixes. The most important is fixing support for the changes to ADB where the feature ‘status-window’ was removed. Droid Explorer used this feature to monitor the status of the connected devices. The removal of this required a little reworking of the monitoring, but at this point I think I am happy with the new functionality.

Full change log is available on Droid Explorer Site:

  • updated the location of the device images to use the program data directory. This is mainly for the service because a normal user, on windows 10, will not have access to read the icon file.
  • updated to use Visual Studio 2015
  • updated to .net 4.5.2
  • updated to use Wix 3.10 - it will try to use the installed version of wix, if it has created the WIX environment variable
  • changed the position of the Ask for Help button on windows 8+ devices to account for the larger buttons (on windows 10)
  • fixed when looking for the build tools versions it will only take directories in to account that match a version string regex.
  • Reworked the 'status-window' to use existing functionality in ADB so a different binary does not have to be distributed with Droid Explorer.
  • Updated some of the plugins that launch tools. It now checks for the tools, if it can't find them, they will not show up.
  • Updated the application manifest files to support current features in windows.
  • Added check to see if user (or user policy) has recent document tracking disabled. If it is, do not attempt to create jump lists.

 

32bit-128  64bit-128

Growl for Windows Display

I have been a user of Growl for Windows for a long time. I recently upgraded to Windows 10 and installed Growl, like I usually do. I liked the way the new notifications in Windows 10 looked and wanted that look for Growl so I created a Windows 10 Style Display for Growl.

 

Right now, there is really only one option to set, and that is where you would like it to show up on screen.

settings

Here is a preview of the Display.

preview

You can manually install by downloading from Github (source is also available), or you can automatically install to Growl for Windows.

How to enable Use default gateway on remote network with Windows 10

There are a lot of tutorials out there that are for previous versions of Windows that say to right click on the VPN and choose properties, then select IPv4 and click properties. The problem is with Windows 10, at least for me, nothing happens when you click the properties button.

 

The way I have found to enable this functionality is via PowerShell.

 

Start PowerShell as an administrator then run Get-VpnConnection

1

Next run Set-VpnConnection –Name MY_VPN_NAME –SplitTunneling $true
Replace MY_VPN_NAME with the name of your VPN connection.

2

AttachToAny updated to support Visual Studio 2015

I have updated AttachToAny so it can be installed on both Visual Studio 2013 and Visual Studio 2015. No other changes have gone in to this release.

 

Download the update through the Extension Manager, or from the Visual Studio Extensions website.

Droid Explorer 0.9.0.2 Released

I just published a minor update to Droid Explorer. This fixes a couple bugs with the Shell console where some lines that should be on a new line are not. There are some new shortcuts now added to the start menu for quick access to launch the shell console, device backup, apk installation, taking a screenshot, and to launch the screencast plugin.

Also addressed is an issue where some older devices do not show up in the device selection. This was because Droid Explorer now uses ‘adb devices –l’ to get more detailed information about the device, but it appears that some older devices do not display this information. To resolve this, it will try to look for the additional information, if it isn’t found, it will fall back to use the information without the details. A downside to this, which I may address later, is the device icon will not be the true device icon because the web service will not know what device it is.

See the full change log for this release here.

Download this release here.

 

Update 3/10/2015 : updated to 0.9.0.2 to fix a bug that prevented the device icon from loading.

Hangouts App In Chrome Super Tiny, Then It Vanishes.

My Hangouts app in Chrome has been vanishing on me on my home computer and I could not figure out why. I tried to uninstall it and reinstall it. Nothing fixed it. When I would close it and restart the app, it would show the “loading spinner” as normal size, but then it would shrink to an extremely tiny icon. If I then tried to click on the Hangouts app, it would vanish, never to be seen again until I reloaded the app again.

tiny

After some searching, turns out that this is a bug, that is being tracked here.

Here is how I worked around the issue, not sure how permanent this work around is though.

  • Go to: chrome://settings/search#page%20zoom
  • Make sure the Page Zoom is 100%
  • Even if it is 100%, change it to something else.
  • Now change it back to 100%. (You could probably change it to some other default, but YMMV).

Now my Hangouts app is back to normal… For now.

Amazon Echo Api

As I posted in my previous post, I recently bought an Amazon Echo. I saw some videos of people using their Echo to do home automation with a Raspberry Pi or Adriano. They did this by using something like Node, or python to monitor the tasks that are added to the Echo. To do the monitoring, they used the undocumented, unsupported, Api of the Echo.

I wanted to play around too. While I really don’t do anything related to home automation, I still wanted to explore the Echo Api and see if I could implement some type of wrapper for it in C#.

Here is what I found with the undocumented Api:

  • The desktop app connects to a WebSocket on the Echo device. I have not yet successfully connected to the socket, nor have I tried yet.
  • There is a url to get the latest “cards” - /api/cards?limit=N
  • Get the tasks - /api/todos?type=TASK
  • Get the shopping list - /api/todos?type=SHOPPING_ITEM
  • Get registered devices - /api/device
  • Get the media state for a device - /api/media/state?deviceSerialNumber={0}&deviceType={1}
  • Get the connected bluetooth devices - /api/bluetooth
  • Get music accounts - /api/music-account-details
  • logout - /logout
  • Get the capabilities of each provider - /api/media/provider-contenttype-capabilities

I also found that I should be able to send commands to Play, Stop, Next Track, Previous Track, Shuffle, Repeat, and set the Volume. The web app does this by first doing an HTTP/OPTIONS request, followed by an HTTP/POST. The post contains a JSON payload that contains the meta data of the device and what the volume is (if setting the volume). I have been unable to successfully POST these commands as there should be a CSRF token sent along with the POST. This token should be available in the cookies, but for some reason that I have not figured out yet, the token does not exist in the CookieContainer.

Currently, I have a working wrapper Api to Login, Logout, Get Tasks (TODO or SHOPPING), and update a task. I have posted my code on GitHub and I will push changes when I make them. This is just a little toy project that I decided to play with when bored. I will continue to work on it in free time, while I am interested in it. Feel free to fork it.

Amazon Echo Api

Happy Hacking of your Echo

Amazon Echo Material Design Stylish Theme

echoI bought an Amazon Echo last week. I was looking for a Bluetooth speaker and for $100 (for Prime Members), it is a decent Bluetooth speaker, plus it integrates with Prime music, and other Amazon services. It allows you to purchase items from Amazon directly from the Echo. It also has other features like TuneIn radio, iHeartRadio, a timer, an alarm (seems like it should support more than one timer and alarm, hopefully they will add this functionality in the future), todo list, and a shopping list.

The Echo has a companion app for iOS and Android devices, and it has a web app for your desktop. I was playing around with the CSS the other day while I was off work and decided to re-theme all (or most) of the desktop app using Stylish (Chrome|Firefox).

 

Download Amazon Echo Material Theme

 

 

 

 

Here are screenshots of just about every page within the Echo desktop app. Some are pretty boring, but they do show some of the elements that have been changed on the page.

1 

2

3

4

5

6

7

8

9

10

Droid Explorer 0.9.0.0 Released

droid-explorer-256 Today is Friday the 13th, but it doesn’t mark a day for superstition. Instead it marks the release of a long over due update to Droid Explorer. I have been working hard the past couple months getting this release ready. As I have mentioned in some previous posts, there are a lot of redesigned components, like the Shell Console, LogCat Console, the Device Selection dialog, and much more. Another key change is the handling of, non-issue, questions. Instead of being part of the discussion on CodePlex, there is now a tag on Android Enthusiasts. If using Android Enthusiasts, be sure to be detailed in what your issue is. I am not the only one that would be monitoring questions there. I wouldn’t want to see the questions closed because of lack of information.

 

On top of the changes that went in to Droid Explorer, I am also announcing the launch of http://de.bit13.com/, a new home for the Droid Explorer project. Besides being a place that contains screenshots and information on the releases, it acts as a central service for the device icons that are displayed when choosing the device to connect to and the icon that is shown in Explorer. As I get more information on devices, more icons will be added. Over time, other features will possible integrate more with the website.

 

splash 

selectdevice

shell_console

iconhandler

 

Highlights of the Changelog for 0.9.0.0

  • Added support for connecting to devices via TCP/IP New web service for getting device icons.
  • Upgraded .NET Framework Requirement to 4.5.1
  • Device lookup now uses 'detailed' call. Gets device name, model, and product name. see adb devices -l.
  • Redesigned the GenericDeviceSelectionForm
  • Updated the [default] image for devices
  • Options Windows: added information to show the build tools version that is being used. [workitem:17313]
  • Added ActiveMenu to add button to DWM.
  • Moved DDMS launcher to be a plugin
  • Moved Hierarchy Viewer to be a plugin
  • Removed the "reboot" buttons, instead there is now a reboot plugin that supports all forms of reboot: normal, recovery, bootloader, download.
  • Added a warning dialog when the app launches that will let the user know if droid explorer was unable to gain root access via adb root.
  • Some refactoring to some plugins, like the shell, so it can be launched independently.
  • Added links to ask questions on android enthusiasts.
  • Removing some code that is unused.
  • removed out of date plugins / tools.
  • Some refactoring of the ConsoleControl. Moved to the Core.UI.
  • Added reference to Camalot.Common.
  • Updated LogCat to use ConsoleControl.
  • Updated the Debug Console to use ConsoleControl.
  • Updated ConsoleWriter to work with the ConsoleControl.
  • Added OutputProcessors to handle different content for logging.
  • Adb Root call is now called during initialization, after device selection.
  • if adb root fails, a warning is displayed to the user. Future warnings can be ignored.
  • A minor redesign to the splash screen.
  • Plugins are now grouped in to separate toolbars.
  • Added SDK Manager plugin
  • Added AVD Manager plugin
  • updated icons across the application.
  • Plugins now grouped in the plugin menu.
  • Fixed the cloud image path to support the new site.
  • Fixed the file names when transfering to PC to remove invalid characters.
  • Fixed the device monitor service.
  • Added PluginSettings (not yet used really)
  • Added icon handler interface
  • Added picture extension handler using the icon handler interface

New functionality for Droid Explorer Extensions

Extensions in Droid Explorer can already handle specific file types. The shell console and sqlite explorer are good examples of that. When you right click on a file that is handled by an extension you will see it as an option.

main1 main3

Extensions can now implement DroidExplorer.Core.Plugins.IFileTypeIconHandler. This will allow an extension to define how the icons for the specified file are rendered. Here you will see the new PictureExtension. It shows a small thumbnail of the picture as the icon of the file.

iconhandler

These icons will be cached in the users Droid Explorer Data/Assets directory so they can be loaded from the cache to load faster.

Getting help when using Droid Explorer

A few days ago I showed some screenshots of some of the work that I have done in the next version of Droid Explorer. One of the things that I talked about was how I will monitor the DroidExplorer tag on Android Enthusiasts. Here is how that will also play a part in the next version of Droid Explorer.

askforhelp

Right from the UI, you will be able to quickly get to the Android Enthusiasts questions that are tagged with DroidExplorer. If those don’t help, you can ask your own question. Just make sure you use the correct tag and that your questions are detailed and specific. If they are bug reports, they will not be answered and they will probably be closed. Bug reports will still go on the Issue Tracker.

 

I have also implemented another way to keep up to date with new releases and new code commits. If you are a Pushbullet user, you can subscribe to the Droid Explorer Channels:

Features coming to Droid Explorer

I've been working on some updates to Droid Explorer (which will probably get a name change with the next release).
These updates include:

  • Being able to connect to devices via TCP/IP.
  • A new Shell Console (which is much needed as the old one is very buggy and only works on a few devices correctly, or at all) that has full color processing.
  • A new layout for the Device Selection dialog. Less clutter, more information.
  • An updated debug console
  • An updated logcat console.

 

shell logcat devices


Effective immediately, I will be monitoring a tag [DroidExplorer] over on Android Enthusiasts Stack Exchange for non-bug related support. If it is an actual bug, it should be created as a bug, if you are just having an issue, or a question, then you can ask it over on Android Enthusiasts.


Finally, I am considering moving the source code to Github. If I do decide to move it, releases will probably still stay on CodePlex, at least for the time being. They have a good api that is already built in to my build scripts so I can easily publish new releases.

Some of the reasons I may be moving:

  • It seems that Microsoft has abandoned CodePlex.
  • The blog hasn't been updated in over a year.
  • Performance of the site has decreased.
  • Analytics have been having issues since October. And I have attempted to contact the CodePlex team, via Email and Twitter, without a response.

Until then, you can get the latest version from the Droid Explorer project page.