Wednesday, March 27, 2013
New 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 https://secure.sypher.com.
Wednesday, June 6, 2012
We're 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 https://www.loosecubes.com/summerchallenge.
Monday, September 19, 2011
Come by and say 'hi!'
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 http://link.sypher.com/bts-appt, 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.
Monday, June 20, 2011
And we're back!
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!
Thursday, March 10, 2011
Assistly Multipass SSO
Over the last 24 hours, I've been playing around with the single sign-on (SSO) capability of Assistly. 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.
using System; using System.Configuration; using System.IO; using System.Security.Cryptography; using System.Text; using System.Web.Script.Serialization; namespace Sypher.Multipass { public partial class _Login : System.Web.UI.Page { protected class UserData { public string uid; public string expires; public string customer_email; public string customer_name; public string customer_custom_siteid; // custom fields public string customer_custom_sitename; // add your own as needed } protected void Page_Load(object sender, EventArgs e) { UserData user_data = new UserData(); // Set these values however you need user_data.uid = "12345678-0000-0000-0000-123456789012"; user_data.expires = DateTime.UtcNow.AddMinutes(2).ToString("yyyy-MM-ddTHH:mm:sszzz"); // ISO 8601 like 2011-12-29T10:25:28-08:00 user_data.customer_email = "testing@testing.com"; user_data.customer_name = "Test User"; user_data.customer_custom_siteid = "01234567-0000-0000-0000-890123456789"; user_data.customer_custom_sitename = "Test Organization"; string assistly_url = string.Format("http://{0}.assistly.com/customer/authentication/multipass/callback?multipass={1}", ConfigurationManager.AppSettings["assistly-site-key"], // See encryptUserData for appSettings example encryptUserData(user_data)); Response.Redirect(assistly_url); } protected static string encryptUserData(UserData user_data) { // Encode the data into a JSON object JavaScriptSerializer s = new JavaScriptSerializer(); string json_data = s.Serialize(user_data); // Example of web.config configuration/appSettings section: // <add key="assistly-site-key" value="sitename" /> <!-- from sitename.assistly.com --> // <add key="assistly-api-key" value="0123456789abcdef0123456789abcdef" /> // <add key="assistly-iv" value="OpenSSL for Ruby" /> <!-- Static value from Assistly --> string site_key = ConfigurationManager.AppSettings["assistly-site-key"]; string api_key = ConfigurationManager.AppSettings["assistly-api-key"]; string iv = ConfigurationManager.AppSettings["assistly-iv"]; // Using byte arrays now instead of strings byte[] encrypted = null; byte[] bIV = Encoding.ASCII.GetBytes(iv); byte[] data = Encoding.ASCII.GetBytes(json_data); // XOR the first block (16 bytes) // once before the full XOR // so it gets double XORed for (var i = 0; i < 16; i++) data[i] = (byte)(data[i] ^ bIV[i]); // Pad using block size of 16 bytes int pad = 16 - (data.Length % 16); Array.Resize(ref data, data.Length + pad); for (var i = 0; i < pad; i++) data[data.Length - pad + i] = (byte)pad; // Use the AesManaged object to do the encryption using (AesManaged aesAlg = new AesManaged()) { aesAlg.IV = bIV; aesAlg.KeySize = 16 * 8; // = 128-bit, originally defaulted to 256 // Create the 16-byte salted hash SHA1 sha1 = SHA1.Create(); byte[] saltedHash = sha1.ComputeHash(Encoding.ASCII.GetBytes(api_key + site_key), 0, (api_key + site_key).Length); Array.Resize(ref saltedHash, 16); aesAlg.Key = saltedHash; // Encrypt using the AES Managed object ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV); using (MemoryStream msEncrypt = new MemoryStream()) { using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) { csEncrypt.Write(data, 0, data.Length); csEncrypt.FlushFinalBlock(); } encrypted = msEncrypt.ToArray(); } } // Return the Base64-encoded encrypted data return Convert.ToBase64String(encrypted, Base64FormattingOptions.None) .TrimEnd("=".ToCharArray()) // Remove trailing equal (=) characters .Replace("+", "-") // Change any plus (+) characters to dashes (-) .Replace("/", "_"); // Change any slashes (/) characters to underscores (_) } } }
Wednesday, March 9, 2011
New Stuff in Our Shop!
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 cafepress.com/sypher!
Friday, February 18, 2011
Sypher Sentence
If 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 sypher.co.
Please don't judge. We can use all the media attention we can get!
Please don't judge. We can use all the media attention we can get!
Monday, February 14, 2011
Coming Soon: Coworking at Sypher Technology
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 sypher.co and sign up to be one of the first to know when we officially open!
Monday, January 3, 2011
Happy 8th birthday!
Sypher Technology is now eight years old! A big "thank you" to all of our clients over the past eight years!
Friday, April 16, 2010
Free Sypher Mug & Deskspace Today with Check-in
In celebration of Foursquare Day (#4sqday), we are having a little fun with Foursquare!
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!
Monday, February 22, 2010
Converting SourceSafe Databases to Team Foundation Server 2010
If you've been trying to move your SourceSafe 2005 database to the new Team Foundation Server 2010 using the help found at http://msdn.microsoft.com/en-us/library/ms181247.aspx, you may have run into the following problem:
With the new TFS 2010, you also need to include collection information in the tag. This is what our settings.xml file looked like when I finally got this to work:
Hope this helps someone else!
TF60070: Unable to connect to the Team Foundation Server: 'http://Servername:8080/'. Please ensure that the Team Foundation Server exists and try again.With the new TFS 2010, you also need to include collection information in the
<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting>
<Source name="VSS">
<VSSDatabase name="c:\VSS"></VSSDatabase>
<SQL Server="." />
</Source>
<ProjectMap>
<Project Source="$/" Destination="$/SourceSafe Backup"></Project>
</ProjectMap>
</ConverterSpecificSetting>
<Settings>
<TeamFoundationServer name="servername" port="8080" protocol="http" collection="tfs/DefaultCollection"></TeamFoundationServer>
<Output file="migration_Analysis.xml"></Output>
</Settings>
</SourceControlConverter>Hope this helps someone else!
Wednesday, March 12, 2008
New 2008 Kentucky Derby and Kentucky Oaks Products Available
The 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!
Monday, November 5, 2007
Why we recommend Gmail
This is a post on the Gmail blog about their spam filter. The two 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 three biggests features are the spam filter, super-fast searching, and very large mailboxes... and a great calendar. Four! The four biggest features... Oh well, you get the idea.
Official Gmail Blog: How our spam filter works
We previously hosted our clients e-mail on one of our servers, but ever since the Google Hosted Services / Google Apps stuff went public, we've been moving our clients over to use that instead. We've been using it for our sypher.com 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.
Official Gmail Blog: How our spam filter works
We previously hosted our clients e-mail on one of our servers, but ever since the Google Hosted Services / Google Apps stuff went public, we've been moving our clients over to use that instead. We've been using it for our sypher.com 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.
Tuesday, October 9, 2007
Peter Bromberg's UnBlog: KB929729 Windows Update Failure - An Easy FIX
Peter Bromberg's UnBlog: KB929729 Windows Update Failure - An Easy FIX
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.
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.
Wednesday, August 22, 2007
Siders to Serve as VP for Local BNI Chapter
Bryan Siders, president of Sypher Technology, will serve as vice president of the Numbers for Success chapter of BNI for a one year term beginning in October. Simon Keemer of Strothman & Company and Allen Harris of Gersh Law Offices will serve as the president and the secretary/treasurer.
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.
The Numbers for Success chapter meets every Tuesday from 7:45am to 9:15am at the Kroger Banquet Hall located at 4174 Westport Road. Louisville, KY 40207. For more information or to attend a meeting as a guest, contact Bryan Siders at 502-459-4054.
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.
The Numbers for Success chapter meets every Tuesday from 7:45am to 9:15am at the Kroger Banquet Hall located at 4174 Westport Road. Louisville, KY 40207. For more information or to attend a meeting as a guest, contact Bryan Siders at 502-459-4054.
Tuesday, July 10, 2007
Moving to Blogger
We 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.
Wednesday, April 4, 2007
New Oaks and Derby Products Available
The 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!
Tuesday, November 28, 2006
We'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.
Labels:
address,
Bluegrass Parkway,
contact,
Louisville Industrial Park,
moved,
sypher
Tuesday, May 30, 2006
New Employee Announcement
Cindy 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.
Labels:
board of directors,
Cindy Siders,
sypher,
vice president,
volunteer
Subscribe to:
Posts (Atom)


