I have moved this over to the Tech Interview Cheat Sheet Repo and has been expanded and even has code challenges you can run and practice against!
\
This post also appears on lisper.in.
Reader macros are perhaps not as famous as ordinary macros. While macros are a great way to create your own DSL, reader macros provide even greater flexibility by allowing you to create entirely new syntax on top of Lisp.
Paul Graham explains them very well in [On Lisp][] (Chapter 17, Read-Macros):
The three big moments in a Lisp expression's life are read-time, compile-time, and runtime. Functions are in control at runtime. Macros give us a chance to perform transformations on programs at compile-time. ...read-macros... do their work at read-time.
-module(bench). | |
-compile(export_all). | |
%% Luke Gorrie's favourite profiling macro. | |
-define(TIME(Tag, Expr), | |
(fun() -> | |
%% NOTE: timer:tc/4 does an annoying 'catch' so we | |
%% need to wrap the result in 'ok' to be able to | |
%% detect an unhandled exception. | |
{__TIME, __RESULT} = |
/* | |
Include this after bootstrap.css. Add class of | |
vert-offset-top-value or vert-offset-bottom-value | |
to your Bootstrap 3 default rows to prevent row content | |
from touching the row content above or below. | |
*/ | |
/* Vertical Offset Bottom */ | |
.vert-offset-top-12{ | |
margin-top: 12em; |
%% @doc | |
%% Filter module for Zotonic | |
%% 'foldl' filter, applies foldl to a list | |
%% | |
%% Usage: | |
%% {{ [1,2,3]|foldl:["*", 1] }} | |
%% {{ [1,2,3]|foldl:["+", 0] }} | |
%% {{ ["a", "b", "c"]|foldl:["++", ""] }} | |
%% | |
%% Pass an attribute to fetch for each item: |
Find it here: https://github.com/bitemyapp/learnhaskell
- https://dancres.github.io/Pages/
- https://ferd.ca/a-distributed-systems-reading-list.html
- http://the-paper-trail.org/blog/distributed-systems-theory-for-the-distributed-systems-engineer/
- https://github.com/palvaro/CMPS290S-Winter16/blob/master/readings.md
- http://muratbuffalo.blogspot.com/2015/12/my-distributed-systems-seminars-reading.html
- http://christophermeiklejohn.com/distributed/systems/2013/07/12/readings-in-distributed-systems.html
- http://michaelrbernste.in/2013/11/06/distributed-systems-archaeology-works-cited.html
- http://rxin.github.io/db-readings/
- http://research.microsoft.com/en-us/um/people/lamport/pubs/pubs.html
- http://pdos.csail.mit.edu/dsrg/papers/
This is a super basic beginners guide to Solr Lucene query syntax. We're going to cover running a straightforward query, as well as some of the more useful functionality such as filtering and creating facets. We'll point out some things you can't do and generally give you enough instruction so that you can get yourself into trouble.
For testing you need a REST client capable of sending requests to your Solr instance. Either RESTClient for Firefox or Postman for Chrome are good choices.
To specify a list of fields to return instead of the default Solr response use fl
and provide a comma delimited list of fields:
<?php | |
class Context { | |
private $args = array(); | |
private $func = NULL; | |
public function __construct() { | |
$args = func_get_args(); | |
$func = array_pop($args); |
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
Vagrant.configure("2") do |config| | |
# All Vagrant configuration is done here. The most common configuration | |
# options are documented and commented below. For a complete reference, | |
# please see the online documentation at vagrantup.com. | |
# Every Vagrant virtual environment requires a box to build off of. | |
config.vm.box = "precise32" |