{
  localUrl: '../page/6mk.html',
  arbitalUrl: 'https://arbital.com/p/6mk',
  rawJsonUrl: '../raw/6mk.json',
  likeableId: '3911',
  likeableType: 'page',
  myLikeValue: '0',
  likeCount: '4',
  dislikeCount: '0',
  likeScore: '4',
  individualLikes: [
    'AlexeiAndreev',
    'EricBruylant',
    'KevinClancy',
    '8xl'
  ],
  pageId: '6mk',
  edit: '24',
  editSummary: '',
  prevEdit: '23',
  currentEdit: '24',
  wasPublished: 'true',
  type: 'wiki',
  title: 'Geometry of vectors: direction',
  clickbait: 'What rotation would it take to line up this vector to this one?',
  textLength: '14585',
  alias: '6mk',
  externalUrl: '',
  sortChildrenBy: 'likes',
  hasVote: 'false',
  voteType: '',
  votesAnonymous: 'false',
  editCreatorId: 'AdeleLopez',
  editCreatedAt: '2017-01-13 07:12:16',
  pageCreatorId: 'AdeleLopez',
  pageCreatedAt: '2016-11-30 04:23:45',
  seeDomainId: '0',
  editDomainId: '122',
  submitToDomainId: '0',
  isAutosave: 'false',
  isSnapshot: 'false',
  isLiveEdit: 'true',
  isMinorEdit: 'false',
  indirectTeacher: 'false',
  todoCount: '0',
  isEditorComment: 'false',
  isApprovedComment: 'true',
  isResolved: 'false',
  snapshotText: '',
  anchorContext: '',
  anchorText: '',
  anchorOffset: '0',
  mergedInto: '',
  isDeleted: 'false',
  viewCount: '23',
  text: 'To understand geometry of vectors, we need a good way to compare directions, and a way to rotate vectors. It was hard to find a good way to algebraically represent differences between directions, and rotations. Lots of cumbersome and complicated formulas and methods were developed – which you may have suffered through in a high-school trigonometry class – before we finally found a clean and powerful way of thinking about it, that is also much more intuitive! \n\nThis article is a introduction to the important concepts and ideas for handling vector directions, with lots of visual representations of them. This will help us understand the pieces that go into the [geometric_product geometric product], which is a powerful way to manipulate these concepts algebraically. In turn, having the geometric product at hand will allow us to gain a more substantial understanding of the ideas introduced here. %note: Note that we are not using angles in this page, which is the typical way of thinking about the directions of vectors. Instead, we are using a closely related, but different, concept called a bivector. Bivectors allow us to see deeper facts about rotations more easily than angles will, and when the time is right, we will see exactly how angles fit in with the concepts presented here.% \n\n# Comparing direction\nWhat would it take to change the direction of $\\mathbf a$ to match the direction of $\\mathbf b$?  We want our answer to be specific enough that we could use it to tell our friend exactly how to make the same change in direction. \n\n![two vectors](http://imgur.com/hmhkehJ.png)\n\nIt should not depend on the size of the vectors:\n\n![resized a and b](http://imgur.com/mVMGxXP.png)\n\nIt should also be the same for vectors which have been rotated in the same direction:\n\n![two vectors, rotated](http://imgur.com/oL0KqwT.png)\n\nAnd it should be able to work for vectors in three (or more) dimensions. So you should be able to tell your friend whether you want to change the direction of $\\mathbf x$ to match $\\mathbf y$, or to match $\\mathbf z$:\n\n![x y z basis](http://imgur.com/538E8Q0.png)\n\nTry thinking of a way to communicate this yourself before moving on.\n\n%%hidden(Angle?):\nAn angle is a good way to describe the _size_ of the difference between the directions of the two vectors, but by itself it is missing information about _which way_ you would need to turn it to get the vectors to match. In two dimensions you can get away with using negative angles to represent this, but in three (or more) dimensions, it becomes clear that an angle by itself will not work.\n\n![many right angles in 3d](http://imgur.com/PUC5ZvQ.png)\n%%\n\n%%hidden(Show solution):\nWe need to keep track of three things: the size of the turn we would need, the plane in which the turn takes place, and which way to turn it within the plane. Sound familiar? Considering the plane together with the direction of the turn in the plane as a 2-dimensional direction, we can make a [6lq vector]! Here's a picture of one to describe the difference in direction from $\\mathbf a$ to $\\mathbf b$:\n\n![bivector examples](http://imgur.com/XLtNeNw.png)\n\nThis is a different kind of vector from our vectors $\\mathbf a$ and $\\mathbf b$, so to keep things from getting confusing, we will call the new kind of vector a **bivector**. Since bivectors are a kind of vector, we can describe a bivector exactly by describing it in terms of a basis for bivector space! We'll see how all of this works below.\n%%\n\n## Bivectors\nSo how do bivectors work? A bivector is a new type of vector. Its size is its area, and its direction is a two-dimensional sort of direction that determines its orientation in space, along with which way it turns things. \n\n![basic bivector](http://imgur.com/A7b9ZpH.png)\n\nThe bivector $\\mathbf B$ lies in the plane of your screen, and has a counter-clockwise orientation (i.e. it moves things in the opposite way that the hands of a clock move). We usually use a bold, upper-case letter for bivectors.\n\nBivectors are particularly important in three-dimensions, where there are many more directions that they could have:\n\n![three dimensional examples](http://imgur.com/nG251pE.png)\n\nThe size of a bivector is its area, so the unit bivector has the area of a square with unit length sides: \n\n![unit bivector](http://imgur.com/5CemfIY.png)\n\nWe'll usually use $\\mathbf I$ to write a unit bivector. \n\nThe negative of a bivector is a bivector with the same size and which lies in the same plane, but which turns things the opposite way. You can think of it like flipping a piece of paper over:\n\n![negative bivector](http://imgur.com/WvHa5Af.png)\n\n\nAs with all types of vectors, the size and direction of a bivector are all there is to it! This means that bivectors do not have positions or shapes, since we do not keep track of that information anywhere. So since these bivectors have the same direction, and both have area 1, these are both the same bivector:\n\n![square and circle unit bivector](http://imgur.com/f0kH9Rb.png)\n\nSimilarly, rotating a bivector without changing the plane it lies in doesn't change it since its size and direction remain the same. So this bivector stays the same even though we're shaking it around:\n\n![rotating bivector gif](http://imgur.com/XjY8Oyd.png)\n\nWe can add two bivectors to get another bivector. This is one place where doing things algebraically helps us a lot – it is kinda hard to visualize what the new bivector will look like. Here is one way to do it:\n\n![3d sum of bivectors](http://imgur.com/tRQQbFB.png)\n\nWhen two bivectors have the same (or opposite) direction though, it's a lot easier: addition can be done just by adding (or subtracting) the sizes of the two bivectors:\n\n![2d sum of bivectors](http://imgur.com/ID1MWeZ.png)\n\nThis is just the distributive law for scalars over vectors (in this case, bivectors) – can you see why?\n\n### Bivector basis\n\nIf we have a basis of ordinary vectors, we can use these to create a basis for the bivectors that would be needed for vectors in that space. For any pair of basis vectors, we can use the bivector that describes the difference in direction of those two vectors.  \n\nIn three dimensions, there are three possible pairs: $(\\mathbf {x},\\mathbf{y})$, $(\\mathbf{y},\\mathbf{z})$, and $(\\mathbf{x},\\mathbf{z})$. Here's the normalized basis we can construct from these pairs:\n\n![3d bivector basis](http://imgur.com/CHyZVN3.png)\n\nIn two dimensions, there is only one pair $(\\mathbf {x},\\mathbf{y})$, and the space of bivectors is one-dimensional:\n\n![2d bivector basis](http://imgur.com/en8e2Qu.png)\n\nHow many dimensions does bivector space have for for vectors in 4-dimensions?\n\n%%hidden(Answer):\nIt has 6-dimensions. If the basis for ordinary vectors in 4-dimensions is $\\mathbf w$, $\\mathbf x$, $\\mathbf y$, $\\mathbf z$, then the basis for the bivectors will be the bivectors for each of the pairs: $(\\mathbf{w},\\mathbf{x})$, $(\\mathbf{w},\\mathbf{y})$, $(\\mathbf {w},\\mathbf{z})$, $(\\mathbf{x},\\mathbf{y})$, $(\\mathbf{x},\\mathbf{z})$, and $(\\mathbf{y},\\mathbf{z})$. \n\nThe fact that it didn't have 4-dimensions, the way that the space of bivectors is 3-dimensional for vectors in 3-dimensions, confused mathematicians for a long time. In fact, while I was working on my math degree, I was taught that there was something special about three dimensions that made rotations work nicely in a way that just wasn't possible in other dimensions. %note: What made it hard was that these mathematicians didn't have a concept of a bivector, and so they were trying to fit the same information that goes into a bivector into an ordinary vector. This works fine for three-dimensions, using the [cross product](https://en.wikipedia.org/wiki/Cross_product), but not so well for other dimensions.%\n\nWe now know that that's not true, and in geometric algebra, rotations work about as nicely for any dimension! The only thing that makes things tricky still is that we can't rely on our intuition for 4 or more dimensions the way we can for 2 and 3 dimensions – we have to trust the algebra to get things right.\n%%\n\n-----\n\nNow that we know about bivectors, lets go back to seeing how we can use them to describe differences in direction. We can visualize the difference in direction between two vectors $\\mathbf a$ and $\\mathbf b$ by normalizing them, adding them both to the same point, and then using the area swept out by rotating one to match the other one. This area is what we'll use for the size of the bivector that represents the difference between these two directions. \n\n![bivector recipe](http://imgur.com/t8rLHpk.png)\n\nThe direction of the bivector will be the direction it would take to turn vector $\\mathbf a$ to match the direction of $\\mathbf b$. If we reverse the order, to describe the difference in direction from $\\mathbf b$ to $\\mathbf a$, then we'll use a bivector with the reverse direction:\n\n![reverse bivector](http://imgur.com/yPICud9.png)\n\n\nWe use the sizes of bivectors to describe how much of a rotation is needed. The most natural value to use is just the area of the piece of the unit circle. The unit circle has area $\\pi$ (about $3.14$): \n\n![unit circle](http://imgur.com/XR0XBZF.png) \n\nSo we can use fractions of $\\pi$ to say what fraction of a full turn is needed. %note: But isn't this half of what it should actually be?!? Well, it's true that the equivalent angle has a value (in radians) equal to twice the area of the bivector. While radians measure the _length_ of the arc swept out, bivectors measure the _area_ swept out – so rest assured that this is actually the right way to do it.% Here's a bivector with an area one-sixth of that of the unit circle:\n\n![wedge bivector](http://imgur.com/w7UFxdE.png)\n\nA special amount of direction change is given by a bivector of size $\\frac{\\pi}{2}$. This bivector represents the difference in direction between a vector and its reverse:\n\n![bivector for vector and reverse](http://imgur.com/wBq5xX7.png)\n\nOne interesting property is that _any_ bivector with size $\\frac{\\pi}{2}$ will represent this difference in direction. A similar thing happens for bivectors of size $0$ or size $\\pi$ – any bivector of these sizes represents vectors with _no_ difference in their direction, i.e. **parallel** vectors. \n\nEven though vectors with opposite directions have the biggest possible difference in direction, it's still not going in a completely _new_ direction, it is just going backwards from the original direction. There's another special size bivectors can have, which represents a change to a completely _new_ direction, equally far from both the original vector and its reverse. This size is $\\frac{\\pi}{4}$:\n\n![quarter turn](http://imgur.com/lNL4HHS.png)\n\n There are lots of words for vectors that differ by a bivector of this size: we can say that the vectors are at **right angles** to each other, **perpendicular**, or **orthogonal**. \n\n# Rotating vectors\n\nWhen applied to vectors, scalars represent different [3t9 actions] we can do to a vector: the act of stretching a vector, or shrinking one, or reversing one, or erasing one, or leaving it alone.\n\n![gifs for all of these](http://imgur.com/RDLc7Gl.gif)\n\nWe can depict scalar actions algebraically simply by multiplying the scalar to the vector. \n \nRotation is another action we can apply to vectors. Things that rotate other things are called **rotors**:\n\n![gif for rotor action](http://imgur.com/zUwj1cF.png)\n\nWe usually will use a capital $R$ to write a rotor. Since bivectors can describe differences in direction, we can also use them to describe rotors. To make a rotor from the bivector $\\mathbf B$, we use the letter $e$, like this: $R = e^{\\mathbf B}$.  %note: If you are familiar with [exponent exponents], you might notice that this is the same as exponential notation. We'll later see that there is a deep connection between rotors and exponents, which is the reason we use this notation!% Here are some examples of different bivectors, the rotors we make from them, and the action of the rotors on the same initial vector:\n\n![rotor examples different bivectors](http://imgur.com/etRUSGR.gif)\n\nThe same rotor can also act on different vectors, even vectors that don't lie in the same plane as the bivector. Sometimes, the action of the rotor on a certain vector is to do nothing at all!\n\n![rotor action examples using exponential rotation (gifs)](http://imgur.com/NgDtise.gif)\n\nThe reason we don't use bivectors directly to represent rotors is that the rules for combining rotors are different from the rules for combining bivectors (which are just the [-6lq] rules). It doesn't make sense to use some sort of bivector multiplication, because if we have two rotors in the same direction, the size of the bivector for the combined rotor is the _sum_ of the sizes of the bivectors for the two rotors, and not the product. \n\n![rotor bivector sum](http://imgur.com/xVNuf2U.png)\n\nAnd it can't be bivector addition, since rotors are non-commutative:\n\n![non commutative gif](http://imgur.com/vco4VnQ.png)\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 \nIn order to depict how rotor actions work algebraically, we'll first need to develop the [geometric_product geometric product]. In fact, getting rotors to work algebraically is an important part of what led to the development of the geometric product in the first place! \n\n-----\nWe're really close to having a basic grasp of all the ideas that go into the geometric product!  We've learned in this page about the geometry of vector directions; the last thing we'll need is a geometric understanding of how the _sizes_ of different vectors relate to each other. \n\nOnce we have the geometric product, we'll be able to take a deeper look at how rotors work.\n\n\n\n',
  metaText: '',
  isTextLoaded: 'true',
  isSubscribedToDiscussion: 'false',
  isSubscribedToUser: 'false',
  isSubscribedAsMaintainer: 'false',
  discussionSubscriberCount: '1',
  maintainerCount: '1',
  userSubscriberCount: '0',
  lastVisit: '',
  hasDraft: 'false',
  votes: [],
  voteSummary: 'null',
  muVoteSummary: '0',
  voteScaling: '0',
  currentUserVote: '-2',
  voteCount: '0',
  lockedVoteType: '',
  maxEditEver: '0',
  redLinkCount: '0',
  lockedBy: '',
  lockedUntil: '',
  nextPageId: '',
  prevPageId: '',
  usedAsMastery: 'false',
  proposalEditNum: '0',
  permissions: {
    edit: {
      has: 'false',
      reason: 'You don't have domain permission to edit this page'
    },
    proposeEdit: {
      has: 'true',
      reason: ''
    },
    delete: {
      has: 'false',
      reason: 'You don't have domain permission to delete this page'
    },
    comment: {
      has: 'false',
      reason: 'You can't comment in this domain because you are not a member'
    },
    proposeComment: {
      has: 'true',
      reason: ''
    }
  },
  summaries: {},
  creatorIds: [
    'AdeleLopez'
  ],
  childIds: [],
  parentIds: [
    'geometric_algebra'
  ],
  commentIds: [],
  questionIds: [],
  tagIds: [],
  relatedIds: [],
  markIds: [],
  explanations: [],
  learnMore: [],
  requirements: [
    {
      id: '6675',
      parentId: 'vector_arithmetic',
      childId: '6mk',
      type: 'requirement',
      creatorId: 'AdeleLopez',
      createdAt: '2016-11-27 20:40:48',
      level: '2',
      isStrong: 'true',
      everPublished: 'true'
    }
  ],
  subjects: [],
  lenses: [],
  lensParentId: '',
  pathPages: [],
  learnMoreTaughtMap: {},
  learnMoreCoveredMap: {},
  learnMoreRequiredMap: {},
  editHistory: {},
  domainSubmissions: {},
  answers: [],
  answerCount: '0',
  commentCount: '0',
  newCommentCount: '0',
  linkedMarkCount: '0',
  changeLogs: [
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21663',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '24',
      type: 'newEdit',
      createdAt: '2017-01-13 07:12:16',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21662',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '23',
      type: 'newEdit',
      createdAt: '2017-01-13 07:03:43',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21661',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '22',
      type: 'newEdit',
      createdAt: '2017-01-13 05:51:59',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21660',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '21',
      type: 'newEdit',
      createdAt: '2017-01-13 05:20:26',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21659',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '20',
      type: 'newEdit',
      createdAt: '2017-01-13 04:53:27',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21650',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '19',
      type: 'newEdit',
      createdAt: '2017-01-12 08:55:47',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21649',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '18',
      type: 'newEdit',
      createdAt: '2017-01-12 08:53:45',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21648',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '17',
      type: 'newEdit',
      createdAt: '2017-01-12 08:42:49',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21646',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '16',
      type: 'newEdit',
      createdAt: '2017-01-12 08:04:00',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21641',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '15',
      type: 'newEdit',
      createdAt: '2017-01-12 06:19:42',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21603',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '14',
      type: 'newEdit',
      createdAt: '2017-01-11 08:22:36',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21572',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '13',
      type: 'newEdit',
      createdAt: '2017-01-10 07:49:52',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21571',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '12',
      type: 'newEdit',
      createdAt: '2017-01-10 05:11:09',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21313',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '11',
      type: 'newEdit',
      createdAt: '2017-01-04 06:12:13',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21237',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '10',
      type: 'newEdit',
      createdAt: '2017-01-03 04:28:45',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21224',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '9',
      type: 'newEdit',
      createdAt: '2017-01-02 07:33:53',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21221',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '8',
      type: 'newEdit',
      createdAt: '2017-01-02 02:29:27',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21218',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '7',
      type: 'newEdit',
      createdAt: '2017-01-02 02:14:13',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21202',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '6',
      type: 'newEdit',
      createdAt: '2017-01-01 19:47:47',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21201',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '5',
      type: 'newEdit',
      createdAt: '2017-01-01 02:38:10',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21200',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '4',
      type: 'newEdit',
      createdAt: '2016-12-31 22:47:20',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '21184',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '3',
      type: 'newEdit',
      createdAt: '2016-12-31 05:53:33',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '20506',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '0',
      type: 'newParent',
      createdAt: '2016-11-30 04:23:47',
      auxPageId: 'geometric_algebra',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '20504',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '0',
      type: 'newRequirement',
      createdAt: '2016-11-30 04:23:46',
      auxPageId: 'vector_arithmetic',
      oldSettingsValue: '',
      newSettingsValue: ''
    },
    {
      likeableId: '0',
      likeableType: 'changeLog',
      myLikeValue: '0',
      likeCount: '0',
      dislikeCount: '0',
      likeScore: '0',
      individualLikes: [],
      id: '20503',
      pageId: '6mk',
      userId: 'AdeleLopez',
      edit: '1',
      type: 'newEdit',
      createdAt: '2016-11-30 04:23:45',
      auxPageId: '',
      oldSettingsValue: '',
      newSettingsValue: ''
    }
  ],
  feedSubmissions: [],
  searchStrings: {},
  hasChildren: 'false',
  hasParents: 'true',
  redAliases: {},
  improvementTagIds: [],
  nonMetaTagIds: [],
  todos: [],
  slowDownMap: 'null',
  speedUpMap: 'null',
  arcPageIds: 'null',
  contentRequests: {}
}