Index

A

Ant

downloading, 228

installing on a Mac, 229

Ant plug-in, 225229

assumptions before beginning, 225

benefits of, 225

notes on the recipe for, 228

recipe—code for, 225227

testing the recipe for, 227228

Aspect Orientation, in Object-Oriented languages, 7677

B

Big data, 139

Blocking code, macro converting to non-blocking code, 7985

Bolts, in Storm

creating, 190192

description of, 191, 192193, 194195

integrating Storm and JMS using, 204, 205, 206, 208209, 213214, 215

Bootstrap, 56, 59, 62

C

Cascading library in Hadoop

introduction of, 141

Java class dependency relationships with, 177

preformatted data needed for, 160161

reading files in, 174175, 177

Cascalog, introduction to, xvii, 135141

background concepts for, 140141

benefits of Cascalog, 135

notes on the recipe for running basic queries in, 137141

recipe—code for running basic queries in, 135137

testing the solution in, 137139

Cascalog, compiling to a jar file and running, 143148

assumptions before beginning, 143

benefits of, 143

recipe—code for, 143145

testing the solution in, 145146

Cascalog, loading custom data formats into, 163177

assumptions before beginning, 163

benefits of, 163

notes on the solution for, 176177

recipe—code for, 163176

testing the recipe for, 175176

Cascalog, loading data file into, 149151

assumptions before beginning, 149

benefits of, 149

recipe—code for, 149150

testing the solution in, 150151

Cascalog, loading structured data into, 157161

assumptions before beginning, 157

benefits of, 157

notes on solution for, 160161

preformatting data for, 160161

recipe—code for, 157159

testing the recipe for, 159160

Cascalog, structuring a file to load into, 149151

assumptions before beginning, 149

benefits of, 149

recipe—code for, 149150

testing the solution in, 150151

Cascalog, writing out a data file with, 153155

assumptions before beginning, 153

benefits of, 153

notes on the recipe for, 155

recipe—code for, 153154

testing the solution in, 154155

Clojure, reasons for using, xvxvii

clojure.csv library, 219

clojure.data.json library, in Compojure, 30

ClojureScript, xvii

compiled to JavaScript, 35, 3940

JSON server built in, 4146

Pedestal server instead of, 50

ClojureScript REST client, 3540

assumptions before beginning, 35

benefits of, 35

notes on the recipe for, 3940

recipe—code for, 3638

testing the solution in, 3839

ClojureWerkz money library, 70, 74

Coding conventions in text, xviii

Comma-separated value (CSV) files. See CSV reader

Compiler extension using macros, 7985

assumptions before beginning, 79

benefits of, 79

notes on the recipe for, 8285

recipe—code for, 7981

testing the solution in, 8182

Conventions in text, xviii

core.async library, 85

CSS in Clojure, 107133

mapping of SASS constants into CSS data structure using, 129133

process of going from SASS to CSS in, 108109

SASS for reuse and manageability of, 107108

transformation of tree representation of, 126128

CSV reader, 217220

assumptions before beginning, 217

benefits of, 217

notes on the recipe for, 219220

recipe—code for, 217218

testing the solution for, 219

curl, and REST servers, 2021, 23, 25, 29, 179, 187

D

data.csv library, 219

data.json library, 29, 30

Datalog, 138, 141

Datomic, xvii

downloading, 180

setting up, 179180

Datomic connections, 179188

assumptions before beginning, 179

benefits of, 179

from Clojure, 181182

getting set up for, 179180

from Java, 182185

loading schema and data in, 181

recipe—code for, 179180

from REST client, 185188

in the shell, 180181

Datomic syntax, and DSL, 87106

assumptions before beginning, 87

benefits of, 8788

notes on the recipe for, 103106

recipe—code for, 8897

relational database mindset applied to, 88

testing add datom in, 98100

testing add nested datom in, 101104

testing create nested schema in, 100101

testing create schema in, 9798

Debugging macros, 251259

assumptions before beginning, 251

benefits of, 251

helper functions and, 253254

logging application with, 7172, 73, 7475

read and evaluate approach for, 254259

simple approach for, 252253

Dijkstra, Edsger, xvi

DSL (domain-specific language)

Clojure with, xvi

Datomic syntax and, 87106

SASS and, 107133

E

EDN, 47

Error log monitoring application, 221224

assumptions before beginning, 221

benefits of, 221

notes on the recipe for, 223224

recipe—code for, 221223

testing the solution for, 223

EventSource, 55, 6061, 63, 6566

Excel, and CSV files, 217, 219, 220

F

Fielding, Roy, 33

Firefox, 241, 243

future, with compiler extension macro, 81, 82, 8384

G

Google Closure libraries, 35, 39

Google MapReduce, 139

H

Hadoop

as a batch processing system, 149

Cascading library in, 141

downloading, 146, 147

MapReduce concept and, 140

Pig analysis tool with, 140

setting up on a Mac, 146147

setting up on Windows, 147148

handle-http function, 2223

Haskell language, xvi

Hickey, Rich, 26, 50

Homoiconic language, xvii, 69

Hornet libraries, with JMS, 197, 198, 200, 213, 214215

HTML5, and EventSource, 55, 6061, 63, 6566

http requests

JSON server and, 4147

Pedestal stock ticker application using, 5567

REST server and, 2223

http specification, and REST, 3233

I

Interceptors, 51, 54

J

Java

checking for on a Mac, 3

checking for on Windows, 2

Clojure macro use and, 7677

Datomic connection from, 182185

Swing library in, 240

Java Development Kit. See JDK

Java EE (Java Platform, Enterprise Edition), 1118

assumptions before beginning, 11

benefits of, 11

packaging Clojure to work in a Java EE environment and, 1112

recipe (common part) for, 1114

setting up Tomcat on a Mac and, 1415

setting up Tomcat on Windows and, 1618

Java Platform, Enterprise Edition. See Java EE

javac, checking for, on a Mac, 4

JavaScript, xv, 35, 3940

JDK (Java Development Kit), xvi

downloading, 2, 3

setting up Hadoop on a Windows machine and, 148

setting up on a Mac, 45

setting up on Windows, 58

JMS feeds, and Storm, 203214

assumptions before beginning, 203

benefits of, 203

notes on the recipe for, 213215

recipe—code for, 203213

testing the recipe for, 213

JMS server, setting up and messaging, 197201

assumptions before beginning, 197

benefits of, 197

notes on the recipe for, 200201

recipe—code for, 197200

testing the recipe for, 200

JQuery, 41, 46, 55, 62

JRE (Java Runtime Environment), checking for and adding, on a Mac, 45

JSON server, 4146

assumptions before beginning, 41

benefits of, 41

notes on the recipe for, 4546

recipe—code for, 4144

testing the solution in, 4445

Transit used with, 47

JVM, xv

K

Kay, Alan, 69

L

Lean Software Development, xvi

lein-ring library, 45

Leiningen

assumptions before beginning, 1

benefits of, 1

creating new project in projects directory (Mac) with, 23

creating new project in projects directory (Windows) with, 4

description of, 1

new project directory in, 11

Pedestal stock ticker application using, 55, 56, 60

Pedestal web server using, 50, 52

recipe (Mac) for, 34

recipe (Windows) for, 13

starting a project with, 19

Liberator REST server, 2533

assumptions before beginning, 25

benefits of, 25

context of http specification for, 3233

notes on the recipe for, 2932

recipe—code for, 2527

testing the solution in, 2829

Liberator library, in Compojure, 29, 3031, 32

Lisp, xv

Log monitoring application, 221224

assumptions before beginning, 221

benefits of, 221

notes on the recipe for, 223224

recipe—code for, 221224

testing the solution for, 223

Logging application macro, 6977

assumptions before beginning, 69

benefits of, 69

debug macros in, 7172, 73, 7475

notes on the recipe for, 7477

recipe—code for, 7072

testing the solution in, 7273

M

Macro compiler extension, 7985

assumptions before beginning, 79

benefits of, 79

notes on the recipe for, 8285

recipe—code for, 7981

testing the solution in, 8182

Macro debugging, 251259

assumptions before beginning, 251

benefits of, 251

helper functions and, 253254

logging application with, 7172, 73, 7475

read and evaluate approach for, 254259

simple approach for, 252253

Macro logging application, 6977

assumptions before beginning, 69

benefits of, 69

debug macros in, 7172, 73, 7475

notes on the recipe for, 7477

recipe—code for, 7072

testing the solution in, 7273

Macros

trace1, 77

uses of, in Clojure, 7677

MapReduce

Google introduction of, 139

Yahoo’s MapReduce and, 140

Marz, Nathan, 141, 192

Maven, 182183

debugging a Leiningen project as, 164

Datomic connection from Java and, 182185

Leiningen setup and, 1, 4

Maven plug-in, 231240

assumptions before beginning, 231

benefits of, 231

notes on the recipe for, 240

recipe—code for, 231239

testing the recipe for, 239

Middleware

in Ring, 54

using interceptors instead of, 54

wrap-default function for, 23, 39

Monads, xvii

money library, ClojureWerkz, 70, 74

Monitoring applications

log monitoring application, 221224

website status checker, 245249

Multiversion Concurrency Control (MVCC), xv

N

.NET CLR, xv

O

Object-Oriented languages, and Aspect Orientation, 7677

Okasaki, Chris, xv

P

Pedestal simple server, 4954

assumptions before beginning, 49

benefits of, 49

context for, 4950

notes on the recipe for, 5354

reasons for using instead of Compojure, 50

recipe—code for, 5052

testing the solution in, 5253

Pedestal stock ticker application, 5567

assumptions before beginning, 55

benefits of, 55

notes on the recipe for, 6267

recipe—code for, 5560

testing the solution in, 6062

Pig analysis tool, with Hadoop, 140

Production applications

Clojure as Ant plug-in in, 225229

log monitoring with, 221224

WebDriver tests with, 241243

website status checker with, 245249

R

Reducers, 139140

Regex, 223224

REPL (Read Eval Print Loop), xvi, 4, 137

REST (Representational State Transfer)

http specification and, 3233

origins of, 33

Richardson Maturity Model for, 33

REST clients

connecting to Datomic from, 185188

documentation for, 185

REST server in Compojure, 1923

assumptions before beginning, 19

benefits of, 19

http requests with, 2223

notes on the recipe for, 2223

recipe—code for, 1920

testing the solution in, 2021

REST server in Liberator, 2533

assumptions before beginning, 25

benefits of, 25

http specification and, 3233

notes on the recipe for, 2932

recipe—code for, 2527

testing the solution in, 2829

RESTful HTTP requests, 2223

Richardson Maturity Model for REST, 33

ring.json library, 45

Ruby, 107, 133

S

S-expressions, xvixvii

SASS

constants in, 108

features of, 107108

larger process of going from SASS to CSS in, 108109

mapping of constants into data structure using, 129133

nesting in, 108, 125126

reuse and manageability of CSS using, 107108

transformation of tree representation in, 126128

SASS DSL with Clojure zippers, 107133

assumptions before beginning, 107

benefits of, 107

features of SASS and, 107108

mapping of constants into data structure using, 129133

notes on the recipe for, 122133

recipe—code for, 109121

tasks accomplished in, 109

testing the solution in, 121122

transformation of tree representation in, 126128

Selenium WebDriver tests, 241243

assumptions before beginning, 241

benefits of, 241

notes on the recipe for, 243

recipe—code for, 241242

testing the recipe for, 242243

Servers. See JMS server; JSON server; Pedestal simple server; REST server in Compojure; REST server in Liberator

Software Transactional Memory (STM), xv

Spouts, in Storm

creating, 190192

description of, 192193, 195

integrating Storm and JMS using, 203, 208209, 214, 215

Stock ticker application, Pedestal, 5567

assumptions before beginning, 55

benefits of, 55

notes on the recipe for, 6267

recipe—code for, 5560

testing the solution in, 6062

Storm, and JMS feeds, 203214

assumptions before beginning, 203

benefits of, 203

notes on the recipe for, 213215

recipe—code for, 203213

testing the recipe for, 213

Storm apps, xvii

components of, 192193

getting started with, 189190

assumptions before beginning, 189

benefits of, 189

notes on the recipe for, 192195

recipe—code for, 190192

testing the recipe in, 192

Swing

with Ant, 226, 228

with Maven, 232, 240

T

Test suites, 241243

Tomcat on a Mac

assumptions before setting up, 14

downloading, 14

notes on installing, 14

packaging Clojure to work in a Java EE environment and, 1112

setting up, 1415

Tomcat on Windows

assumptions before setting up, 16

downloading, 16

packaging Clojure to work in a Java EE environment and, 1112

setting up, 1618

tools.trace library, 77

Topologies, in Storm

description of, 192, 193, 195

integrating Storm and JMS using, 203, 204205, 206, 208209, 214, 215

trace1 macro, 77

Transit, 47

Tuples, in Storm

description of, 192, 193, 194195

integrating Storm and JMS using, 205206, 214

Twitter

Backtype, 141n, 192

Bootstrap and, 56, 59, 62

Types, xvii

W

Wadler, Philip, xvi

WebDriver tests, 241243

assumptions before beginning, 241

benefits of, 241

notes on the recipe for, 243

recipe–code for, 241242

testing the recipe for, 242243

Website status checker, 245249

assumptions before beginning, 245

benefits of, 245

notes on the recipe for, 249

recipe—code for, 246247

testing the recipe for, 247249

WebSockets, 55

wget.exe, 2

wrap-default function, 23

Y

Yahoo, 140

Z

Zippers

custom zipper for maps in Datomic syntax, 9194, 104

notes on the recipe for SASS DSL on using, 122133

parsing a DSL using, 107

recipe—code for generating CSS with, 109121

traverse idiom for, 123, 126

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.148.104.242