Google Health
No CommentsGoogle health launched today and could be really big. The new Google product will let you store and manage all of your health information in one central place. I think this is a great step forward for the online medical community. Sites like webmd are very informative but not personal. I can only imagine the amount of data Google will be able to index now. But hey, it’s free.
I hope Google doesn’t drop the ball on the social side, because it could be really helpful to a lot of people. Let users rate and comment on doctors and perhaps even view your friend’s doctors. Let users exchange medical treatments they tried out and give first hand accounts of medications. I’m tired of going to sites that pretend to be informative when, in actuality, are trying to push a certain new medication or treatment process on you.
- Start tracking a medical history and learn about your conditions
- Import your medical records
- View your medical history
- Find out how medications might interact
- Make your health information work for you
- Search for doctors and hospitals
Find out more information here.
Posted in Computer Science, Google, Life Stuff, Technology, Web
No Comments
Social Adwords vs Regular Adwords
1 CommentRemember when you only saw Google content after a web search? You know, before they basically took over the internet. Google introduced or rather made popular the concept of adwords but it seems facebook might be throwing their hat.
Adwords Crash Course
Google is really good at indexing websites and labeling them with certain keywords. Let’s say you have a blog about Ronaldihno. Google might tag your website with keywords such as “soccer”, “sports”, “ronaldinho” and so forth. How they do it doesn’t matter, the fact is that they can do it. Then they thought, “hmmm since we know what the page is about, we could show the best ad on it.” By “best ad” I mean an advertisement that has a high chance of getting clicked on. For example, ads selling a poster of Ronaldihno would probably do better on your blog then the limited edition Jane Austin novel. That’s ad words is in a nutshell. People purchase ad words and Google shows them on various pages across the internet.
The key here is page content. It has little or nothing to do with the actual user. What if you were on the blog and happened to be looking for new soccer cleats? The best ad would probably be for cleats. What if the ad module knew that you were a huge fan with the popular soccer game Fifa by EA? Here is where social adwords becomes really interesting. Facebook has data and collects data all the time. If they launch a social adwords service it could be amazing. They could show an ad based on the content of the site but also by the user. As of right now facebook has 50 million users and counting and I doubt anyone thinks it is going to slow down anytime soon. They’ll dominate Tom’s social site soon enough. Probably by the time he is 30. Or is it 40? I forget how old he is saying he is this week.
Don’t think they can do it?
The newsfeed module can be seen as the building blocks for the ad module. It basically shows you content of what you should be interested in. Facebook could use these same algorithms and just run with them to display ads. Read this great article for more about new feeds.
There are two important things to realize. First, facebook is thinking far far ahead then anyone gives them credit for. Second, data is great but organized data is the key.
I’m sure you are wondering how much facebook could know about you? The first seven are from the great article I mentioned above.
- Whose profile pages you visit - and how frequently, how recently, and how often
- Who you message, and who messages you
- Whose walls you write on, and who writes on yours
- Who/what you search for
- Who you invite to events and groups, who accepts, and who invites you
- Who you tag in photos, and who tags you
- Which News Feed items you’ve clicked on before.
- What you are trying to get rid of or looking to buy (Marketplace).
- What types of links you are sharing.
- What type of videos you watch and how often.
- What groups you are in and what discussions you take part in.
- What type of people do you befriend and how often do you make new friends.
- What you are blogging about (Notes).
- Which events have you attended and plan to attend.
- Possibly know where you tavel to often based on your picture locations and names. For example, if you are tagged in a lot albums with “Las Vegas” then it’s safe to assume you travel to Vegas a lot.
- What locations you usually use the internet from and what times are you most active.
- More data can be pulled from the Polling application.
- Which applications you use the most (they are categorized).
- Profile
- Activities
- Affiliations (Networks)
- Age
- Books
- Current Location
- Education History
- Interests
- Desired Relationship or status
- Movies
- Music
- Poltical Status
- Religion
- Sex
- Television Shows
- Work History
Privacy
Privacy as we used to know it disappeared a long time ago. Probably some time after credit cards and a little before Google Earth. I don’t think facebook is doing anything wrong from a business standpoint. They aren’t selling the data they collect rather using it build another technology. It is a bit scary when I imagine the ads could but I would rather see relevant ads on sites I visit rather then have my email address sold to the highest bidder.
If you want to read more about the facebook ad-words rumors, check out facebook launching the google adwords killer.
Posted in Facebook, Technology, Web
1 Comment
privacy policy or the lack of it
3 CommentsA few months ago I signed up for a SharedReviews beta account. The idea behind the site is to get solid reviews of products and pay the community 50/50 on certain revenue. Sounds pretty cool huh? Well it may be but as I was signing up I came across the privacy policy. Usually I just breeze through it but I decided to read this one.
“We protect your privacy with a passion!”
First, I want to say that I think ShareReviews is a cool site and I hope their business model works out. However, the privacy policy was kind of weird. It was actually amusing. Why do sites even have privacy policies? They should just come out and say “Yea, we’ll use your information for whatever we damn well please.” Below are some lines right of the policy.
“For the purposes of this policy, “Personal Information” means any information about you except your business title, address, e-mail address, telephone number or facsimile number. It also does not include your home address and telephone number if these are published in a telephone or other directory, and does not include any Review, content or other materials that you post or submit to use for possible publication. “
Umm….so what else is there? What exactly is private then?
“We do not sell your Personal Information to third parties. We may share some or all of your Personal Information with our third party business partners”
Hmmm ok. I shouldn’t be surprised. It’s a “review” site and to make money they are probably selling data. For that data to be worth anything they have to include user data with it. So why throw in the line about “we protect your privacy with a passion.” Half the business model is actually based upon doing the exact opposite.
Most users caring less is the worst part. We’ll go crazy if a telemarketer calls our house but we don’t blink while registering for a new site. Personally, I’m not against a website data mining to show relevant ads. Let’s take facebook for example. They will look at your profile and use that to display an advertisement. An advertiser will pay more to know that their ad is getting to their target demographic. I’m fine with that. I’m going to see an ad anyway, might as well see one that I might actually like. That’s how Google makes all their money.
What I don’t like is when companies sell information they collect. To me thats like selling hot pictures your ex girlfriend took for you. The ones she would dress up like a tiger and act like she is…ok getting off topic. The pictures were meant for you not the public or your favorite “rate this chick” website. Just because you don’t care about her anymore doesn’t mean you should go and sell something she wouldn’t want sold. However, let’s say you analyze the pictures. After hours of analyzing, and frequent naps, you say to yourself “hey i bet she would really like this lingerie site.” You contact her the usual way you two communicate and let her know that you are an affiliate for an animal lingerie site. Nothing wrong with that, right?
Posted in Business, Life Stuff, Satire, Web
3 Comments
RDFa Complexities
2 CommentsSo I briefly read over the new draft of the RDFa Primer. It’s good overall, but Section 5 introduces unnecessary interpretation complexities.
I say BLEAH to the Section 5. I want “Keep It Simple, Stupid.” parsing. The nested layers make it harder for the parser to parse; it makes it harder for the lay person to understand RDFa (and to adopt, and to use).
I also REALLY don’t like the idea of intermixing the id and about attributes for use in defining the subjects & objects. Although the primer makes a case for it, I counter with this example:
<body about=”http://example.com/mydoc#section”>
<div id=”popup”>
The document was written by <span rel=”dc:author”>Tim</span>
</div>
<a onClick=”…”>Show PopUp</a>
</body>
The ‘popup’ id is overloaded. It’s the identifier for which the Javascript code looks up, and it’s also become the subject of the dc:author statement. The above fragment is also non-intuitive. I would expect <http://example.com/mydoc#section> dc:author ‘Tim’. Instead, I get <#popup> dc:author ‘Tim’.
Posted in Web, XML
2 Comments
RDFa in Ruby, a First Stab
2 CommentsA new draft of RDFa [1] has been out for about a month now, and it got me to thinking about RDF again. This time, the geek in me saw the opportunity to use easily use RDF in my Atom based applications. Instead of using embedded micro formats in Atom Entries, I can create semantic relationship using preexisting ontologies (e.g. - DublinCore) in an easy to read format.
The XML generation side had near zero work thanks to Ruby On Rails’ rxml format. But I was lacking a parser to read in the RDF statements even though there were a few Ruby RDF Stores available. The only RDFa parser I found was written in Python– rdfadict.
So, I just set aside parts of the last two days and came up with my own super simple Ruby RDFa parser; I read and reread the RDFa Syntax draft document, which is still far from complete; I skipped implementation of parts of the spec: xml:base, reification, and nested CURIEs; and got something to just work. (Note: rdfadict uses XPath for its implementation. Instead, I used an iterative approach to traverse XML documents).
Basic parsing works; I also made it flexible enough for custom integration; I just need to spend time to write up the documentation and write up more test cases. I’ll move forward with it as the RDFa spec develops and when I get feedback from anyone that uses this library.
But for now, the code is hosted here: http://code.google.com/p/ruby-rdfa/.
Posted in Web
2 Comments
Django and Dreamhost, Take 2
No CommentsAfter installing my own custom Python build, I went back and tweaked how Django ran on my Dreamhost account. My previous Django installation experience is still mostly valid. I just figured I could “upgrade” the installation to take advantage of Python 2.5 and eggs.
I installed three eggs to get Django running
# For Django
python ez_setup.py MySQL-python
python ez_setup.py http://www.saddi.com/software/flup/dist/flup-r2030.tar.gz
python ez_setup.py http://www.djangoproject.com/download/0.95/tarball/
The first was mySQL support; second was for Django’s built-in fcgi support; and finally Django itself.
I had a second goal in this upgrade. I wanted to partition off the “/-/” subtree (For example, http://example.com/-/admin/) for Django, instead of using the full subdomain. I had to make a couple of changes to the project’s urls.py file (to handle the ‘-’) and to the .htaccess file:
# urls.py change example for the admin application.
(r’^-/admin/’, include(’django.contrib.admin.urls’)),
The .htaccess file:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^-$ /-/ [R]
RewriteRule ^-/(.*)$ /_/mysite.fcgi/-/$1 [QSA,L]
</IfModule mod_rewrite.c>
And finally, a new mysite.fcgi script found in the /_/ directory (notice that it’s an underscore, not a dash):
#!/home/user/bin/python/bin/python
import sys, os# Switch to the directory of your project. (Optional.)
# os.chdir(”/home/user/myproject”)# Set the DJANGO_SETTINGS_MODULE environment variable.
os.environ['DJANGO_SETTINGS_MODULE'] = “myproject.settings”from django.core.servers.fastcgi import runfastcgi
runfastcgi(["method=threaded", "daemonize=false"])
Posted in Python, Web
No Comments
Python, Eggs and Dreamhost
2 CommentsDreamhost, my web host, does not yet support Python2.5, and one can’t install Python eggs into Dreamhost’s own Python installations. The solution? I just installed a custom build of Python2.5 into my $HOME/opt directory. The following is the script I created to automate that process:
# Obtain Python2.5 and unpack
mkdir $HOME/downloads/
cd $HOME/downloads/
wget http://www.python.org/ftp/python/2.5/Python-2.5.tgz
tar -zxvf Python-2.5.tgz# Creating the location under which python (and other apps) are to be installed.
mkdir $HOME/opt# Go into the Python2.5 directory, make && make install the thing
cd Python-2.5
./configure –prefix=$HOME/opt –enable-unicode=ucs4
make && make install# Create a bin directory for Python, and link the bin to the real executable
mkdir -p $HOME/bin/python/bin
ln -s $HOME/opt/bin/python $HOME/bin/python/bin/python
After the installation, I edited the bash_profile file to add the bin path:
export PATH=$HOME/bin/python/bin:$HOME/opt/bin:$PATH
Now with a custom installation of Python, I can use eggs to manage my Django projects’ library dependencies.
Posted in Python, Web
2 Comments
I guess it’s not that bad
1 CommentOver the years, I had developed an absolute hatred in my heart when it came to Javascript and DOM programming. No one big specific reason, just all the little annoyances: browser incompatibilities, debugging sucked (was tedious), never found any javascript library helpful or easy to use (this includes prototype, MochiKit, and Dojo), etc. Let’s just say that I would have rather gotten teeth pulled using rusty pliers.
But I’ve come to rethink my position… I can now stand, even enjoy, Javascript programming. Wow, what could have possibly happened to me (a once huge Javascript hater) to actually like it now? I give you the three reasons why:
- I started to work the Javascript language as it were actually Scheme (or similar functional language), closures and all.
- I found the Firebug debugging plugin for Firefox. I will never have to use an alert() call ever again :).
- And the biggest reason why I changed my mind: I found jQuery. This libary removed all the little pains I listed above, and released me in a way that I could focus on doing #1 above.
Take those three, and mix it up with with a Django powered backend… I am thoroughly confident that Javascript does not suck.
Posted in Computer Science, Web
1 Comment
REST Quote of the Day
1 CommentA great quote:
Web services build upon HTTP, but they don’t build upon the Web. The Web uses HTTP as an application contract which enables the loosely coupled exchange of documents between applications, while Web services uses HTTP as a bit pipe - as a transport protocol. –Mark Baker
Coral Cache and htaccess
2 CommentsA recent digg post showed off a WordPress plugin designed to help prevent a site’s server meltdown due to traffic overload (i.e.- Digg or Slashdot effect). The plugin redirects all incoming traffic from heavy sites (e.g. - digg.com) to the protected site’s equivalent Coral Cache page.
The cool part is that someone posted a sample Apache htaccess ruleset that does the same thing. Why is this better? It’s going to be way faster than using WordPress’ caching system in PHP.
My own modifications to the ruleset now:
- allows Googlebot direct access (no redirect);
- allows redirects from any subdomain of the high traffic sites, not just www;
- redirects the main page (”/”) too. The ^(.*)$ seemed to not redirect the “/” pages on some apache installations. I changed it to ^(.*)?$
Just copy & configure the following ruleset to the top of your WordPress’ .htaccess file (or the .htaccess file of any other site):
#
# Heavy Site Redirect to Coral Cache
# Links incoming from heavy sites are redirected to the Coral Cache
# Exception: Coral Cache Proxy Servers
# Exception: Googlebot crawler
#
# CONFIG: Replace “example.com” with your target domain name.
# CONFIG: Follow the HTTP_REFERER RewriteCond examples to add or remove
# domains to the list of redirected sites.
#
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !^Googlebot
RewriteCond %{HTTP_USER_AGENT} !^CoralWebPrx
RewriteCond %{QUERY_STRING} !(^|&)coral-no-serve$
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?digg\.com [OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?slashdot\.org [OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?slashdot\.com [OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?fark\.com [OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?somethingawful\.com [OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?kuro5hin\.org [OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?engadget\.com [OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?boingboing\.net [OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?del\.icio\.us
RewriteRule ^(.*)?$ http://example.com.nyud.net:8080/$1 [R,L]
</ifmodule>
Posted in Web
2 Comments