NovelProjects

Wednesday, March 25, 2009

Americans Expect Social Media

Cone, a brand strategy consultancy in Boston, MA, recently released the results of a study on the use of social media. Here are some of the more interesting tidbits:



  • 60% of Americans use social media



Of those,



  • 93% believe a company should have a presence in social media

  • 85% believe a company should also interact with its consumers via social media

  • 56% feel both a stronger connection with and better served by companies when they can interact in a social media environment


Also worth noting, men are twice as likely as women to interact frequently (one or more times per week) with companies via social media, and one third of users age 18-34 believe companies should actively market to them via social networks. In fact, the same applies to the wealthiest households (income above $75k/yr).


So, if you're not already integrating social media into your online marketing strategy, maybe it's time! We've created and managed successful campaigns for clients using social media sites like facebook. Contact us if you'd like to learn more!

Website SEO

SEO, now there's a magic word used frequently when talking about websites. SEO, search engine optimization, is an ongoing process we at NovelProjects provide to our clients in order to better market their business to the web. The problem with SEO exists where many techniques are speculation and there is not just one way to increase search performance.



A Firefox add-on called SeoQuake makes this job a little bit easier. It provides statistics from different search engines such as: page rank, internal and external links, and other information pertinent to boosting your website in the search results. Having all this data on-hand and in one location allows us to track different optimizations and their effect on searching.



One of my favorite features of this plug-in is the "density". This allows us to view the breakdown of how many times a word or phrase is used on a page. Words that are repeated often can be good candidates for targeted ad campaigns. Also we can see when certain words and phrases are not repeated enough, resulting in low keyword density. We can then go in and change the content of a page in order to make the content more relevant by optimizing it for search engines.



This tool can greatly benefit and improve the amount of time to optimize websites for search engines. It allows us to to spend more time on optimization and less time on monitoring results because it handles the monitoring for us.

Monday, March 23, 2009

SQL Server Management Studio and...IE8?

This definitely ranks high on the the WTF scale. Since Microsoft released IE8, I thought it would be a good idea to install it so I could make sure everything looks alright in it. So, I installed it. Sounds like a simple story.


But wait, what is this? SQL Server Management Studio has now stopped working. What's the problem? It was very difficult to find out, but it looks like it had something to do with installing IE8. Yeah. Go figure.


Here's the error I was getting:


Unable to cast COM object of type 'System.__ComObject' to 
interface type 'Microsoft.VisualStudio.OLE.Interop.IServiceProvider'.
This operation failed because the QueryInterface call on the COM
component for the interface with IID '{6D5140C1-7436-11CE-8034-00AA006009FA}'
failed due to the following error: No such interface supported
(Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
(Microsoft.VisualStudio.OLE.Interop)

------------------------------
Program Location:

at Microsoft.VisualStudio.OLE.Interop.IServiceProvider.QueryService(Guid& guidService, Guid& riid, IntPtr& ppvObject)
at Microsoft.SqlServer.Management.UI.VSIntegration.ServiceProvider.GetService(Guid guid, Type serviceType)
at Microsoft.SqlServer.Management.UI.VSIntegration.ServiceProvider.GetService(Type serviceType)
at Microsoft.SqlServer.Management.UI.VSIntegration.ShellWindowPaneUserControl.GetService(Type svcClass)
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ObjectExplorer.System.IServiceProvider.GetService(Type serviceType)
at System.ComponentModel.Design.ServiceContainer.GetService(Type serviceType)
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItem.GetService(Type serviceType)
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NodeContext.GetService(Type serviceType)
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.BuildDynamicItemWithQuery(IList nodes, INodeInformation source, INavigableItem sourceItem, String urnQuery, Boolean registerBuilder, Boolean registerBuiltItems)
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.BuildDynamicItem(IList nodes, INodeInformation source, INavigableItem sourceItem, IFilterProvider filter)
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.Build(INodeInformation source, INavigableItem sourceItem, IFilterProvider filter)
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItem.GetChildren()
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ExplorerHierarchyNode.BuildChildren()


That's a whole lot of crap for telling me nothing. Just so it's clear what I'm running, I use Windows Vista 64-bit. This actually makes a difference in the end solution. Anyways, here's the quick and dirty solution. It sounds weird, just try and it see if it works for you.



  • Open a command-prompt (Run as administrator)

  • Navigate to C:\Windows\SysWOW64\

  • Run the following command: regsvr32 actxprxy.dll

  • Restart SQL Management Studio and try again



I saw other solutions very similar to this, but my guess for why they didn't work is that I was going to the C:\Windows\System32\ folder instead of C:\Windows\SysWOW64\ folder. It makes a difference. If you are on a 32 bit machine, try the other folder and run the same command. Happy hunting. Oh, thanks a lot Microsoft.

Monday, March 16, 2009

Java JSObject and Safari

I felt pretty good about my Java to Javascript communication after my last post, but a new problem arised. Now, I've never really had a direct issue with Safari. Most of the time any errors you see on Safari are just syntax errors which aren't handled as graciously as FireFox or other browsers. But, this is in fact a Safari issue that I came across.



The issue is that I want to pass a couple arrays of data from Java to Javascript. My previous Java code was something like this:



protected void sendToJS(File[] files)
{
String[] names = new String[files.length];
String[] paths = new String[files.length];

for (int i=0; i<files.length; i++)
{
names[i] = files[i].getName();
paths[i] = files[i].getAbsolutePath();
}

JSObject.getWindow(this).call("newfiles", new Object[]{names,paths});
}


This seemed to work just fine, until I got to Safari. For some reason, you can't seem to pass arrays to Javascript. I tried making a static array and passing that to Javascript - no dice. Pretty frustrating, actually. I was running through my head if it was a permission error, certificate error, or for some reason an actual hurdle that I couldn't overcome.



So, what's the solution?



The solution is to format everything in JSON and let Javascript parse that for you. It's not as convenient, but it was the only way to let Javascript have the format it needed for every browser. Here's an example of what the JSON should look like for my example:



"['file1','file2','file3']"


The Javascript needed to parse this so you can actually loop through it isn't that bad at all. Javascript has a built-in function eval which will take the JSON and make it into an object that you can work with.



function newfiles(arg1, arg2){
var names = eval("(" + arg1 + ")");
var paths = eval("(" + arg2 + ")");

// do you looping with names.length or access directly with names[1]
}


Again, annoying, but at least it's a solution.

Monday, March 9, 2009

Java and Javascript Communication

One of our newest projects is taking advantage of the capabilities of Java applets. The current one I'm working on allows for the user to drag and drop files onto a drop area, which will then do all the necessary work through Javascript communication. Once it gets to Javascript, I use jQuery to do all my ajax calls. It's actually a lot easier to do this than to write the web services to have Java call the directly, oddly enough. But, the other big advantage to this process is that I can use HTML and CSS to style everything, but use Java's power in the background.



One of my issues was with how I could get the Java to Javascript communication to work properly. I found a great little test page to show you the different options and how they fair with today's browsers.



One other key, which I'm not sure if they addressed directly in that link, is how to call Java from Javascript properly. From my tests, you need to do exactly what I've been using for my Flash and Javascript communiction. You need a function like this to call your object appropriately.



function getJavaObject(name) {
return (jQuery.browser == 'msie' && jQuery.browser.version == '6.0') ? window[name] : document[name];
}


I'm using jQuery to handle when to switch it over, but when I didn't use this code, everything started to break in IE6. Ugh, thanks IE6.

Wednesday, March 4, 2009

Flash Upload and OS X

We've had a lot of demand recently for a multiple-file upload tool. After looking at great utilities like the Flickr upload, I decided to try and recreate this using Flash. I have a lot of experience with upload tools, and you can only do a multiple file upload via Flash, Java, and most recently Silverlight.



I've done Java applets in the past, and they take a while to code and I haven't gotten very good at styling them. I can get them to have the same skin as the native OS, but most of the time you'd like to style some things according to your site's branding. I think Java applets are the most powerful, and if you need to do complex stuff, I think it's the way to go. But, for the demand that we were seeing, it was just a very simple upload tool. Nothing complex.



Silverlight is pretty new and I believe it uses C# (same as we use here), but I know that not a lot of people have that installed. I don't even think I have it installed on my computer. Possibly due to the Olympics using it to broadcast some of the coverage, but I know it's not very common on most people's computer.



Well, that leaves Flash. Not to say that's a bad thing. It's on virtually everyone's computer, and it getting more and more powerful with the recent addition of ActionScript 3. So, Flash it is.



There was really only one big bug with the whole process. In order for the Flash to fire the "complete" event saying that a file was completely uploaded, the server you're posting to must return back something. I believe it must be at least over zero bytes in length, but a simple returning of "true" will suffice.

Tuesday, March 3, 2009

Happy Square Root Day!

On behalf of "mathletes" everywhere, happy Day^1/2 !
Enjoy it while you can, the next one won't come around until 04.04.2016!