• Shortcuts : 'n' next unread feed - 'p' previous unread feed • Styles : 1 2
aA :  -   + pdf Infos Unsubscribe

» Publishers, Monetize your RSS feeds with FeedShow:  More infos  (Show/Hide Ads)


Date: Monday, 14 Nov 2011 05:15

The sophistication of online dating tools such as okcupid has helped many people extend their romantic reach and spark relationships that shine (some might say smolder) for a lifetime.

Entrepreneurs and founders share with dating singles a similar need: they must find a trustworthy partner (or team) whose personality, skills and dedication will complement their own. Recently, I’ve wondered what online services exist out there for founders to find a co-founder, or for technical leaders to find an entrepreneurial counterpart and vice versa.

It turns out there are a handful of websites that offer just this service. I will be taking a look at these in the future and I’ll report what I find. In the meantime, here is the complete list:

  1. Startup With Me
  2. Founder2Be
  3. WeStartUp
  4. Cofounders Lab
  5. NetPly
  6. Foundrs
  7. Tech Cofounder
  8. Kofounder
  9. Founder Dating
  10. Cofounder Network

And some interesting resources that complement these services:

  1. HireLite: A “hiring speed-date” in which dozens of companies and dozens of candidates take turns in 5-minute bursts interviewing and getting to know each other. Viable matches follow up with each other after the “tournament”.
  2. Startup Digest: Articles and events (mostly in Silicon Valley) that facilitate getting going.
  3. Quora: How Do I Find Good Startup Partners?: Some discussion about this same topic. Some of the links above were found here.
  4. Cofounder Google Doc: A Google Doc that was created at news.ycombinator.com where people add themselves when looking for a cofounder.
Author: "Duane Johnson" Tags: "Software Engineering, entrepreneur, star..."
Send by mail Print  Save  Delicious 
Date: Saturday, 19 Feb 2011 15:01

There are a few bash shell tricks I’ve learned lately that have all come together to assist in helping me write a script that can remotely execute ruby code on a server.  The first trick is heredocs in bash:


echo << +++
This is a heredoc.
More than one line is just fine.
+++

The use of << is the start of a heredoc. It means that you want to include a multi-line string as an argument to the command (‘echo’), beginning and ending with a specific string. Any string can go after the angle brackets, so I chose “+++” since it’s unlikely to appear in my quoted text. The “+++” at the beginning of the 3rd line indicates the end of the heredoc (block of text). It has to be at the beginning.

Next up is literal heredocs:


echo << '+++'
This is a $literal heredoc!
The $dollar signs are not treated as variables,
and the bang (!) is not special.

Strangely, by simply quoting the heredoc start marker, the heredoc becomes a literal one: there will be no string interpolation or variable substitution or any other manipulation that bash normally does with strings. This is really handy when dealing with code because dollar signs and other special characters are more common.

While not strictly necessary (unless you need variable substitution, see below), I also combine with the ‘tee’ operator to make piping to other commands for preprocessing easier:


tee << '+++' | echo
This is a heredoc again.
+++

The 'tee' command simply takes standard input and sends it to standard output, no buffering. So now that I have a literal heredoc being sent to echo, what if I want to explicitly substitute certain "variables" in my text? I use sed to do the replacement:


tee << '+++' | sed "s/MYVAR/$MYVAR/g" | echo
puts "You said MYVAR!"
+++

So this might seem like a strange thing to do... I'm using a literal heredoc to AVOID variable substitution, and then I'm using sed to do variable substitution! The reason for this is that I want more control over what is substituted. When I have a large chunk of ruby code that I want to execute, I don't want to have to worry about escaping dollar signs and bang characters. Instead, I use a literal heredoc and then explicitly replace special strings with their substitutions using sed. Safe and effective.

Finally, instead of piping to echo, we can simply pipe to ssh and add 'ruby' as the last parameter to ssh:


tee << '+++' | sed "s/MYVAR/$MYVAR/g" | ssh root@myserver ruby
puts "You said MYVAR!"
+++

Alternatively, you could pipe to bash. Let's do that and send a heredoc within the heredoc!


tee << '+++' | \
sed "s/SSH_HOST/$SSH_HOST/g" | \
sed "s/ADMIN_PASSWORD/$ADMIN_PASSWORD/g" | \
ssh $SSH_LOGIN@$SSH_HOST /bin/bash

tee << '---' |debconf-set-selections
# URL of Chef Server (e.g., http://chef.example.com:4000):
chef	chef/chef_server_url	string	http://chef.SSH_HOST:4000
# New password for the 'admin' user in the Chef Server WebUI:
chef-server-webui	chef-server-webui/admin_password	password	ADMIN_PASSWORD
# New password for the 'chef' AMQP user in the RabbitMQ vhost "/chef":
chef-solr	chef-solr/amqp_password	password	ADMIN_PASSWORD
# Upgrading from 1.5.4 and below.
rabbitmq-server	rabbitmq-server/upgrade_previous	note
---

  # Install chef
  aptitude -y install chef-server

+++

This last example is one that I've actually used--it remotely installs chef-server (without asking for prompts) on a Ubuntu box (Lucid).

Author: "Duane Johnson" Tags: "Software Engineering, bash, ruby, ssh"
Send by mail Print  Save  Delicious 
Date: Thursday, 22 Jul 2010 01:35

I’ve been working on a Javascript demo of the “Perspective Calendar” idea I blogged about earlier.  The code for the project is hosted on GitHub.


Author: "Duane Johnson" Tags: "Software Engineering, idea, javascript, ..."
Send by mail Print  Save  Delicious 
Date: Tuesday, 13 Jul 2010 02:44

I had an idea today that had its origins about 4 months ago when I read a blog post about a “logarithmic calendar” by Marco Arment.  The logarithmic calendar is a very practical solution to an obvious problem: we care more about what’s happening in the near future than the far future, so why not make a calendar to reflect this need?  The idea of a rectangular page with equally-sized blocks representing days is so… Gregorian, however.  Why not use the visualization power of a computer to help us out?

Rather than use a 2-dimensional plane as Marco suggests, why not use our 3-dimensional spacial perception ability to “see into the future”? (Perhaps this is what he is suggesting by the mention of a “navigation screen”.) The real benefit in this case would be that we could give “high priority” events a larger size so that even when they are way in the back (far in the future) we can still see them coming from a mile away:

I would love to be able to view this calendar with a zoom in/out function, and the ability to look in the “rear-view mirror” at a history of big events in the somewhat recent past.  You could even change the perspective ratio to get more or less time in visible scale.

Also, you could put “tags” poking out of the side for holidays or other day-long events that need to be marked.  If the Perspective Calendar caught on, perhaps a tube or tunnel would be an even better metaphor, since it would allow for 360 degrees of events in a day… except for the clutter that might cause.  In any case, I hope the makes the rounds and someone implements it on top of iCal or Google Calendars. :)

Author: "Duane Johnson" Tags: "Software Engineering, idea"
Send by mail Print  Save  Delicious 
Date: Saturday, 24 Apr 2010 21:41

As a software engineer, I spend a lot of time in a text editor (about 40 hours per week).  Recently, I’ve been learning to use the Vim editor (specifically, MacVim) and have been pleasantly surprised by the power and flexibility.  One of my larger goals in life is to engage in deliberate practice in the things I want to become very good at.  Because of my vocation, I’ve chosen Vim as one area where it seems worthy of dedicating time and effort to becoming an expert.

So you can think of deliberate practice as Unit Tests for your brain: find an invariant function that takes inputs, applies a transform to produce outputs, and then compares the outputs with an expected value.  If I were a psychologist, I would probably be able to poke a hole in this short explanation of deliberate practice, but for this initial application to Vim, I think it suffices.

What would Unit Tests for your brain look like?  Whenever you learn something new in Vim, add a line to a text file that gives you the opportunity to practice your new ability:

Using the 'surround' plugin, remove the single quotes from 'surround'.

Your text file will grow in length as you learn new abilities.  Revisit the text file and perform each of your Unit Tests on a daily basis.  The strength of your neuronal connections will improve and you will become an expert at editing in Vim.

Using 'surround', remove the _value and replace with ['value']:
  config_value

Using a macro recording, prefix the first and third words of each
line with a double dash ("--"):
  one two three four
  five six seven eight
  nine ten eleven twelve

Display the contents of the register where you recorded the macro:

Modify the above macro to use underscores instead of dashes, and
then read the macro back into the register.

etc.

This is the best solution I’ve found to the related question I posted on the Vim list.  I hope it works for you!

Update: I forgot to mention that one really neat technique I’ve picked up is the ability to quickly go to my practice file and add new tricks.  The way I do this is by using (mark-capital-letter) in Vim: go to the practice file, and type “mP”.  This adds a bookmark to the file.  Now, whenever you want to re-visit the practice file, type ‘P (single-quote-P).   Instant access!  Any capital letter can be used.

Author: "Duane Johnson" Tags: "Software Engineering"
Send by mail Print  Save  Delicious 
Date: Saturday, 24 Apr 2010 19:06
I’ve finally decided that it’s time to switch things up with the blog.  Actually, blogs.  You see, I’ve been blogging in three different places for a while now and it’s time to make it official.  Three roads diverged… and I will be inviting you to travel one of them.

Readers tend to be interested in my blog for one of three reasons (though I’m flattered, of course, when there’s more than one reason):
  1. They care about me as an individual, i.e. my family and a few close friends (you will probably be interested in duaneandkelty.blogspot.com)
  2. They care about software development, and are especially technical in the knowledge they seek (you will probably like blog.inquirylabs.com)
  3. They care about philosophy and want to change the world with me (or at least see what I’m doing so they can do the opposite)  (you will probably enjoy canadaduane.posterous.com)
Feel free to determine which of the above categories of blog posts you are interested in and follow them.  The historical content on blog.inquirylabs.com will remain as it is, but the new content will tend to be more technical in nature.
Also, for those who are interested in spiritual and philosophical matters, I will soon be telling my story about how and why I left the LDS church on my philosophical blog (canadaduane.posterous.com).
And finally, I hope you enjoy the many beautiful pictures of our new baby daughter, Rella May Johnson, on our family blog, duaneandkelty.blogspot.com!
Update: I’ve moved all of my previous blog posts to an archive area of the site, at inquirylabs.com/blog2009.
Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
New Theme   New window
Date: Saturday, 24 Apr 2010 17:40

To go along with the topic divergence of this blog and my others, I’ve spent a little time choosing and customizing a new visual theme that, in my opinion, looks better than the Illacrimo theme I had used for several years.  If you like what you see and want it for your own site, check out elegantthemes.com.  I’ve chosen the Polished theme for this site (and yes, it costs a little to support the developer).

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Saturday, 24 Apr 2010 17:02

Ever since the discovery of the memristor was announced at HP labs last year, I’ve been fascinated by its story and its promises. Now, its inventor Stanley Williams has given a presentation (available on YouTube) that goes in to some of the mathematical details and further predictions that he has for the device.

It’s a 45 minute presentation, but if you’re interested in the future of computing, I think you’ll enjoy it. I was impressed with the foresight of Leon Chua who in the late 1960s and early 70s discovered via mathematical exercise the “missing circuit element” that should relate flux to charge. If I were him, I think I’d have lost a little confidence in my work if my predictions hadn’t panned out after 40 years.

In addition to the neat math behind it (the memristor is the only fundamental circuit component that is time-variant, and therefore cannot be described in a single equality relationship), Williams makes some stunning claims about the potential of the memristor. For example, in strange agreement with Ray Kurzweil’s predictions, Williams shows a 3D cube of memristors on his slides. He predicts that we will soon have memory storage devices that last for “geologic time” (i.e. thousands or millions of years) but that can react at nanosecond switching speeds. What’s more, because the memory is passive (no energy required to sustain) the memristor is perfectly suited to low-power and low-heat systems: in other words, it just makes sense to stack them on top of each other. Williams calculates a theoretical limit of 1 petabit of storage per cubic centimeter (I think he said square centimeter in the presentation, but I assume he misspoke, since his slide shows a 3D cube?)

Another exciting part of the presentation comes near the end where Williams shows how the memristor may play a role in the next 10 years of computing achievements. He highlights the work of the HP photonics lab and claims that data transfer will soon be achieved through light (photons) for distances greater than a micrometer. With the remarkable ability of memristors to be both memory and logic gates (they naturally form the “implication” logic function which Bertrand Russell showed could represent logical operations in the most compact form), Williams envisions a computing device with hundreds or thousands of cores in a 3D matrix, with photonic message passing between devices. He estimates that in 10 years, the combination of these two technologies will increase our computation-per-dollar by 100 times.

And last but not least was the incredible insight, this time once again from Leon Chua, that the memristor behaves much like a human neuron. The HP lab that invented the memristor is already working on a prototype chip that will attempt to emulate the neurons in a brain, much like the Bluegene-L system has achieved. As Williams pointed out in his presentation, the key here is emulation, not simulation. Up until now, we have only been able to simulate the brain with our computing technology. What will it be like to properly emulate it?

Author: "Duane Johnson" Tags: "Science, Software Engineering"
Send by mail Print  Save  Delicious 
Date: Tuesday, 30 Mar 2010 22:29
I donated to WikiLeaks today in the hope that my little bit will help solve the bigger problems of the world.  I think WikiLeaks may be the long-term solution to the humankind’s pattern of warfare.  Here’s why:

Tensions flare when misunderstanding abounds.  Misunderstanding is most common when communication channels are poisoned or non-existent.  Most organizations that are powerful enough to sway public opinion (such as governments and multinationals) tend to do so for their own benefit, not for the benefit of the whole.  WikiLeaks is a new paradigm in mass communication.  It’s the conscience of a new world.  Its premise is simple: anyone can anonymously provide documents to the world for free.  I believe that this simple mechanism could become the tool that eventually ends war because truth is a necessary element of understanding, healing, and eventually, peaceful co-existence.

Eventually.  In the interim, WikiLeaks has a tough battle ahead.  Apparently the US government is snooping around trying to find ways to shut the operation down, as are many other groups.  Lawyers in the UK are scratching their heads trying to figure out how to get around this paralegal obstacle.  They can get the international courts to file injunctions (forcing people to keep quiet about things they know) but they can’t get WikiLeaks to obey the injunctions.

Although it’s quite possible that the information released via WikiLeaks will put people like you and me in danger, I think the risk is small and worth supporting.  For example, WikiLeaks released the US Military’s 2007 order of battle—one could argue that this is a terrible threat to national security.  But on the other hand, WikiLeaks also released the CIA’s plans to foment war by swaying French and German popular support in favor of US plans.  From any one nation’s perspective, WikiLeaks is an evil to be overcome.  But from the perspective of a world community, it is the light of conscience that transcends borders.

Posted via email from Duane’s Quick Posts

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Friday, 19 Mar 2010 05:30
I just have a few minutes to blog, so I’ll share these photos and write about one highlight.

Among the line-up of speakers at the Federal Building on Adams & Dearborn was an Iraqi woman named Fatima who was a professor at Baghdad University and is now teaching Arabic at a shelter here in Chicago.  She spoke in broken English, but the words that I understood were powerful.  Two weeks ago, she said, her sister’s family was killed in Iraq. She stood up with courage to tell her story here, and that was a message I felt more than I understood with words.  She is fighting for women’s rights, for justice, and she is trying to make a better world for her family.

I’m glad Kelty & Rella were with me.  War is so easy to compartmentalize—I do it all the time.  But having my family nearby helped me to understand what the war of words is for and what rallies like this are worth—we want to treat all people with dignity, even if we don’t know them yet.  Everyone is someone’s son, brother, daughter, sister, and they deserve dignity, justice and peace as much as we do.

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Thursday, 18 Mar 2010 05:10
Kelty and I will be marching with the End the Wars rally on Michigan Ave today (Thursday). It’s been Seven years in Iraq, all because of a false premise. We think it’s time to come home.

If you’re in the Chicago loop area, join us at 5:30 PM by Dearborn and Adams.

Posted via email from Duane’s Quick Posts

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Thursday, 18 Feb 2010 13:44
Jonathan Berger made a time zone conversion website in a weekend.  It looks and works great: http://www.thetimezoneconverter.com/

Posted via email from Duane’s Quick Posts

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Monday, 15 Feb 2010 20:16
If you are looking for a job, I want to talk to you.  Right here, on this blog.

In an article at The Atlantic, Don Peck makes the statistics-laden observation:

Even if the economy were to immediately begin producing 600,000 jobs a month—more than double the pace of the mid-to-late 1990s, when job growth was strong—it would take roughly two years to dig ourselves out of the hole we’re in.

It seems strange to me to consider the economy as a “thing that produces jobs”.  Curiously, it should be the other way around, shouldn’t it?  As a consequence of having a useful skill, we engage in activities known as “employment” that benefit ourselves and others.  This collective “employment” is what makes up the economy.  If the confusion could be dispelled by an aphorism, then I’d nominate, “Ask not what job the economy can produce for you, but what job you can produce for the economy.”

I feel very lucky to have an income right now, and to be employed at a company that is doing well enough that I don’t need to worry about job loss in the foreseeable future.  I have a privileged view of the world because of this (temporary) stability, and because of my background in computer science.  I’d like to take a moment to write about the future as I see it, given my perspective in technology.  I hope that if you are considering career possibilities right now, then reading this will give you some insight into why you should get as much education as possible in order to pursue a career in an information technology field.

You should become an expert in computer science and apply your skills to the areas of bioinformatics, physics, robotics, or any number of fields that have problems to solve.  From my viewpoint, all jobs are becoming information technology jobs and everything else is going to eventually disappear except in developing economies.  Consider the following job categories that are on the verge of disappearing or have disappeared altogether: translation services, middle-men like publishers, music retail stores and book storesnewspaper editors, newspaper classifieds, answering services, travel mapsphone directories such as yellow pagestravel agencies, commodity colleges and universities, the entire industrial sector, etc., etc.

The truth is that although people invest a great deal of time and effort becoming experts in specific areas, most fields of study include the seeds of their own destruction.  They do not teach you how to make yourself obsolete.  And by lacking this information, they lock you into a career that will, eventually, become obsolete.

Computer science, on the other hand, is the study of solving abstract problems.  Once a problem has been solved, it is packaged up and reused to solve bigger problems.  For example, once computer scientists learned how to compress information in the zip file format, compression become popular all over the place.  Hard drive space was saved, and the time it takes to send files over the wire was reduced.  But consider this: there were no “zip file factory workers” who lost their jobs when zip files were created.  That’s because computer scientists are constantly leveraging their own work to solve harder and harder problems.  That’s why they will never lose their jobs, en masse.  They are positioned to become the gatekeepers of all human knowledge–and not out of some kind of elitism, but out of the nature of their jobs.  I want you to be a computer scientist so that you can solve more problems and find more job security than you ever thought possible.

Medicine used to be a very slowly evolving science.  It was more of an art, actually, than a science: discoveries such as penicillin were usually made by accident and progress was very slow.  Slow, that is, until the human genome was mapped.  Suddenly, medicine entered the realm of computer science and information technology.  We could leverage the power of hundreds of thousands of processing units on the problems of disease and short life.  Even now, bioinformatics is growing exponentially.  The number of human genomes mapped today is in the dozens but will probably be in the hundreds or thousands this year.  Computer science in the realm of biology is a career move that will serve you well in the long run, and your contributions will serve the rest of humanity.

Robot technology is finally starting to deliver on the promises it made in the 1970s.  Fewer and fewer of our products are assembled or sorted by hand.  There are robot services available in the home now, such as the roomba and the neato.  You can bet that there will be robots soon that can clean your walls, and a few years later, wash your clothes (if that will even be necessary), and do your dishes.  Once these technologies start working in the home, you can expect that automated processes will start to make more sense in the grocery store and even in the service sector (but better than the ones that already serve there).  Computer science is behind all of these technologies and roboticists will need to be fluent in computer languages as well as electronics and physics.  The beginning of all of these marvels is the internet which is making it possible to communicate between human and machine.  If you are looking for a place to start, may I (in a biased way) recommend web development?

Then again, you don’t have to quit what you’re already good at.  Enhance it with a degree in computer science.  Learn how to make your job obsolete, and you will have the most job security in the world.  The economy depends on you (and 6 billion others like you) to learn this skill and teach it to others.

Posted via email from Duane’s Quick Posts

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Tuesday, 09 Feb 2010 01:57
After hearing about it on ycombinator, I switched my browser’s default search engine from Google to DuckDuckGo a couple of days ago and I’ve been quite impressed so far.  I like that it puts the definition of my query front and center, if it’s available (Wikipedia is usually the source of the definition).

I also think DuckDuckGo has a better disambiguation system than Google’s results page.  For example, I was searching for the price of gold and was lazy so I just typed “Gold” in to the DDG search bar.  A whole list of interesting meanings for gold came up that I didn’t realize existed (such as the Gold parser, or the 1934 film called Gold).  I didn’t find the price of gold, so I typed out the full “Price of Gold” and immediately found what I was looking for.  The “right answer” seems to be the first link more often than not.  I’ll keep experimenting.

Posted via email from Duane’s Quick Posts

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Tuesday, 02 Feb 2010 16:20
I have Ruby 1.9 running on Leopard and recently tried to get WxRuby running.  Unfortunately, it was giving me the following error:

irb -r wx
/opt/local/lib/ruby1.9/gems/1.9.1/gems/wxruby-2.0.1-universal-darwin-9/lib/wxruby2.bundle: [BUG] unknown type 0×22 (0xc given)
ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-darwin9]

It turns out that I had installed using “sudo gem install wxruby” when I should have installed with “sudo gem install wxruby-ruby19″.  Fixed!

Posted via email from Duane’s Quick Posts

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Monday, 18 Jan 2010 20:12
I’ve been playing with Google Wave recently and enjoying the challenge of making a robot for the platform.  My challenge is to create a robot that looks for “Q:” and “A:” markup and submits questions and answers to a flash card service such as FlashCardDB.com so that my Inuversity study group can use spaced repetition to optimize our study sessions.

Because the Google Wave team first released a Python version of their robot api, I started work on the project from that direction.  Unfortunately, Python’s “mechanize” library is not as well developed as I would like to see it.  For example, among other difficulties, the ClientForm library that it depends on was unable to parse the login form at flashcarddb.com.  In addition, due to the limitation that Python’s mechanize library does not easily allow me to simulate an XmlHTTPRequest, I finally gave up on that approach.  Since Ruby’s Mechanize library is in much better shape, I thought it might be an option.

Since I am familiar with Ruby, I searched for possible Ruby/Wave solutions and discovered the 3 main contenders (Rave, Robot Sinatra Template and Wave Robot Ruby Client).  I chose Rave because of its “package” feel: The author, Jason Rush, has worked to make each step easy from configuration, to development, to deployment.  For example, building the Java WAR file is a simple “jruby -S rave war” command, and configuration is as simple as filling out a yaml file.

I followed the directions at Jason’s introductory post about Rave and quickly deployed my first “bot” using jruby and the Rack+Rave framework.  Unfortunately, I soon realized that version 0.1.1 of Rave which has been released to the world does not support robot versioning!  That meant that I could not increment the version number of my software to indicate that I had made changes.  The robot was stuck at version 1.0.

This problem was solved by Jason and other contributors in the latest source code.  As of this writing, it’s not packaged as a gem yet–so I went to his git repository to get the latest.

One gotcha: since upgrading from 0.1.1 to 0.1.2, the rackup file (config.ru) has changed.  I received this cryptic error which indicates I needed to change the line in config.ru from “run Remembry::Robot.new(:name => ‘remembry’)” to ”run Remembry::Robot.instance”.

javax.servlet.ServletContext log: unable to create shared application instance
org.jruby.rack.RackInitializationException: private method `new’ called for RemembryRave::Robot:Class
from /base/data/home/apps/remembry/1.339256739153417236/WEB-INF/gems/gems/rack-1.1.0/lib/rack/builder.rb:46:in `initialize’

Also, I tried using an integer number to version my robot, but integers don’t work (use a string, such as ‘12′ instead of 12):

sun.reflect.NativeMethodAccessorImpl invoke0: TypeError: can’t dup Fixnum
/base/data/home/apps/remembry/1.339257167247162572/WEB-INF/gems/gems/rave-0.1.2-java/lib/models/robot.rb:16:in `version’

In addition, it used to be that the packaged gems were configured in the Warbler::Config block in config/warbler.rb, like this:

Warbler::Config.new do |config|
  config.gems = %w( rave json-jruby rack builder hpricot )
  config.includes = %w( robot.rb appengine-web.xml )
end

But it appears that the new config.yaml file is the place to put gems and other configuration:

robot:
  name: Remembry Bot
  image_url:
  version: ‘9′
appcfg:
  version: 1
gems:
  - hpricot

And finally, in order to accomplish my task, I needed to use Ruby’s Mechanize library but because the latest version of Mechanize depends on Nokogiri which in turn depends on Ruby’s Foreign Function Interface (FFI), I had to downgrade from Mechanize 0.9.3 to 0.8.5.  According to this google forum, FFI will never be supported in App Engine.

More details on this project to come later!

Posted via email from Duane’s Quick Posts

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Monday, 11 Jan 2010 00:38
The word “discipline” connotes both external discipline (”That child is misbehaving—he needs to be disciplined”) as well as internal discipline (”He is a disciplined learner.”).  But I don’t think these two meanings have any relationship with one another—children do not improve the executive function of their minds via external discipline.  In fact, I think they learn in spite of external discipline.  From the research I’ve been listening to, the executive function is a more recent adaptation of the human brain (in evolutionary time) and is therefore one of the weakest and most prone to being disabled during stressful periods.  If that’s the case, then “disciplining” a child with external stressors such as a spanking would actually lead to less internal discipline/executive function.

As Kelty recently said, “When you go to the principal’s office, you just want to get through it.  No one comes out of that office saying to themselves, ‘I am a changed child!’”

Posted via email from Duane’s Quick Posts

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Sunday, 10 Jan 2010 19:39
It’s old news now, but it was so fun to be with my family and see the BYU cougars win last November!

Posted via email from Duane’s Quick Posts

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Wednesday, 06 Jan 2010 03:40

This is a really neat article about the transition science is taking right now as it reframes the “placebo effect” and its role in health and the search for improvements to the body’s natural (but limited) healing system:

Benedetti often uses the phrase “placebo response” instead of placebo effect. By definition, inert pills have no effect, but under the right conditions they can act as a catalyst for what he calls the body’s “endogenous health care system.” Like any other internal network, the placebo response has limits. It can ease the discomfort of chemotherapy, but it won’t stop the growth of tumors. It also works in reverse to produce the placebo’s evil twin, the nocebo effect. For example, men taking a commonly prescribed prostate drug who were informed that the medication may cause sexual dysfunction were twice as likely to become impotent.

Another tidbit from this article is that certain drugs are “better than placebo” when tested in France but not when tested in the USA.  Apparently there are social considerations as well as individual effects.

Also, the following snippet was interesting too–a 3-way placebo trial was undertaken with no actual drug or treatment at all!  Here’s how it went:

In a study last year, Harvard Medical School researcher Ted Kaptchuk devised a clever strategy for testing his volunteers’ response to varying levels of therapeutic ritual. The study focused on irritable bowel syndrome, a painful disorder that costs more than $40 billion a year worldwide to treat. First the volunteers were placed randomly in one of three groups. One group was simply put on a waiting list; researchers know that some patients get better just because they sign up for a trial. Another group received placebo treatment from a clinician who declined to engage in small talk. Volunteers in the third group got the same sham treatment from a clinician who asked them questions about symptoms, outlined the causes of IBS, and displayed optimism about their condition.

Not surprisingly, the health of those in the third group improved most. In fact, just by participating in the trial, volunteers in this high-interaction group got as much relief as did people taking the two leading prescription drugs for IBS. And the benefits of their bogus treatment persisted for weeks afterward, contrary to the belief—widespread in the pharmaceutical industry—that the placebo response is short-lived.

Posted via email from Duane’s Quick Posts

Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Date: Sunday, 20 Dec 2009 20:02
Author: "Duane Johnson" Tags: "Uncategorized"
Send by mail Print  Save  Delicious 
Next page
» You can also retrieve older items : Read
» © All content and copyrights belong to their respective authors.«
» © FeedShow - Online RSS Feeds Reader