2014-12-31
2014-12-31 Wednesday - Visual Studio 2015 Preview
Download
http://www.microsoft.com/en-us/download/details.aspx?id=44934
Release notes
http://www.visualstudio.com/news/vs2015-preview-vs
Language features status
https://roslyn.codeplex.com/wikipage?title=Language%20Feature%20Status
The Visual Studio Blog
http://blogs.msdn.com/b/visualstudio/
2014-12-25
The 24th International World Wide Web Conference (May 18-22, 2015)
The 24th International World Wide Web Conference will be held May 18-22, 2015 - in Florence, Italy - with a chosen venue of the Fortezza de Basso
http://www2015.wwwconference.org/
http://www.www2015.it/conference-overview/
In recent years, the 2014 conference was held in South Korea:
http://www2014.wwwconference.org/
...presentation slides
http://www2014.wwwconference.org/presentation-slides/
...and the 2013 conference was held in Rio de Janeiro, Brazil
http://www2013.org/index.html
videos of the keynotes speeches...
http://www2013.org/salas/segovia-i/
proceedings...
http://www2013.org/2013/06/21/proceedings-available-online/
tutorial materials...
http://www2013.org/2013/06/21/tutorial-materials-available-online/
http://www2013.org/papers/companion.htm
Some recent threads of discussion related to this InfoQ article series has raised my interest in possibly attending the 2015 conference...
http://www.infoq.com/articles/Web-APIs-From-Start-to-Finish
2014-12-23
2014-12-23 Tuesday - Ray Dalio's Principles
As an architect of software systems - I am deeply interested in the idea of IT architecture principles which may be codified to help guide my own thinking - as well as others within an organization.
Similarly, in my role as the founder of a small consulting business, I find learning about the business principles of other successful leaders to be of great interest.
Today I have spent time meditating deeply on the words of Ray Dalio, as expressed in a 123 page PDF that he published, entitled: Principles
http://www.bwater.com/Uploads/FileManager/Principles/Bridgewater-Associates-Ray-Dalio-Principles.pdf
His words are inspiring, his lessons invaluable, and the clarity of his thinking is like finding nuggets of gold and precious diamonds laid before one's feet.
Similarly, in my role as the founder of a small consulting business, I find learning about the business principles of other successful leaders to be of great interest.
Today I have spent time meditating deeply on the words of Ray Dalio, as expressed in a 123 page PDF that he published, entitled: Principles
http://www.bwater.com/Uploads/FileManager/Principles/Bridgewater-Associates-Ray-Dalio-Principles.pdf
His words are inspiring, his lessons invaluable, and the clarity of his thinking is like finding nuggets of gold and precious diamonds laid before one's feet.
2014-12-21
2014-12-21 Sunday - JDK8, JavaScript, Nashorn, JJS, Eclipse Luna
This posting is a placeholder for links to some useful information as I explore the JavaScript processing capabilities of JDK8's Nashorn (JJS) within an Exclipse Luna environment.
Nashorn JavaScript Engine with JDK8 - Hello World
http://ladstatt.blogspot.com/2013/09/nashorn-javascript-engine-with-jdk8.html
Java 8 Nashorn Tutorial
http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/
Nashorn: JavaScript made great in Java 8
http://www.javaworld.com/article/2144908/scripting-jvm-languages/nashorn--javascript-made-great-in-java-8.html
The Two Pillars of JavaScript
Part 1: How to Escape the 7th Circle of Hell
https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3
The Two Pillars of JavaScript
Part 2: Functional Programming
https://medium.com/javascript-scene/the-two-pillars-of-javascript-pt-2-functional-programming-a63aa53a41a4
Mozilla Developer Network, JavaScript Guide
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide
w3schools JavaScript Tutorial
http://www.w3schools.com/js/
Processing.js
http://processingjs.org/
Nashorn JavaScript Engine with JDK8 - Hello World
http://ladstatt.blogspot.com/2013/09/nashorn-javascript-engine-with-jdk8.html
Java 8 Nashorn Tutorial
http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/
Nashorn: JavaScript made great in Java 8
http://www.javaworld.com/article/2144908/scripting-jvm-languages/nashorn--javascript-made-great-in-java-8.html
The Two Pillars of JavaScript
Part 1: How to Escape the 7th Circle of Hell
https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3
The Two Pillars of JavaScript
Part 2: Functional Programming
https://medium.com/javascript-scene/the-two-pillars-of-javascript-pt-2-functional-programming-a63aa53a41a4
Mozilla Developer Network, JavaScript Guide
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide
w3schools JavaScript Tutorial
http://www.w3schools.com/js/
Processing.js
http://processingjs.org/
2014-12-03
2014-12-03 Wednesday - Advice for a Friend Launching a Solo Consulting Business
A friend is about to leave his large comfortable corporate enterprise job - and go out on his own. I offered to write-up some suggestions based on some of my own experience (this posting is primarily focused on specific tactical resources that he might find useful) to help him prepare for launching his solo consulting practice. His business is in a different industry than mine - so these suggestions are more general purpose - and not specific to the software/technology industry...
If your business evolves as mine has, you may find that 50% eventually comes from referral/relationships - and 50% from sources that you monitor. Having said that - there comes a time (either at the bottom of a vicious downturn in the business cycle, or at a peak in the organic growth rate of your business itself - where cold calling will be necessary to thrive - or just survive. These are the best-of-the-best books I have found for developing the mental mindset for that time...
Some Recommended Books...
Zig Ziglar's Secrets of Closing the Sale, my copy is the original 1995 edition
http://www.amazon.com/Zig-Ziglars-Secrets-Closing-Sale/dp/0425081028
You might prefer the newer 2004 edition:
http://www.amazon.com/Secrets-Closing-Sale-Zig-Ziglar/dp/0800759753
Or, perhaps the Audio CD
http://www.amazon.com/Secrets-Closing-Abridged-published-Schuster/dp/B00ES24V5G
This is an excellent book whenever your business growth feels like it is stalling...
Make It Happen Before Lunch: 50 Cut-to-the-Chase Strategies for Getting the Business Results You Want
http://www.amazon.com/Make-Happen-Before-Lunch--Chase/dp/0071360719
Gerald Weinberg's writing has been transformational in how I have evolved as a consultant...
Secrets of Consulting
http://www.amazon.com/Secrets-Consulting-Giving-Getting-Successfully/dp/0932633013
More Secrets of Consulting: The Consultant's Tool Kit
http://www.amazon.com/More-Secrets-Consulting-Consultants-Tool/dp/0932633528
I have an entire shelf of Alan Weiss books in my library - his attitudes about most things rubs me the wrong way (often in a most disagreeable manner) - but his writing continues to challenge me in stretching my mind in how I view my consulting business - and how I seek to differentiate my competitive service offerings. He also challenges my conventional notions about how to set billing rates - and how to value the service I offer clients. Be forwearned, he's a real ball buster kind of guy...
http://www.amazon.com/Alan-Weiss/e/B000AQ0PNG
Avoiding the Hourly Billing Trap - Selling Your Expertise...
http://www.forbes.com/sites/susanadams/2014/10/27/heres-how-one-new-college-grad-made-66000-in-one-month-without-a-full-time-job/
https://www.udemy.com/teach/
If you have some ideas for possible commercial/cloud software/service offerings, I highly recommend signing up for the Microsoft Biz Spark program...
http://www.microsoft.com/bizspark/
Business Insurance
Recommended:
http://www.thehartford.com/
Sample Contracts, possible sources...
http://www.onecle.com/
http://msabundle.com/
Cloud Hosted Accounting Software
You might want to look at something like this...
http://www.freshbooks.com/
..or just
Cloud Hosted Billing/Invoicing
https://www.simplybill.com/
...or perhaps Intuit's invoice payment service...
https://ipn.intuit.com/
If you find that you have long-term engagements with clients - where you need to publish client-specific documents - and have some form of interactivity - you might want to use a service like Base Camp
https://basecamp.com/
https://basecamp.com/start#prices
or...
https://trello.com/
Or perhaps if you need something a little more robust...this might be worth looking at...
https://www.worketc.com/
If you just need a time-tracking tool...
https://www.tickspot.com
Road Warrior Tools....
You'll be on the road...often....and as a solo Rōnin Business Warrior - you'll have no corporate organization to support and back you up. It is up to you to assemble your 'support team' and 'support services' - here are a few that I would consider as potential 'force multipliers' for an Army of One:
Wifi / Mobile Hotspot
I have been very pleased with my AT&T Mobile Hotspot device [Unite Pro] - and recently upgraded to the 30GB/month option. One of my best investments in tools for the road: Never having to worry about availability of Wifi; ability to avoid public/guest Wifi networks; and avoiding potential additional charges for Wifi access in hotels and airports.
Web Site Hosting
Want to host a web site?
Yahoo Business Hosting has very economical plans:
https://smallbusiness.yahoo.com/webhosting
You may also want to consider something like:
http://www.digitalocean.com
or...
http://www.rackspace.com
File Sharing
http://www.dropbox.com
http://www.github.com
http://www.box.com
http://docs.google.com
Electronic Document Management
https://www.docusign.com/
Need a Virtual Assistant?
http://www.virtualstafffinder.com/
Mail Box Service
UPS.com
Having a mailbox with a local UPS store is extremely useful. The peace of mind that there is someone there to sign for packages, and who can forward your mail to you while you are on the road has been worth the annual cost.
Virtual Office / Phone / Mail / Support?
http://www.regus.com/products/virtual-offices/index.aspx
Although I am currently a Vonage business customer, if I were starting out today, I might consider...just a Skype Business Number
...or...
http://grasshopper.com/
For offering seminars/classes: Student Registration / Sell Class Tickets Online
https://www.eventbrite.com/t/how-to-sell-tickets-online
or...
https://www.regonline.com/
If you find yourself in the same major city often enough - and the client's office location is not usable (for whatever reason: space, convenience, noise, lack of privacy, etc.) - you might want to consider a Gold Business Lounge Membership with Regus.com
http://www.regus.com/products/businessworld-membership/gold.aspx
http://www.regus.com/products/business-lounges/index.aspx
Prices are very reasonable - and you can select a plan that is specific to a State, Country, or Global
Sometimes you just need a place to sit, have a coffee, and do a little work - this may be a useful link to save:
https://workfrom.co/
If I were traveling frequently, to help deal with stress, jet lag, etc. you might want a gym membership - my personal preference would be an LA Fitness Signature Club membership
https://www.lafitness.com/Pages/findclub.aspx
If you find yourself spending a lot of time stuck in airports, it may be worthwhile to sign-up for a Priority Pass
http://www.prioritypass.com/
For frequent business travel, I would also consider the extensive benefits offered by the American Express Platinum card
https://www304.americanexpress.com/credit-card/platinum
Also, for frequent flying, TSA-Pre
http://www.tsa.gov/tsa-precheck-application-program
If you have frequent international travel,
http://www.cbp.gov/global-entry/about
This site can help with getting visas for international travel...
http://www.itseasy.com/
Need to host a web demo kind of meeting? This is a very economical service that also includes a free usage tier
https://www.join.me/
https://www.join.me/en/features
https://www.join.me/en/pricing
or...consider this service
https://www.uberconference.com/
or....
http://www.screenleap.com/
or...
http://www.gotomeeting.com/online/
A World Clock
http://www.timeanddate.com/worldclock/
Currency Converter
http://www.xe.com/currencyconverter/
You may need to entertain clients sometimes, OpenTable is convenient for checking menus, venues, and makes dinner reservations a snap
http://www.opentable.com
Some useful travel sites:
http://www.flightarrivals.com
http://www.flightradar24.com
http://www.seatguru.com
http://flightaware.com
http://thepointsguy.com
http://boardingarea.com
Consulting industry trends...
I subscribe to the Kennedy Wire e-newsletter, since it gives me a broader overview of trends/news related to the business of consulting in general.
http://www.kennedyinfo.com/consulting/
http://www.kennedyinfo.com/consulting/periodicals/kennedywire
Some links to inspirational content for the start-up / consulting frame of mind...
http://onstartups.com/
http://www.startuplessonslearned.com/
http://knowledge.wharton.upenn.edu/
http://venturehacks.com/
For an overview of the legal aspects of start-ups...
http://www.startupcompanylawyer.com/
Presentations / Marketing:
Need business cards, stationary, signs, banners, web site, company swag? http://www.vistaprint.com
Need a logo developed or a web site - put it out as a contest/bid project
http://99designs.com/
or consider this service...
http://www.logoworks.com/
Engage your audience with a web hosted survey
https://www.surveymonkey.com/
Need to send out mass-mailings (e.g. newsletters?)
http://mailchimp.com/
Share presentations
https://speakerdeck.com/
Share videos
https://vimeo.com/
Press Release Distribution
http://www.businesswire.com/portal/site/home/submit-a-press-release/
http://www.businesswire.com/portal/site/home/distribution/
Presentation Zen
http://www.presentationzen.com/
http://www.garrreynolds.com/preso-tips/
I find it helpful when crafting an initial contact email to refresh my mind with this...
[Apparently I captured the following snippet in a notebook some time ago, but I can't seem to find the source for proper attribution - I will update with the proper attribution as soon as I can confirm the source]
AIDA
If your business evolves as mine has, you may find that 50% eventually comes from referral/relationships - and 50% from sources that you monitor. Having said that - there comes a time (either at the bottom of a vicious downturn in the business cycle, or at a peak in the organic growth rate of your business itself - where cold calling will be necessary to thrive - or just survive. These are the best-of-the-best books I have found for developing the mental mindset for that time...
Some Recommended Books...
Zig Ziglar's Secrets of Closing the Sale, my copy is the original 1995 edition
http://www.amazon.com/Zig-Ziglars-Secrets-Closing-Sale/dp/0425081028
You might prefer the newer 2004 edition:
http://www.amazon.com/Secrets-Closing-Sale-Zig-Ziglar/dp/0800759753
Or, perhaps the Audio CD
http://www.amazon.com/Secrets-Closing-Abridged-published-Schuster/dp/B00ES24V5G
This is an excellent book whenever your business growth feels like it is stalling...
Make It Happen Before Lunch: 50 Cut-to-the-Chase Strategies for Getting the Business Results You Want
http://www.amazon.com/Make-Happen-Before-Lunch--Chase/dp/0071360719
Gerald Weinberg's writing has been transformational in how I have evolved as a consultant...
Secrets of Consulting
http://www.amazon.com/Secrets-Consulting-Giving-Getting-Successfully/dp/0932633013
More Secrets of Consulting: The Consultant's Tool Kit
http://www.amazon.com/More-Secrets-Consulting-Consultants-Tool/dp/0932633528
I have an entire shelf of Alan Weiss books in my library - his attitudes about most things rubs me the wrong way (often in a most disagreeable manner) - but his writing continues to challenge me in stretching my mind in how I view my consulting business - and how I seek to differentiate my competitive service offerings. He also challenges my conventional notions about how to set billing rates - and how to value the service I offer clients. Be forwearned, he's a real ball buster kind of guy...
http://www.amazon.com/Alan-Weiss/e/B000AQ0PNG
Avoiding the Hourly Billing Trap - Selling Your Expertise...
http://www.forbes.com/sites/susanadams/2014/10/27/heres-how-one-new-college-grad-made-66000-in-one-month-without-a-full-time-job/
https://www.udemy.com/teach/
If you have some ideas for possible commercial/cloud software/service offerings, I highly recommend signing up for the Microsoft Biz Spark program...
http://www.microsoft.com/bizspark/
Business Insurance
Recommended:
http://www.thehartford.com/
Sample Contracts, possible sources...
http://www.onecle.com/
http://msabundle.com/
Cloud Hosted Accounting Software
You might want to look at something like this...
http://www.freshbooks.com/
..or just
Cloud Hosted Billing/Invoicing
https://www.simplybill.com/
...or perhaps Intuit's invoice payment service...
https://ipn.intuit.com/
If you find that you have long-term engagements with clients - where you need to publish client-specific documents - and have some form of interactivity - you might want to use a service like Base Camp
https://basecamp.com/
https://basecamp.com/start#prices
or...
https://trello.com/
Or perhaps if you need something a little more robust...this might be worth looking at...
https://www.worketc.com/
If you just need a time-tracking tool...
https://www.tickspot.com
Road Warrior Tools....
You'll be on the road...often....and as a solo Rōnin Business Warrior - you'll have no corporate organization to support and back you up. It is up to you to assemble your 'support team' and 'support services' - here are a few that I would consider as potential 'force multipliers' for an Army of One:
Wifi / Mobile Hotspot
I have been very pleased with my AT&T Mobile Hotspot device [Unite Pro] - and recently upgraded to the 30GB/month option. One of my best investments in tools for the road: Never having to worry about availability of Wifi; ability to avoid public/guest Wifi networks; and avoiding potential additional charges for Wifi access in hotels and airports.
Web Site Hosting
Want to host a web site?
Yahoo Business Hosting has very economical plans:
https://smallbusiness.yahoo.com/webhosting
You may also want to consider something like:
http://www.digitalocean.com
or...
http://www.rackspace.com
File Sharing
http://www.dropbox.com
http://www.github.com
http://www.box.com
http://docs.google.com
Electronic Document Management
https://www.docusign.com/
Need a Virtual Assistant?
http://www.virtualstafffinder.com/
Mail Box Service
UPS.com
Having a mailbox with a local UPS store is extremely useful. The peace of mind that there is someone there to sign for packages, and who can forward your mail to you while you are on the road has been worth the annual cost.
Virtual Office / Phone / Mail / Support?
http://www.regus.com/products/virtual-offices/index.aspx
Although I am currently a Vonage business customer, if I were starting out today, I might consider...just a Skype Business Number
...or...
http://grasshopper.com/
For offering seminars/classes: Student Registration / Sell Class Tickets Online
https://www.eventbrite.com/t/how-to-sell-tickets-online
or...
https://www.regonline.com/
If you find yourself in the same major city often enough - and the client's office location is not usable (for whatever reason: space, convenience, noise, lack of privacy, etc.) - you might want to consider a Gold Business Lounge Membership with Regus.com
http://www.regus.com/products/businessworld-membership/gold.aspx
http://www.regus.com/products/business-lounges/index.aspx
Prices are very reasonable - and you can select a plan that is specific to a State, Country, or Global
Sometimes you just need a place to sit, have a coffee, and do a little work - this may be a useful link to save:
https://workfrom.co/
If I were traveling frequently, to help deal with stress, jet lag, etc. you might want a gym membership - my personal preference would be an LA Fitness Signature Club membership
https://www.lafitness.com/Pages/findclub.aspx
If you find yourself spending a lot of time stuck in airports, it may be worthwhile to sign-up for a Priority Pass
http://www.prioritypass.com/
For frequent business travel, I would also consider the extensive benefits offered by the American Express Platinum card
https://www304.americanexpress.com/credit-card/platinum
Also, for frequent flying, TSA-Pre
http://www.tsa.gov/tsa-precheck-application-program
If you have frequent international travel,
http://www.cbp.gov/global-entry/about
This site can help with getting visas for international travel...
http://www.itseasy.com/
Need to host a web demo kind of meeting? This is a very economical service that also includes a free usage tier
https://www.join.me/
https://www.join.me/en/features
https://www.join.me/en/pricing
or...consider this service
https://www.uberconference.com/
or....
http://www.screenleap.com/
or...
http://www.gotomeeting.com/online/
A World Clock
http://www.timeanddate.com/worldclock/
Currency Converter
http://www.xe.com/currencyconverter/
You may need to entertain clients sometimes, OpenTable is convenient for checking menus, venues, and makes dinner reservations a snap
http://www.opentable.com
Some useful travel sites:
http://www.flightarrivals.com
http://www.flightradar24.com
http://www.seatguru.com
http://flightaware.com
http://thepointsguy.com
http://boardingarea.com
Consulting industry trends...
I subscribe to the Kennedy Wire e-newsletter, since it gives me a broader overview of trends/news related to the business of consulting in general.
http://www.kennedyinfo.com/consulting/
http://www.kennedyinfo.com/consulting/periodicals/kennedywire
Some links to inspirational content for the start-up / consulting frame of mind...
http://onstartups.com/
http://www.startuplessonslearned.com/
http://knowledge.wharton.upenn.edu/
http://venturehacks.com/
For an overview of the legal aspects of start-ups...
http://www.startupcompanylawyer.com/
Presentations / Marketing:
Need business cards, stationary, signs, banners, web site, company swag? http://www.vistaprint.com
Need a logo developed or a web site - put it out as a contest/bid project
http://99designs.com/
or consider this service...
http://www.logoworks.com/
Engage your audience with a web hosted survey
https://www.surveymonkey.com/
Need to send out mass-mailings (e.g. newsletters?)
http://mailchimp.com/
Share presentations
https://speakerdeck.com/
Share videos
https://vimeo.com/
Press Release Distribution
http://www.businesswire.com/portal/site/home/submit-a-press-release/
http://www.businesswire.com/portal/site/home/distribution/
Presentation Zen
http://www.presentationzen.com/
http://www.garrreynolds.com/preso-tips/
I find it helpful when crafting an initial contact email to refresh my mind with this...
[Apparently I captured the following snippet in a notebook some time ago, but I can't seem to find the source for proper attribution - I will update with the proper attribution as soon as I can confirm the source]
AIDA
When crafting a sales letter, try to go with the proven direct marketing formula known as AIDA. It stands for: Attention, Interest, Desire, Action
Your sales material must incorporate all of these elements, which in effect takes the customer by the hand from the moment of getting their attention (A), having them take interest in the product (I), causing them to desire the BENEFITS that the product will give them - note that this is not the same as desiring the product (D), and calling them to action (A). A strong call to action, where you spell out and tell them exactly what to do in order to buy your product, is essential...
2014-12-03 Wednesday - Micosoft Office Visio Stencil 2014
Useful:
For anyone who uses Visio to document software/architecture, this is a useful download: Microsoft Office Visio Stencil 2014
http://www.microsoft.com/en-nz/download/details.aspx?id=35772
2016-03-24 Update:
Orbus offers a free Visio stencil for TOGAF(tm) diagrams
http://www.orbussoftware.com/resources/starter-packs/togaf-91-starter-pack
2014-12-03 Wednesday - Book Review: Effective Ruby
Expert Guidance on Ruby's Ways
When you buy a book to expand your knowledge of something, you hope that the author has used the pages to communicate worthwhile lessons - and a good book is liking having a teacher by your side. For my personal preference, an even better style is when the author acts much as a mountain guide - not only showing you the right way - but also calling out the dangers and risks of less efficient paths...or paths that will lead you astray.
In "Effective Ruby, 48 Specific Ways to Write Better Ruby", Peter J. Jones demonstrates his knowledge of Ruby - in a hands-on and practical manner - achieving the much deserved accolade as both teacher and guide.
The clarity of writing is reminiscent of Kernighan and Ritchie, Scott Meyers, and Joshua Bloch
Ruby is a worthwhile language to have in your toolbox - and this book is a welcome addition to my technical library.
Chapter 1: Accustoming Yourself to Ruby
Chapter 2: Classes, Objects, and Modules
Chapter 3: Collections
Chapter 4: Exceptions
Chapter 5: Metaprogramming
Chapter 6: Testing
Chapter 7: Tools and Libraries
Chapter 8: Memory Management and Performance
2014-11-28
2014-11-28 Friday - Dev Lab Upgrades
Although my role these days is primarily as an architect - I continue to keep my hands firmly familiar with the full technology stack of tooling for developing solutions on different platforms. A core belief in my view is that architects must not lose touch with their coding skills...and even better, when they are active contributors within an organization...
This post will be a bit messy over the next few days as I continue to add links, commentary, and clean-up the list with the final bits of software upgrades and installations.
My current primary dev machine is a Sony Viao VPC-F23BFX/B notebook running Windows 7 64 bit, with 8GB of RAM, with an Intel Core i7-2670QM processor (quad core, 8 threads, 2.20 GHz), a 640 GB internal hard drive, an NVIDIA Geforce GT 540M GPU, dual external LG Flatron E2260 LED-backlit LCD monitors, and two external USB attached Western Digital My Book drives (an older 2x500MB drive configured with RAID 1, and a more recent 2 TB drive). Additionally, I leverage various cloud hosting service providers when additional hardware/server test configurations are needed.
I've kept several older versions of Eclipse handy as part of my personal Dev Lab environment - but this week decided to discard them and work exclusively in the 4.4 (Luna) release.
Additionally, there are a number of tools which I've spent some time upgrading to their latest releases:
Virtual Machines...
- Oracle VM VirtualBox 4.3.20
[which I use when I need to work in a Linux environment - currently preferring Fedora Desktop 20 - with plans to upgrade to Fedora 21, when it is available as a GA release after December 9th]
Mobile Development Tools...
- Android Development Tools (ADT) 23.0.2
Static Code Analysis Tools...
- FindBugs 3.0.0
- PMD 5.2.1
- Checkstyle 6.1.1
Source Code Management
- Git 1.9.4
- Apache Subversion 1.8.10 [...pending build from source]
Build Tools...
- Jenkins 1.588
- Python 3.4.2
- Scala 2.11.4
- R 3.1.2
- Groovy 2.4.0-beta-4
- Julia 0.3.3
- Perl 5.20.1 [changes since 5.18]
- Clojure 1.6.0
- Ruby 2.1.5
- Java 8
Libraries...
- Apache Commons Math 3.3
- Apache POI 3.11-beta3
- Apache Camel 2.14.0
- Apache Commons Lang 3-3.3.2
Application Servers...
- Apache Tomcat 8.0.15
- Jetty 9.2.5
Distributed Computing Tools...
- Apache Storm 0.9.3
- Apache Zookeeper 3.4.6
Database Technologies...
- Apache Cassandra 2.1.2
- MariaDB 10.0.15
- Datomic 0.9.5078
IDEs...
- Eclipse Luna 4.4.1
For my Eclipse Luna environment, I'm still evaluating the mix of the following plugins that I've installed...
PHP (PDT)
http://download.eclipse.org/tools/pdt/updates/3.3.2
Python
http://pydev.org/updates
http://marketplace.eclipse.org/content/easyshell
http://pluginbox.sourceforge.net
CDT
http://download.eclipse.org/tools/cdt/releases/8.5/
http://pmd.sourceforge.net/pmd-5.2.1/usage/integrations.html#eclipse
http://sourceforge.net/projects/pmd/files/pmd-eclipse/update-site/
http://findbugs.sourceforge.net/downloads.html
http://findbugs.cs.umd.edu/eclipse
http://marketplace.eclipse.org/content/checkstyle-plug
http://eclipse-cs.sourceforge.net/update/
http://marketplace.eclipse.org/content/oracle-enterprise-pack-eclipse-luna
http://download.oracle.com/otn_software/oepe/luna
http://marketplace.eclipse.org/content/red-hat-jboss-developer-studio-luna
https://devstudio.redhat.com/updates/8.0/
http://aws.amazon.com/eclipse/
https://dl-ssl.google.com/android/eclipse/
StatET (for R)
http://www.walware.de/goto/opensource
http://download.walware.de/eclipse-4.4
https://developers.google.com/eclipse/
https://developers.google.com/eclipse/docs/install-eclipse-4.4
https://dl.google.com/eclipse/plugin/4.4
http://marketplace.eclipse.org/content/nodeclipse
http://www.nodeclipse.org/
http://www.nodeclipse.org/updates/
http://subclipse.tigris.org/update_1.10.x
If you have used Subclipse in a previous version of Eclipse - and then think, "oh, why don't I try Subversive this time?" (or vice versa) - then you'll probably find these links helpful (eventually)...
This post will be a bit messy over the next few days as I continue to add links, commentary, and clean-up the list with the final bits of software upgrades and installations.
My current primary dev machine is a Sony Viao VPC-F23BFX/B notebook running Windows 7 64 bit, with 8GB of RAM, with an Intel Core i7-2670QM processor (quad core, 8 threads, 2.20 GHz), a 640 GB internal hard drive, an NVIDIA Geforce GT 540M GPU, dual external LG Flatron E2260 LED-backlit LCD monitors, and two external USB attached Western Digital My Book drives (an older 2x500MB drive configured with RAID 1, and a more recent 2 TB drive). Additionally, I leverage various cloud hosting service providers when additional hardware/server test configurations are needed.
I've kept several older versions of Eclipse handy as part of my personal Dev Lab environment - but this week decided to discard them and work exclusively in the 4.4 (Luna) release.
Virtual Machines...
- Oracle VM VirtualBox 4.3.20
[which I use when I need to work in a Linux environment - currently preferring Fedora Desktop 20 - with plans to upgrade to Fedora 21, when it is available as a GA release after December 9th]
Mobile Development Tools...
- Android Development Tools (ADT) 23.0.2
Static Code Analysis Tools...
- FindBugs 3.0.0
- PMD 5.2.1
- Checkstyle 6.1.1
Source Code Management
- Git 1.9.4
- Apache Subversion 1.8.10 [...pending build from source]
Build Tools...
- Jenkins 1.588
Programming Languages...
- PHP 5.6.3- Python 3.4.2
- Scala 2.11.4
- R 3.1.2
- Groovy 2.4.0-beta-4
- Julia 0.3.3
- Perl 5.20.1 [changes since 5.18]
- Clojure 1.6.0
- Ruby 2.1.5
- Java 8
Libraries...
- Apache Commons Math 3.3
- Apache POI 3.11-beta3
- Apache Camel 2.14.0
- Apache Commons Lang 3-3.3.2
Application Servers...
- Apache Tomcat 8.0.15
- Jetty 9.2.5
Distributed Computing Tools...
- Apache Storm 0.9.3
- Apache Zookeeper 3.4.6
Database Technologies...
- Apache Cassandra 2.1.2
- MariaDB 10.0.15
- Datomic 0.9.5078
IDEs...
- Eclipse Luna 4.4.1
For my Eclipse Luna environment, I'm still evaluating the mix of the following plugins that I've installed...
PHP (PDT)
http://download.eclipse.org/tools/pdt/updates/3.3.2
Python
http://pydev.org/updates
http://marketplace.eclipse.org/content/easyshell
http://pluginbox.sourceforge.net
CDT
http://download.eclipse.org/tools/cdt/releases/8.5/
http://pmd.sourceforge.net/pmd-5.2.1/usage/integrations.html#eclipse
http://sourceforge.net/projects/pmd/files/pmd-eclipse/update-site/
http://findbugs.sourceforge.net/downloads.html
http://findbugs.cs.umd.edu/eclipse
http://marketplace.eclipse.org/content/checkstyle-plug
http://eclipse-cs.sourceforge.net/update/
http://download.oracle.com/otn_software/oepe/luna
http://marketplace.eclipse.org/content/red-hat-jboss-developer-studio-luna
https://devstudio.redhat.com/updates/8.0/
http://aws.amazon.com/eclipse/
https://dl-ssl.google.com/android/eclipse/
StatET (for R)
http://www.walware.de/goto/opensource
http://download.walware.de/eclipse-4.4
https://developers.google.com/eclipse/
https://developers.google.com/eclipse/docs/install-eclipse-4.4
https://dl.google.com/eclipse/plugin/4.4
http://marketplace.eclipse.org/content/nodeclipse
http://www.nodeclipse.org/
http://www.nodeclipse.org/updates/
http://subclipse.tigris.org/update_1.10.x
If you have used Subclipse in a previous version of Eclipse - and then think, "oh, why don't I try Subversive this time?" (or vice versa) - then you'll probably find these links helpful (eventually)...
Restore Eclipse subversion project connection
http://stackoverflow.com/questions/166220/restore-eclipse-subversion-project-connection
Cannot connect existing project to SVN using Subversive
http://www.eclipse.org/forums/index.php/t/398103/
2014-11-21
2014-11-21 Friday - Toshiba Qosmio X70-AST3G26 Laptop
I'm not quite yet ready to pull the trigger on buying a new laptop - but sometime in 2015 I think I will do so.
The specs for the Toshiba Qosmio X70-AST3G26 Laptop look quite appealing...something beefy enough to use as a portable development workstation...
http://www.toshiba.com/us/computers/laptops/qosmio/X70/X70-AST3G26
The specs for the Toshiba Qosmio X70-AST3G26 Laptop look quite appealing...something beefy enough to use as a portable development workstation...
http://www.toshiba.com/us/computers/laptops/qosmio/X70/X70-AST3G26
- Intel® Core™ i7-4700MQ Processor
- 32GB DDR3L 1600MHz memory
- 3GB GDDR5 NVIDIA® GTX770M with Optimus™ Technology
- 2.75TB: 256GB Solid State Drive (mSATA, SSD) + 1.0TB (5400 RPM, Serial ATA) + 1.5TB (5400 RPM, Serial ATA)
- Blu-ray Disc™ Rewriteable (BD-RE) and DVD SuperMulti drive
- FHD TruBrite® TFT LED Backlit Display with Intel® Wireless Display Technology
- Intel® Dual-Band Wireless-N 7260 2x2 AC + Bluetooth® 4.0
- Premium Frameless LED Backlit Raised Tile Keyboard with 10-Keypad (black)
- 10/100/1000 Ethernet LAN
- Starting at 7.6 lbs
- Black Widow Styling in Textured Aluminum
2014-11-19
2014-11-19 Wednesday - Best Windows 7 reference book?
I'm considering adding a comprehensive Windows 7 reference book to my technical library - wondering if there are any recommendations for one over the other in this short list?
http://www.amazon.com/Windows-7-The-Missing-Manual/dp/0596806396/
http://www.amazon.com/Windows-Inside-Out-Deluxe-Edition/dp/0735656924
http://www.amazon.com/Windows-Resource-Kit-Mitch-Tulloch/dp/0735627002/
http://www.amazon.com/Windows-Annoyances-Tips-Secrets-Solutions/dp/0596157622/
http://www.amazon.com/Windows-7-Bible-Jim-Boyce/dp/0470509090/
http://www.amazon.com/Windows-7-The-Missing-Manual/dp/0596806396/
http://www.amazon.com/Windows-Inside-Out-Deluxe-Edition/dp/0735656924
http://www.amazon.com/Windows-Resource-Kit-Mitch-Tulloch/dp/0735627002/
http://www.amazon.com/Windows-Annoyances-Tips-Secrets-Solutions/dp/0596157622/
http://www.amazon.com/Windows-7-Bible-Jim-Boyce/dp/0470509090/
2014-11-18
2014-11-18 Tuesday - NVIDIA SHIELD Tablet Android Lollipop
When looking for high performance technical computing tools, I often consider computing platforms that have been specifically designed for heavy duty gaming - but which would be just as fitting in an office environment.
I'm intrigued by the computing power bundled into the latest NVIDIA Shield tablet with Android Lollipop...
http://www.slashgear.com/nvidia-shield-tablet-review-29338942/
http://www.mobiletechreview.com/tablets/NVIDIA-Shield-Tablet.htm
NVIDIA SHIELD Tablet Android Lollipop Update Hands-On With Benchmarks
http://hothardware.com/News/NVIDIA-SHIELD-Tablet-Android-Lollipop-Update-HandsOn-With-Benchmarks/
http://www.amazon.com/NVIDIA-940-81761-2500-000-SHIELD-Tablet-WiFi/dp/B00LM6KF7O
I'm intrigued by the computing power bundled into the latest NVIDIA Shield tablet with Android Lollipop...
http://www.slashgear.com/nvidia-shield-tablet-review-29338942/
http://www.mobiletechreview.com/tablets/NVIDIA-Shield-Tablet.htm
NVIDIA SHIELD Tablet Android Lollipop Update Hands-On With Benchmarks
http://hothardware.com/News/NVIDIA-SHIELD-Tablet-Android-Lollipop-Update-HandsOn-With-Benchmarks/
http://www.amazon.com/NVIDIA-940-81761-2500-000-SHIELD-Tablet-WiFi/dp/B00LM6KF7O
2014-11-18 Tuesday - XPerf
This posting is a placeholder for links and information regarding Windows Performance Toolkit
Two Minute Drill: Introduction to XPerf
http://blogs.technet.com/b/askperf/archive/2008/06/27/an-intro-to-xperf.aspx
XPERF and the Windows Performance Toolkit
http://www.drdobbs.com/article/print?articleId=227001079
Windows Performance Toolkit Technical Reference
http://msdn.microsoft.com/en-us/library/windows/hardware/hh162945.aspx
Xperf Command-Line Reference
http://msdn.microsoft.com/en-us/library/windows/hardware/hh162920.aspx
Two Minute Drill: Introduction to XPerf
http://blogs.technet.com/b/askperf/archive/2008/06/27/an-intro-to-xperf.aspx
XPERF and the Windows Performance Toolkit
http://www.drdobbs.com/article/print?articleId=227001079
Windows Performance Toolkit Technical Reference
http://msdn.microsoft.com/en-us/library/windows/hardware/hh162945.aspx
Xperf Command-Line Reference
http://msdn.microsoft.com/en-us/library/windows/hardware/hh162920.aspx
2014-11-10
2014-11-10 Monday - QCon San Francisco Trip Report
Last week I attended QCon in San Francisco as a Gold Alumni (which included a free O'Reilly book)
I flew into SFO on Sunday and caught a cab (~$55) to the Hyatt Regency (I splurged for a balcony / bay view room - $295/night conference rate). The hotel is really top shelf - and the venue was an excellent choice. The 7-11 and Starbucks across the street allowed me to refuel with moderate expenses for some additional refreshments.
The conference spanned three days (Mon-Wed) - with two days of tutorials on Thur-Fri.
Several familiar faces were speaking this year - but many/most were new.
LinkedIn and Netflix - as well as Google and Facebook - had some of the most interesting presentations.
I enjoyed meeting Bruce Schneier after his keynote:
https://qconsf.com/keynote/Bruce-Schneier
Some of my favorite sessions included:
Jafar Husain
Asynchronous Programming at Netflix
https://qconsf.com/presentation/asynchronous-programming-netflix-0
Neha Narkhede
Samza in LinkedIn: How LinkedIn Processes Billions of Events Everyday in Real-time
https://qconsf.com/presentation/samza-linkedin-how-linkedin-processes-billions-events-everyday-real-time
Aaron Gardner
Etsy Search: How we index and query 26 million one-of-a-kind items
https://qconsf.com/presentation/etsy-search-how-we-index-and-query-26-million-one-kind-items
Jeff Lindsay
Real-world Docker: Past, Present, and Future
https://qconsf.com/presentation/real-world-docker-past-present-and-future
Randy Shoup
Concurrency at Large-Scale: The Evolution to Reactive Microservices
https://qconsf.com/presentation/concurrency-large-scale-evolution-reactive-microservices
Sean Taylor
Putting the Magic in Data Science @ Facebook
https://qconsf.com/presentation/putting-magic-data-science-facebook
Lin Qiao
Gobblin: A Framework for Solving Big Data Ingestion Problem
https://qconsf.com/presentation/gobblin-framework-solving-big-data-ingestion-problem
Julien Le Dem
Efficient Data Storage for Analytics with Parquet 2.0
https://qconsf.com/presentation/efficient-data-storage-analytics-parquet-20-0
The hotel offered a town car service to the airport ($65) - which was a bit of an extravagance and indulgence on my part - a welcome reward for the last few years of multi-year client engagements.
Overall, it was a good trip - just the tonic I was seeking for inspiration, insight, and motivation.
I flew into SFO on Sunday and caught a cab (~$55) to the Hyatt Regency (I splurged for a balcony / bay view room - $295/night conference rate). The hotel is really top shelf - and the venue was an excellent choice. The 7-11 and Starbucks across the street allowed me to refuel with moderate expenses for some additional refreshments.
The conference spanned three days (Mon-Wed) - with two days of tutorials on Thur-Fri.
Several familiar faces were speaking this year - but many/most were new.
LinkedIn and Netflix - as well as Google and Facebook - had some of the most interesting presentations.
I enjoyed meeting Bruce Schneier after his keynote:
https://qconsf.com/keynote/Bruce-Schneier
Some of my favorite sessions included:
Jafar Husain
Asynchronous Programming at Netflix
https://qconsf.com/presentation/asynchronous-programming-netflix-0
Neha Narkhede
Samza in LinkedIn: How LinkedIn Processes Billions of Events Everyday in Real-time
https://qconsf.com/presentation/samza-linkedin-how-linkedin-processes-billions-events-everyday-real-time
NOTE: Neha is a true standout at this year's QCon - she is an established professional - with solid accomplishments - but she is still early in her arc of success - she is definitely someone that will have even bigger successes in her future. A definite rising star...
Aaron Gardner
Etsy Search: How we index and query 26 million one-of-a-kind items
https://qconsf.com/presentation/etsy-search-how-we-index-and-query-26-million-one-kind-items
Jeff Lindsay
Real-world Docker: Past, Present, and Future
https://qconsf.com/presentation/real-world-docker-past-present-and-future
Randy Shoup
Concurrency at Large-Scale: The Evolution to Reactive Microservices
https://qconsf.com/presentation/concurrency-large-scale-evolution-reactive-microservices
I met Randy at a previous QCon some years ago - and have sat in on one of Java One presentations at Oracle World. He is a top shelf speaker - always informative, thought provoking, and entertaining. My one suggestion to anyone that ever has a chance to work for him: Immediately quit whatever else you are doing and go work with this guy. You will gain an invaluable education and the depth of your experience and knowledge will be magnified far beyond your imagination.
Sean Taylor
Putting the Magic in Data Science @ Facebook
https://qconsf.com/presentation/putting-magic-data-science-facebook
One of the most informative sessions for me this year...
Lin Qiao
Gobblin: A Framework for Solving Big Data Ingestion Problem
https://qconsf.com/presentation/gobblin-framework-solving-big-data-ingestion-problem
Another rising star to watch for in the future...
Julien Le Dem
Efficient Data Storage for Analytics with Parquet 2.0
https://qconsf.com/presentation/efficient-data-storage-analytics-parquet-20-0
The hotel offered a town car service to the airport ($65) - which was a bit of an extravagance and indulgence on my part - a welcome reward for the last few years of multi-year client engagements.
Overall, it was a good trip - just the tonic I was seeking for inspiration, insight, and motivation.
2014-10-02
2014-10-02 Thursday - Packt Publishing's Level Up! promotion
Some good deals on eBooks and videos on Packt Publishing's Level Up! promotion
2014-03-15
2014-03-15 Saturday - Research: Launching Applications via Custom Protocols
This weekend I'm researching options for integrating a client's custom application so that it can be launched by users from within a browser. These are the links to the resources that I've found to be of the most interest - hopefully this will be use some use to someone else in the future.
Microsoft Windows / IE Related Notes
Understanding Protocols
http://blogs.msdn.com/b/ieinternals/archive/2011/07/14/url-protocols-application-protocols-and-asynchronous-pluggable-protocols-oh-my.aspx
ShellExecuteEx function
http://msdn.microsoft.com/en-us/library/bb762154(v=vs.85).aspx
SHELLEXECUTEINFO structure
http://msdn.microsoft.com/en-us/library/bb759784(v=vs.85).aspx
How to handle URI activation (Windows Store apps using C#/VB/C++ and XAML)
http://msdn.microsoft.com/library/windows/apps/Hh779670(v=win.10).aspx
ProtocolActivatedEventArgs class
http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.activation.protocolactivatedeventargs.aspx
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.application.onactivated.aspx
How to handle file activation (Windows Store apps using C#/VB/C++ and XAML)
http://msdn.microsoft.com/en-us/library/windows/apps/hh779669.aspx
Association launching sample
http://code.msdn.microsoft.com/windowsapps/Association-Launching-535d2cec
File type and URI associations model
http://msdn.microsoft.com/en-us/library/windows/apps/hh848047.aspx
Guidelines for file types and URIs (Windows Store apps)
http://msdn.microsoft.com/en-us/library/windows/apps/hh700321.aspx
Guidelines and Registration Procedures for New URI Schemes
http://tools.ietf.org/html/rfc4395
About URL Monikers
http://msdn.microsoft.com/en-us/library/ms775149(v=vs.85).aspx
Creating and Using URL Monikers
http://msdn.microsoft.com/en-us/library/aa741006(v=vs.85).aspx
BINDINFO structure
http://msdn.microsoft.com/en-us/library/ms774966(v=vs.85).aspx
Asynchronous Pluggable Protocols
http://msdn.microsoft.com/en-us/library/aa767743(v=VS.85).aspx
About Asynchronous Pluggable Protocols
http://msdn.microsoft.com/en-us/library/aa767916(v=vs.85).aspx
Asynchronous Pluggable Protocol Overviews
http://msdn.microsoft.com/en-us/library/jj650247(v=vs.85).aspx
Registering an Application to a URL Protocol
http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
URL Monikers Overviews and Tutorials
http://msdn.microsoft.com/en-us/library/ms775150(v=vs.85).aspx
Handling MIME Types in Windows Internet Explorer
http://msdn.microsoft.com/en-us/library/ms775148(v=vs.85).aspx
MIME Type Detection in Windows Internet Explorer
http://msdn.microsoft.com/en-us/library/ms775147(v=vs.85).aspx
- MIME type Detection Algorithm discussion
FindMimeFromData function
http://msdn.microsoft.com/en-us/library/ms775107(v=vs.85).aspx
Auto-Launching apps using file and URI associations for Windows Phone 8
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v=vs.105).aspx
Launcher.LaunchFileAsync(IStorageFile) | launchFileAsync(IStorageFile) method
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh701471.aspx
Understanding the Protected Mode Elevation Dialog
http://blogs.msdn.com/b/ieinternals/archive/2009/12/01/understanding-internet-explorer-security-protected-mode-elevation-dialog.aspx
Custom URL Protocol for Invoking Application
http://www.codeproject.com/Articles/332206/Custom-URL-Protocol-for-Invoking-Application
Custom HyperLinks Using a Generic Protocol Handler
http://www.codeproject.com/Articles/545083/Custom-HyperLinks-Using-a-Generic-Protocol-Handler
Custom Hyperlinks Using Asynchronous Pluggable Protocols
http://www.codeproject.com/Articles/15634/Custom-Hyperlinks-Using-Asynchronous-Pluggable-Pro
A windows 8 trick: Protocol activation of apps (and the nick app)
http://10rem.net/blog/2012/12/05/a-windows-8-trick-protocol-activation-of-apps-and-the-nick-app
Using protocol handlers as a ultra thin layer of integration
http://jonas.follesoe.no/2007/08/21/using-protocol-handlers-as-a-ultra-thin-layer-of-integration/
- see ProtocolHandlerDemo.zip
Firefox Related Notes
Web-based protocol handlers
https://developer.mozilla.org/en-US/docs/Web-based_protocol_handlers
MozillaZine
Register protocol
http://kb.mozillazine.org/Register_protocol
Linux Related Notes
[Ubuntu] Using a custom protocol handler in Firefox to run a shell script?
http://askubuntu.com/questions/161553/using-a-custom-protocol-handler-in-firefox-to-run-a-shell-script
Make a link in the Android browser start up my app?
http://stackoverflow.com/questions/3469908/make-a-link-in-the-android-browser-start-up-my-app
- DO NOT use your own custom scheme
Launch custom android application from android browser
http://stackoverflow.com/questions/2958701/launch-custom-android-application-from-android-browser
- Per Google Engineer: Use an with a element.
Android Intents with Chrome
https://developers.google.com/chrome/mobile/docs/intents
- ...Android lets you launch apps directly from a web page via an Android Intent.
- ...an intent anchor and embed that into the page so the user can launch the app. Flexible approach...and the ability to pass extra information into the app via Intent Extras.
Intents and Intent Filters (see: Extras)
http://developer.android.com/guide/components/intents-filters.html#extras
- Key-value pairs that carry additional information required to accomplish the requested action. Just as some actions use particular kinds of data URIs, some actions also use particular extras
- ...add extra data with various putExtra() methods, each accepting two parameters: the key name and the value...create a Bundle object with all the extra data, then insert the Bundle in the Intent with putExtras()
How to launch external applications using custom protocols (rock:// instead of http://)
https://support.shotgunsoftware.com/entries/86754-How-to-launch-external-applications-using-custom-protocols-rock-instead-of-http-
- python example..
- see last line (beginning with @="\"python\")...call python...handler script
- also see: Registering a Protocol on Linux
Apple OS X References
Launching External Applications using Custom Protocols under OSX
https://support.shotgunsoftware.com/entries/127152
How do I configure custom URL handlers on OS X?
http://superuser.com/questions/548119/how-do-i-configure-custom-url-handlers-on-os-x
Misc. References
W3C HTML5
6.6 System state and capabilities
6.6.1.3 Custom scheme and content handlers
http://www.w3.org/TR/html5/webappapis.html#custom-handlers
http://blogs.msdn.com/b/ieinternals/
http://www.autohotkey.com/board/topic/71831-application-url-launch-local-application-from-browser/
- Application URL is a trick so that you can launch any application on your local computer from your browser
- Both Chromium and Google Chrome do not allow the browser or it's extensions to access local files, so you cannot create an extension that would call a program already on your machine
- In order for this to work, it requires you to add a new registry key to the Windows Registry to register a new URL Protocol.
Chrome doesn’t handle custom protocols correctly - (still ?)
http://superuser.com/questions/451350/chrome-doesnt-handle-custom-protocols-correctly
- see: This can be adjusted in Chrome's Local State file.
http://stackoverflow.com/questions/12471738/protocol-handler
http://stackoverflow.com/questions/2800081/how-to-run-an-external-program-e-g-notepad-using-hyperlink
- see JavaScript example...
http://stackoverflow.com/questions/10568345/why-is-my-applet-throwing-an-accesscontrolexception
- servlet based approach would have security issues...
Microsoft Windows / IE Related Notes
Understanding Protocols
http://blogs.msdn.com/b/ieinternals/archive/2011/07/14/url-protocols-application-protocols-and-asynchronous-pluggable-protocols-oh-my.aspx
- In most cases, the invoked URL is injected to replace the %1 parameter in the registered \Shell\Open\Command.
- Windows 7 and later also support protocol invocation via the IExecuteCommand::DelegateExecute COM mechanism, instead of using the Shell Open Command. Some browsers do not yet properly support DelegateExecute because they first look for a Shell Open Command in the registry before passing a URL to ShellExecute.
- Thanks to their simplicity, and to the fact that the Windows ShellExecuteEx function can easily be used to launch such protocols, all major Windows web browsers (IE, Firefox, Chrome, Safari, Opera) support Application Protocols. However, there are some important differences in behavior between browsers.
- despite their simplicity, Application Protocols have nevertheless been the source of a large number of vulnerabilities over the years, and thus nearly all browsers (except Safari) will prompt the user before launching the specified program.
- In Internet Explorer 7 and later on Windows Vista and later, launching an application to handle an Application Protocol URL will also consult the Protected Mode Elevation policy for the target executable. By default, this policy is that the user will be prompted for permission to launch the program at the Medium Integrity Level:
- Another behavior to be aware of is that some callers will decode or encode URLs before passing them along to the target program. For historical reasons, Internet Explorer performs a single percent-decoding pass on the URL before calling ShellExecute; by default IE9 and IE10 still perform this decoding unless the protocol’s registry key contains a REG_DWORD named UseOriginalUrlEncoding with value 0x1. However, the Windows Shell’s Start > Run command performs no such decoding pass.
- On Windows 8, Apps may use their manifest to register to handle Application Protocols. Protocol activation APIs are more cleanly implemented in Metro-style apps
- The msProtocols object was removed for the IE10 release preview. Instead use the msLaunchUri api to launch a protocol,
- Web developers often ask if there’s some way to detect whether the
client has a given protocol available. Generally, the answer is no,
this isn’t possible
ShellExecuteEx function
http://msdn.microsoft.com/en-us/library/bb762154(v=vs.85).aspx
SHELLEXECUTEINFO structure
http://msdn.microsoft.com/en-us/library/bb759784(v=vs.85).aspx
- lpParameters: Type: LPCTSTR Optional. The address of a null-terminated string that contains the application parameters. The parameters must be separated by spaces. If the lpFile member specifies a document file, lpParameters should be NULL.
- lpVerb: Type: LPCTSTR A string, referred to as a verb, that
specifies the action to be performed. The set of available verbs depends
on the particular file or folder. Generally, the actions available from
an object's shortcut menu are available verbs. This parameter can be
NULL, in which case the default verb is used if available. If not, the
"open" verb is used. If neither verb is available, the system uses the
first verb listed in the registry. The following verbs are commonly
used:
How to handle URI activation (Windows Store apps using C#/VB/C++ and XAML)
http://msdn.microsoft.com/library/windows/apps/Hh779670(v=win.10).aspx
- Windows allows an app to register to become the default handler for a certain URI scheme name. Both desktop and Windows Store apps can register to be a default handler for a URI scheme name
- Any app or website can use your URI scheme name, including malicious ones. So any data that you get in the URI could come from an untrusted source. You should never perform a permanent action based on the parameters that you receive in a URI.
- If you are creating a new URI scheme name for your app, be sure to follow the guidance in RFC 4395. This ensures that your name meets the standards for URI schemes.
ProtocolActivatedEventArgs class
http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.activation.protocolactivatedeventargs.aspx
- Provides data when an app is activated because it is the app associated with a URI scheme nam
- JavaScript: This type appears as WebUIProtocolActivatedEventArgs
- The received URI is eventArgs.Uri.AbsoluteUri
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.application.onactivated.aspx
How to handle file activation (Windows Store apps using C#/VB/C++ and XAML)
http://msdn.microsoft.com/en-us/library/windows/apps/hh779669.aspx
Association launching sample
http://code.msdn.microsoft.com/windowsapps/Association-Launching-535d2cec
File type and URI associations model
http://msdn.microsoft.com/en-us/library/windows/apps/hh848047.aspx
Guidelines for file types and URIs (Windows Store apps)
http://msdn.microsoft.com/en-us/library/windows/apps/hh700321.aspx
Guidelines and Registration Procedures for New URI Schemes
http://tools.ietf.org/html/rfc4395
About URL Monikers
http://msdn.microsoft.com/en-us/library/ms775149(v=vs.85).aspx
- A moniker is a COM object that identifies an object and provides services to allow other components to obtain a pointer to that object. The system-provided moniker class supports asynchronous binding to a Uniform Resource Locator (URL).
- Monikers connect to and activate objects, whether they are in the same machine or across a network. For example COM uses monikers to establish a network connection. They are also used to identify, connect to, and run OLE compound document link objects. In this case, the link source acts as the moniker provider and the container holding the link object acts as the moniker client.
- Monikers
are used as the basis for linking in OLE. After a moniker is bound to
an object, the moniker's IMoniker interface can be used to locate,
activate, and access the bound object without having any other specific
information on where the actual object is located. The COM moniker
architecture provides a convenient programming model for working with
URLs. The moniker architecture supports extensible and complete name
parsing, as well as printable names. Because URLs frequently refer to
resources across high-latency networks, binding a moniker to a URL
synchronously impacts performance. This is because the process has to
wait for responses from the network before completing the binding. For
this reason, the URL moniker class supports asynchronous as well as
synchronous binding. For more information, see Creating and Using URL
Monikers.
Creating and Using URL Monikers
http://msdn.microsoft.com/en-us/library/aa741006(v=vs.85).aspx
- szExtraInfo,Behavior of this field is moniker-specific. For URL monikers, this string is appended to the URL when the bind operation is started. Like other OLE strings, this value is a Unicode string that the client should allocate using CoTaskMemAlloc. The URL moniker frees the memory later.
- szCustomVerb,BSTR specifying a protocol-specific custom action to
be performed during the bind operation (only if dwBindVerb is set to
BINDVERB_CUSTOM).
BINDINFO structure
http://msdn.microsoft.com/en-us/library/ms774966(v=vs.85).aspx
Asynchronous Pluggable Protocols
http://msdn.microsoft.com/en-us/library/aa767743(v=VS.85).aspx
About Asynchronous Pluggable Protocols
http://msdn.microsoft.com/en-us/library/aa767916(v=vs.85).aspx
- A URL follows the syntax described in RFC 1738, which specifies a
protocol scheme followed by a scheme-specific portion
(
: ). - Uniform Resource Locators (URL)
- Internet Explorer uses two mechanisms for registering new URL protocol handlers. The first method is to register a URL protocol and its associated application so that all attempts to navigate to a URL using that protocol launch the application (for example, registering applications to handle mailto: or news: URLs). The second method uses the Asynchronous Pluggable Protocols API, which allows you to define new protocols by mapping the protocol scheme to a class.
- An asynchronous pluggable protocol handler is an apartment-threaded COM object that handles any calls made to the protocol scheme for which it is registered
- When a client application makes a request, Urlmon looks up the protocol scheme in the registry and creates an instance of the protocol handler registered for that protocol scheme. If the protocol scheme was successfully mapped to the class identifier (CLSID) of a protocol handler, CoCreateInstance is called with that class asking for an IClassFactory interface. An instance of the protocol handler is obtained with IClassFactory::CreateInstance.
- To register a custom URL protocol, add a key for the protocol scheme of the custom URL protocol to the registry under HKEY_CLASSES_ROOT\PROTOCOLS\Handler\protocol_scheme. Under that key, the string value, CLSID, must be set to the CLSID of the protocol handler.
- The protocol handler cannot use any Windows messaging to switch back to the thread it was instantiated on, since the protocol handler must work on non-GUI threads.
- A pluggable MIME filter is an asynchronous pluggable protocol that receives data through a stream, performs some operation on the data, and returns a data stream. The output data might be in a different format from the original stream.
Asynchronous Pluggable Protocol Overviews
http://msdn.microsoft.com/en-us/library/jj650247(v=vs.85).aspx
Registering an Application to a URL Protocol
http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
URL Monikers Overviews and Tutorials
http://msdn.microsoft.com/en-us/library/ms775150(v=vs.85).aspx
Handling MIME Types in Windows Internet Explorer
http://msdn.microsoft.com/en-us/library/ms775148(v=vs.85).aspx
MIME Type Detection in Windows Internet Explorer
http://msdn.microsoft.com/en-us/library/ms775147(v=vs.85).aspx
- MIME type Detection Algorithm discussion
FindMimeFromData function
http://msdn.microsoft.com/en-us/library/ms775107(v=vs.85).aspx
Auto-Launching apps using file and URI associations for Windows Phone 8
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v=vs.105).aspx
Launcher.LaunchFileAsync(IStorageFile) | launchFileAsync(IStorageFile) method
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh701471.aspx
Understanding the Protected Mode Elevation Dialog
http://blogs.msdn.com/b/ieinternals/archive/2009/12/01/understanding-internet-explorer-security-protected-mode-elevation-dialog.aspx
Custom URL Protocol for Invoking Application
http://www.codeproject.com/Articles/332206/Custom-URL-Protocol-for-Invoking-Application
Custom HyperLinks Using a Generic Protocol Handler
http://www.codeproject.com/Articles/545083/Custom-HyperLinks-Using-a-Generic-Protocol-Handler
Custom Hyperlinks Using Asynchronous Pluggable Protocols
http://www.codeproject.com/Articles/15634/Custom-Hyperlinks-Using-Asynchronous-Pluggable-Pro
A windows 8 trick: Protocol activation of apps (and the nick app)
http://10rem.net/blog/2012/12/05/a-windows-8-trick-protocol-activation-of-apps-and-the-nick-app
Using protocol handlers as a ultra thin layer of integration
http://jonas.follesoe.no/2007/08/21/using-protocol-handlers-as-a-ultra-thin-layer-of-integration/
- see ProtocolHandlerDemo.zip
Firefox Related Notes
Web-based protocol handlers
https://developer.mozilla.org/en-US/docs/Web-based_protocol_handlers
MozillaZine
Register protocol
http://kb.mozillazine.org/Register_protocol
- Protocols are registered in the appxmanifest for the project
- On Windows, protocol registration is done by the operating system
Linux Related Notes
[Ubuntu] Using a custom protocol handler in Firefox to run a shell script?
http://askubuntu.com/questions/161553/using-a-custom-protocol-handler-in-firefox-to-run-a-shell-script
Make a link in the Android browser start up my app?
http://stackoverflow.com/questions/3469908/make-a-link-in-the-android-browser-start-up-my-app
- DO NOT use your own custom scheme
Launch custom android application from android browser
http://stackoverflow.com/questions/2958701/launch-custom-android-application-from-android-browser
- Per Google Engineer: Use an
Android Intents with Chrome
https://developers.google.com/chrome/mobile/docs/intents
- ...Android lets you launch apps directly from a web page via an Android Intent.
- ...an intent anchor and embed that into the page so the user can launch the app. Flexible approach...and the ability to pass extra information into the app via Intent Extras.
Intents and Intent Filters (see: Extras)
http://developer.android.com/guide/components/intents-filters.html#extras
- Key-value pairs that carry additional information required to accomplish the requested action. Just as some actions use particular kinds of data URIs, some actions also use particular extras
- ...add extra data with various putExtra() methods, each accepting two parameters: the key name and the value...create a Bundle object with all the extra data, then insert the Bundle in the Intent with putExtras()
How to launch external applications using custom protocols (rock:// instead of http://)
https://support.shotgunsoftware.com/entries/86754-How-to-launch-external-applications-using-custom-protocols-rock-instead-of-http-
- python example..
- see last line (beginning with @="\"python\")...call python...handler script
- also see: Registering a Protocol on Linux
Apple OS X References
Launching External Applications using Custom Protocols under OSX
https://support.shotgunsoftware.com/entries/127152
How do I configure custom URL handlers on OS X?
http://superuser.com/questions/548119/how-do-i-configure-custom-url-handlers-on-os-x
Misc. References
W3C HTML5
6.6 System state and capabilities
6.6.1.3 Custom scheme and content handlers
http://www.w3.org/TR/html5/webappapis.html#custom-handlers
http://blogs.msdn.com/b/ieinternals/
http://www.autohotkey.com/board/topic/71831-application-url-launch-local-application-from-browser/
- Application URL is a trick so that you can launch any application on your local computer from your browser
- Both Chromium and Google Chrome do not allow the browser or it's extensions to access local files, so you cannot create an extension that would call a program already on your machine
- In order for this to work, it requires you to add a new registry key to the Windows Registry to register a new URL Protocol.
Chrome doesn’t handle custom protocols correctly - (still ?)
http://superuser.com/questions/451350/chrome-doesnt-handle-custom-protocols-correctly
- see: This can be adjusted in Chrome's Local State file.
http://stackoverflow.com/questions/12471738/protocol-handler
http://stackoverflow.com/questions/2800081/how-to-run-an-external-program-e-g-notepad-using-hyperlink
- see JavaScript example...
http://stackoverflow.com/questions/10568345/why-is-my-applet-throwing-an-accesscontrolexception
- servlet based approach would have security issues...
2014-01-26
2014-01-26 Sunday - Techniques for Analyzing Complex Decisions
Doing some reading today on structured techniques for organizing and analyzing complex decisions...
Analytic Network Process (ANP)
http://en.wikipedia.org/wiki/Analytic_network_process
Analytic Hierarchy Process (AHP)
http://en.wikipedia.org/wiki/Analytic_hierarchy_process
Multiple-criteria decision analysis
http://en.wikipedia.org/wiki/Multi-criteria_decision_analysis
Pairwise Comparison
http://en.wikipedia.org/wiki/Pairwise_comparison
Analytic Network Process (ANP)
http://en.wikipedia.org/wiki/Analytic_network_process
Analytic Hierarchy Process (AHP)
http://en.wikipedia.org/wiki/Analytic_hierarchy_process
- http://en.wikipedia.org/wiki/Talk:Analytic_Hierarchy_Process/Example_Car
- http://en.wikipedia.org/wiki/Talk:Analytic_Hierarchy_Process/Example_Leader
Multiple-criteria decision analysis
http://en.wikipedia.org/wiki/Multi-criteria_decision_analysis
Pairwise Comparison
http://en.wikipedia.org/wiki/Pairwise_comparison
2014-01-04
2014-01-03 Saturday - Oracle Fusion Middleware Notes
I'm doing some research on various Oracle Fusion Middleware technologies, in preparation for a new client engagement.
This posting will be a placeholder for any interesting resources found, notes from various documentation sources, observations (my own, and links to others), and my experiences working with the various tools and technologies:
12c (12.1.2) > Oracle Data Integrator > 16 Using Web Services
http://docs.oracle.com/middleware/1212/odi/ODIDG/web_services.htm#ODIDG480
12c (12.1.2) > Oracle Data Integrator > Appendix B Using Groovy Scripting with Oracle Data Integrator
http://docs.oracle.com/middleware/1212/odi/ODIDG/app_groovy.htm#ODIDG1444
Oracle Enterprise Pack for Eclipse 12c (12.1.2.2) Release Notes
Mark Rittman (of Rittman Mead Consulting) posted a blog entry on January 2nd, 2014, entitled:
Rittman Mead and Oracle Data Integrator 12c – Thoughts and Experiences So Far
http://www.rittmanmead.com/2014/01/rittman-mead-and-oracle-data-integrator-12c-thoughts-and-experiences-so-far/
Resources:
Free Oracle WebLogic Server 12c (12.1.2) Zip Distribution and Installers for Developers
Selected/relevant Oracle Blogs
This posting will be a placeholder for any interesting resources found, notes from various documentation sources, observations (my own, and links to others), and my experiences working with the various tools and technologies:
12c (12.1.2) > Oracle Data Integrator > 16 Using Web Services
http://docs.oracle.com/middleware/1212/odi/ODIDG/web_services.htm#ODIDG480
- "The WADL structure (for RESTful services) is not supported by Oracle Data Integrator."
12c (12.1.2) > Oracle Data Integrator > Appendix B Using Groovy Scripting with Oracle Data Integrator
http://docs.oracle.com/middleware/1212/odi/ODIDG/app_groovy.htm#ODIDG1444
Oracle Enterprise Pack for Eclipse 12c (12.1.2.2) Release Notes
http://www.oracle.com/technetwork/developer-tools/eclipse/overview/whatsnew-089747.html
- "Oracle Enterprise Pack for Eclipse 12.1.2.2 no longer depends on Spring
IDE. Users updating existing OEPE installations through Eclipse Update
will need to first uninstall Oracle Spring Tools."
Mark Rittman (of Rittman Mead Consulting) posted a blog entry on January 2nd, 2014, entitled:
Rittman Mead and Oracle Data Integrator 12c – Thoughts and Experiences So Far
http://www.rittmanmead.com/2014/01/rittman-mead-and-oracle-data-integrator-12c-thoughts-and-experiences-so-far/
Resources:
Free Oracle WebLogic Server 12c (12.1.2) Zip Distribution and Installers for Developers
Oracle Enterprise Pack for Eclipse (12.1.2.2)
Selected/relevant Oracle Blogs
- http://fusionsecurity.blogspot.com/
- https://blogs.oracle.com/middleware/
- https://blogs.oracle.com/oepe/
2014-01-02
2014-01-02 Thursday - Packt Publishing $5 eBook Bonanza
Packt Publishing has an amazing $5 eBook/Video deal running until January 3rd.
http://www.packtpub.com/ebookbonanza
I picked-up 47 eBooks to add as references to my Amazon Kindle:
Oracle Service Bus 11g Development Cookbook
Oracle SOA Suite 11g R1 Developer's
WS-BPEL 2.0 for SOA Composite Applications with Oracle SOA Suite 11g
Oracle SOA Infrastructure Implementation Certification Handbook (1Z0-451)
Oracle SOA BPEL Process Manager 11gR1 – A Hands-on Tutorial
Applied SOA Patterns on the Oracle Platform
Oracle SOA Governance 11g Implementation
Oracle ADF Enterprise Application Development – Made Simple, Second Edition (Pre-Order 25 Jan 2014)
Oracle SOA Suite 11g Administrator's Handbook
Getting Started with Oracle WebLogic Server 12c: Developer’s Guide
Oracle SOA Suite 11g Developer's Cookbook
Getting Started with Oracle SOA B2B Integration: A Hands-On Tutorial
Oracle SOA Suite 11g Performance Tuning Cookbook
Oracle BPM Suite 11g Developer's cookbook
Oracle JDeveloper 11gR2 Cookbook
Oracle Data Guard 11gR2 Administration Beginner's Guide
jQuery UI 1.10: The User Interface Library for jQuery
Getting Started with Oracle Event Processing 11g
Oracle Hyperion Interactive Reporting 11 Expert Guide
Oracle JRockit: The Definitive Guide
jQuery Game Development Essentials
HTML5 Game Development with ImpactJS
HTML5 and CSS3 Responsive Web Design Cookbook
Mastering Web Application Development with AngularJS
Responsive Web Design by Example
HTML5 Enterprise Application Development
Learning jQuery - Fourth Edition
Object-Oriented JavaScript - Second Edition
jQuery UI Cookbook
Linux Shell Scripting Cookbook, Second Edition
Enterprise Application Development with Ext JS and Spring
Java 7 Concurrency Cookbook
Oracle Goldengate 11g Complete Cookbook
Oracle GoldenGate 11g Implementer's guide
Getting Started with Oracle Data Integrator 11g: A Hands-On Tutorial
Oracle Enterprise Manager 12c Administration Cookbook
Oracle Database 11gR2 Performance Tuning Cookbook
Mastering Apache Cassandra
Apache Camel Developer's Cookbook
Developing Web Applications with Oracle ADF Essentials
PowerShell 3.0 Advanced Administration Handbook
Eclipse 4 Plug-in Development by Example Beginner's Guide
F# for Quantitative Finance
Android Security Cookbook
Unity Android Game Development by Example Beginner's Guide
Unity Multiplayer Games
Node Cookbook Second Edition
http://www.packtpub.com/ebookbonanza
I picked-up 47 eBooks to add as references to my Amazon Kindle:
Oracle Service Bus 11g Development Cookbook
Oracle SOA Suite 11g R1 Developer's
WS-BPEL 2.0 for SOA Composite Applications with Oracle SOA Suite 11g
Oracle SOA Infrastructure Implementation Certification Handbook (1Z0-451)
Oracle SOA BPEL Process Manager 11gR1 – A Hands-on Tutorial
Applied SOA Patterns on the Oracle Platform
Oracle SOA Governance 11g Implementation
Oracle ADF Enterprise Application Development – Made Simple, Second Edition (Pre-Order 25 Jan 2014)
Oracle SOA Suite 11g Administrator's Handbook
Getting Started with Oracle WebLogic Server 12c: Developer’s Guide
Oracle SOA Suite 11g Developer's Cookbook
Getting Started with Oracle SOA B2B Integration: A Hands-On Tutorial
Oracle SOA Suite 11g Performance Tuning Cookbook
Oracle BPM Suite 11g Developer's cookbook
Oracle JDeveloper 11gR2 Cookbook
Oracle Data Guard 11gR2 Administration Beginner's Guide
jQuery UI 1.10: The User Interface Library for jQuery
Getting Started with Oracle Event Processing 11g
Oracle Hyperion Interactive Reporting 11 Expert Guide
Oracle JRockit: The Definitive Guide
jQuery Game Development Essentials
HTML5 Game Development with ImpactJS
HTML5 and CSS3 Responsive Web Design Cookbook
Mastering Web Application Development with AngularJS
Responsive Web Design by Example
HTML5 Enterprise Application Development
Learning jQuery - Fourth Edition
Object-Oriented JavaScript - Second Edition
jQuery UI Cookbook
Linux Shell Scripting Cookbook, Second Edition
Enterprise Application Development with Ext JS and Spring
Java 7 Concurrency Cookbook
Oracle Goldengate 11g Complete Cookbook
Oracle GoldenGate 11g Implementer's guide
Getting Started with Oracle Data Integrator 11g: A Hands-On Tutorial
Oracle Enterprise Manager 12c Administration Cookbook
Oracle Database 11gR2 Performance Tuning Cookbook
Mastering Apache Cassandra
Apache Camel Developer's Cookbook
Developing Web Applications with Oracle ADF Essentials
PowerShell 3.0 Advanced Administration Handbook
Eclipse 4 Plug-in Development by Example Beginner's Guide
F# for Quantitative Finance
Android Security Cookbook
Unity Android Game Development by Example Beginner's Guide
Unity Multiplayer Games
Node Cookbook Second Edition
2014-01-01
2014-01-01 Wednesday - TIOBE Software Index for December 2013
TIOBE Software Programming Language Index for Dec 2013
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html#!
A few surprising findings. The top five, in order, are:
#1 - C
#2 - Java
#3 - Objective-C
#4 - C++
#5 - C#
Transact-SQL made a big move up from #21 in 2012, to #9.
COBOL at #24
Scala is at #31
Subscribe to:
Posts (Atom)
Copyright
© 2001-2021 International Technology Ventures, Inc., All Rights Reserved.