<commit_before>#+TITLE: Plan Karma-Vis

1. 静态页面的部署
   1. 搭建 racket server
   2. static-path 和 dispatch 有冲突。。。
   3. 更改 使用servlet的条件 路径在 servlet 之下
   4. 是不是 serve/servlet 函数里面其他关键字的配置有问题？
      要不然为什么一直出现这种 找不到静态路径文件的问题，明明是全部 static 路径下面的文件都找不到。
   5. 进行 dispatch 和 static-files-path 的 测试

      * 测试 静态文件路径 - 2015年03月03日
        * 实现dispatch 调试， 主要的问题还是 static 路径下面的东西加载不进去。。。。
        * 所有的static路径，都被映射到 static/test.html，看来肯定是dispatch 或者是 static的问题。
        * 另外还有文件加载时的路径问题，还没有搞定。data/json的文件都无法加载。
        * 果然 静态文件，不经过 servlet，只是在静态文件里面出现了错误。 静态文件的关联出现问题。
          不对，是到了 dispatch 里面的 else，然后结果就变成 hello world 了，并不是 static 下面的 test.html
          说明， static-path 根本就没有用，或者是servlet-regexp 范围锁定的太大。
          错误原因： extra-files-paths 路径问题，使用错误，或者是因为 servlet-regexp的问题。
          不知道是加载的哪一个 index.html karma-vis/index.html or karma-vis/static/index.html?
          竟然，加载的是 static里面的 index.html 简直是不知道为什么！！！！  这样的话，static/index.html 里面的各静态文件的路径都需要修改。
          当修改 static/index.html 里面的相对路径以后，可以正确显示静态文件。关键是，这个时候，我还把 servlet-regexp给关闭了。
          如果打开的话？
            默认主页是 karma-vis/index.html, 说明 dispatch 将 static的东西给覆盖掉了。
        * When you use web-server/dispatch with servle/servlet, you almost always want to use the #:servlet-regexp argument with the value "" to capture all top-level requests. However, make sure you don't include an "else" in your rules if you are also serving static files, or else the filesystem server will never see the requests.


1. data json的部署

   1. 几个函数的实现。get-relation/get-karma/set-relation/set-karma
      主要是数据类型之间的换算，首先是将 .json 文件加载到内存中，如果有修改，就回写到文件中，如果没有，就还是原来的。前端使用form来修改set-karma 数据，对于relation数据，先不进行。先修改 karma 数据。 先对前端中的js进行修改实现再说。
      进行加载的时候，还是按照原来的方式进行加载，只是在set-karma的时候，需要后端可以进行修改到file中。

   2. 使用ajax更新json到后端。在 bootbox中使用 ajax 同步json数据。 需要有两部分的修改，第一是svg里面的这个node的karma数据，第二个就是js中的这个总体的karma值. karma 中混合了一些杂乱的属性，并不是纯正的json，需要对其进行修改。
    karma中的version 有两种，一种是正，一种是负，所以，要区分一下，再进行更新。
    返现 ajax post 不行的原因是 我使用的 racket web server 的 dispatch-values API 不够熟悉，今天将 dispatch 测试程序完成，并将 karma 传递到后端。
    添加 #:method "post" 到 dispatch-values 里面，使得对于 set-karma 的请求可以通过 dispatch-values 分发到 set-karma servlet 上面。
   3. 最后更新前端传递过来的的 JSon 数据到Json文本中
      使用 racket json 来写入json 文件中。
      出现两种错误：其一： 写回后端的 JSon 数据和原来的JSon数据不同，写回的数据是一个对象（对象的每个属性分别为 0，1，2... 的属性名），而原来的数据是一个数组。
      其二： racket json 写回的时候，出现问题。
    先解决第二个，然后再js中修缮第一个问题。
      第一个问题是由 racket 路径 (current-directory) 引起的，现在已经修改完成，然后又引入了一个新的问题： 写回的数据是乱码，可能是因为 post-data 是 bytes 类型的数据引起的，现在使用 bytes->string/utf-8 进行修改。 果然是这个原因引起的乱码，现在已经修改完成。

      现在只剩下第二个问题，也就是，将 js 传递到后端的json数据进行修改，将 js object 修改成 js array。
      对于生成的 karma.json 还有一点问题，现在是按照 string 的方式，将数据写入的，所以形成的格式，还是不行，现在要将 string转换成 js-expr，然后再写入进去。
      对于json的读写，要使用 write-json 而不是 write string 的形式。

2. JS前端的优化
<commit_msg>relation d3.js interaction<commit_after>#+TITLE: Plan Karma-Vis

1. 静态页面的部署
   1. 搭建 racket server
   2. static-path 和 dispatch 有冲突。。。
   3. 更改 使用servlet的条件 路径在 servlet 之下
   4. 是不是 serve/servlet 函数里面其他关键字的配置有问题？
      要不然为什么一直出现这种 找不到静态路径文件的问题，明明是全部 static 路径下面的文件都找不到。
   5. 进行 dispatch 和 static-files-path 的 测试

      * 测试 静态文件路径 - 2015年03月03日
        * 实现dispatch 调试， 主要的问题还是 static 路径下面的东西加载不进去。。。。
        * 所有的static路径，都被映射到 static/test.html，看来肯定是dispatch 或者是 static的问题。
        * 另外还有文件加载时的路径问题，还没有搞定。data/json的文件都无法加载。
        * 果然 静态文件，不经过 servlet，只是在静态文件里面出现了错误。 静态文件的关联出现问题。
          不对，是到了 dispatch 里面的 else，然后结果就变成 hello world 了，并不是 static 下面的 test.html
          说明， static-path 根本就没有用，或者是servlet-regexp 范围锁定的太大。
          错误原因： extra-files-paths 路径问题，使用错误，或者是因为 servlet-regexp的问题。
          不知道是加载的哪一个 index.html karma-vis/index.html or karma-vis/static/index.html?
          竟然，加载的是 static里面的 index.html 简直是不知道为什么！！！！  这样的话，static/index.html 里面的各静态文件的路径都需要修改。
          当修改 static/index.html 里面的相对路径以后，可以正确显示静态文件。关键是，这个时候，我还把 servlet-regexp给关闭了。
          如果打开的话？
            默认主页是 karma-vis/index.html, 说明 dispatch 将 static的东西给覆盖掉了。
        * When you use web-server/dispatch with servle/servlet, you almost always want to use the #:servlet-regexp argument with the value "" to capture all top-level requests. However, make sure you don't include an "else" in your rules if you are also serving static files, or else the filesystem server will never see the requests.


1. karma json的部署

   1. 几个函数的实现。get-relation/get-karma/set-relation/set-karma
      主要是数据类型之间的换算，首先是将 .json 文件加载到内存中，如果有修改，就回写到文件中，如果没有，就还是原来的。前端使用form来修改set-karma 数据，对于relation数据，先不进行。先修改 karma 数据。 先对前端中的js进行修改实现再说。
      进行加载的时候，还是按照原来的方式进行加载，只是在set-karma的时候，需要后端可以进行修改到file中。

   2. 使用ajax更新json到后端。在 bootbox中使用 ajax 同步json数据。 需要有两部分的修改，第一是svg里面的这个node的karma数据，第二个就是js中的这个总体的karma值. karma 中混合了一些杂乱的属性，并不是纯正的json，需要对其进行修改。
    karma中的version 有两种，一种是正，一种是负，所以，要区分一下，再进行更新。
    返现 ajax post 不行的原因是 我使用的 racket web server 的 dispatch-values API 不够熟悉，今天将 dispatch 测试程序完成，并将 karma 传递到后端。
    添加 #:method "post" 到 dispatch-values 里面，使得对于 set-karma 的请求可以通过 dispatch-values 分发到 set-karma servlet 上面。

   3. 最后更新前端传递过来的的 JSon 数据到Json文本中
      使用 racket json 来写入json 文件中。
      出现两种错误：其一： 写回后端的 JSon 数据和原来的JSon数据不同，写回的数据是一个对象（对象的每个属性分别为 0，1，2... 的属性名），而原来的数据是一个数组。
      其二： racket json 写回的时候，出现问题。
    先解决第二个，然后再js中修缮第一个问题。
      第一个问题是由 racket 路径 (current-directory) 引起的，现在已经修改完成，然后又引入了一个新的问题： 写回的数据是乱码，可能是因为 post-data 是 bytes 类型的数据引起的，现在使用 bytes->string/utf-8 进行修改。 果然是这个原因引起的乱码，现在已经修改完成。

      现在只剩下第二个问题，也就是，将 js 传递到后端的json数据进行修改，将 js object 修改成 js array。
      对于生成的 karma.json 还有一点问题，现在是按照 string 的方式，将数据写入的，所以形成的格式，还是不行，现在要将 string转换成 js-expr，然后再写入进去。
      对于json的读写，要使用 write-json 而不是 write string 的形式。

2. relation 前端交互优化

   1. d3.js 中 实现 两个元素拖动交互
      当 拖动一个 x-node 到一个 y-node 上的时候，弹出对话框，对两者的关系进行编辑。如果有关系，可以删除，如果没有关系，可以添加。以及显示两者之间的对比度。

3. relation json 部署

{'fraction_non_alphanumeric': 0.08009751001218875, 'fraction_numerical': 0.008706251088281386, 'mean_word_length': 3.8554522400676245, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1720637', 'n_tokens_mistral': 3359, 'n_tokens_neox': 3649, 'n_words': 520}