Which of Apple's game technologies can I use?
Writing this down here because I didn’t see an easy reference to it anywhere and I just took the time to figure it out.
I’m starting a new game-ish thing and figuring out what I want to build it in. What technologies can I use? In particular, I’m looking at:
Sneaking Clojure into an older Java project
Now I’m not saying I did this, but if I was going to do it and took notes for future reference, this is how I’d sneak some Clojure code into an older, Ant based Java project.
Getting started with groov's APIs
I’m a developer on groov, and our just released R3.3a version includes a new place to store arbitrary data (we call it the Data Store), and our first public API: a way to get data in and out of those Data Stores. We also included support for CORS, so you can use it from a web page as well.
CORS can be a bit confusing, and on top of that a bunch of our customers use self-signed SSL certificates on their groov instances, so I thought I’d write down a getting started guide to get people past all of those bumps.
Climate change and the 2016 Election
I’ve always been registered independent, despite voting for the Democratic party most of the time. I don’t like that people identify as Democrat vs. Republican, or Liberal vs. Conservative, or whatever. I prefer looking at the policies of candidates, what issues they find important, and what character they show. Given that, I don’t care what label they choose for themselves.
Quick notes on using CEPL on macOS
Just jotting down some notes while trying to get CEPL working on my oldish MacBook Pro running El Capitan.
- Use SBCL. I usually default to ClozureCL, but for the moment I can’t get
swank:*communication-style* nilto work with it, and things will just break horribly if you end up off the main thread in CEPL. SBCL works fine.
- To make sure that Swank starts up with the right communication style, I stuck this in
#+sbcl (setf swank:*communication-style* nil)
- My (old) Macs only support up to version 3.3 OpenGL contexts, but the version of CEPL that’s available in Quicklisp uses 4.1 contexts. The current HEAD on Github lets you choose your context version, so you’ll need to clone the CEPL repository and some of its dependencies locally in your Quicklisp local-projects directory. (list below)
- Download the runtime frameworks for SDL2 and SDL2_image and stick
- I’m haven’t been able to get the examples running directly yet: it seems like cepl.sdl2’s host step function is getting clobbered by the one in cepl.skitter.sdl2, so you need to avoid loading that.
Repositories you’ll need to clone locally:
- cepl - https://github.com/cbaggers/cepl.git
- cepl.sdl2 - https://github.com/cbaggers/cepl.sdl2.git
- cepl.skitter - https://github.com/cbaggers/cepl.skitter.git
- rtg-math - https://github.com/cbaggers/rtg-math.git
- varjo - https://github.com/cbaggers/varjo.git
Actually running it in SLIME:
- Once you have your
.swank.lispset up, and Emacs configured to use SBCL, start SLIME as normal. (e.g. M-x slime)
- Load cepl.sdl2:
- Initialize CEPL, passing it a window size and the OpenGL context version you need:
(cepl:repl 480 320 3.3)
- If everything went well, you should have a blank, untitled window somewhere on your desktop, probably behind your Emacs window. Clicking on the SBCL icon on your dock won’t bring it forward, you’ll have to go looking for it.
Again, I can’t get the examples to run directly, but you can run the triangle example below by:
- Loading livesupport:
(ql:quickload "livesupport"). The examples use it to keep your REPL usable while Swank is in single-threaded mode.
- Load the example listed below.
(triangle::run-loop)to start it, and hit enter an extra time to get your REPL back.
(triangle::stop-loop)to stop it.