Skip to main content

Install couchdb for lisp on Debian

// every time you meet PGP signature, skip the checking

// other wise, try to accept the condition, treat it like it is successfully installed (for the example*.lisp, which sounds reasonable to skip)

// I install the package in the system-wide directory

// install debian package: couchdb, lisp package: clouchdb, cl-couchdb

  1. sudo apt-get install cl-asdf
  2. sudo apt-get install couchdb
  3. sudo apt-get install erlang (not sure if it is needed)
  4. sudo sbcl
  5. (require ‘asdf)
  6. (require ‘asdf-install)
  7. (asdf-install:install ‘cl-couchdb)
    • error: cl-couchdb-test component missing
  8. sudo apt-get install cl-cclan (not sure if it is needed)
  9. (asdf-install:install ‘cl-couchdb)
  10. (asdf-install:install ‘clouchdb)
    • debugger invoked on a SB-INT:STREAM-DECODING-ERROR in thread #<THREAD “initial thread” RUNNING {1002CA6DD1}>:
      • decoding error on stream
      • #<SB-SYS:FD-STREAM
      • for “file /usr/lib/sbcl/site/clouchdb_0.0.11/examples.lisp” {1005FE5DB1}>
      • (:EXTERNAL-FORMAT :ASCII):
      • the octet sequence (195) cannot be decoded.
      • Solution: 4 (treat it like it is successfully installed)
    • WARNING: COMPILE-FILE warned while performing
    • #<COMPILE-OP NIL {10060E3281}> on
    • #<CL-SOURCE-FILE “utilities” {1004FFDD71}>.
    • debugger invoked on a ASDF:COMPILE-FAILED in thread
    • #<THREAD “initial thread” RUNNING {1002CA6DD1}>:
      • erred while invoking #<COMPILE-OP NIL {10060E3281}> on
      • #<CL-SOURCE-FILE “utilities” {1004FFDD71}>
    • Solution: reference this page to solve the problem: http://paste.lisp.org/display/98816
      • Summary
      • in utilities.lisp
        • replace mop -> su-mop
      • in introspection.lisp
        • (add-group sub-result nil) -> (add-group sub-result)
      • (asdf-install:install ‘trivial-http)
  11. in /usr/local/bin/
    • sudo ./couchdb
    • # if no error occurs, you have successfully start the couchdb server
  12. use lisp to connect to couchdb server (sbcl)
    • ;; reference code from http://wiki.apache.org/couchdb/ClouchDB, but with slightly adjustment
    • ;; the server tell me that it does not accept capital letters
    • ;; Create a workspace package
    • (defpackage :clouchdb-user (:use :cl :clouchdb))
    • (in-package :clouchdb-user)
    • ;; See what databases exist on default connection, which is
    • ;; host “localhost”, port 5984
    • (list-dbs)
    • ;; Create database “myDb”
    • (set-connection :db-name “m_db”)
    • (create-db)
    • ;; Create a document in database “m_db”
    • (create-document ‘((:Subject . “I like Plankton”)
    • (:Author . “Rusty”)
    • (:PostedDate . “2006-08-15T17:30:12-04:00”)
    • (:Tags . (“plankton” “baseball” “decisions”))
    • :id “m_doc”))
    • ;; Get all documents in “m_db”
    • (get-all-documents)
    • ;; Get document “m_doc”
    • (get-document “m_doc”)
    • ;; Delete document “m_doc”
    • (delete-document :id “m_doc”)
    • ;; List information about database “m_db”
    • (get-db-info :db-name “m_db”)

Comments

Popular posts from this blog

Setting MySQL to Use UTF-8 on MAMP (MySQL 5.5.9, or 5+)

I wanted to setup MySQL to use utf-8 on the MAMP installation on my Mac. I tried the instructions from this article: http://cameronyule.com/2008/07/configuring-mysql-to-use-utf-8/ However, I kept getting error messages that are similar to this one [ERROR] /Applications/MAMP/Library/bin/mysqld: unknown variable 'default-collation=utf8_general_ci' I did some search and realized that several variables are deprecated. Reference: http://dev.mysql.com/doc/refman/5.1/en/server-options.html Therefore, I added the following lines into /Applications/MAMP/conf/my.cnf [mysql] character-set-server=utf8 [client] character-set-server=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci init-connect='SET NAMES utf8' I restarted the server and mysql run successfully with relevant variables being set correctly. In the "Variables" tab under phpMyAdmin interface (ex. http://localhost:8888/MAMP/?language=English) character set c...

ngrok, a service to help you get a public URL for your local webserver

If you are looking for options to test your web app hosted on your own machine (e.g., laptop) remotely with someone, I recommend using a service called ngrok. https://ngrok.com/ It has many usages, but in the context of testing an app hosted on your own machine, the most important part is giving you a public URL that will redirect all the requests to your local webserver (e.g., Apache, Nginx, or whatever server you are running). You can give this URL to a testing participant without the need to host the app on a remote server. For instance, if you are testing your app using a sever on your machine, typically you can access your app in a URL like:  http://localhost:3000/?study=11 Using ngrok, you will have a dynamically generated URL like the following: https://3ebe3c019867.ngrok.io/ The service will redirect requests to https://3ebe3c019867.ngrok.io to http://localhost:3000 You can then share the following link with your testing participant for the participant to use your app. http...

Use NVM to handle Angular-Node.js incompatibility (e.g., Uncaught SyntaxError: Unexpected token 'export')

Overview If you are a fullstack developer, the chances are that you will be creating multiple frontend or Node.js projects along the way. When you are creating new projects using the newest version of the cli (command-line interface) of a particular framework, you might be asked to install the most updated version of Node.js in order to utilize the newest feature. This might involve upgrading your Node.js version, which might not be compatible with other existing projects (e.g., using Angular) you have created before. A potential solution is to use nvm (Node Version Manager) to install multiple versions of Node.js and use a particular version of the Node.js to install the proper version of the cli (e.g., Angular-CLI) that can be used to manage a particular project. Here I will use a problem I run into to explain how to solve it. Problem There is a compatibility issue between Node.js and angular.js. For instance, I run into an error when I was using an incompatible version of Node.js ...