Add Docker demo image to build

This lets us build and deploy a docker demo image as part of the normal build process.

Change-Id: Ie6ca6667fecb8d0b6f758b97ccc0b12110c833ea
Reviewed-on: https://asterix-gerrit.ics.uci.edu/294
Reviewed-by: Chris Hillery <ceej@lambda.nu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <tillw@apache.org>
diff --git a/asterix-docker/docker/.gitattributes b/asterix-docker/docker/.gitattributes
new file mode 100644
index 0000000..399e6a7
--- /dev/null
+++ b/asterix-docker/docker/.gitattributes
@@ -0,0 +1 @@
+*.adm binary
diff --git a/asterix-docker/docker/Dockerfile b/asterix-docker/docker/Dockerfile
new file mode 100644
index 0000000..9303bce
--- /dev/null
+++ b/asterix-docker/docker/Dockerfile
@@ -0,0 +1,43 @@
+#/*
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM centos
+MAINTAINER AsterixDB Team
+
+RUN echo 'LANG="en_US.UTF-8"' > /etc/sysconfig/i18n ;echo 'ZONE="America/Los_Angeles"' > /etc/sysconfig/clock ;cp -a /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
+RUN echo "include_only=.us" >> /etc/yum/pluginconf.d/fastestmirror.conf
+RUN yum install -y unzip java-1.7.0-openjdk openssh-server openssh-clients python-setuptools wget curl
+RUN easy_install supervisor
+RUN mkdir /asterixdb
+COPY asterix-server*.zip .
+RUN unzip asterix-server*.zip -d /asterixdb/
+COPY asterix-configuration.xml /asterixdb/bin/asterix-configuration.xml
+COPY supervisord.conf /etc/supervisord.conf
+COPY twu.adm /asterixdb/twu.adm
+COPY twm.adm /asterixdb/twm.adm
+COPY fbu.adm /asterixdb/fbu.adm
+COPY fbm.adm /asterixdb/fbm.adm
+
+WORKDIR /asterixdb/bin
+ENV JAVA_HOME /usr/lib/jvm/jre-1.7.0
+ENV JAVA_OPTS -Xmx1536m
+EXPOSE 19001 19002 8888 19003 50031
+
+ENTRYPOINT /bin/bash -c '/usr/bin/supervisord'
+
+
diff --git a/asterix-docker/docker/asterix-configuration.xml b/asterix-docker/docker/asterix-configuration.xml
new file mode 100644
index 0000000..aa68ea7
--- /dev/null
+++ b/asterix-docker/docker/asterix-configuration.xml
@@ -0,0 +1,266 @@
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership.  The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License.  You may obtain a copy of the License at
+ !
+ !   http://www.apache.org/licenses/LICENSE-2.0
+ !
+ ! Unless required by applicable law or agreed to in writing,
+ ! software distributed under the License is distributed on an
+ ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ! KIND, either express or implied.  See the License for the
+ ! specific language governing permissions and limitations
+ ! under the License.
+ !-->
+
+<asterixConfiguration xmlns="asterixconf">
+    <instanceName>docker-minitest</instanceName>
+    <metadataNode>nc1</metadataNode>
+    <store>
+        <ncId>nc1</ncId>
+        <storeDirs>storage1</storeDirs>
+    </store>
+    <store>
+        <ncId>nc2</ncId>
+        <storeDirs>storage2</storeDirs>
+    </store>
+    <coredump>
+        <ncId>nc1</ncId>
+        <coredumpPath>/asterixdb/</coredumpPath>
+        <ncId>nc2</ncId>
+        <coredumpPath>/asterixdb/</coredumpPath>
+    </coredump>
+    <transactionLogDir>
+        <ncId>nc1</ncId>
+        <txnLogDirPath>/asterixdb/txnLogs1/</txnLogDirPath>
+    </transactionLogDir>
+    <transactionLogDir>
+        <ncId>nc2</ncId>
+        <txnLogDirPath>/asterixdb/txnLogs2/</txnLogDirPath>
+    </transactionLogDir>
+
+    <property>
+        <name>nc.java.opts</name>
+        <value>-Xmx1536m</value>
+        <description>JVM parameters for each Node Contoller (NC)</description>
+    </property>
+
+    <property>
+        <name>cc.java.opts</name>
+        <value>-Xmx1024m</value>
+        <description>JVM parameters for each Cluster Contoller (CC)
+        </description>
+    </property>
+
+        <property>
+                <name>max.wait.active.cluster</name>
+                <value>60</value>
+                <description>Maximum wait (in seconds) for a cluster to be ACTIVE (all nodes are available)
+                        before a submitted query/statement can be executed. (Default = 60 seconds)
+                </description>
+        </property>
+
+    <property>
+        <name>storage.buffercache.pagesize</name>
+        <value>131072</value>
+        <description>The page size in bytes for pages in the buffer cache.
+            (Default = "131072" // 128KB)
+        </description>
+    </property>
+
+    <property>
+        <name>storage.buffercache.size</name>
+        <value>536870912</value>
+        <description>The size of memory allocated to the disk buffer cache.
+            The value should be a multiple of the buffer cache page size(Default
+            = "536870912" // 512MB)
+        </description>
+    </property>
+
+    <property>
+        <name>storage.buffercache.maxopenfiles</name>
+        <value>214748364</value>
+        <description>The maximum number of open files in the buffer cache.
+            (Default = "214748364")
+        </description>
+    </property>
+
+    <property>
+        <name>storage.memorycomponent.pagesize</name>
+        <value>131072</value>
+        <description>The page size in bytes for pages allocated to memory
+            components. (Default = "131072" // 128KB)
+        </description>
+    </property>
+
+    <property>
+        <name>storage.memorycomponent.numpages</name>
+        <value>256</value>
+        <description>The number of pages to allocate for a memory component.
+            (Default = 256)
+        </description>
+    </property>
+    <property>
+        <name>storage.metadata.memorycomponent.numpages</name>
+        <value>64</value>
+        <description>The number of pages to allocate for a memory component.
+            (Default = 64)
+        </description>
+    </property>
+
+    <property>
+        <name>storage.memorycomponent.numcomponents</name>
+        <value>2</value>
+        <description>The number of memory components to be used per lsm index.
+            (Default = 2)
+        </description>
+    </property>
+
+    <property>
+        <name>storage.memorycomponent.globalbudget</name>
+        <value>536870912</value>
+        <description>The total size of memory in bytes that the sum of all
+            open memory
+            components cannot exceed. (Default = "536870192" // 512MB)
+        </description>
+    </property>
+
+    <property>
+        <name>storage.lsm.bloomfilter.falsepositiverate</name>
+        <value>0.01</value>
+        <description>The maximum acceptable false positive rate for bloom
+            filters associated with LSM indexes. (Default = "0.01" // 1%)
+        </description>
+    </property>
+
+    <property>
+        <name>txn.log.buffer.numpages</name>
+        <value>8</value>
+        <description>The number of in-memory log buffer pages. (Default = "8")
+        </description>
+    </property>
+
+    <property>
+        <name>txn.log.buffer.pagesize</name>
+        <value>524288</value>
+        <description>The size of pages in the in-memory log buffer. (Default =
+            "524288" // 512KB)
+        </description>
+    </property>
+
+    <property>
+        <name>txn.log.partitionsize</name>
+        <value>2147483648</value>
+        <description>The maximum size of a log file partition allowed before
+            rotating the log to the next partition. (Default = "2147483648" //
+            2GB)
+        </description>
+    </property>
+
+    <property>
+        <name>txn.log.checkpoint.lsnthreshold</name>
+        <value>67108864</value>
+        <description>The size of the window that the maximum LSN is allowed to
+            be ahead of the checkpoint LSN by. (Default = ""67108864" // 64M)
+        </description>
+    </property>
+
+    <property>
+        <name>txn.log.checkpoint.pollfrequency</name>
+        <value>120</value>
+        <description>The time in seconds between that the checkpoint thread
+            waits between polls. (Default = "120" // 120s)
+        </description>
+    </property>
+
+    <property>
+        <name>txn.log.checkpoint.history</name>
+        <value>0</value>
+        <description>The number of old log partition files to keep before
+            discarding. (Default = "0")
+        </description>
+    </property>
+
+    <property>
+        <name>txn.lock.escalationthreshold</name>
+        <value>1000</value>
+        <description>The number of entity level locks that need to be acquired
+            before the locks are coalesced and escalated into a dataset level
+            lock. (Default = "1000")
+        </description>
+    </property>
+
+    <property>
+        <name>txn.lock.shrinktimer</name>
+        <value>5000</value>
+        <description>The time in milliseconds to wait before deallocating
+            unused lock manager memory. (Default = "5000" // 5s)
+        </description>
+    </property>
+
+    <property>
+        <name>txn.lock.timeout.waitthreshold</name>
+        <value>60000</value>
+        <description>The time in milliseconds to wait before labeling a
+            transaction which has been waiting for a lock timed-out. (Default =
+            "60000" // 60s)
+        </description>
+    </property>
+
+    <property>
+        <name>txn.lock.timeout.sweepthreshold</name>
+        <value>10000</value>
+        <description>The time in milliseconds the timeout thread waits between
+            sweeps to detect timed-out transactions. (Default = "10000" // 10s)
+        </description>
+    </property>
+
+    <property>
+        <name>compiler.sortmemory</name>
+        <value>33554432</value>
+        <description>The amount of memory in bytes given to sort operations.
+            (Default = "33554432" // 32mb)
+        </description>
+    </property>
+
+    <property>
+        <name>compiler.joinmemory</name>
+        <value>33554432</value>
+        <description>The amount of memory in bytes given to join operations.
+            (Default = "33554432" // 32mb)
+        </description>
+    </property>
+
+    <property>
+        <name>compiler.framesize</name>
+        <value>131072</value>
+        <description>The Hyracks frame size that the compiler configures per
+            job. (Default = "131072" // 128KB)
+        </description>
+    </property>
+
+    <property>
+        <name>web.port</name>
+        <value>19001</value>
+        <description>The port for the ASTERIX web interface. (Default = 19001)
+        </description>
+    </property>
+
+    <property>
+        <name>api.port</name>
+        <value>19002</value>
+        <description>The port for the ASTERIX API server. (Default = 19002)
+        </description>
+    </property>
+
+    <property>
+        <name>log.level</name>
+        <value>INFO</value>
+        <description>The minimum log level to be displayed. (Default = INFO)
+        </description>
+    </property>
+</asterixConfiguration>
diff --git a/asterix-docker/docker/fbm.adm b/asterix-docker/docker/fbm.adm
new file mode 100644
index 0000000..58d7f08
--- /dev/null
+++ b/asterix-docker/docker/fbm.adm
@@ -0,0 +1,15 @@
+{"message-id":1,"author-id":3,"in-response-to":2,"sender-location":point("47.16,77.75"),"message":" love sprint its shortcut-menu is awesome:)"}
+{"message-id":2,"author-id":1,"in-response-to":4,"sender-location":point("41.66,80.87"),"message":" dislike iphone its touch-screen is horrible"}
+{"message-id":3,"author-id":2,"in-response-to":4,"sender-location":point("48.09,81.01"),"message":" like samsung the plan is amazing"}
+{"message-id":4,"author-id":1,"in-response-to":2,"sender-location":point("37.73,97.04"),"message":" can't stand at&t the network is horrible:("}
+{"message-id":5,"author-id":6,"in-response-to":2,"sender-location":point("34.7,90.76"),"message":" love sprint the customization is mind-blowing"}
+{"message-id":6,"author-id":2,"in-response-to":1,"sender-location":point("31.5,75.56"),"message":" like t-mobile its platform is mind-blowing"}
+{"message-id":7,"author-id":5,"in-response-to":15,"sender-location":point("32.91,85.05"),"message":" dislike sprint the speed is horrible"}
+{"message-id":8,"author-id":1,"in-response-to":11,"sender-location":point("40.33,80.87"),"message":" like verizon the 3G is awesome:)"}
+{"message-id":9,"author-id":3,"in-response-to":12,"sender-location":point("34.45,96.48"),"message":" love verizon its wireless is good"}
+{"message-id":10,"author-id":1,"in-response-to":12,"sender-location":point("42.5,70.01"),"message":" can't stand motorola the touch-screen is terrible"}
+{"message-id":11,"author-id":1,"in-response-to":1,"sender-location":point("38.97,77.49"),"message":" can't stand at&t its plan is terrible"}
+{"message-id":12,"author-id":10,"in-response-to":6,"sender-location":point("42.26,77.76"),"message":" can't stand t-mobile its voicemail-service is OMG:("}
+{"message-id":13,"author-id":10,"in-response-to":4,"sender-location":point("42.77,78.92"),"message":" dislike iphone the voice-command is bad:("}
+{"message-id":14,"author-id":9,"in-response-to":12,"sender-location":point("41.33,85.28"),"message":" love at&t its 3G is good:)"}
+{"message-id":15,"author-id":7,"in-response-to":11,"sender-location":point("44.47,67.11"),"message":" like iphone the voicemail-service is awesome"}
diff --git a/asterix-docker/docker/fbu.adm b/asterix-docker/docker/fbu.adm
new file mode 100644
index 0000000..7e99ea4
--- /dev/null
+++ b/asterix-docker/docker/fbu.adm
@@ -0,0 +1,10 @@
+{"id":1,"alias":"Margarita","name":"MargaritaStoddard","user-since":datetime("2012-08-20T10:10:00"),"friend-ids":{{2,3,6,10}},"employment":[{"organization-name":"Codetechno","start-date":date("2006-08-06")}]}
+{"id":2,"alias":"Isbel","name":"IsbelDull","user-since":datetime("2011-01-22T10:10:00"),"friend-ids":{{1,4}},"employment":[{"organization-name":"Hexviafind","start-date":date("2010-04-27")}]}
+{"id":3,"alias":"Emory","name":"EmoryUnk","user-since":datetime("2012-07-10T10:10:00"),"friend-ids":{{1,5,8,9}},"employment":[{"organization-name":"geomedia","start-date":date("2010-06-17"),"end-date":date("2010-01-26")}]}
+{"id":4,"alias":"Nicholas","name":"NicholasStroh","user-since":datetime("2010-12-27T10:10:00"),"friend-ids":{{2}},"employment":[{"organization-name":"Zamcorporation","start-date":date("2010-06-08")}]}
+{"id":5,"alias":"Von","name":"VonKemble","user-since":datetime("2010-01-05T10:10:00"),"friend-ids":{{3,6,10}},"employment":[{"organization-name":"Kongreen","start-date":date("2010-11-27")}]}
+{"id":6,"alias":"Willis","name":"WillisWynne","user-since":datetime("2005-01-17T10:10:00"),"friend-ids":{{1,3,7}},"employment":[{"organization-name":"jaydax","start-date":date("2009-05-15")}]}
+{"id":7,"alias":"Suzanna","name":"SuzannaTillson","user-since":datetime("2012-08-07T10:10:00"),"friend-ids":{{6}},"employment":[{"organization-name":"Labzatron","start-date":date("2011-04-19")}]}
+{"id":8,"alias":"Nila","name":"NilaMilliron","user-since":datetime("2008-01-01T10:10:00"),"friend-ids":{{3}},"employment":[{"organization-name":"Plexlane","start-date":date("2010-02-28")}]}
+{"id":9,"alias":"Woodrow","name":"WoodrowNehling","user-since":datetime("2005-09-20T10:10:00"),"friend-ids":{{3,10}},"employment":[{"organization-name":"Zuncan","start-date":date("2003-04-22"),"end-date":date("2009-12-13")}]}
+{"id":10,"alias":"Bram","name":"BramHatch","user-since":datetime("2010-10-16T10:10:00"),"friend-ids":{{1,5,9}},"employment":[{"organization-name":"physcane","start-date":date("2007-06-05"),"end-date":date("2011-11-05")}]}
diff --git a/asterix-docker/docker/supervisord.conf b/asterix-docker/docker/supervisord.conf
new file mode 100644
index 0000000..acce92e
--- /dev/null
+++ b/asterix-docker/docker/supervisord.conf
@@ -0,0 +1,40 @@
+; Licensed to the Apache Software Foundation (ASF) under one
+; or more contributor license agreements.  See the NOTICE file
+; distributed with this work for additional information
+; regarding copyright ownership.  The ASF licenses this file
+; to you under the Apache License, Version 2.0 (the
+; "License"); you may not use this file except in compliance
+; with the License.  You may obtain a copy of the License at
+;
+;   http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing,
+; software distributed under the License is distributed on an
+; "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+; KIND, either express or implied.  See the License for the
+; specific language governing permissions and limitations
+; under the License.
+
+[supervisord]
+nodaemon=true
+
+[program:asterixcc]
+command=/asterixdb/bin/asterixcc -cluster-net-ip-address localhost -client-net-ip-address localhost
+stdout_logfile=/dev/stdout
+stdout_logfile_maxbytes=0
+stderr_logfile=/dev/stderr
+stderr_logfile_maxbytes=0
+
+[program:asterixnc1]
+command=/asterixdb/bin/asterixnc -node-id nc1 -cc-host localhost -iodevices /asterixdb/nc1 -cluster-net-ip-address localhost -data-ip-address localhost -result-ip-address localhost -- -metadata-port 50031
+stdout_logfile=/dev/stdout
+stdout_logfile_maxbytes=0
+stderr_logfile=/dev/stderr
+stderr_logfile_maxbytes=0
+
+[program:asterixnc2]
+command=/asterixdb/bin/asterixnc -node-id nc2 -cc-host localhost -iodevices /asterixdb/nc2 -cluster-net-ip-address localhost -data-ip-address localhost -result-ip-address localhost -- -metadata-port 50031
+stdout_logfile=/dev/stdout
+stdout_logfile_maxbytes=0
+stderr_logfile=/dev/stderr
+stderr_logfile_maxbytes=0
diff --git a/asterix-docker/docker/twm.adm b/asterix-docker/docker/twm.adm
new file mode 100644
index 0000000..fa764af
--- /dev/null
+++ b/asterix-docker/docker/twm.adm
@@ -0,0 +1,12 @@
+{"tweetid":"1","user":{"screen-name":"NathanGiesen@211","lang":"en","friends_count":39339,"statuses_count":473,"name":"Nathan Giesen","followers_count":49416},"sender-location":point("47.44,80.65"),"send-time":datetime("2008-04-26T10:10:00"),"referred-topics":{{"t-mobile","customization"}},"message-text":" love t-mobile its customization is good:)"}
+{"tweetid":"2","user":{"screen-name":"ColineGeyer@63","lang":"en","friends_count":121,"statuses_count":362,"name":"Coline Geyer","followers_count":17159},"sender-location":point("32.84,67.14"),"send-time":datetime("2010-05-13T10:10:00"),"referred-topics":{{"verizon","shortcut-menu"}},"message-text":" like verizon its shortcut-menu is awesome:)"}
+{"tweetid":"3","user":{"screen-name":"NathanGiesen@211","lang":"en","friends_count":39339,"statuses_count":473,"name":"Nathan Giesen","followers_count":49416},"sender-location":point("29.72,75.8"),"send-time":datetime("2006-11-04T10:10:00"),"referred-topics":{{"motorola","speed"}},"message-text":" like motorola the speed is good:)"}
+{"tweetid":"4","user":{"screen-name":"NathanGiesen@211","lang":"en","friends_count":39339,"statuses_count":473,"name":"Nathan Giesen","followers_count":49416},"sender-location":point("39.28,70.48"),"send-time":datetime("2011-12-26T10:10:00"),"referred-topics":{{"sprint","voice-command"}},"message-text":" like sprint the voice-command is mind-blowing:)"}
+{"tweetid":"5","user":{"screen-name":"NathanGiesen@211","lang":"en","friends_count":39339,"statuses_count":473,"name":"Nathan Giesen","followers_count":49416},"sender-location":point("40.09,92.69"),"send-time":datetime("2006-08-04T10:10:00"),"referred-topics":{{"motorola","speed"}},"message-text":" can't stand motorola its speed is terrible:("}
+{"tweetid":"6","user":{"screen-name":"ColineGeyer@63","lang":"en","friends_count":121,"statuses_count":362,"name":"Coline Geyer","followers_count":17159},"sender-location":point("47.51,83.99"),"send-time":datetime("2010-05-07T10:10:00"),"referred-topics":{{"iphone","voice-clarity"}},"message-text":" like iphone the voice-clarity is good:)"}
+{"tweetid":"7","user":{"screen-name":"ChangEwing_573","lang":"en","friends_count":182,"statuses_count":394,"name":"Chang Ewing","followers_count":32136},"sender-location":point("36.21,72.6"),"send-time":datetime("2011-08-25T10:10:00"),"referred-topics":{{"samsung","platform"}},"message-text":" like samsung the platform is good"}
+{"tweetid":"8","user":{"screen-name":"NathanGiesen@211","lang":"en","friends_count":39339,"statuses_count":473,"name":"Nathan Giesen","followers_count":49416},"sender-location":point("46.05,93.34"),"send-time":datetime("2005-10-14T10:10:00"),"referred-topics":{{"t-mobile","shortcut-menu"}},"message-text":" like t-mobile the shortcut-menu is awesome:)"}
+{"tweetid":"9","user":{"screen-name":"NathanGiesen@211","lang":"en","friends_count":39339,"statuses_count":473,"name":"Nathan Giesen","followers_count":49416},"sender-location":point("36.86,74.62"),"send-time":datetime("2012-07-21T10:10:00"),"referred-topics":{{"verizon","voicemail-service"}},"message-text":" love verizon its voicemail-service is awesome"}
+{"tweetid":"10","user":{"screen-name":"ColineGeyer@63","lang":"en","friends_count":121,"statuses_count":362,"name":"Coline Geyer","followers_count":17159},"sender-location":point("29.15,76.53"),"send-time":datetime("2008-01-26T10:10:00"),"referred-topics":{{"verizon","voice-clarity"}},"message-text":" hate verizon its voice-clarity is OMG:("}
+{"tweetid":"11","user":{"screen-name":"NilaMilliron_tw","lang":"en","friends_count":445,"statuses_count":164,"name":"Nila Milliron","followers_count":22649},"sender-location":point("37.59,68.42"),"send-time":datetime("2008-03-09T10:10:00"),"referred-topics":{{"iphone","platform"}},"message-text":" can't stand iphone its platform is terrible"}
+{"tweetid":"12","user":{"screen-name":"OliJackson_512","lang":"en","friends_count":445,"statuses_count":164,"name":"Oli Jackson","followers_count":22649},"sender-location":point("24.82,94.63"),"send-time":datetime("2010-02-13T10:10:00"),"referred-topics":{{"samsung","voice-command"}},"message-text":" like samsung the voice-command is amazing:)"}
diff --git a/asterix-docker/docker/twu.adm b/asterix-docker/docker/twu.adm
new file mode 100644
index 0000000..32a1917
--- /dev/null
+++ b/asterix-docker/docker/twu.adm
@@ -0,0 +1,4 @@
+{"screen-name":"NathanGiesen@211","lang":"en","friends_count":18,"statuses_count":473,"name":"Nathan Giesen","followers_count":49416}
+{"screen-name":"ColineGeyer@63","lang":"en","friends_count":121,"statuses_count":362,"name":"Coline Geyer","followers_count":17159}
+{"screen-name":"NilaMilliron_tw","lang":"en","friends_count":445,"statuses_count":164,"name":"Nila Milliron","followers_count":22649}
+{"screen-name":"ChangEwing_573","lang":"en","friends_count":182,"statuses_count":394,"name":"Chang Ewing","followers_count":32136}