We spend most of our time developing custom software solutions for companies.

As Washington policymakers consider action around critical issues including data security and encryption, government access to digital information, and the expansion of computer science education, they must understand the perspective of small software companies. In all of these cases, federal laws could change how we approach software projects.

For the past 6 years I’ve been privileged to travel to Washington, D.C. and participate first hand. This year I will be attending ACT | The App Association’s App Economy Conference from April 17-19 2016. There, I’ll join tech executives from across the country to network, learn, and engage elected officials on the most pressing issues facing the internet economy today.

This is a unique opportunity to learn how our government works (better than you might think!) and help educate our government officials and staff about the complex and ever changing technical world we live in.

I know from past experience that people in the house, senate and various government agencies appreciate a ground level view of these issues from small businesses.

You can stay up-to-date with the group’s activities in D.C. on Twitter by following #AppCon16.

Recently while working with a new warehouse management system with a java/Tomcat powered public portal I needed to to learn a few things. Coming to the party was the Java KeyTool utility (which I had encountered publishing Android Apps), an SSL bundle from GoDaddy and a Tomcat 7 server.

This covers a lot and got me to the self signed stage. From this I was able to generate a certificate request file I passed on to the IT people to actually purchase the SSL certificate from GoDaddy. We did get a domain wild card *.domainname.com and will use it in this instance to cover “portal.domanname.com”.

FYI.. the Keytool on the server was located at: "C:\Program Files\Java\jdk1.7.0_25\jre\bin\keytool" . That specific location will change depending on the version of Java installed.

The “bundle” of certs for “Tomcat” came back from GoDaddy with three certificates. A couple of intermediate godaddy certs and the actual server aka client certificate.

I tried many ways to get these into the java keystore I had created and to get tomcat to recognize them.

I could see that the keychain from godaddy to the client certficate was not correct, the two keys were:

A couple of years ago I bought a new guitar (a 6 string Gibson Songwriter) and wanted to find out what strings I really liked.. So I started a log and began buying a variety of strings.. Some on sale, some recommended by others, some that looked interesting. It has been fun and I”m happy I did this!! I seem to like all phosphor bronze strings and of those I like the Gibson Masterbuilt Premium Phosphor Bronze Wound the best. I was surprised that I liked the Ernie Ball Aluminum Bronze strings, I might try them again sometime.

Mostly I did lights but had never realized that different brands may have slightly different sting sizes to make up the Light or Extra Light sets.

Some were were interesting, I liked them at first but after a week or two I thought they sucked!

The Elixir HD Light strings were pushed and “developed” with Taylor Guitars : http://www.elixirstrings.com/hdlight/ and I had to wait for a week or two until they came into stock. I heard about these at a Taylor demo at Gear Hero here in Deerfield Beach, FL. Sounded new and exciting but I did not like them that much!

I’m going to slow down my string changing now…

Here is my log for what it is worth.

Original

7/2013 - 9/13/2013

What are they?

Nice full body

Gibson Masterbuilt Premium 80/20 Bronze Wound

9/13/2013 - 10/16/2013

Lights - SAG-BRS12 - $7.99

Bright, harsher

Not such a great stringing job Dave…

Gibson Masterbuilt Premium Phosphor Bronze Wound

10/16/2013 - 11/24/2013

03/02/2014 -

Lights - SAGMB12 - $7.99

Fuller, less tiny than 80/20 on first play

Clear without being tinny..

Still missing a bit from the bass strings

I Like these!!

Gibson Phosphor bronze wound - J200

11/24/2013 - 01/01/2014

Lights - SAG-J200L - $9.99

Nice, balanced, a little light on the base

Gibson - Masterbuilt Premium

01/01/2014 - 01/10/2014

80/20 bronze wound

Ultra Light - 11

$7.99

Nice enough, have not played much yet.

Very nice, probably my favorite

Almost a little too light.. Slight buzz on occasion striking opens

To light, they buzz, don't stay in tune after 8 days.

They suck

GHS - Vintage Bronze

01/10/2014 - 02/01/2014

Light - 12

5.49

Not bad, tinny top but new, not too much base

Pretty good but they seem stiff

D'Addario Coated Phosphor Bronze

Light - Exp16 ??

Spare set, no high E now.

D'Addario - Phosphor Bronze

02/01/2014 - 06/08/2014

EJ16

6.39

Light .012

Initial sounds nice

After a few weeks holds tune very good, I like them!!

Broke hi E and use the coated, probably the same

Elixir - Phosphor Bronze (HD Light, new!)

06/08/2014

HD Lite - .013 - .053

Nanoweb coating

Developed with Taylor

Don't feel quite right.. B string too big I can feel it

This set not for me

Gibson Masterbuilt Premium Phosphor Bronze Wound

2014-07-08 -

My favorites…

Martin Claptons Choice

2014-09-07

Phosphor Bronze Light

.012, .025, .042, .016, 032, .054

Think these are identical to the normal Martin Phosphor Bronze light

Use Martin stringing technique

Feels too thick … and it is thicker on the upper strings

Martin Phosphor Bronze Lite - 2568

2014-10-18

.12, .16, .25, .32, .42, .54

Feel better somehow than Claptons

Martin stringing but messed it all up.. Not sure how long 1st and 2nd will hold

Not holding a tune on 1 and 2 but mostly due I'm sure to the crappy stringing job!

Ernie Ball Aluminum Bronze Light

2014-10-26

.11, .15, .22, .30, .42, .52

Nice feel, better base and resonance perhaps, lighter upper nice.

That’s what is says on the package too which I did not read until after.

Lasted well, still sound ok. Still has nice base.

Elixir Polyweb Light

2015-03-12

10, 13, 17, 26, 36, 46 (very light)

Does not indicate metal, aluminum/silver color

High E very thin

Sounds kind of mashed up. Maybe distorted highs. Weak lows.

After a day, they play ok but do not sound as good…

Coating makes them smooth and easy to slide but overall rating is suck.

Gibson Masterbuilt Premium Phosphor Bronze Wound Ultra Lights (11)

2015-03-19

11,15,22,32,42,52

Well.. I like the light version, sounds good, very melodic

Martin Phosphor Bronze SP Light

2015-04-11 - Installed on Camerons Yamaha F-310 (Indonesia)

12,16,25,32,42,54

Sounds pretty good, much better than the dirty, rusted strings that were on there.

This past week I visited Washington, DC to take part in the annual ActOnline.org "flyin". Each year this organization of ~ 5000 software companies hosts 50 software and app developers to visit Washington and give briefings to capitol hill staffers and members on a number of subjects.

This year we discussed patent reform, access to cloud data here and abroad, child safety and privacy, internet domain name policy, device encryption and net neutrality.

On Monday we had briefings and discussions on the current status and issues on these and some other topics. The briefings last all day and are led by the ACTOnline staff but are very interactive.

This was my 5th fly in so I'm almost an old pro at it. Approximately 25% of the people are new each year with 75% alumni. For various reasons some people skip years or stop coming but there were a lot of familiar faces, many of whom I knew from other software conferences and organizations. There is a wide variety of age, gender and actual working skill sets but all are entrepreneurs and do or cause software and apps to be developed.

Patent reform has moved along recently with house bill HR.9 (aka "The Innovation Act") introduced last year and re-introduced this year in the house. It does have a lot of bi-partisan support with some sticking points. The purpose of this bill is to try and control "Patent" trolls. These are shadow companies (layers of corporations) that prey on small companies trying to extort money.

While we all believe in a strong patent system and of protecting intellectual property there are some bad patents and people exploiting the process. What happens is that a patent owner creates a list of target companies, most likely thousands, who MIGHT be violating the patent and send demand letters, not to sue but to try and get the company to send say $10,000 to settle. The letters are very vague because the company sending the letter has no idea if the target company is using the technology or violating the patent.

It is estimated that it costs $650,000 to fight a patent claim for under $1,000,000. Especially for a small business, it is cheaper to just pay the money which many do. Those a bit more savvy just ignore it to wait and see what happens.

The major points of the bill are forcing the claim letters to have clear and specific indication of what the patent violation is, transparency in patent ownership and it can cost a lot to find any details. Finally there is a fee shifting provision to force the party losing a frivolous challenge to pay the winners legal fees. This is under control of the judge so is not automatic. We want to keep a strong patent system!

Another aspect of the patent system where we asked that congress support the patent office making sure that the patent fees are used to train existing and hire more patent examiners. Having clear patents in the system will make enforcement easier and clearer.

A second area we discussed was the LEADS (Law Enforcement Access to Data) Act. From our standpoint the cloud is essential for our business and government actions threaten the cloud. The Department of Justice claims they have the authority to access the data of ant US country no matter where in the world it is stored.

Our concern is that we will be put in a situation where we have a choice of breaking a US law or breaking a law in another country. One of our members is based in the US with a partner and servers in Sweden. This Act will clarify that US law enforcement must comply with the law of the country where the data resides. The Act also provides technical updates that will greatly improve the speed and efficiency of information exchange. There is long standing precedent for cooperation between countries in the case of criminal search requests, we just ask that electronic data be given similar treatment as physical property.

One example given is say a foreign national has committed a crime and US law enforcement wants to search the hotel room at a Marriot in Germany. We would not expect that Marriot, a US company would allow that unless German laws were followed.

Internet governance is another area we discussed. Startups, small businesses and in fact the entire internet economy relies on a free and open internet and the Domain Name System (DNS) to allow business to be conducted. We are in the process of transitioning the oversight of ICANN (Internet Corporation for Assigned Names) from the Department of Commerce to a consensus driven, multi stakeholder structure. We want to make sure that procedures are in place to handle potential meddling or blocking by bad actor countries. Our request is that congress keeps a close eye on this transition to make sure the new process is robust, we only get to let go of it once. During our meetings, ActOnline President Jonathan Zuk was in Istanbul working on this process.

Another important area is online privacy for children. There is a FTC rule called COPPA (Children's Online Privacy Protection Act) that anyone collecting information from children needs to follow. Our organization and Moms With Apps has established a branding of "Know What's Inside" that members pledge to follow a set of requirements that actually go beyond COPPA. Unfortunately the FTC has not been enforcing this act and a number of large companies are getting away with violations of COPPA. We are asking congress to compel the FTC to start enforcing the laws already on the books not come up with new restrictions.

There are a few other areas but these are the main topics we discussed…

Recently I was using Entity Framework 6.1.1 to implement functionality for a windows service.

I had used code first, that is creating a class in code then attaching to a db context and migrating it into a table on SQL Express 2014 but these had been small projects without a lot of data and hosted on full size sql servers and most projects start with an existing SQL Server so code first is not used.

This time through testing processing a dozen or two transactions was no problem and I was not worried about database size. The code is reading a csv file from a secure web service then importing and processing. These transactions include signature pad data whose fields can be quite lengthy, over 10kb in some cases as it is base64 encoded. The text and data are transformed into fields on a form including .jpg bytes for the signatures and then exported as a .tiff file.

During testing I kept asking for production file samples but only got the odd test transaction or two.. so when a large production file (over 20k transactions) hit there were problems, no surprise!

After handling a few other issues the program would error out after importing 300-400 transactions.

One issue is that the signatures were bigger than the test articles but the main problem is that if you make a class in code first like this:

public class foo()

{

public string text1 {get; set;}

public string text2 {get; set;}

}

In the database you end up with a table foo and all the fields are nvarchar(max). Even this is not so bad if you only have a small bit of data in the fields and the row fits within an 8k database page.

The problem is that with multi-kilobyte fields additional pages are allocated for each row in multiple tables and disk space quickly expands.

The error was that the database was filled which happens when SQL Express hits 10 gigabytes (SQL Express 2014).

Luckily this is easily fixed by annotating with the MaxLength so my classes now look like:

public class foo()

{

[MaxLength(50)]

public string text1 {get; set;}

[MaxLength(100)]

public string text2 {get; set;}

}

Run the database migration commands and now all 20k transactions fit in a few hundred megabytes.

Note that I’m not too worried about longer term storage, this information will be quickly purged and only has to handle a day or two of transactions at a time. If that changes we can always upgrade to a standard sql server instance…

A couple of months ago my esteemed Microsoft Developer Evangelist, Joe Healy visited our user group and spent some time going through the APIMASH starter projects the DPE’s have been working on. I was impressed!!

It looked like fun and thought that members of my user group would respond to these fairly simple but complete examples for Windows 8, Windows Phone 8 and now Windows 8.1.

Being a Visual Basic .net MVP I noticed that none of these were done with vb.net and know that there are millions of vb programmers out there looking for samples.. so I volunteered!

There are two libraries, APIMASH_CNorrisVBLib and APIMASHVBLib plus the main windows 8 project.

Being the lazy developer, I tried to bulk convert c# to vb.net. Two I tried were http://www.developerfusion.com/tools/convert/csharp-to-vb/ and http://converter.telerik.com/. Neither really did a complete job and both left some c# remnants and just plain errors. In the end I used the DeveloperConfusion throughout just so I would get use to what it was doing. In retrospect I should have keep more detailed notes and will next time. Three areas I remember having to rewrite the code was for adding event handlers, lamdas and overrides.

The two libraries were pretty straight forward and I was able to get them to compile and look correct pretty quickly. There were no tests and I did not tackle that task.

What took me longer was the actual windows 8 app. Trying to convert the code behind and past it into the xaml forms did not go well. In the end I created a fresh windows 8 project and spliced in and ported pieces. The main problem was that the namespaces got confused and mixed up so that the code behind was not recognizing the few controls on the page.

Once I was over that hump the project worked!

I’m sure that there are many improvements that could be made and hope to hear from you.

When trying to create a Silverlight html/c# client I got a dialog box:

Before installing this version of Silverlight, please close all browser windows and uninstall the current version of Silverlight.

Installed version: 5.1.10516.0

Requested version: Silverlight 5 (5.1.10411.0)

I un-installed the newer version of Silverlight, installed the recommended version and got past that error.. I searched around and did not see this problem in the forums but could have easily missed it…

A couple of other minor problems but then was stuck with a build error indicating Lightswitch could not access the localdb\v11.0:

Error 1 An error occurred while establishing a connection to SQL Server instance '(LocalDB)\v11.0'. A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. Error occurred during LocalDB instance startup: SQL Server process failed to start. ) C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\LightSwitch\v2.0\Microsoft.LightSwitch.targets 146 10 ContosoMoving

After learning more than I wanted to about localdb over a couple of days, what was consistent were errors of this kind shown below from the localdb log if I let Lightswitch create the localdb\v11.0 instance:

FCB::Open failed: Could not open file e:\sql11_main_t.obj.x86release\sql\mkmastr\databases\objfre\i386\MSDBData.mdf for file number 0. OS error: 2(The system cannot find the file specified.).

Note: I don’t have an E drive normally, these might be remnants of an installation disk.

These logs and the database system and other files can be found here: C:\Users\{your user name}\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0 on my Windows 8 installation.

Although localdb\v11.0 was created, I could not connect to (localdb)\v11.0 via sql management studio (or visual studio).

Final solution was to delete what was there and create / test (LocalDB)\V11.0 before trying to start/compile a Lightswitch project.

To delete an existing V11.0 and create a new one use the sqllocaldb (.exe) utility which should be mapped already if you use you visual studio developer command prompt. The sequence I used was:

cd c:\users….\Instances (see full directory above).

delete the v11.0 directory

run this sequence of commands:

sqllocaldb delete v11.0

sqllocaldb create v11.0

sqllocaldb start v11.0

After I verified I could connect to the localdb\v11.0 then I was able to run Lightswitch without problems.

We held out 9th annual South Florida Code Camp on 2/9/2013. Unlike past years, instead of stuffing bags with brochures and papers from the vendors, we bought 700 2gb USB keys and had all the vendors send us information, software, links and files to put on the USB key.

This was a great success.. but how about making it public too?

I setup a folder on my skydrive:

Then I renamed the new folder, selected it and clicked on the sharing button at the top:

By clicking on “People with a view link” I created a link I could share with all the code camp attendees to allow them access to the content. If you click on “Shorten” you will be a very usable and short link. After you copy the link, you can click on “Done” and distribute or post the link.

Then I realized there was more I could put there. Besides the USB content from sponsors I created directories for the speakers and a place to put all the photos we collect.

This was quick and easy, now I’m wondering why I did not do this before!

Herve Roggero, SQL Azure MVP, has created a virtual community to focus on Azure. Here is the outline from Herve:

User Group Name: Azure Florida Association

Purpose: Start a virtual Florida user group that targets the Azure platform

Venues: Most meetings will be virtual; however I plan to host a few physical events across Florida if possible from time to time; physical events may be a few hours long with potentially more than one speaker

Membership: Membership will be free; virtual events will be free; physical events may involve a minimal cover charge

Speakers: If you are interested in speaking or if you have topic ideas, please let me know

Frequency: Initially these meetings will be held every other month

The first meeting will be held on January 25, 2012 at 4PM EST. Vikas Sahni, SQL Azure MVP, will be presenting on Demystifying SQL Azure. Vikas will introduce SQL Azure, value proposition, usage scenarios, concepts and architecture, what is there and what is not, including Tips and Tricks.