Commit graph

298 commits

Author SHA1 Message Date
Nicholas Kariniemi
6a27015edb Remove unused source path causing problems 2015-07-04 22:59:17 +03:00
Nicholas Kariniemi
90e512d59d Minor cleanup of db code 2015-07-04 22:33:36 +03:00
Nicholas Kariniemi
efbc29b0ad Use (possibly persistent) database URI from env var 2015-07-04 22:23:16 +03:00
Nicholas Kariniemi
c1e0dfbf0b Switch to Datomic for storage (not persistent)
- Still not taking advantage of Datomic features but using it as a
  simple dump for Clojure data structures.
2015-07-04 22:22:47 +03:00
Nicholas Kariniemi
fdd9baf23b Use new reader conditionals and remove cljx deps 2015-07-02 20:25:28 +03:00
Nicholas Kariniemi
4f5e91bf29 Update dependencies 2015-06-30 20:46:39 +03:00
Nicholas Kariniemi
cc3dbdca62 Remove dead code (mostly unused requires) 2015-06-16 20:03:32 +03:00
Nicholas Kariniemi
f7b79a5e2a Fix bug where grubs/recipes could not be deleted
- Fixed by using keywords as map keys client-side. Monger "keywordizes"
  keys by default and it's easier to change client side than to remove
  that behavior.
2015-06-16 19:57:41 +03:00
Nicholas Kariniemi
6794e81ea9 Update from clojure 1.7.0-alpha1 -> 1.7.0-RC1 2015-06-16 19:55:04 +03:00
Nicholas Kariniemi
c7caec9a3b Comment out user.clj to make building work 2015-06-08 23:37:30 +03:00
Nicholas Kariniemi
48067a00f6 Deploy script just copies files over 2015-05-01 09:01:22 +03:00
Nicholas Kariniemi
021ec1b531 Use /ws path for websocket connections
- Less confusion around upgrading HTTP connections to WebSocket
2015-05-01 08:56:37 +03:00
Nicholas Kariniemi
1eb7136d27 Use relative paths for websocket connection 2015-05-01 08:46:02 +03:00
Nicholas Kariniemi
10148897c8 Use relative paths for static files 2015-04-30 23:38:15 +03:00
Nicholas Kariniemi
ab67f02172 Use ws or wss based on location protocol 2015-04-30 23:31:32 +03:00
Nicholas Kariniemi
90d7ee91ca Minor cleanup in server core 2015-03-14 13:06:58 +02:00
Nicholas Kariniemi
a737d4102b Ignore Intellij IDEA files 2015-03-14 13:06:35 +02:00
Nicholas Kariniemi
e8242d730f Add deploy script 2014-12-07 10:36:47 +02:00
Nicholas Kariniemi
c1b6cc7a08 Set build package name based on datetime, commit 2014-11-29 17:54:06 +02:00
Nicholas Kariniemi
830451372a Build releases via lein uberjar
- Run scripts/build.sh to build JAR from scratch.
- Added better fix for lein cljx/reloaded workflow conflict
2014-11-29 16:22:15 +02:00
Nicholas Kariniemi
414dceec8b Sort recipes by name 2014-11-24 16:26:34 +02:00
Nicholas Kariniemi
c910d1d1f8 Update README instructions 2014-11-18 19:29:11 +02:00
Nicholas Kariniemi
fdd4c0a15a Hacky wrkaround for 'lein cljx' to work with dev/user in deploy script 2014-10-26 07:41:31 +00:00
Nicholas Kariniemi
9e662c49b2 Default to 8 rows in directions text areas
Better: resize based on number of rows it takes
2014-10-26 09:30:11 +02:00
Nicholas Kariniemi
0e2f13d63d Add directions to recipes 2014-10-26 08:57:08 +02:00
Nicholas Kariniemi
f8af086c19 Update unit/integration tests for sync
Cheat slightly on the synchronization test by manually passing in the
	new server state. The problem is that new server states are detected
	outside of the sync algorithm.
2014-10-25 22:21:55 +03:00
Nicholas Kariniemi
412bf29f57 Close up client channels properly on disconnect 2014-10-25 22:15:43 +03:00
Nicholas Kariniemi
4883013470 Merge branch 'master' of https://github.com/nicholaskariniemi/grub 2014-10-25 16:36:51 +00:00
Nicholas Kariniemi
5ee40a6471 Use version numbers instead of timestamps
Also:
- Don't acknowledge changes sent from the server to the client.
- Only send one message at a time to the server.

All of these changes bring this more in line with the differential sync paper.
2014-10-25 19:31:14 +03:00
Nicholas Kariniemi
79e64596ae Add back sync integration tests 2014-10-21 23:26:27 +03:00
Nicholas Kariniemi
8fe22b9a52 Use timestamp tags instead of hashes
- Hashing was slow and we weren't using the hash properties much anyway
2014-10-21 23:25:42 +03:00
Nicholas Kariniemi
19ca650078 Fix tests - sync integration tests commented out 2014-10-19 11:49:02 +03:00
Nicholas Kariniemi
feae5d8135 Workaround to make reloaded workflow work with cljx 2014-10-19 11:26:07 +03:00
Nicholas Kariniemi
9591e9fd93 Rename state <--> sync namespaces 2014-10-19 10:53:14 +03:00
Nicholas Kariniemi
e14b3d2a29 Optimization: don't set grub/recipe state if state is unchanged 2014-10-15 22:51:53 +03:00
Nicholas Kariniemi
78d5617356 Keep state history with state in one atom 2014-10-15 22:14:32 +03:00
Nicholas Kariniemi
e5309fcd69 Correct use of swap! 2014-10-15 21:26:28 +03:00
Nicholas Kariniemi
0bf8344c62 Reset state on full sync 2014-10-15 21:22:53 +03:00
Nicholas Kariniemi
96dd93309d Merge branch 'master' of github.com:nicholaskariniemi/grub 2014-10-15 21:06:11 +03:00
Nicholas Kariniemi
8dbb410667 Bounce favicon requests 2014-10-15 21:05:07 +03:00
Nicholas Kariniemi
fd249cefca Use swap! in diff handling to update state
- Ensures state updates always use the current state as a basis.
2014-10-15 14:46:12 +03:00
Nicholas Kariniemi
dd5bf7a53a Clean up state loop 2014-10-15 11:07:55 +03:00
Nicholas Kariniemi
f496fb51e5 Pull state history into state handler loop
- This is incidental complexity and other code doesn't need to know
  about it
2014-10-14 22:49:04 +03:00
Nicholas Kariniemi
7ada33bdfc Make server, client agent APIs more similar 2014-10-13 22:02:32 +03:00
Nicholas Kariniemi
b5a668e6ee Push state history into state handling 2014-10-13 21:54:52 +03:00
Nicholas Kariniemi
dffdc7cabb Remove init-server from state handling 2014-10-13 21:27:24 +03:00
Nicholas Kariniemi
a367d5cb25 Comment out integration test 2014-10-13 21:27:07 +03:00
Nicholas Kariniemi
8f5814e07e Simplify state functions 2014-10-13 20:48:13 +03:00
Nicholas Kariniemi
5fd54b62e6 Make state syncing code more explicit 2014-10-12 23:15:40 +03:00
Nicholas Kariniemi
64b1bb05a7 Start client code like server side 2014-10-12 22:57:00 +03:00