Saturday, December 04, 2010

Is Homeopathy Satanic?

As a scientist, I am skeptical of grandiose claims, cure-alls, and magic potions that cannot be explained naturally. However, also as a scientist, I try to keep an open mind, as I know there are many things which we do not yet understand. I can tollerate homeopathy, as long as it's not killing people. If it works, great, if not, then it's probably not a big deal.

As a Christian, I must also look at homeopathy. Is homeopathy satanic? If homeopathy cannot be explained by science, then are its effects from nature? If these effects are not from nature, from where do they come? Even if homeopathy has no real effects, is this faith-based medicine a false god?



Homeopathy is based on a core axiom, commonly called the law of similars, namely, that preparations that cause certain symptoms in a healthy person should be given in diluted form to people with ailments that exhibit similar symptoms.

To explore these issues, and examine homeopathy, we listen in on a conversation between three people who are having a discussion on the merits of homeopathy.



"Hey John!", Mike and Jill motioned to him to come over.

John stepped over, "Hi Mike. Hello Jill."

"What are you two up to?", said John.

"Jill was just telling me about this new kind of medicine, something about homeopathy, right Jill?" John interrupted, "You mean telepathy?" he elbowed Mike. "No really, homeopathy, it's a natural approach to healing,", said Jill.

John slowly combed his beard, "Yeah, I've heard of it. It's some weird hippy 'new age' thing, right?"

"New age!? You didn't tell me that, Jill!", Mike exclaimed.

"It's not 'new age', in fact it has been around since the 1800's.", said Jill.

John retorted, "Yes, it has, but since then science has advanced, and the only ways people are convinced of the efficacy of these potions is by combining them with 'new age' rituals and speech."

"So you think herbal medicine is all a scam?", Jill said.

John slowly responded, "No, I don't think all herbal medicine is a scam, homeopathy is not about herbal medicine, it is about the theory of similars. A theory that has never been shown to be true. Much like the theory of blood-letting."

Jill gulped, "I see. Well we all know that the pharmaceutical companies are all trying to keep you sick, their business is to sell you medicine, not make you better!"

John sighed, "Yes, and all mechanics break another thing in your car when they fix something else, right? I'm sure there are some crooked pharmaceutical companies, but to make your blanket statement, you must also believe that the homeopathics are crooks. They are people just as the ones who work in the pharmaceutical companies, subject to the same vices, and since their profit margin is so much higher, they are far more likely to be scamming."

"My cousin took some homeopathic remedy, and it helped her recover right away!", Mike cut in.

"So, how does it work then?", responded John.

Jill took a breath, "You see, you take something that gives a healthy person the same symptoms as the sick one is experiencing, you potentize it using a striker. This gives the memory of the energy of the poison to the water. Thus, when the sick person takes the pill containing the water, their body uses this to recover from the ailment."

Mike cut in, "You mean you dilute it and shake it. No need to use your fancy 'potentize' and 'striker' terms here. "

"Yes, that is correct. But the energy remains, the life-force of the poison.", responded Jill.

"Ah, see, now we are getting to the new age and occult. Since it is not possible to show how this works in nature, it must be some unnatural thing. You know, some spiritual thing. And that brings me to the question, is homeopathy satanic?"

Mike looked at John, "Wow! What are you talking about, John?!"

"You can't be serious, " said Jill. "All sorts of things were considered satanic and crazy because people didn't understand them. I'm sure electricity must have been at one time."

Mike snapped, "Sure, but some things that were considered satanic still are, for example, Tarrot cards, Ouija boards, fortune tellers, et cetera. When I see people putting vials of potions in their socks and dancing around, when I see people reciting numbers to be cured, when I see people putting all their faith in the church of homeopathy, it makes me question the power behind it."

Jill took a deep breath, "Well I can see that I'm not going to convince you today. You have brought up some points, and I will be watching homeopathy more carefully now to make sure I don't accidentally start turning to some occult practices."

Mike cut in, "hey guys! I almost forgot to tell you. My cousin just started this company and he said he can get us a great deal on vacuum cleaners, insurance, and legal council!"

Monday, October 04, 2010

A Break


Two weeks ago it was a usual Wednesday morning. I woke up at 6am so that I could drive the kids to school in St. Marys. As often the case, we were rushing and rushing, and not all the kids were moving very fast at these early hours of the morning. Finally, I told one that if he wasn't ready, we were just going to leave him at home. As I said this, I started out the front door to the car. I was carrying my usual lunch (a sandwich) and two mugs, one with coffee, the other vegetable juice. This particular morning it had been raining, and the water was still pooled on the painted concrete steps in the front of our house. As I went marching down the stairs, my feet flew out from under me, my hands full, grasping my lunch and drinks. BANG! My elbow hit the concrete step. SNAP! My back hit the edge of the step. I continued sliding down.

Moving in pain, I forced myself up and in a haze I stumbled back up the stairs into our house. I could hardly breathe, I could not speak. The pain felt as if I had broken something. Lisa rushed over to me, frantically asking me what was wrong. I kept trying to tell her as I gasped for air, but could not force out the sound. Finally, I gasped, "I fell." I tried to lay on the couch, my back was in severe pain. Eventually, when I was able to breathe more normally, I told Lisa what happened. Later she told me that she thought I was having a heart attack.


Lisa told me we should go to the emergency room. I did not want to, however. I was breathing, was not shot nor stabbed, I thought, so I could wait. At this point I remembered that I was supposed to be taking the kids to school. If we left now, they would only be a little late. I told Lisa that we could drive to St. Marys and stop by the clinic there. So we drove the 30 miles as I sat in the van seat, feeling every motion, every bump.

When we got there, we dropped off the kids and then Lisa brought me to the doctor. At this point, moving was not something I enjoyed, but I went to the office room, then to the reception, then to x-ray, and then back to the office. The doctor came and exclaimed that I had two broken ribs. He gave me a brace and a prescription for pain medication. That afternoon I was back at work for a couple of hours. Two days later, we moved. I think I'm going to give them a bit of a rest now though so they can heal!

And that, folks, is why you never ask for a break!

Friday, July 16, 2010

Communicating from VBA to Java

I needed a way to communicate from VBA to Java, this is VBA in the Office 2000 runtime, so it's fairly old. I thought that the easiest way would be to use socket communications. However, there is no built in socket library for VBA 2000. VBA, does let you map functions from DLLs and this is what I did:

Module mSocket

Option Compare Database
Option Explicit

Private isSocketServerRunning As Boolean

Public Const AF_INET = 2
Public Const SOCK_STREAM = 1
Public Const SOCKET_ERROR = 1
Public Const FD_SETSIZE = 64
Public Const FIONBIO = 2147772030#
Public Const SOCKADDR_IN_SIZE = 16
Public Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000

Public Address As String
Public Port As Integer
Public SocketHandle As Long

Public Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription As String * 257
szSystemStatus As String * 129
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo As Long
End Type

Public Type SOCKADDR_IN
sin_family As Integer
sin_port As Integer
sin_addr As Long
sin_zero As String * 8
End Type

Public Type fd_set
fd_count As Long
fd_array(FD_SETSIZE) As Long
End Type

Public Type timeval
tv_sec As Long
tv_usec As Long
End Type

Public Declare Function WSAStartup Lib "wsock32.dll" (ByVal intVersionRequested As Integer, lpWSAData As WSADATA) As Long
Public Declare Function WSACleanup Lib "wsock32.dll" () As Long
Public Declare Function w_socket Lib "wsock32.dll" Alias "socket" (ByVal lngAf As Long, ByVal lngType As Long, ByVal lngProtocol As Long) As Long
Public Declare Function w_closesocket Lib "wsock32.dll" Alias "closesocket" (ByVal SocketHandle As Long) As Long
Public Declare Function w_bind Lib "wsock32.dll" Alias "bind" (ByVal socket As Long, Name As SOCKADDR_IN, ByVal namelen As Long) As Long
Public Declare Function w_connect Lib "wsock32.dll" Alias "connect" (ByVal socket As Long, Name As SOCKADDR_IN, ByVal namelen As Long) As Long
Public Declare Function w_send Lib "wsock32.dll" Alias "send" (ByVal socket As Long, buf As Any, ByVal Length As Long, ByVal Flags As Long) As Long
Public Declare Function w_recv Lib "wsock32.dll" Alias "recv" (ByVal socket As Long, buf As Any, ByVal Length As Long, ByVal Flags As Long) As Long
Public Declare Function w_select Lib "wsock32.dll" Alias "select" (ByVal nfds As Long, readfds As fd_set, writefds As fd_set, exceptfds As fd_set, timeout As timeval) As Long
Public Declare Function htons Lib "wsock32.dll" (ByVal hostshort As Integer) As Integer
Public Declare Function ntohl Lib "wsock32.dll" (ByVal netlong As Long) As Long
Public Declare Function inet_addr Lib "wsock32.dll" (ByVal Address As String) As Long
Public Declare Function ioctlsocket Lib "wsock32.dll" (ByVal socket As Long, ByVal cmd As Long, argp As Long) As Long
Public Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long

Public Function sendMessage(message As String) As Integer
Dim wd As WSADATA
Dim socketHNDL As Long
Dim serverAddress As SOCKADDR_IN
Dim ret As Integer

WSAStartup &H101, wd
socketHNDL = w_socket(AF_INET, SOCK_STREAM, 0)

serverAddress.sin_family = AF_INET
serverAddress.sin_port = htons(9999) 'port number
serverAddress.sin_addr = inet_addr("127.0.0.1")

ret = w_connect(socketHNDL, serverAddress, SOCKADDR_IN_SIZE)
If (ret > -1) Then
ret = w_send(socketHNDL, ByVal message, Len(message), 0)
End If
w_closesocket socketHNDL
sendMessage = ret
End Function

Public Function startSocketServer()
On Error GoTo errorHandler:
Dim result As Double
If (sendMessage("ping") = -1) Then
result = Shell("javaws http://programs.onyxtop.com/JavaPrograms/WebStart/socketServer.jnlp", vbMaximizedFocus)
If (result = 0) Then
GoTo errorHandler:
Else
isSocketServerRunning = True
End If
Else
isSocketServerRunning = True
End If

Exit Function
errorHandler:
mError.recordError Err.Description, "mSocketServer.startSocketServer", _
"Starting Java Socket Server", mError.FATAL
MsgBox "Unable to start Java Socket Server. Functionality may be limited.", vbOKOnly, "Socket Error"
End Function

Public Function checkSocketServer()
If (Not isSocketServerRunning) Then
startSocketServer
iSleepy 5000
End If
End Function


The Java side is fairly simple. You basically start a ServerSocket listening on localhost and the port used in the VBA. Now, VBA can communicate with your Java program without the need for polling.

Saturday, July 10, 2010

Arizona Immigration Law

Copying from my Buzz post to allow for anonymous comments.

B. FOR ANY LAWFUL CONTACT MADE BY A LAW ENFORCEMENT OFFICIAL OR AGENCY OF THIS STATE OR A COUNTY, CITY, TOWN OR OTHER POLITICAL SUBDIVISION OF THIS STATE WHERE REASONABLE SUSPICION EXISTS THAT THE PERSON IS AN ALIEN WHO IS UNLAWFULLY PRESENT IN THE UNITED STATES, A REASONABLE ATTEMPT SHALL BE MADE, WHEN PRACTICABLE, TO DETERMINE THE IMMIGRATION STATUS OF THE PERSON. THE PERSON'S IMMIGRATION STATUS SHALL BE VERIFIED WITH THE FEDERAL GOVERNMENT PURSUANT TO 8 UNITED STATES CODE SECTION 1373(c).

'Those who would sacrifice freedom for security deserve neither' - Benjamin Franklin.




Wednesday, March 17, 2010

Gasoline on the candle

I have always worked fast. It's hard for me to see a job not done. In a few hours I have done things others have taken months. This, however, has taken its toll. I suspect that keeping up this level of intensity has negatively impacted my health. But I don't know how to stop. My mind runs a million miles per hour, playing out every path, my body used to be able to keep up.

If you've ever talked to me while I am working on a problem, you may have noticed that I struggle to slow down my speech, just so that you will be able to understand. A million perceptions, a million thoughts, but fewer actions. I am always looking at ways to improve my performance, often performing many tasks at once. Ambidextrous by force.

But I fear that this is not sustainable. I have others to worry about now. I have responsibilities toward my family. And thus, I am asking this advice: For all that can take 6 months to do something, how do you do it? How do you slow down? How can you slow thinking, stop thinking? How do you take the time to inhale?

Thursday, March 04, 2010

Thinking vs. Reacting

As computer scientists, we tend to try to get the computer to 'think' about problems using all sorts of complicated processes. The result is that often our programs are clumsy, slow, and not elegant. If you think about how humans tend to perform operations quickly, elegantly, and precisely, you will realize that we train for the operations. We perform them so many times, that we can do them without thinking about them. We have developed a complex series of reactions and are no longer thinking about the things we are doing.

Of course, as we are in our training mode, we will have to think about what we are doing. But when we master tasks, we will be able to do them without thinking. I think that computer scientists need to keep this in mind when they are designing complex systems. There is a time for thinking, and a time for reacting.

Saturday, February 27, 2010

Relaxation on the Cheap

So what has the best ROI (Relaxation on Investment)? Before we get to that, it is of course going to depend on the person. Different people receive differing amounts of relaxation from things. Now, I'm sure a few will argue that if you can't afford to relax, then you shouldn't. But that is a myopic point of view. We have to look at the larger picture, build up of stress will make us sicker, and this will most likely cause us to have trouble making a living. Thus, relaxation is more like taking a shower. Sure, can skip it and save money in the short term, but in the long term, it will stink.

Since I am a man, I know, at least for me, alcohol tends to have the highest ROI. Now this isn't the case for all men, it may induce more stress in some cases. But, generally, for men, alcohol tends to have the highest ROI. This is probably why more men have become alcoholics (although I have heard that the number of women becoming alcoholics is on the rise, is that due to the recession?)

What about for women? I don't know. I would like to hear your opinion on it. So, simply rate things by how much stress they relieve and then divide that by the cost of the thing. So, for instance, going on retreat: let's use a 0-100 scale for the stress relief. Maybe it has a 90 for stress relief, but it ends up costing 500$ for the plane ticket and 1 week of pay. Whereas, a date might have a 30 for stress relief, but only cost 50$.

What are your ideas for relaxation?

Friday, February 26, 2010

What is a living wage?

So I may have started some controversy when I claimed that I paid no Federal Income taxes last year (none was deducted from my paychecks). I have a simple and legal step by step method that can work for almost anyone1:
  1. Get two jobs.
  2. Have 25% inflation between the year 2000 and 2010.
  3. Receive a 7% pay decrease from one job over 10 years.
  4. Receive a 7% pay increase from the other job over 10 years.
  5. Increase your number of dependents by a factor of 8.
Now, having a drastic cut in effective income is not always a bad thing. I have learned and experienced a lot of generosity over the years. There are still many generous people in the world that will help out people in need. It also shows how it is possible for one to live on a meager income. As many people decrease their income due to the recession, there are some tips I think I can give:

Don't spend money! Ok, ok, you've heard it before, don't spend more than you can afford. This is not what I mean. I mean don't spend more than you absolutely need. Do you need to buy new furniture? No! I have not bought a single piece. What about new clothes? Nope. So many people buy new clothes, I am able to use what they toss. Also, you can wear the same clothes for 20 years. It is possible! I wear the same coat I got second hand more than 15 years ago. Vacation? Have a staycation---just kidding. But really, if you can't afford it, you should find a cheaper way to relax. There are many other things as well, but it seems these are ones that many people forget. Folks, it's time to learn to tighten your (used) belt---time to learn how to not spend money.

1 Possible side effects may include nausea, vomiting, diarrhea, high blood pressure, and alcoholism. Please talk to your tax accountant before considering this approach. This approach is known to the state of California to cause cancer.

Friday, February 12, 2010

Communications

First there was speech, but then someone said something bad, so speech was bad.
Then there was writing, but someone wrote something bad, so reading was bad.
Then there was smoke signaling, but someone burned down their house, so smoke signaling was bad.
Then there was the telegraph, but someone sent a bad telegram, so telegraphs were bad.
Then there was the telephone, but someone said something bad, so the telephone was bad.
Then there was the internet, but someone did something bad on it, so the internet was bad.
Then there was email, but someone sent something bad, so email was bad.
Then there was the blog, but someone posted something bad, so blogs were bad.
Then there was the social networks, but someone wrote something bad, so social networks were bad.

It is strange that as every new communication medium comes, some people snap to say that the medium is bad/evil. But, in a few years, they use it like they never said that.

It's not the medium that is bad, any medium can be abused. Only the naive use the logic above and, in the end, distract from the real evil.

Monday, February 08, 2010

Scripts

I've been doing some grading for a course and I wanted to automate somewhat sending feedback to the students. I am able to get a CSV file with the roster information and their submissions follow a particular format (Lastname_Firstname_...). So when I'm done grading and commenting, I want to be able to blast out the comments in emails. There are about 50 students in the course so sending an email to each one would take a long time.
Here is the first script:

#!/bin/bash
HW_DIR=$1
SUBJECT=$2
ROSTER=CIS_111_RosterExport.csv
C_DIR=$( pwd )
cd $HW_DIR
for file in *; do
LAST_NAME=$( echo $file | cut -d _ -f1 )
FIRST_NAME=$( echo $file | cut -d _ -f2 )
FOUND=0
while read line; do
RLAST_NAME=$( echo $line | cut -d "," -f2 | tr -d \" )
RFIRST_NAME=$( echo $line | cut -d "," -f3 | tr -d \" )
if [ "$LAST_NAME" == "$RLAST_NAME" -a "$FIRST_NAME" == "$RFIRST_NAME" ]; then
EMAIL=$(echo $line | cut -d , -f4 | tr -d \" )
$C_DIR/sendmail "$FIRST_NAME $LAST_NAME" $EMAIL "$SUBJECT" "Results: " $C_DIR/$HW_DIR/$file
FOUND=1
fi
done < $C_DIR/$ROSTER
if [ $FOUND -eq 0 ]; then
echo "Oh NO!"
echo $file
fi
done


It takes as input the directory with the files I want to send and a subject line for the email.

And here is my sendmail script:

#!/usr/bin/osascript
on run argv
set _name to (item 1 of argv)
set _to to (item 2 of argv)
set _subject to (item 3 of argv)
set _body to (item 4 of argv)
set _attachment to (item 5 of argv)
tell application "Mail"
set theMessage to make new outgoing message with properties {visible:true, subject:_subject, content:_body}
tell theMessage
make new to recipient at end of to recipients with properties {name:_name, address:_to}
end tell
tell content of theMessage
make new attachment with properties {file name:_attachment} at after last paragraph
end tell
send theMessage
end tell
end run

Saturday, January 23, 2010

Marriage Retreat

About a month ago, I went on a marriage retreat. This was the first time I had been on one, although I have been on several Ignatian retreats. I thought the retreat was very good and would recommend it to anyone married or thinking about getting married.

There were several interesting things that I learned, I will try not to bore you with all the details. However, I think there were two main things that really hit home for me. One has to do with differences between men and women. Growing up, I really didn't think there were any psychological differences between men and women. I think this was most likely due to the indoctrination that was everywhere present at the time. Men and women are equal became men and women are equivalent. More recently, however, there have been steps back to the realization that men and women are different, not just physically, but psychologically. Of course, this is a generalization, and as a generalization will not always hold true, but for the most part, women tend to depend more upon emotion, intuition, and feeling, while men tend to depend more on logic, reasoning, and rationality.

This does not mean that women are less than or more than men, it just means they are different and thus, will most likely respond differently in certain situations. It also does not mean that women do not have logic, nor does it mean that men do not have emotion. Many things fall from this. Women tend to want reassurance. For a man, this can seem that the women wants reassurance because they have reasoned that the man does not, for example, love them, even though the man just told them last week. ;-D Generally, for a man, facts hold until told otherwise. But intuition and emotions can change even though we cannot see them and without any apparent external cause.

Without knowing this, a relationship can easily start to spiral. For example, a wife innocently starts asking for reassurance. The husband wonders "what he did" or why his wife doesn't believe what he told her last week. The husband keeps trying to reason out why his wife doesn't believe him and starts to become irritated. The wife does not get the reassurance she needs at the moment, thus causing her to need yet more reassurance, which then feeds the cycle. And no one knows what them problem is with the other. There are many other things that can fall from this.

Another important thing I got from the retreat is that our hearts were made for God. This means that our partner cannot completely satisfy our heart. This could be one reason for some people to have a sense that something is not completely right with their relationship. Both men and women can have this sense. For men, however, we tend to rationalize it away. As for women, they generally depend more on intuition. Thus, for women, this can be a more dangerous sense---if they do not know from where it comes.

Wednesday, November 18, 2009

Funnels and Buckets

Way back when, I played this educational game called "Funnels and Buckets". I remember this being kind of fun when I was a kid, so I thought Ben might like playing it. Tonight I decided to code my own version from memory and with the help of a screenshot of the original version. I've never coded a game in Java, but I had some ideas of how to separate the update/model logic from the actual display. In about two hours this is what I came up with:
Right now it doesn't increase your level and it only gives you one point for each correct answer. This will most likely change to some scoring based on level.

Tuesday, November 10, 2009

Router Fun

So with Lisa gone tonight out with a friend, and me home with the kids, I decided to take a look at some weird issues I started having with web browsing. So for a while now, sometime I would try to go to a website and I would get a 403 from some proxy server. It was always the same proxy server. I figured that my ISP must have some proxy server that was messing up. Today, however, I tried to go to a website http://dislike.doweb.fr and I got redirected to a searchportal.information.com address (http://searchportal.information.com/?o_id=94081&domainname=dislike.doweb.fr). After much searching and frustration, I found that in my DNS settings I had 'no-ip.org' as a search domain and this was set through DHCP. Now DHCP was being served by my old Netgear WGT624v3 router. I searched all through the web configuration and there was nothing that had that set. I then told the router to backup the configuration to a file and took a look at the file. The setting was there, but not in the web interface. I remembered that a while back I updated the firmware and that many options had been removed. It turns out this was one of them. I ended up having to reset the configuration to the default and then manually change everything back through the web interface. Looks like everything is working properly now, and I can finally say goodbye to those 403 proxy pages. :)

Friday, October 02, 2009

Podcasts

I've found that listening to various podcasts have made my commutes and time at the gym much more enjoyable. In the car, I simply dock my ancient iPod on a radio transmitter. Here are the podcasts I currently listen to:
  • FLOSS Weekly - This is a show about Open Source Software and people who create and use it.
  • This Week in Google - This show is about Google happenings, but more generally about cloud computing.
  • This Week in Tech - A general, what's going on in the tech world.
  • net@night - A general, what's going on on the web.
  • Robots Podcast - News from the world of robotics.
  • Software Engineering Radio - Information about Software Engineering.
  • Daily Giz Wiz - Gadget Reviews, mostly ancient gadgets, funny, but I usually only listen to this one if I run out of the others.
If anyone has any suggestions for others, please post a comment. I'm always looking for more interesting podcasts.

Saturday, August 29, 2009

Morning Offering

I think it is important to start every day with a good attitude. Something that helps me is to be consistent in praying a morning offering. It's something that is easy to forget, but also easy to do. The key is to find something you do every day (in the morning), and connect that to saying your morning offering (e.g. shower, shave, breakfast, etc...) It also helps to focus, especially in the morning, to say it out loud.

The main point of a morning offering is to offer your day to God. To help symbolize that my whole day is a prayer to God, I make the sign of the Cross at the beginning of my morning offering, but do not make the sign of the Cross at the end. This reminds me that I have not finished my prayer, and that everything I do today is part of that prayer.

Over the years my morning offering has evolved. At one point it took over 10 minutes, nowadays it's shortened back down to about 5 minutes. Here is most of it:
O my God, I offer everything I do today in reparation for Thy Sacred Heart and in union with all the Masses offered throughout the world and especially so that I do not commit any sins of [insert any fault you are trying to overcome]. For my parents, for my brothers and sisters, for all my relatives and friends. For the Pope, for all the Bishops, for all the priests and seminarians, especially those familiar to me. For school, so that I succeed in it for the Greater Glory of God, for work, so that I succeed in it for the Greater Glory of God, for home, so that I succeed in it for the Greater Glory of God. For [and particular projects I'm currently working on]. For [any sick people I know]. For [any other special intentions]. For all my Godchildren. For [each sibling and their families].

Thursday, August 20, 2009

Is Google dying?

Google did one thing, and they did it well. Sell advertising. What, you thought I was going to say search? Search is one vehicle through which they can market their advertising. That vehicle, however, is quietly becoming obsolete. Google search, in its time, was one of the best ways of finding static information on the web. Wikipedia has been quietly overtaken Google in that area.

This is interesting considering that Yahoo and other web indexes previously had tried human powered collecting of information. We have to wonder, why did they fail when Wikipedia succeeded? I think that it was their dependence on a centralized approach whereas Wikipedia utilizes a more distributed approach. Yet indexes were distributed with regard to the content, but they were centralized with regard to the controls. The next thing that destroys Wikipedia will be both decentralized information and decentralized control---but yet, still indexed, still useful.

I've heard that there are three webs: 1. The static web, 2. The realtime web, and 3. The hyper-local web.
Google has controlled the static web, but this seems to be slowly shifting to Wikipedia. Twitter, Facebook, Digg, Reddit, and others have been the leaders in the realtime web. As for the hyper-local, I think I would rather call it the social-web, and we know Facebook leads there.

What is going to be the next big breakthrough? We are going to again distribute. I think that if companies such as Reddit, Digg, and yes, even Google, want to survive, they need to once again give up control. They need to be able to easily integrate with other platforms. The content is going to be distributed. The comments, feedback, etc will be distributed. The next big thing is going to seamlessly broadcast to other web media as well as seamlessly receive feedback from a variety of sources (and of course, in realtime ;).

Saturday, July 18, 2009

Firefox Addons I use

So last night I foobarred all my addons for firefox by manually mucking around with the files. It's probably a good idea that I log the addons I have installed:
  • Adblock Plus: The horrible ads on digg and facebook drove me to finally install this, and I am so thankful to them!
  • Adblock Plus Element Hider Helper: Blocks some text ads...if you are going to block some, you might as well block them all!
  • Bugmenot: Log into free, but registration required websites. I used to use this a lot more than I do now, perhaps these news websites are catching on?
  • Cooliris: Useless but impressive way to view photos, especially on facebook.
  • Digg Toolbar for Firefox: Don't use digg as much anymore since I started using Google Reader's share feature.
  • Download Statusbar: Puts downloads into a statusbar instead of a whole new window.
  • Google Gears: Allows offline usage of the Google Apps (reader, mail, documents, etc).
  • Google Preview: Inserts thumbnails on the left for Google search results.
  • Read it later: Really haven't used this much.
  • Resurrect Pages: Automatically try to grab down website pages from a variety of sources.

Wednesday, July 08, 2009

Would you die for your children?

Would you die for your children? If you put this question to parents, I would expect almost every single one to respond with "yes" without hesitation. But the reality is much different. When the time comes, who knows really how we will react.

It is fairly easy to see who may not really be willing to die for their children. Simply rephrase the question: "Who would be willing to make sacrifices for their children?" Of course your life is the ultimate sacrifice. If you are not willing to make lesser sacrifices, how do you expect to be able to make the ultimate one?

And that is the sad state we find ourselves in. People generally are too self-centered to make sacrifices for their children---let alone the ultimate sacrifice!

Saturday, June 20, 2009

Pessimistic Optimism

I've often been accused of being a pessimist. I'd rather like to think of myself as a realist.
I do, like most people, however, dislike being around grumpy people. These people have also been termed pessimists. They seem to always expect the worst in people---and many times, they eventually are correct.

I have developed my philosophy after many years of observation and testing: expect the best, be prepared for the worst. You've probably heard this before, the concept is certainly not new. But why should we expect the best? Through my observations, I've learned that people tend to eventually get what they expect. This is a very strange result, but in my experience and tests, it seems to have some statistical relevance.

My theory is that there are a couple of reasons for this. One involves other people, and the other involves yourself. People are really good at perceiving expectation of others. Generally, people tend to follow the norms present around them---thus, if you want people to behave a certain way, simply be surprised when they do not. Another reason expecting the best seems to work is that it changes your own attitude. No longer are you frightened to try new things, no longer are you bitter, no longer are you stuck.

Tuesday, June 16, 2009

Decisions

Last night I watched an interesting talk on how people make silly decisions:


The most interesting part of this talk was when he showed how people's decisions became more rational as they distanced themselves from the consequences. I thought, however, that much of his actual theory was far too simplified to be reasonable. For instance, his expectation equation is very simple: Utility * Probability of Payoff. This does not take into account possible negative payoff in the case of failure. For example, say you were going to rob a bank, which would give you a 5 million dollar payoff. Let's for now assume you do not have any moral qualms regarding robbing a bank (i.e. you're Ben Bernanke). Now let's say your probability of success is 0.05. This means your expected payoff is 5,000,000 * 0.05 = 250,000. If it costs less then 250,000 to attempt this caper, you should go for it, right? Not necessarily. What about if you fail? There is also a cost for failing. So, in every decision there is the payoff for success, there is a payoff for failure, there is a fixed price of attempting, and there is a price for not attempting. Imagine a binary decision---to act, or not to act. You could quantify the expectation of Act as:
({probability of success} * {utility of success}) +
((1 - {probability of success}) * {utility of failure}) -
{cost of attempt}.

This must be weighed against the expectation of not acting. Whichever has the higher expected value should be taken in a purely rational agent.

Another interesting point in the talk was that people make decisions by comparing the gradient. That is people prefer slopes that are moving toward higher payoffs than lower, even when the total payoff is lower. There were at least two examples of this in the talk, the salary and the burger. In the case of the salary, most people chose the salary that was increasing, even though the total net was less than the total of the salary that was decreasing. In the case of the burger, people associated its worth to what they had paid for it in the past. I do not see this as being dumb or ignorant. In fact, we have learned in nature that things at rest tend to stay at rest and things in motion tend to stay in motion. Thus, we use the slope of the payoff the predict future rewards.

These shortcuts are very interesting to me, as we may need them to create machines that are able to make good decisions---or at least machines that understand the decisions that humans are making.