Payoff.com Launches it’s Blog

March 18th, 2010 Craig Tadlock No comments

As Payoff.com becomes more of a reality they are ever increasing their presence on the interweb. This blog should have some great content about personal finances and the financial health of our country. They are also on Twitter as well.

blog.payoff.com

twitter.com/payoff1


Categories: marketing, startups Tags: , , ,

Like Beer and Wine? Then you’ll like Vice Advisor

March 13th, 2010 Craig Tadlock No comments

A good friend is putting together a company for those of us that like to drink and would like to know more about what we are drinking; it’s called Vice Advisor. He’s just getting started and would love your feedback to help shape the future product. Getting feedback from your customers early is something that all start ups should do.

http://www.viceadvisor.com

Categories: startups Tags: , ,

Ignore an Invalid SSL Cert in .NET

March 5th, 2010 Craig Tadlock No comments

One of our clients integrates with a financial services company which provides an API to access data. Obviously this needs to be secure. Their QA environment is secured via SSL but is exposed only by IP address. A .NET client will by default throw a security exception when you try to create a SSL connection by IP because the certificate has been issued to a name. This code will get you past that…

ServicePointManager.ServerCertificateValidationCallback += ((sender, certificate, chain, sslPolicyErrors) => true);

X PRIZE Foundation Celebrity Poker Fundraiser

March 4th, 2010 Craig Tadlock No comments

This is an awesome event! ..if you can afford the $8,500 ticket price. While a bit steep you do get the chance to compete for some amazing prizes. One of my clients TVI Events is helping to put these events on.

  • A Trip To Space On Virgin Galactic
  • A 2010 Tesla Roadster
  • Your Genome Sequenced

http://www.xprize.org/email/charity-poker-fundraiser

Celebrity Texas Hold ‘Em Poker, Casino Games & Raffle Hosted by Poker Icons*
Annie Duke, Andy Bloch, Chris Ferguson, Rafe Furst, and Phil Gordon.

Saturday, April 24th at 6:30pm; Los Angeles, CA

Categories: events Tags: , , , , ,

SMTP Diagnostics Tool for Windows

February 25th, 2010 Craig Tadlock No comments

Are you running a SMTP server on a Windows Server? Then you need to use the Microsoft Exchange Server SMTPDiag Tool. It will verify your SMTP, DNS and firewall settings to ensure everything is setup properly and you are able to send email.

Categories: it, tips & tricks Tags: , , , ,

Fix Loopback 401 Errors in Windows Server 2008

February 25th, 2010 Craig Tadlock No comments

If you use a loopback address (127.0.0.1) or hosts files on your Windows Server to reference a local IIS web application with Windows Authentication it will probably fail with a 401 error due to a new security constraint. This is often the case if you use a public url for your Sharepoint of TFS server. To resolve this you need to add a registry key…

  1. Open regedit
  2. Open the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. Create a new DWORD under Lsa named DisableLoopbackCheck
  4. Set its value to 1
  5. Restart the server for good measure

Related Links

http://support.microsoft.com/kb/896861

http://ppalakollu.blogspot.com/2009/04/ie-8-ntlm-authentication-on-windows.html

Auto Generate a Code Column Value in SQL

February 7th, 2010 Craig Tadlock No comments

Often in database design a table has a secondary unique key which defines a random alpha-numeric value; lets call this Code. While the table’s primary key is used for foreign key references in the database, the Code column has several advantages and uses. Since it is not a sequential value it can be shown to the user without giving away possible valuable information; for example giving away your sales volume. It can also be used as a URL query parameter to discourage one-up-attacks (note this should not be a replacement for proper data security).

So now that we are sold on having a Code column, what is the best way to implement it? Here is a method you can use to implement a proper Code column and have the database generate the value for you. This is a similar design pattern to using an IDENTITY column to generate the next value for a primary key. We would like for the column to have a default value of a new Code value, such that the application tier doesn’t have to worry about setting the value. An issue with this in SQL Server is that column default values do not allow for ‘dynamic’ values; we can use a view to get around this. As for the Code generation algorithm I piggybacked on the NEWID() function which generates a new uniqueidentifier. There are countless other algorithms you could use for this.

Create a view to generate the new codes…

CREATE VIEW [dbo].[Codes]
AS
SELECT LOWER(SUBSTRING(REPLACE(NEWID(), ‘-’, ”), 0, 16)) AS Code;

Create a function which returns a new code…

CREATE FUNCTION [dbo].[NewCode]
( )
RETURNS NVARCHAR (50)
AS
BEGIN
RETURN (SELECT Code FROM Codes)
END

Now we can use the dbo.NewCode() function as the default value for our table’s Code column..

ALTER TABLE [dbo].[XXX] ADD  CONSTRAINT [DF_XXX_Code]  DEFAULT ([dbo].[NewCode]()) FOR [Code]

That’s it! Now if you insert a row into the table the Code column will have a new value in it by default. Simple.

UPDATE

Here is a much better algorithm to generate codes. The previous algorithm has a ‘hidden’ issue; the NEWID() function only generates the letters A-H, so you don’t get the security of the full 26 character alphabet. The algorithm below also lets you choose which characters you want. This allows you to prevent issues like 1 and I, and 0 and O confusion.

CREATE VIEW [dbo].[Codes]
AS
select
[Code] =
substring(ch, convert(int, RAND() * (LEN(ch) – 1)) + 1, 1) +
substring(ch, convert(int, RAND() * (LEN(ch) – 1)) + 1, 1) +
substring(ch, convert(int, RAND() * (LEN(ch) – 1)) + 1, 1) +
substring(ch, convert(int, RAND() * (LEN(ch) – 1)) + 1, 1) +
substring(ch, convert(int, RAND() * (LEN(ch) – 1)) + 1, 1) +
substring(ch, convert(int, RAND() * (LEN(ch) – 1)) + 1, 1) +
substring(ch, convert(int, RAND() * (LEN(ch) – 1)) + 1, 1) +
substring(ch, convert(int, RAND() * (LEN(ch) – 1)) + 1, 1)
from
(select ch = ‘ABCDEFGHJKLMNPQURSUVWXYZ23456789′) a

Generate Lorem Ipsum Text in MS Word

February 5th, 2010 Craig Tadlock No comments

Here’s a quick tip: To generate “Lorem ipsum” text in Microsoft Word type “=lorem(x, y)”; where x is the number of paragraphs and y is the number is sentences. I regularly use this for fake text when developing websites.

Payoff.com Peaks its Head Out of Stealth Mode

January 28th, 2010 Craig Tadlock No comments

One of our startups Payoff.com has an updated splash page along with a customer survey and links to their Twitter and Facebook accounts. This obviously isn’t a full product launch, but startups have to start somewhere. It’s a good practice to start collecting customer emails and information as early as possible; it will help you guide your product feature prioritization discussions. Take a look at the www.payoff.com site and let me know what you think.

SEO Analysis Tool

January 25th, 2010 Craig Tadlock 1 comment

Everyone knows the importance of SEO for their website. While there are many great traffic analysis tools (Google Analytics, Quantcast…) there are not very many tools for website SEO analysis. The individual search providers have some basic tools to help with this (Google Webmaster Tools) but they aren’t really that useful. A new tool WooRank is looking to fill this gap. It’s a free tool that allows you to plug in a url and generate a detailed SEO analysis report. From looking at the report it generated for this site I can tell it does a decent job of analysis. It covers all the basic items (meta tags, header tags, content %…) and had some others I wasn’t familiar with. These types of tools have an inherent challenge in that SEO is more of an art than a science given we do not know that exact algorithms for the search engines. I don’t see this replacing good human analysis, but it’s a great place to start when analyzing a websites SEO.

From a company perspective I think this is a good usage of the freemium model. Show your customers some initial value and then up sell them to the premium features.

Categories: marketing Tags: , , , ,