Wednesday, December 15, 2010

AmaCraigBay

For the next Kynetx competition I decided to create AmaCraigBay. I have always talked to friends about how they got this really cool stuff from Craigslist for really cheap, or free. I never think to check Craigslist when I need something. I always pay full price. So, I figured I would put eBay and Craigslist results on Amazon search pages, that way whenever I am on Amazon looking for something, not only will I remember to check Craigslist and eBay, I will see the most popular item from each site right above Amazon's results.

I searched on Amazon for an iPad, and guess what, Craigslist beat both Amazon and eBay for the cheapest iPad (non-used) by almost $100 dollars. It's just an email and a short drive away. So if I don't win the competition, at least I can try my luck with Amazon, eBay, and Craigslist all in one page.

Here is a screenshot:

If you want to try it out, here are the browser extensions for Firefox, Chrome, and Internet Explorer. I haven't try the IE extension but it should work.

Firefox, Chrome, Internet Explorer

If you prefer a Bookmarklet, just drag the link below to your bookmark toolbar, and press it when you are on an Amazon search page.

AmaCraigBay

Found a cheaper iPad on Craigslist while searching Amazon
When you first visit Amazon, you should see a box asking you to enter your Craigslist city (this won't happen with the bookmarklet until after you press it).  Go to Craigslist and find your city.  Look at the URL and put the part between http:// and .craigslist.org in for your city.  You should see the results when you search (and if your using the bookmarklet, after you press the button on a search results page).  You need to accept 3rd Party cookies from kobj.net for it to remember your city.

Sunday, December 5, 2010

Amazon Friend Feedback

Have you ever searched for a product on Amazon, read the reviews and got mixed feelings about weather you should buy it or not.  Did you want to ask your friends opinion?  Well, now you can ask your Facebook friends without ever leaving Amazon.

For Kynetx's web augmentation contest, I decided to add a Get Friend Feedback button on every product on Amazon.com.  It shows up right above the customer reviews.  To get feedback from your friends, you can press the button, and it will let you type in a message that you can post to your Facebook wall, with a link to the product you are viewing.  When you visit the product again, it will display the comments and likes count that your friends have posted.

If I ever find the time, I would like to add an option to Tweet the product to get feed back on Twitter. I would like to get the friend comments to show up in the shopping cart, and put the button on other shopping sites like Google Products.

If you want to try it out, just install the browser plugin for your browser.  You will be prompted to go to Facebook and give my application permission to post things to your wall.  You can also get the app from Kynetx's marketplace.


Firefox Extension
Chrome Extension
Internet Explorer Extension

So here are the technical details on how I accomplished it with Kynetx.  The place_button rule grabs the Amazon product id from the url and the product name from the title and places a button on the page above the customer reviews. Under all of my tests, Amazon uses two different url's so this rule responds to both of them.

The place_form rule gets launched when the user clicks on the button, created in the previous rule.  It pops up a notify box with a textbox to enter in your question.

The request_posted rule gets launched when the user submits the question, and it posts the query to the user's Facebook wall.

The recent_post rule is fired automatically after the last rule fires.  The facebook:post function doesn't return anything, so I needed a way to get the Facebook post id so I can display the post when the users return to see the product.  I had to query the User's feed and get the last post.  I ran out of time to check to make sure it is the post I posted.  So sometimes it might grab the wrong post to display on Amazon.  Hopefully Kyntex's will update the facebook:post to provide a post id when it returns.  I store the Amazon product id with the Facebook post id by using trails.

Then, when the user visits a product on Amazon, I search through the trail in the need_discussion rule.  This rule uses a foreach loop to loop through the trail.  If the page's product id matches a product id in the trail, it launches the place discussion rule.

The place_discussion rule get's the like count and comment count from Facebook, and places them on the page below the "Get Friend Feedback" button.  It then launches the place comments rule.

The place_comments rule loops through all of the comments and places each one on the Amazon page.

Here is the full Kynetx code:

Thursday, October 28, 2010

Internet Running Slow? Try OpenDNS

I know that technically oriented readers will probably already know this, but for any readers that don't know, there is a way that you could possibly speed up your Internet connection.

If you have a page that is loading slow (say like Facebook.com or any other page) one of the problems might be a slow DNS server. If you look at the status bar in your browser you will see two messages as a page loads. The first message will say "looking up ...url..." or it will say "waiting for ...url..."  Of course this message will probably vary based on which browser you are using.  But if your waiting for a page and it seems like you are spending a lot of time looking up site names, then switching your DNS server will probably help.

A lot of pages you see on the Internet actually come from multiple servers around the world.  CNN.com, FoxNews.com, and even Facebook.com have you load content from a lot of different servers.  And for each server you visit you need to look up its address.  Every computer on the Internet has a unique address, so that messages can find their way across the Internet to that specific computer.  This address is called an IP address and looks something like this:  128.224.123.25.  DNS, which is short for domain name system, is the phone book of the Internet.  It translates addresses like www.facebook.com into ip address so your page request can reach the web server.

Whenever you connect to the Internet, your computer is usually are told which DNS servers to use by your Internet service provider.  However, these servers are often slow, and many times have to ask several other servers to find the sites that you want.  This is why it might take a while to find all of the different sites that make up the site you are trying to visit.  Well OpenDNS will provide you with a fast DNS server to use.  It is free, and they even have video tutorials to show you how to setup your computer or wireless router to use their DNS servers.  As an added bonus, they can provide web filtering and protect you from phishing scams.

So if you are seeing a lot of "looking up" messages while you wait for pages to load, it might be worth it to give OpenDNS a try.  Google offers a similar service as well.

Wednesday, October 13, 2010

Migrating to a New Host

So you probably have already noticed, I am not updating my blog very often.  Trying to teach 3-4 classes a semester, doing a dissertation, and trying to be a good husband and father keeps me really busy.  Although my previous host has been great, I decided to go with a cheaper hosting option.  That meant that I had to migrate my blog to a new server.  If you visit my site, you should notice a new, cleaner look.  I hope you like it.  (Although I am probably just writing this to myself since I don't really have any followers.)  What follows are some of the features and choices I made to make this blog look the way it does.  If you are interested in the technical details, then read on.

First, I decided to transfer my domain name to godaddy.com.  They had a better price than my old host.  It was fun learning about the domain name transfer process.  I started by just transfering the domain, and I kept using my old host's nameservers so that it would continue to point to my old site.  Once I got my new blog up and running, I parked the domain at godaddy, and pointed it to my new host.  I use openDNS (maybe I will write about that in a future post), and I was surprised at how fast they picked up the change.  It only took them 30 minutes to notice the change and update the entries.  The nameservers at BYU-Hawaii took a couple of days to pick up the change.

Second, I decided to stay with the Wordpress blog engine.  I was a little hesitant to stick with wordpress because it takes a lot of resources and runs slow.  My new host doesn't have as many resources.  This meant that my blog loaded really slow (3 seconds per page).  I explored other options.  I even installed Movabletype.  Movabletype definitely loads much faster, because it saves static html pages on your site after you publish.  However, there are not as many extensions and it seemed much more complicated to setup.

Then I stumbled up the WP Super Cache plugin.  What it does is create static copies of all of my pages.  Most visitor will get the static copy.  When I create a new post, or when someone comments, the cache is automatically regenerated with the new content.  Now, my pages load in less than a second (except for the Facebook like buttons, but that is Facebook's fault not my server's).  This does mean that my twitter feed will be out of date, but I hope to fix that in the future.

I also decided to use the Disqus commenting system.  This lets people log in with their Facebook or Twitter accounts, and then they can post comments.  They also can post their comments to their Facebook wall.  I tried IntenseDebate which does the same thing.  However, they tied my profile to a Wordpress.com account.  Then to get comment notifications, I had to publish my email address in a Wordpress press profile and in Gravatar. IntenseDebate did load faster and that is why I tried it out.  However, after I installed the caching plugin, disqus started to load fast too.  Another good feature of Disqus, is their android app.  Now I can view and moderate my comments on my phone.

I also added the Facebook like buttons so that people with Facebook accounts can like my posts and comment on them in Facebook.  Using an add-to-any button, I also added many ways people can share my posts.

Anyway, I hope you like the new look and features.  Now I just need to get some good content here, and some readers.  Maybe posting more than just once or twice a year will help.  If you are reading this, let me know what you think!

Thursday, February 4, 2010

Belief Systems

I recently heard a TV personality ridicule religious people by saying they are crazy because their beliefs are not provable, and in his opinion, have been proved wrong.  He attacked all religions but specifically attacked the Mormon religion.  I wasn't too offended because I know that he says stuff to shock people.  However, I have learned that there is more than one way to build beliefs and knowledge.

One way is through our observations.  We develop beliefs and knowledge based on what we have seen.  Like when the first person circumnavigated the global we all started to believe that the world was round. Before that everyone thought the earth was flat.  Before circling the world, everyone's observations led people to believe incorrect facts because they didn't have a complete picture.  Using this systems as the only system to establish our beliefs means that we establish our beliefs on partial information.  We cannot observe everything, so we can never really base our beliefs on a complete picture.  The scientific method is just an algorithm to increase our ability to observe and make appropriate conclusions.  It has led to great advances in our knowledge, but it still paints an incomplete picture.

Another belief system is establishing our beliefs through feelings.  If there is a God, and if He loves us, than wouldn't he try to communicate with us? I believe that he communicates with us through feelings.  This can be done through our conscience, guilt, and with other feelings of hope, joy, and peace.  If you hear something and feel peace, than it is God communicating with us.

I just find it weird that a person who only bases his knowledge on a partial picture would ridicule others who base their beliefs on receiving light and intelligence from God.  Don't get me wrong.  As a scientist, I believe that the scientific method is very useful in exploring our world and developing beliefs.  However, it only paints an incomplete picture.  There will always be more observations to make.  As an example, there is an entire research field studying the performance of computers.  They still don't know the details of everything that is going on inside of a computer system.  And that machine was built by humans.  We don't even have a complete picture our of our personal history on this earth.  How many observations have we forgotten about?  How could we ever expect to know everything about this world through observations?  So someone that bases his entire belief system on only their observation, and tells others that they are crazy for believing what they do, seems to be the one that is short sighted.

I know that God lives because I have felt him talk to me.  I know the Book of Mormon is true because I asked God and he told me it was true.  I know that many people might try to bring evidence (or observations) to try to contradict my knowledge, however they are only partial observations and only paint incomplete pictures.  I think I would rather trust in what God has told me.  Not only does it give me a more complete picture, but it has brought a lot of peace and happiness in my life.