205 karma · joined March 4, 2008
after that week is over, maybe report back?
i would not make any life changing decisions just now.
so far we're going with couch and haven't experienced this. the best part of course is that we can add items to documents on the fly whilst keeping the existing test data! this is major for us. we can go back to testing right away. with MySQL the changes were so major that it was better just dumping and recreating from scratch (we are using django) and this wasn't exactly fast. django has a project "south" that would help with this, but we're eventually deploying to oracle and cannot rely on it or have the time to extend it to properly work with oracle.
how do you manage patch queues in git? we need them because we are constantly backporting to different versions of our app. branches will mean n merges for n versions. stacked git? or is there a git native way to manage the same?
what about something like tortoisehg? gitk is pretty crude in comparison.
i assume one can glue a diff/merge tool like meld. is the experience similar when resolving conflicts?
thanks for any feedback.
i don't know about git reset, but everything you mentioned before can be done with mercurial (mq, histedit, ...)
in all fairness, there is stacked git. go crazy.
you can re-write history in mercurial too - with the same obvious implications for both.
one thing that did go away with Hg was the need to merge unfamiliar code because someone upstream did a git-rebase.
watch this video: http://video.google.com/videoplay?docid=-1424079446171087119..., it's only :45 or so.
read these - take the day off and read them if you need to:
http://www.amazon.com/Full-Catastrophe-Living-Wisdom-Illness...
http://www.amazon.com/Mindful-Way-through-Depression-Unhappi...
the floating opera - barth
something like:
(defdata mountain name :setter :getter latitude :getter etc ...)
might not be too hard to implement on top of clos (or on top of defstruct - but clos has the advantage of already having flexible accessors) not sure about clojure.
(defun all (test seq)
(funcall (notfn #'some) (complement (testify test)) seq))
doesn't seem that bad. (defmacro deftable (name)
`(progn
(defparameter ,name (make-hash-table))
(defun ,name (k)
(gethash k ,name))
(defsetf ,name (k) (v)
`(setf (gethash ,k ,',name) ,v))))
now you can do:
(deftable client), which creates the hashtable, and then(client 'phone) will retrieve the value,
(setf (client 'phone) '4444444) will set the value.
(flet ((make-random-move (rankf)
(loop for place in places
for rank = (funcall rankf place)
collect (cons place rank) into ranks
sum rank into ranks-total
finally (loop with r = (if (zerop ranks-total) -1
(random ranks-total))
for (place . rank) in (shuffle ranks)
sum rank into current-ranks-total
when (< r current-ranks-total)
do (cond ((and (eq place ahead) (move ant)))
((eq place ahead-left)
(turn ant -1))
((eq place ahead-right)
(turn ant +1)))))))
(if (ant-food ant)