Monday, October 25, 2010

LibClamAV Warning: Cannot prepare for JIT, because it has already been converted to interpreter

This happens on systems where you installed 0.96.3. Clamav has released a newer version 0.96.4 and in case your repo doesn't have it listed, you can install it using the following commands (designed for CentOS 5 32-bit):
wget http://packages.sw.be/clamav/clamd-0.96.4-1.el5.rf.i386.rpm
wget http://packages.sw.be/clamav/clamav-0.96.4-1.el5.rf.i386.rpm
wget http://packages.sw.be/clamav/clamav-db-0.96.4-1.el5.rf.i386.rpm
yum -y upgrade clamd-0.96.4-1.el5.rf.i386.rpm clamav-0.96.4-1.el5.rf.i386.rpm clamav-db-0.96.4-1.el5.rf.i386.rpm
rm -f clamd-0.96.4-1.el5.rf.i386.rpm clamav-0.96.4-1.el5.rf.i386.rpm clamav-db-0.96.4-1.el5.rf.i386.rpm
If you happen to be running a 64-bit server:
wget http://packages.sw.be/clamav/clamd-0.96.4-1.el5.rf.x86_64.rpm
wget http://packages.sw.be/clamav/clamav-0.96.4-1.el5.rf.x86_64.rpm
wget http://packages.sw.be/clamav/clamav-db-0.96.4-1.el5.rf.x86_64.rpm
yum -y upgrade clamd-0.96.4-1.el5.rf.x86_64.rpm clamav-0.96.4-1.el5.rf.x86_64.rpm clamav-db-0.96.4-1.el5.rf.x86_64.rpm
rm -f clamd-0.96.4-1.el5.rf.x86_64.rpm clamav-0.96.4-1.el5.rf.x86_64.rpm clamav-db-0.96.4-1.el5.rf.x86_64.rpm
Enjoy!

Thanks,
James Hartig

Wednesday, October 20, 2010

"No such interface supported" Error

I was trying to fix a Grooveshark bug which required I install IE7, well I found a standalone and attempted to install it, only to realize it wouldn't work. That didn't stop it from ruining some DLLs and causing random Windows shortcuts/links to stop working. Specifically any links to System Properties, Customize toolbar icons, and desktop personalization.

After looking online for a long time, I finally found a solution: http://forums.whatthetech.com/Re_register_system_DLLs_Windows_7_t112016.html

If you don't want to register, I hosted a version: http://cactusfiles.com/windows/ReRegisterDLL.bat Just run that file as an Administrator and wait a good 10-15 minutes and you are all set. Enjoy!

Thanks,
James Hartig

Tuesday, October 12, 2010

Apigee and CloudFlare. A DNS-protected API solution

While I look for ways to optimize GSUser, I came across Apigee a few weeks ago to track and monitor the people using GSUser. Their site provides analytics on how the API is used and has been a great addition to the internal tools I have. I especially love their debugger, where you can watch and review requests in real-time. If you pay for Apigee you even get to have them manage your API passwords, OAuth and they will cache responses.

Starting last week, I started working on getting CloudFlare up on some domains, I moved GSUser over to their Free plan to see how it worked. CloudFlare protects your website by sitting between your site and the visitor. They provide caching and protection against an array of attacks. Already on GSUser, they managed to cache 50% of all requests and protect me from almost 400,000 malicious requests.

After testing each individually, I decided to move my largest client over to a subdomain that was protected by CloudFlare and yet still running through Apigee and this is where things got messy. I had originally routed this subdomain to gsuser.com on Apigee, which then caused Cloudflare to run into a DNS loop.

In order to properly setup Cloudflare and an Apigee CNAME, follow these simple steps below:

  1. Create a new subdomain (A Address) and point it to your server(s). Then turn off Cloudflare protection on the subdomain.
  2. Go to Apigee and setup your new api and point it at this the subdomain you just created.
  3. After creating your API on Apigee, take your API URL (found under Settings) and create a new DNS CNAME record on Cloudflare pointing to this API URL. You will want CloudFlare protection on this subdomain.
  4. Now go back to Apigee, go to your API's Settings and click "Change CNAME". Then your CNAME is the public subdomain you just created.
  5. Now you can direct all your API clients to your public subdomain (public.gsuser.com will be active to prove it works for today).
Enjoy your super protected and analytic-friendly API endpoint!

Thanks,
James Hartig

Wednesday, October 6, 2010

Grooveshark Day 10/1/10

Grooveshark Day was awesome this year! Strongsville High School students got their own special promotion, as well as a video which was played on the announcements.



Here is a picture of everyone at my school and who wore their shirts and came to get a picture at 7am.



Also, we gave out 200 free 1-month VIP accounts on Twitter and on Facebook. Be sure to stay tuned to http://groovesharkday.com/ and @groovesharkday for announcements for next year!

Thanks,
James Hartig