tag:blogger.com,1999:blog-22064597470125683172024-03-13T12:31:54.690-04:00Sypher Technology NewsBryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.comBlogger23125tag:blogger.com,1999:blog-2206459747012568317.post-8602289580460417262013-03-27T14:46:00.003-04:002013-03-27T14:46:58.717-04:00New product!We've launched a new product today called Secure Sypher. It allows Connections Online users to upload files directly in Connections Online instead of having to cut and paste links to the files hosted on their own internal networks. For more information, check out the video or visit <a href="https://secure.sypher.com/">https://secure.sypher.com</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/oagBGcVCdEk?feature=player_embedded' frameborder='0'></iframe></div>
<br />Anonymoushttp://www.blogger.com/profile/00779378686556279778noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-31658355149568343732012-06-06T13:16:00.000-04:002012-06-06T13:16:18.646-04:00<div class="separator" style="clear: both; text-align: center;">
<a href="http://loosecubes.us1.list-manage1.com/track/click?u=771deaf4e084652d3ee0e049a&id=726fce177d&e=4599b36559" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="68" src="http://loosecubes.us1.list-manage1.com/track/click?u=771deaf4e084652d3ee0e049a&id=726fce177d&e=4599b36559" width="320" /></a></div>
<br />
<span style="font-family: inherit;">We're <span style="background-color: white; color: dimgrey; font-size: 14px; line-height: 13px; text-align: left;">participating in the Loosecubes Summer Coworking Challenge and you should too! Sign up and come work with us for free until July 4th. Find out more at </span></span><a href="https://www.loosecubes.com/summerchallenge">https://www.loosecubes.com/summerchallenge</a>.Anonymoushttp://www.blogger.com/profile/00779378686556279778noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-15874413926015889572011-09-19T12:47:00.002-04:002011-09-19T12:48:37.195-04:00Come by and say 'hi!'<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-P0pGoLJT5z0/TOLjKPUzjMI/AAAAAAAAAAU/TYY2cy6F-bc/s1600/mugshot.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-P0pGoLJT5z0/TOLjKPUzjMI/AAAAAAAAAAU/TYY2cy6F-bc/s200/mugshot.jpg" width="200" /></a></div>
In an effort to break up my monotonous days of coding, I am opening up a few hours every week to answer questions and generally talk about anything you'd like. Sign up for a time slot at <a href="http://link.sypher.com/bts-appt">http://link.sypher.com/bts-appt</a>, come in to my office at Sypher, and discuss web development, running a small business, photography, or something completely different. Just don't try to sell me something. I've already got one.Anonymoushttp://www.blogger.com/profile/00779378686556279778noreply@blogger.com1tag:blogger.com,1999:blog-2206459747012568317.post-87392172738572931932011-06-20T11:07:00.001-04:002011-06-20T11:07:16.474-04:00And we're back!<div class="separator" style="clear: both; text-align: center;">
<a href="http://farm4.static.flickr.com/3101/2543978765_d819086d78.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://farm4.static.flickr.com/3101/2543978765_d819086d78.jpg" width="320" /></a></div>
There's nothing like having a server crash right before you leave for a week! One of our servers lost two hard drives (yes, the second server to do that) on June 9th, right before our Connections Online User Roundtable in Orlando. We moved all of our customers' sites over to a new server but forgot to move our main site (www.sypher.com), so it has been down while we took a few days off in Orlando. Everything should be back to normal now. If you notice your hosted site is still missing, e-mail us!Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-5887748906797925622011-03-10T15:09:00.002-05:002011-03-10T15:22:03.480-05:00Assistly Multipass SSOOver the last 24 hours, I've been playing around with the single sign-on (SSO) capability of <a href="http://www.assistly.com/">Assistly</a>. They have PHP and Ruby examples of how to do it, but I needed to get it working in C#. After many rounds of failure and impossible debugging, I finally got it working! Here's the code in case someone else wants to do the same. This is the code-behind file for a blank Login.aspx file using ASP.NET 4.0.<br />
<br />
<div style="border: 1px solid rgb(0, 0, 0); overflow: auto; padding: 4px; height:300px; width:400px;"><pre style="background: none repeat scroll 0% 0% rgb(255, 255, 255); color: black;"><span style="color: maroon; font-weight: bold;">using</span> System<span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">using</span> System<span style="color: #808030;">.</span>Configuration<span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">using</span> System<span style="color: #808030;">.</span>IO<span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">using</span> System<span style="color: #808030;">.</span>Security<span style="color: #808030;">.</span>Cryptography<span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">using</span> System<span style="color: #808030;">.</span>Text<span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">using</span> System<span style="color: #808030;">.</span>Web<span style="color: #808030;">.</span>Script<span style="color: #808030;">.</span>Serialization<span style="color: purple;">;</span>
namespace Sypher<span style="color: #808030;">.</span>Multipass
<span style="color: purple;">{</span>
public partial class _Login <span style="color: purple;">:</span> System<span style="color: #808030;">.</span>Web<span style="color: #808030;">.</span>UI<span style="color: #808030;">.</span>Page
<span style="color: purple;">{</span>
protected class UserData
<span style="color: purple;">{</span>
public string uid<span style="color: purple;">;</span>
public string expires<span style="color: purple;">;</span>
public string customer_email<span style="color: purple;">;</span>
public string customer_name<span style="color: purple;">;</span>
public string customer_custom_siteid<span style="color: purple;">;</span> <span style="color: dimgrey;">// custom fields</span>
public string customer_custom_sitename<span style="color: purple;">;</span> <span style="color: dimgrey;">// add your own as needed</span>
<span style="color: purple;">}</span>
protected <span style="color: maroon; font-weight: bold;">void</span> Page_Load<span style="color: #808030;">(</span>object sender<span style="color: #808030;">,</span> EventArgs e<span style="color: #808030;">)</span>
<span style="color: purple;">{</span>
UserData user_data <span style="color: #808030;">=</span> new UserData<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: dimgrey;">// Set these values however you need</span>
user_data<span style="color: #808030;">.</span>uid <span style="color: #808030;">=</span> <span style="color: maroon;">"</span><span style="color: #0000e6;">12345678-0000-0000-0000-123456789012</span><span style="color: maroon;">"</span><span style="color: purple;">;</span>
user_data<span style="color: #808030;">.</span>expires <span style="color: #808030;">=</span> DateTime<span style="color: #808030;">.</span>UtcNow<span style="color: #808030;">.</span>AddMinutes<span style="color: #808030;">(</span><span style="color: #008c00;">2</span><span style="color: #808030;">)</span><span style="color: #808030;">.</span>ToString<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">yyyy-MM-ddTHH:mm:sszzz</span><span style="color: maroon;">"</span><span style="color: #808030;">)</span><span style="color: purple;">;</span> <span style="color: dimgrey;">// ISO 8601 like 2011-12-29T10:25:28-08:00</span>
user_data<span style="color: #808030;">.</span>customer_email <span style="color: #808030;">=</span> <span style="color: maroon;">"</span><span style="color: #0000e6;">testing@testing.com</span><span style="color: maroon;">"</span><span style="color: purple;">;</span>
user_data<span style="color: #808030;">.</span>customer_name <span style="color: #808030;">=</span> <span style="color: maroon;">"</span><span style="color: #0000e6;">Test User</span><span style="color: maroon;">"</span><span style="color: purple;">;</span>
user_data<span style="color: #808030;">.</span>customer_custom_siteid <span style="color: #808030;">=</span> <span style="color: maroon;">"</span><span style="color: #0000e6;">01234567-0000-0000-0000-890123456789</span><span style="color: maroon;">"</span><span style="color: purple;">;</span>
user_data<span style="color: #808030;">.</span>customer_custom_sitename <span style="color: #808030;">=</span> <span style="color: maroon;">"</span><span style="color: #0000e6;">Test Organization</span><span style="color: maroon;">"</span><span style="color: purple;">;</span>
string assistly_url <span style="color: #808030;">=</span> string<span style="color: #808030;">.</span>Format<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">http://{0}.assistly.com/customer/authentication/multipass/callback?multipass={1}</span><span style="color: maroon;">"</span><span style="color: #808030;">,</span>
ConfigurationManager<span style="color: #808030;">.</span>AppSettings<span style="color: #808030;">[</span><span style="color: maroon;">"</span><span style="color: #0000e6;">assistly-site-key</span><span style="color: maroon;">"</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> <span style="color: dimgrey;">// See encryptUserData for appSettings example</span>
encryptUserData<span style="color: #808030;">(</span>user_data<span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
Response<span style="color: #808030;">.</span>Redirect<span style="color: #808030;">(</span>assistly_url<span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: purple;">}</span>
protected <span style="color: maroon; font-weight: bold;">static</span> string encryptUserData<span style="color: #808030;">(</span>UserData user_data<span style="color: #808030;">)</span>
<span style="color: purple;">{</span>
<span style="color: dimgrey;">// Encode the data into a JSON object</span>
JavaScriptSerializer s <span style="color: #808030;">=</span> new JavaScriptSerializer<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
string json_data <span style="color: #808030;">=</span> s<span style="color: #808030;">.</span>Serialize<span style="color: #808030;">(</span>user_data<span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: dimgrey;">// Example of web.config configuration/appSettings section:</span>
<span style="color: dimgrey;">// <add key="assistly-site-key" value="sitename" /> <!-- from sitename.assistly.com --></span>
<span style="color: dimgrey;">// <add key="assistly-api-key" value="0123456789abcdef0123456789abcdef" /></span>
<span style="color: dimgrey;">// <add key="assistly-iv" value="OpenSSL for Ruby" /> <!-- Static value from Assistly --></span>
string site_key <span style="color: #808030;">=</span> ConfigurationManager<span style="color: #808030;">.</span>AppSettings<span style="color: #808030;">[</span><span style="color: maroon;">"</span><span style="color: #0000e6;">assistly-site-key</span><span style="color: maroon;">"</span><span style="color: #808030;">]</span><span style="color: purple;">;</span>
string api_key <span style="color: #808030;">=</span> ConfigurationManager<span style="color: #808030;">.</span>AppSettings<span style="color: #808030;">[</span><span style="color: maroon;">"</span><span style="color: #0000e6;">assistly-api-key</span><span style="color: maroon;">"</span><span style="color: #808030;">]</span><span style="color: purple;">;</span>
string iv <span style="color: #808030;">=</span> ConfigurationManager<span style="color: #808030;">.</span>AppSettings<span style="color: #808030;">[</span><span style="color: maroon;">"</span><span style="color: #0000e6;">assistly-iv</span><span style="color: maroon;">"</span><span style="color: #808030;">]</span><span style="color: purple;">;</span>
<span style="color: dimgrey;">// Using byte arrays now instead of strings</span>
byte<span style="color: #808030;">[</span><span style="color: #808030;">]</span> encrypted <span style="color: #808030;">=</span> null<span style="color: purple;">;</span>
byte<span style="color: #808030;">[</span><span style="color: #808030;">]</span> bIV <span style="color: #808030;">=</span> Encoding<span style="color: #808030;">.</span>ASCII<span style="color: #808030;">.</span>GetBytes<span style="color: #808030;">(</span>iv<span style="color: #808030;">)</span><span style="color: purple;">;</span>
byte<span style="color: #808030;">[</span><span style="color: #808030;">]</span> data <span style="color: #808030;">=</span> Encoding<span style="color: #808030;">.</span>ASCII<span style="color: #808030;">.</span>GetBytes<span style="color: #808030;">(</span>json_data<span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: dimgrey;">// XOR the first block (16 bytes) </span>
<span style="color: dimgrey;">// once before the full XOR</span>
<span style="color: dimgrey;">// so it gets double XORed</span>
<span style="color: maroon; font-weight: bold;">for</span> <span style="color: #808030;">(</span>var i <span style="color: #808030;">=</span> <span style="color: #008c00;">0</span><span style="color: purple;">;</span> i <span style="color: #808030;"><</span> <span style="color: #008c00;">16</span><span style="color: purple;">;</span> i<span style="color: #808030;">+</span><span style="color: #808030;">+</span><span style="color: #808030;">)</span>
data<span style="color: #808030;">[</span>i<span style="color: #808030;">]</span> <span style="color: #808030;">=</span> <span style="color: #808030;">(</span>byte<span style="color: #808030;">)</span><span style="color: #808030;">(</span>data<span style="color: #808030;">[</span>i<span style="color: #808030;">]</span> <span style="color: #808030;">^</span> bIV<span style="color: #808030;">[</span>i<span style="color: #808030;">]</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: dimgrey;">// Pad using block size of 16 bytes</span>
<span style="color: maroon; font-weight: bold;">int</span> pad <span style="color: #808030;">=</span> <span style="color: #008c00;">16</span> <span style="color: #808030;">-</span> <span style="color: #808030;">(</span>data<span style="color: #808030;">.</span>Length <span style="color: #808030;">%</span> <span style="color: #008c00;">16</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
Array<span style="color: #808030;">.</span>Resize<span style="color: #808030;">(</span>ref data<span style="color: #808030;">,</span> data<span style="color: #808030;">.</span>Length <span style="color: #808030;">+</span> pad<span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">for</span> <span style="color: #808030;">(</span>var i <span style="color: #808030;">=</span> <span style="color: #008c00;">0</span><span style="color: purple;">;</span> i <span style="color: #808030;"><</span> pad<span style="color: purple;">;</span> i<span style="color: #808030;">+</span><span style="color: #808030;">+</span><span style="color: #808030;">)</span>
data<span style="color: #808030;">[</span>data<span style="color: #808030;">.</span>Length <span style="color: #808030;">-</span> pad <span style="color: #808030;">+</span> i<span style="color: #808030;">]</span> <span style="color: #808030;">=</span> <span style="color: #808030;">(</span>byte<span style="color: #808030;">)</span>pad<span style="color: purple;">;</span>
<span style="color: dimgrey;">// Use the AesManaged object to do the encryption</span>
<span style="color: maroon; font-weight: bold;">using</span> <span style="color: #808030;">(</span>AesManaged aesAlg <span style="color: #808030;">=</span> new AesManaged<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span>
<span style="color: purple;">{</span>
aesAlg<span style="color: #808030;">.</span>IV <span style="color: #808030;">=</span> bIV<span style="color: purple;">;</span>
aesAlg<span style="color: #808030;">.</span>KeySize <span style="color: #808030;">=</span> <span style="color: #008c00;">16</span> <span style="color: #808030;">*</span> <span style="color: #008c00;">8</span><span style="color: purple;">;</span> <span style="color: dimgrey;">// = 128-bit, originally defaulted to 256</span>
<span style="color: dimgrey;">// Create the 16-byte salted hash</span>
SHA1 sha1 <span style="color: #808030;">=</span> SHA1<span style="color: #808030;">.</span>Create<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
byte<span style="color: #808030;">[</span><span style="color: #808030;">]</span> saltedHash <span style="color: #808030;">=</span> sha1<span style="color: #808030;">.</span>ComputeHash<span style="color: #808030;">(</span>Encoding<span style="color: #808030;">.</span>ASCII<span style="color: #808030;">.</span>GetBytes<span style="color: #808030;">(</span>api_key <span style="color: #808030;">+</span> site_key<span style="color: #808030;">)</span><span style="color: #808030;">,</span> <span style="color: #008c00;">0</span><span style="color: #808030;">,</span> <span style="color: #808030;">(</span>api_key <span style="color: #808030;">+</span> site_key<span style="color: #808030;">)</span><span style="color: #808030;">.</span>Length<span style="color: #808030;">)</span><span style="color: purple;">;</span>
Array<span style="color: #808030;">.</span>Resize<span style="color: #808030;">(</span>ref saltedHash<span style="color: #808030;">,</span> <span style="color: #008c00;">16</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
aesAlg<span style="color: #808030;">.</span>Key <span style="color: #808030;">=</span> saltedHash<span style="color: purple;">;</span>
<span style="color: dimgrey;">// Encrypt using the AES Managed object</span>
ICryptoTransform encryptor <span style="color: #808030;">=</span> aesAlg<span style="color: #808030;">.</span>CreateEncryptor<span style="color: #808030;">(</span>aesAlg<span style="color: #808030;">.</span>Key<span style="color: #808030;">,</span> aesAlg<span style="color: #808030;">.</span>IV<span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">using</span> <span style="color: #808030;">(</span>MemoryStream msEncrypt <span style="color: #808030;">=</span> new MemoryStream<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span>
<span style="color: purple;">{</span>
<span style="color: maroon; font-weight: bold;">using</span> <span style="color: #808030;">(</span>CryptoStream csEncrypt <span style="color: #808030;">=</span> new CryptoStream<span style="color: #808030;">(</span>msEncrypt<span style="color: #808030;">,</span> encryptor<span style="color: #808030;">,</span> CryptoStreamMode<span style="color: #808030;">.</span>Write<span style="color: #808030;">)</span><span style="color: #808030;">)</span>
<span style="color: purple;">{</span>
csEncrypt<span style="color: #808030;">.</span>Write<span style="color: #808030;">(</span>data<span style="color: #808030;">,</span> <span style="color: #008c00;">0</span><span style="color: #808030;">,</span> data<span style="color: #808030;">.</span>Length<span style="color: #808030;">)</span><span style="color: purple;">;</span>
csEncrypt<span style="color: #808030;">.</span>FlushFinalBlock<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: purple;">}</span>
encrypted <span style="color: #808030;">=</span> msEncrypt<span style="color: #808030;">.</span>ToArray<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: purple;">}</span>
<span style="color: purple;">}</span>
<span style="color: dimgrey;">// Return the Base64-encoded encrypted data</span>
<span style="color: maroon; font-weight: bold;">return</span> Convert<span style="color: #808030;">.</span>ToBase64String<span style="color: #808030;">(</span>encrypted<span style="color: #808030;">,</span> Base64FormattingOptions<span style="color: #808030;">.</span>None<span style="color: #808030;">)</span>
<span style="color: #808030;">.</span>TrimEnd<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">=</span><span style="color: maroon;">"</span><span style="color: #808030;">.</span>ToCharArray<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span> <span style="color: dimgrey;">// Remove trailing equal (=) characters</span>
<span style="color: #808030;">.</span>Replace<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">+</span><span style="color: maroon;">"</span><span style="color: #808030;">,</span> <span style="color: maroon;">"</span><span style="color: #0000e6;">-</span><span style="color: maroon;">"</span><span style="color: #808030;">)</span> <span style="color: dimgrey;">// Change any plus (+) characters to dashes (-)</span>
<span style="color: #808030;">.</span>Replace<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">/</span><span style="color: maroon;">"</span><span style="color: #808030;">,</span> <span style="color: maroon;">"</span><span style="color: #0000e6;">_</span><span style="color: maroon;">"</span><span style="color: #808030;">)</span><span style="color: purple;">;</span> <span style="color: dimgrey;">// Change any slashes (/) characters to underscores (_)</span>
<span style="color: purple;">}</span>
<span style="color: purple;">}</span>
<span style="color: purple;">}</span>
</pre></div>Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com6tag:blogger.com,1999:blog-2206459747012568317.post-37812825782739934212011-03-09T01:06:00.000-05:002011-03-09T01:06:42.273-05:00New Stuff in Our Shop!<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-kEWlbW3F7YzLFebD3A38sdasAsAv8LX2K0AAxvin5SrtG3APtuECW6RNHwqelLaJf2tU5A6pVgGlAQCYk6O-kZkyzejj4jdRzoDHUzbd_rOE55zfsJvuutpU0pHO-pkd0fD37FwfnXjP/s1600/download.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="200" width="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-kEWlbW3F7YzLFebD3A38sdasAsAv8LX2K0AAxvin5SrtG3APtuECW6RNHwqelLaJf2tU5A6pVgGlAQCYk6O-kZkyzejj4jdRzoDHUzbd_rOE55zfsJvuutpU0pHO-pkd0fD37FwfnXjP/s200/download.jpg" /></a></div><br />
I just finished adding a few new products to our online shop. We now offer organic t-shirts, sweatshirts, and hoodies along with our regular shirts. Check them out at <a href="http://www.cafepress.com/sypher">cafepress.com/sypher</a>!Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-7802231577092592362011-02-18T16:29:00.000-05:002011-02-18T16:29:14.299-05:00Sypher SentenceIf there's one sentence that you should know about Sypher today, it's this: Sypher Technology is launching a new coworking location in east Louisville very soon, and you can sign up for our trial offer and more details at <a href="http://sypher.co">sypher.co</a>.<br />
<br />
Please don't judge. We can use all the media attention we can get!Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-80534637935409092022011-02-14T15:20:00.002-05:002011-02-15T02:58:36.200-05:00Coming Soon: Coworking at Sypher Technology<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiowdQoNA8U56UvxzGjPajiNAUa8MzzRwt-q1MbdWgyn5CM340sV-HizHSZQjp0yCPqNulY81wDMFHLs22dwMs-MnuStxImD_LWGF-NRW78yLVjmFpbLmU-_jukzQPYinvPLDbwUx_paHR8/s1600/working.png" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="100" width="100" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiowdQoNA8U56UvxzGjPajiNAUa8MzzRwt-q1MbdWgyn5CM340sV-HizHSZQjp0yCPqNulY81wDMFHLs22dwMs-MnuStxImD_LWGF-NRW78yLVjmFpbLmU-_jukzQPYinvPLDbwUx_paHR8/s400/working.png" /></a></div>We've taken another step towards opening our office to coworking! At launch, we will be making our conference room and four of our desks available to people who normally work from home or in coffee shops. We don't have 8,000 square feet, but we do have a convenient east-end location. Check out the launch page at <a href="http://sypher.co/">sypher.co</a> and sign up to be one of the first to know when we officially open!Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com010825 Bluegrass Pkwy, Louisville, KY 40299, USA38.2216149 -85.554926638.217400399999995 -85.5622221 38.2258294 -85.5476311tag:blogger.com,1999:blog-2206459747012568317.post-8138544657936738762011-02-14T15:13:00.001-05:002011-02-14T15:13:44.439-05:00New Site Design<a href="http://www.sypher.com/">Sypher.com</a> has a new design! Come check it out and let us know what you think!Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-79235479775804672382011-01-03T12:10:00.000-05:002011-02-14T15:11:05.140-05:00Happy 8th birthday!Sypher Technology is now eight years old! A big "thank you" to all of our clients over the past eight years!Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com010825 Bluegrass Pkwy, Louisville, KY 40299, USA38.2216149 -85.554926638.217400399999995 -85.5622221 38.2258294 -85.5476311tag:blogger.com,1999:blog-2206459747012568317.post-63466328588228608472010-04-16T11:13:00.001-04:002011-02-10T15:06:43.308-05:00Free Sypher Mug & Deskspace Today with Check-inIn celebration of <a target="_blank" href="http://4sqday.com/event/free-sypher-mug-amp-deskspace-today-with-check-in">Foursquare Day</a> (<a target="_blank" href="http://twitter.com/#search?q=%234sqday">#4sqday</a>), we are having a little fun with <a target="_blank" href="http://www.foursquare.com/">Foursquare</a>!<br />
<br />
<blockquote>Until we fill up or run out of mugs, free desk space and Sypher mug (4/16 ONLY) for anyone who checks into our co-working center on Bluegrass Parkway. Come out and preview the place before we start charging! E-mail us at sypher-info @ sypher.com to reserve a desk, or just drop by for a mug! <br />
<br />
</blockquote>Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-44785962896854397812010-02-22T14:01:00.003-05:002010-02-22T14:30:43.702-05:00Converting SourceSafe Databases to Team Foundation Server 2010If you've been trying to move your SourceSafe 2005 database to the new Team Foundation Server 2010 using the help found at <a href="http://msdn.microsoft.com/en-us/library/ms181247.aspx">http://msdn.microsoft.com/en-us/library/ms181247.aspx</a>, you may have run into the following problem:<br />
<br />
<code>TF60070: Unable to connect to the Team Foundation Server: 'http://<span style="font-style: italic;">Servername</span>:8080/'. Please ensure that the Team Foundation Server exists and try again.</code><br />
<br />
With the new TFS 2010, you also need to include collection information in the <span style="font-style: italic;"><teamfoundationserver></teamfoundationserver></span> tag. This is what our <span style="font-style: italic;">settings.xml</span> file looked like when I finally got this to work:<br />
<br />
<code><?xml version="1.0" encoding="utf-8"?><br />
<SourceControlConverter><br />
<ConverterSpecificSetting><br />
<Source name="VSS"><br />
<VSSDatabase name="c:\VSS"></VSSDatabase><br />
<SQL Server="." /><br />
</Source><br />
<ProjectMap><br />
<Project Source="$/" Destination="$/SourceSafe Backup"></Project><br />
</ProjectMap><br />
</ConverterSpecificSetting><br />
<Settings><br />
<TeamFoundationServer name="<span style="font-style: italic;">servername</span>" port="8080" protocol="http" <span style="font-weight: bold;">collection="tfs/DefaultCollection"</span>></TeamFoundationServer><br />
<Output file="migration_Analysis.xml"></Output><br />
</Settings><br />
</SourceControlConverter></code><br />
<br />
Hope this helps someone else!Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com1tag:blogger.com,1999:blog-2206459747012568317.post-72635852385501585692008-03-12T16:22:00.002-04:002008-03-12T16:23:55.265-04:00New 2008 Kentucky Derby and Kentucky Oaks Products AvailableThe 2008 Kentucky Derby is less than two months away! The Louisville News Company now has official Derby glasses, the Derby Magazine, programs, stat sheets and other products available for the 2008 Derby and Oaks. Be sure to check out their selection and place your order early!Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-2445295633968056282007-11-05T16:15:00.000-05:002007-11-05T17:24:04.481-05:00Why we recommend GmailThis is a post on the Gmail blog about their spam filter. The <strong>two</strong> biggest features Gmail offers for personal e-mail and hosted domain e-mail are the spam filter, super-fast searching, and very large mailboxes. Oh... The <strong>three</strong> biggests features are the spam filter, super-fast searching, and very large mailboxes... and a great calendar. <strong>Four</strong>! The four biggest features... Oh well, you get the idea.<br /><br /><a href="http://gmailblog.blogspot.com/2007/10/how-our-spam-filter-works.html">Official Gmail Blog: How our spam filter works</a><br /><br />We previously hosted our clients e-mail on one of our servers, but ever since the <a href="http://www.google.com/a/">Google Hosted Services / Google Apps</a> stuff went public, we've been moving our clients over to use that instead. We've been using it for our <strong>sypher.com</strong> domain e-mail since it was in Beta, and I don't think we'd ever move back to hosting our own again. I'd highly recommend this for any organization with less than 25 e-mail accounts, and probably even for you bigger companies out there.Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-34368404635200750852007-10-09T17:38:00.000-04:002007-10-09T17:38:03.750-04:00Peter Bromberg's UnBlog: KB929729 Windows Update Failure - An Easy FIX<a href="http://petesbloggerama.blogspot.com/2007/09/kb929729-windows-update-failure-easy.html">Peter Bromberg's UnBlog: KB929729 Windows Update Failure - An Easy FIX</a><br /><br />In case anyone else runs into this... I had just upgraded a machine from XP to Vista and the .NET 1.1 SP hotfix problem was waiting for me at the end of the upgrade process. Mr. Bromberg's post of these steps fixed my problem. :-) This doesn't sound like it's a common problem, so it was a relief to find the steps to fix it so well written.Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-13880160912823316472007-08-22T16:18:00.000-04:002007-08-22T16:37:44.814-04:00Siders to Serve as VP for Local BNI ChapterBryan Siders, president of <a href="http://www.sypher.com/">Sypher Technology</a>, will serve as vice president of the <a href="http://www.bnikentucky.com/cgi-bin/viewchapter.cgi?chapter_id=186">Numbers for Success </a>chapter of <a href="http://www.bnikentucky.com/">BNI</a> for a one year term beginning in October. Simon Keemer of <a href="http://www.strothman.com/">Strothman & Company</a> and Allen Harris of <a href="http://www.gershlaw.com/">Gersh Law Offices</a> will serve as the president and the secretary/treasurer.<br /><br />BNI is a business networking organization that "provides a positive, supportive, and structured environment for you to grow your business through word-of-mouth marketing." There are currently over sixty chapters in the Kentucky, Southern Indiana, and Middle Tennessee area.<br /><br />The Numbers for Success chapter meets every Tuesday from 7:45am to 9:15am at the <a href="http://www.google.com/maps?hl=en&output=search&q=4174+Westport+Rd+Louisville,+KY+40207&Point=b&Point.latitude_e6=38258433&Point.longitude_e6=-85644765&Point.iconid=15&Point=e&oi=manybox&ct=14&cd=1&resnum=1">Kroger Banquet Hall located at 4174 Westport Road. Louisville, KY 40207</a>. For more information or to attend a meeting as a guest, contact Bryan Siders at 502-459-4054.Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-25997203597567194372007-07-10T19:18:00.000-04:002007-07-10T19:23:31.527-04:00Moving to BloggerWe have changed this news feed to use Blogger.com for new posts instead of the hand-written file we were originally using. This is the first step in our move to a new web site design. The rest of the site will be updated in the next couple of weeks.Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-81488674630436185282007-04-04T14:41:00.000-04:002007-07-10T19:15:49.884-04:00New Oaks and Derby Products AvailableThe 2007 Kentucky Derby is only one month away! The Louisville News Company now has official Derby glasses, the Derby Magazine, programs, stat sheets and other products available for the 2007 Derby and Oaks. Be sure to check out their selection and place your order early!Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-59016463941781929802006-11-28T16:00:00.000-05:002007-07-03T14:40:06.577-04:00We've Moved!Sypher Technology has moved into a new main office located at 10825 Bluegrass Parkway in the Louisville Industrial Park. Don't worry--our phone numbers have stayed the same. Check out our contact page for more information and a map to our new location.Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-83327808176130468062006-05-30T16:00:00.000-04:002007-07-03T14:38:56.094-04:00New Employee AnnouncementCindy Siders has come to work for Sypher full-time as a vice president. Up until today, Cindy has been working with Sypher in a volunteer role on the Board of Directors.Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-73407353967499689142006-02-06T16:00:00.000-05:002007-07-03T14:37:48.093-04:00Senior Software Developer Position AvailableSypher Technology is looking for a new senior-level software developer/engineer. Check out our ad on <a href="http://regionalhelpwanted.com/Search/employer_ad_detail.cfm?SN=109&ID=10238">LouisvilleHelpWanted.com</a> or on our <a href="http://www.sypher.com/people/#SSD">People</a> page for more information.Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-1433391081713462672005-05-09T16:00:00.000-04:002007-07-03T16:08:50.174-04:00New Connections Online 4.0 Developer BlogBryan has started a developer's journal that will cover the design, development, testing, and implementation of Connections Online 4.0.Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0tag:blogger.com,1999:blog-2206459747012568317.post-14273978831131151102003-01-01T16:00:00.000-05:002007-07-03T14:34:42.929-04:00Sypher Photo gallery MovedThe photo gallery that was located here has been moved to <a href="http://www.sypher.org/">photos.sypher.com</a> temporarily. It will eventually make its way to Bryan's new personal web site at sypher.org. [EDITED to link to www.sypher.org]Bryanhttp://www.blogger.com/profile/16693525146787661053noreply@blogger.com0