- 3 lbs. boiled potatoes, peeled and cubed
- 6 hard boiled eggs, diced
- 4 dill pickles, diced (or use dill relish to taste)
- 1 C mayonnaise
- 1/2 C yellow mustard
- 1/4 tsp salt
- Combine all ingredients and mix until combined. Serve cold.
#1: You admire a character for trying more than for their successes.
#2: You gotta keep in mind what’s interesting to you as an audience, not what’s fun to do as a writer. They can be v. different.
#3: Trying for theme is important, but you won’t see what the story is actually about til you’re at the end of it. Now rewrite.
#4: Once upon a time there was ___. Every day, ___. One day ___. Because of that, ___. Because of that, ___. Until finally ___.
#5: Simplify. Focus. Combine characters. Hop over detours. You’ll feel like you’re losing valuable stuff but it sets you free.
#6: What is your character good at, comfortable with? Throw the polar opposite at them. Challenge them. How do they deal?
#7: Come up with your ending before you figure out your middle. Seriously. Endings are hard, get yours working up front.
#8: Finish your story, let go even if it’s not perfect. In an ideal world you have both, but move on. Do better next time.
#9: When you’re stuck, make a list of what WOULDN’T happen next. Lots of times the material to get you unstuck will show up.
#10: Pull apart the stories you like. What you like in them is a part of you; you’ve got to recognize it before you can use it.
#11: Putting it on paper lets you start fixing it. If it stays in your head, a perfect idea, you’ll never share it with anyone.
#12: Discount the 1st thing that comes to mind. And the 2nd, 3rd, 4th, 5th – get the obvious out of the way. Surprise yourself.
#13: Give your characters opinions. Passive/malleable might seem likable to you as you write, but it’s poison to the audience.
#14: Why must you tell THIS story? What’s the belief burning within you that your story feeds off of? That’s the heart of it.
#15: If you were your character, in this situation, how would you feel? Honesty lends credibility to unbelievable situations.
#16: What are the stakes? Give us reason to root for the character. What happens if they don’t succeed? Stack the odds against.
#17: No work is ever wasted. If it’s not working, let go and move on - it’ll come back around to be useful later.
#18: You have to know yourself: the difference between doing your best & fussing. Story is testing, not refining.
#19: Coincidences to get characters into trouble are great; coincidences to get them out of it are cheating.
#20: Exercise: take the building blocks of a movie you dislike. How d’you rearrange them into what you DO like?
#21: You gotta identify with your situation/characters, can’t just write ‘cool’. What would make YOU act that way?
#22: What’s the essence of your story? Most economical telling of it? If you know that, you can build out from there.
(Source: Emma Coats, @lawnrocket on Twitter)
My web server is running Ubuntu 15.10, so these instructions apply to this version of Linux. YMMV.
WP-CLI is a sweet, command-line tool for managing WordPress installations. First things first, we need to install it. Best thing to do is follow the instructions on the site I just linked.
Next step is to get an empty MySQL or MariaDB database ready, preferably with a unique, restricted user attached to it. See the bottom of this post if you're not sure how to do that.
Next, create a directory for WordPress to be installed in. How you set up your files is up to you. Once it's ready, open a terminal and navigate to the directory you created.
Download the latest stable version of WordPress into the working directory:
wp core download
Next, create your wp-config.php file (replace the items in angle brackets as applicable):
wp core config --dbname=<DATABASE_NAME> --dbuser=<USER_NAME> --dbpass=<PASSWORD>
Finally, install WordPress and set up the admin user:
wp core install --url=http://<YOUR_URL> --title='<SITE TITLE>' --admin_user=<ADMIN_USER_NAME> --admin_email=<ADMIN_USER_EMAIL> --admin_password=<ADMIN_PASSWORD>
That's it! Browse to your URL and (assuming your server is correctly configured), you should see your brand new WordPress installation.
Also, just in case command-line MySQL scares you, here are the commands to create a new database with its own user:
mysql -u root -p CREATE DATABASE <DATABASE_NAME>; CREATE USER '<USER_NAME>'@'localhost' IDENTIFIED BY '<PASSWORD>'; GRANT ALL PRIVILEGES ON <DATABASE_NAME>.* TO '<USER_NAME>'@'localhost'; FLUSH PRIVILEGES; exit;
There's a PPA for 15.04 and earlier versions, but I needed nginx with the cache purge module on 15.10. Here are the steps I took:
Install nginx from the Ubuntu repository, then immediately stop the service:
sudo apt-get install nginx sudo systemctl stop nginx
Download the latest sources for nginx and the ngx_cache_purge module and untar:
wget http://nginx.org/download/nginx-1.9.12.tar.gz wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz for filename in *.tar.gz; do tar zxf $filename; done
Install required libraries (these are the ones I needed to install; YMMV).
sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev libssl1.0.0 libxml2 libxml2-dev libxslt1.1 libxslt1-dev libgd-dev libgeoip1 libgeoip-dev
Build nginx. The options listed here are essentially the same as what are listed in the repository build. The only differences are the addition of the ngx_cache_purge module and the removal of the --with-http_spdy_module (which doesn't work for whatever reason).
cd nginx-1.9.12 ./configure --add-module=../ngx_cache_purge-2.3 --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module make sudo make install
You'll need to replace the Ubuntu repository version of nginx with the one you just compiled. The make install command drops it in /usr/share/nginx/sbin, but it needs to be in /usr/sbin. We'll take care of that now. Then, assuming everything went well, you can restart the nginx service.
sudo mv /usr/sbin/nginx /usr/sbin/nginx.ubuntu sudo cp /usr/share/nginx/sbin/nginx /usr/sbin/. sudo systemctl start nginx
You may want to prevent apt from updating nginx (so that you can do it manually). If so, the following commands are useful:
sudo apt-mark hold nginx sudo apt-mark unhold nginx
My daughter loves Minecraft and she loves playing it with someone (usually me) even more. I decided I wanted to set up a server that would allow her to connect and play in her world whenever she wanted, and also allow for multiplayer fun. We couldn't do that on her laptop, because it just isn't powerful enough to handle serving up Minecraft, as well as playing it. Thus, after much research, I figured out how to get a Minecraft server (or several) up and running using systemd on Ubuntu 15.10, which is what my desktop runs.
NOTE: This how-to only covers how to get a basic server up and running as a service under systemd. Many related topics (such as configuring your firewall, port forwarding, Minecraft server setup, server security, etc.) are outside of the scope of this discussion. This how-to assumes that your server will only be available to your LAN. YMMV.
Here are the steps in a nutshell:
Create a minecraft user, with a home directory at /opt/minecraft.
sudo groupadd -r minecraft sudo useradd -r -g minecraft -d "/opt/minecraft" -s "/bin/bash" minecraft sudo mkdir /opt/minecraft sudo chown minecraft.minecraft /opt/minecraft
Next, switch to the minecraft user to set up the server(s).
sudo su minecraft cd ~ pwd
The last command is just to make sure that we're where we think we are (it should be /opt/minecraft).
Create at least one directory to store a Minecraft server instance. You can actually create more than one, and I will include details about that later. For now, just create one. We'll start with a creative mode server. We'll also download the Minecraft server jar.
mkdir creative cd creative wget https://s3.amazonaws.com/Minecraft.Download/versions/1.9/minecraft_server.1.9.jar
You may need to update that last line to grab the latest server version.
Now, run the server for the first time. This will generate a few files and exit because we haven't accepted the EULA.
java -Xms1G -Xmx1G -jar minecraft_server.1.9.jar nogui
Edit the eula.txt file to accept the EULA. Change eula=false to eula=true. You can use whatever text editor you like. Save and close the file, then relaunch the server (using the same command as above).
Now is a good time to make sure the server is running correctly. Jump into Minecraft and try to connect. Walk around a bit and make sure everything is working as it should be. (How to do this is beyond the scope of this how-to).
Go ahead and stop the server (just type stop and press <ENTER> in the terminal that you launched the server in). Next we're going to create a symbolic link to make updating this easier down the line. It also has the advantage of allowing us to run multiple versions of Minecraft server without creating new unit files. All of this will make sense in a minute.
ln -s minecraft_server.1.9.jar minecraft_server.jar
You can test the server again, if you like, just to make sure you got it right. Just run the same command as before, but use minecraft_server.jar instead of minecraft_server.1.9.jar.
Before we set up the systemd configuration, we have one other thing to do. We need to set up rcon to allow for remote administration. Open the server.properties file and change rcon.enable=false to rcon.enable=true. Save and close the file, then fire up the server again.
If you did this right, everything should still work, but you'll get an error in the console about not having an rcon password. Stop the server and open the server.properties file again. You'll notice a few lines have been added. Make note of the port number from the line rcon.port=25575 (25575 is the default port number). Also, add a password to the rcon.password= line. Make it something good, because anyone who has this will have access to your Minecraft server!
This is a good time to get your hands on a client that will let you connect to your server. Since I have an Android phone, I use (and really like) MConsole. There are a lot of other options, though, so you don't have to take my advice. Once you have the client in hand, go ahead and test it out by entering your server's IP, rcon port and rcon password. If it works, you're golden!
Finally, we'll set up the systemd unit file. Create a new text file under the /opt/minecraft parent directory called minecraft@.service. The @ sign is very important. Paste the following into this file:
[Unit] Description=Minecraft Server %i [Service] WorkingDirectory=/opt/minecraft/%i User=minecraft Group=minecraft Restart=always ExecStart=/usr/bin/screen -DmS mc-%i /usr/bin/java -Xmx2048M -jar minecraft_server.jar nogui ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN. Saving map..."