小编Car*_*ate的帖子

如何使用JS加载另一个html文件

我正在尝试创建一个网站,我正在试图找出如何加载页面.

例如:

单击导航器"Home"然后单击屏幕底部它会加载一个页面女巫文本,例如"Hello Word!".

有谁知道该怎么办?我很确定它涉及JavaScript.

javascript

8
推荐指数
1
解决办法
5万
查看次数

为什么python/numpy + =改变原始数组?

import numpy as np

W = np.array([0,1,2])
W1 = W
W1 += np.array([2,3,4])
print W

W = np.array([0,1,2])
W1 = W
W1 = W1 + np.array([2,3,4])
print W
Run Code Online (Sandbox Code Playgroud)

上面的代码会发生变异W,但较低的代码不会发生变异W.为什么?

python numpy

8
推荐指数
2
解决办法
5396
查看次数

GCC:指定的边界取决于源参数的长度

以下代码:

while (node)
{
    if (node->previous== NULL) break;
    struct Node* prevNode = node->previous;
    len = strlen(prevNode->entity);
    //pp is a char* fyi
    pp-=len;
    strncpy(pp, prevNode->entity, len+1);
    *(--pp) = '/';
    node = prevNode;
}
Run Code Online (Sandbox Code Playgroud)

在 GCC 中生成以下警告/错误(我将所有警告视为错误):

../someFile.C:1116:24: error: 'char* strncpy(char*, const char*, size_t)' specified bound depends on the length of the source argument [-Werror=stringop-overflow=]
 1116 |                 strncpy(pp, prevNode->entity, len+1);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../someFile.C:1114:29: note: length computed here
 1114 |                 len = strlen(prevNode->entity);
      |                       ~~~~~~^~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

为什么 GCC 给我一个警告?依赖缓冲区大小的源参数大小有什么问题?有人可以举例说明这可能导致什么问题吗?代码做了它应该做什么我只是好奇为什么我会收到警告。

c++ gcc

8
推荐指数
1
解决办法
6987
查看次数

Haskell在(理论上)不应该出现的情况下陷入僵局

以下产生死锁错误消息(*异常:线程在MVar操作中无限期阻塞).我一步一步地想到了,我没有看到这个问题.

  • 在主线程上,创建一个MVar,并将其提供给生成器,在新线程上运行
  • 生产者启动,并在listenOn处阻塞,等待连接
  • 主线程继续进入循环,并阻塞,等待MVar接收某些东西
  • 一旦生产者获得连接,它就会继续进入它的循环,并在从套接字接收到某些内容后,将其放入MVar中

意义(据我所知),它应该最终生产者在MVar中放置一些东西,并且主要等待接收某些东西.

如果因为listenOn没有立即连接而卡住了,我怎么能解决这个问题呢?MVar需要在main中创建,并且在生成器分叉之前,它可以传入.

import Control.Concurrent

import Network
import Network.Socket

import System.IO

getSockInfo :: Socket -> IO String
getSockInfo s = do
        info <- getPeerName s
        return $ case info of
            (SockAddrInet port addr) -> "Addr/Port: " ++ (show addr) ++ " / " ++ (show port)
            (SockAddrInet6 port flow addr scope) ->
                "Addr/Port: " ++ (show addr) ++ " / " ++ (show port) ++ "Flow/Scope: " ++ (show flow) ++ " / " …
Run Code Online (Sandbox Code Playgroud)

networking haskell

7
推荐指数
1
解决办法
186
查看次数

Mustache正在用空字符串替换我的标签

问题

(自发布以来,我已经接近解决它了,但我仍然卡住了.请检查问题末尾的更新).

我有一个使用Mustache.js模板的网站.当站点在本地运行时,它工作正常.加载模板,Mustache用给定数据替换胡须标记,页面按预期呈现.

然而,当从我的(学校)服务器运行该站点时,它产生了一个奇怪的问题.无论出于何种原因,我Mustache.render正在替换模板中的所有胡须标签(如空字符串).显然,这导致我的网站加载非常错误.

我试图用它来诊断它

使用控制台日志记录,我跟踪了加载的模板以及Mustache生成的内容.结果如下:

要插入模板的数据(siteData.json):

{
  "headerClasses":              "mainHeader",
  "headerTitle":                "Uromastyces Fact Site",

  "sideBarClasses":             "mainSideBar",
  "sideBarImgClasses":          "sideBarImage",
  "sideBarImgAlt":              "A Picture of Pascal",
  "sideBarImgSrc":              "../images/pascal-cropped-shrunk.jpg",

  "navBarClassNames":           "navBar",
  "navLinks":                   [
                                    {
                                        "name":     "Home",
                                        "link":     "index.html"
                                    }, {
                                        "name":     "Enclosure",
                                        "link":     "enclosure.html"
                                    }, {
                                        "name":     "Diet",
                                        "link":     "diet.html"
                                    }, {
                                        "name":     "Behavior and Life",
                                        "link":     "behaviorAndLife.html"
                                    }, {
                                        "name":     "About Me",
                                        "link":     "aboutMe.html"
                                    }
                                ],

  "uniqueBodyClasses":          "uniqueBody",
  "uniqueBodyContent":          "DEFAULT UNIQUE BODY",

  "footerClasses":              "mainFooter",
  "authorWrapperClasses":       "footerAuthor footerWrapper",
  "dateModifiedWrapperClasses": "footerModified footerWrapper",

  "authorName": …
Run Code Online (Sandbox Code Playgroud)

javascript jquery html5 mustache

7
推荐指数
1
解决办法
738
查看次数

将字符串编码为图片会导致压缩

我正在开发一个程序,它接受一个字符串,将字符串的每个字符变成一种颜色,然后在图像上从左到右,从上到下绘制颜色.然后可以使用相同的程序对图像进行解码以获得原始消息.举个例子,这里clojure.core编码为图像:

Clojure.core编码为图像

我把它写成一个玩具,但我注意到它产生的图像有一个有趣的属性:它们比原始信息的文本要小.对于clojure.core,它是259kb作为文本,但只有88.9kb作为图像(上图)(两个值都是"磁盘上的大小").为了确保数据不会丢失,我解码了图像,然后收回原始消息.

这怎么可能?我认为图像(png格式)会有标题和其他额外的信息,这会增加大小.

整个clojure.core包含265486个字符(根据Notepad ++),这意味着每个字符基本上占用一个字节.

从使用BufferedImage类(Java),看起来好像颜色存储为4字节整数,所以不应该每个像素需要大约4倍的内存?

以下是它的编码方式:

  1. 弹出字符串的第一个字符

  2. 通过获取它的ASCII值,将其乘以一个大数字(因此它更好地覆盖可能的颜色范围),然后将该数字转换为3位数,基数为256的数字([123 100 200]),将其转换为颜色.

  3. 每个数字被视为红色,绿色和蓝色信道,其被给予BufferedImagesetRGB方法.

  4. 所述position指示器前进,下一个字符被弹出,并重复该过程,直到整个消息进行编码.

这个算法现在有点复杂.@Thumbnail在Code Review上提出了一个更好的方法,但我还没有实现它.由于结果是相同的,这不应该对问题产生影响.

compression encryption bufferedimage clojure

7
推荐指数
1
解决办法
82
查看次数

在可变参数函数中使用recur时出现意外行为

当我需要给递归函数一个可选参数时,我正在为这个挑战写一个答案.我最终得到的东西相当于:

(defn func [a & [b?]]
  (if b?
    b?
    (recur a a)))
Run Code Online (Sandbox Code Playgroud)

我的意图是b?作为一个可选参数.如果没有提供,它将nil通过解构默认为默认.

它没有运行,而是给了我一个错误:

(func 1)
UnsupportedOperationException nth not supported on this type: Long  clojure.lang.RT.nthFrom (RT.java:947)
Run Code Online (Sandbox Code Playgroud)

经过一些调试后,我意识到由于某种原因,rest参数不是我所期望的列表,而只是传递的数字!错误即将发生,因为它试图破坏数字.

我可以通过删除参数列表中的包装器列表来修复它:

(defn func [a & b]
  ...
Run Code Online (Sandbox Code Playgroud)

但这看起来不错.我知道rest参数应该是一个列表,但b实际上只是一个数字.如果我使用"未优化的"递归,它可以像我期望的那样工作:

(defn func2 [a & [b?]]
  (if b?
    b?
    (func2 a a)))

(func2 1)
=> 1
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这里发生了什么?

clojure

7
推荐指数
1
解决办法
106
查看次数

浮动和双重分数?

如果我在ghci中输入":i Double"或":i Float",则表示Double和Float是Fractional的实例.但是在Haskell文档中,它说它们不是.那么他们是不是? http://hackage.haskell.org/package/base-4.9.1.0/docs/Prelude.html#t:Fractional

haskell

6
推荐指数
1
解决办法
368
查看次数

获取原子的状态,并以原子方式重置它

我正在编写一个Mandelbrot Set实现,并且为了加快找出哪些点进入无穷大,我决定尝试使用ExecutorService并行检查点.

基本上该计划是:

  • 计算我需要找到的所有点
  • 给每个点服务
  • 让服务将其结果转储到生成Atom包装a vector
  • 让绘图代码定期获取生成的结果,并清除队列

我的问题是最后一点.我怎样才能安全地从原子中获取先前的结果重置它?

我想到了简单的方法:

(def draw-queue-A (atom []))

(defn grab-and-clear-queue []
  (let [results @draw-queue-A]
    (reset! draw-queue-A [])
    results)) 
Run Code Online (Sandbox Code Playgroud)

但这看起来不安全.如果在取消引用和之间添加了某些内容reset!,它将会丢失.

我此刻已经解决的残暴憎恶是:

(defn grab-and-clear-queue []
  (let [results (atom [])]
    (swap! draw-queue-A
           (fn [res] (reset! results res)
                     []))
    results))
Run Code Online (Sandbox Code Playgroud)

但是使用原子来检索结果似乎很荒谬.

我怎样才能理智地检索原子的内容,重置它而不会丢失任何结果?

atomic clojure

6
推荐指数
2
解决办法
407
查看次数

Clojure-使用Spectre转换嵌套的数据结构,用几个替换一个节点

我正在使用spectre转换Clojure中的嵌套数据结构,但还没有掌握。特别是,我正在尝试创建一个转换,该转换将找到一个与谓词匹配的项(无论深度如何),并将其替换为多个项。

[:top
 [:arbitrary 1 2
  [:nesting
   2
   3
   [:needle] ; <-- the thing to find
   ]]]

-->

[:top
 [:arbitrary 1 2
  [:nesting
   2
   3
   [:n1] [:n2] [:n3]  ; <-- 3 items inserted in the place of 1
   ]]]
Run Code Online (Sandbox Code Playgroud)

我不知道的是如何将替换项拼接到父向量中,即,如何用三个项替换一个项,而不是用包含三个子项的一项替换。

tree transform clojure specter

6
推荐指数
1
解决办法
196
查看次数