我浏览一个简单的,完全REST API的好例子,但无济于事.检查stackoverflow也是如此.我见过的最好的就是这篇文章.尽管如此,我仍然没有明白这一点.让我们举一个我们都知道的应用程序的例子:维基百科.
假设我们要为维基百科创建REST API.我们期待以下动词:
GET /wiki/Article_name: obtains a specified page
DELETE /wiki/Article_name: deletes the page
POST /wiki/Article_name: creates a new page
PUT /wiki/Article_name: updates a page.
Run Code Online (Sandbox Code Playgroud)
事实是:当您在浏览器中使用维基百科时,您不使用REST界面进行导航.我很确定当你更新页面时,你永远不会使用PUT(虽然你在技术上创建了一个新版本的页面,所以POST很有意义).同样,当您删除页面时,浏览器不会发送DELETE.
我的问题是:
我有一个正在开发的包.此软件包已作为驻留在site-packages目录中的egg文件安装,egg path添加到easy-install.pth.
我现在意识到我的包中有一个bug,所以我调用python setup.py develop了挂钩开发目录.source dir的路径已正确添加到easy-install.pth,但它已添加到最新版本,这意味着将首先选择并导入已安装的egg import mypackage.
如何让开发挂钩覆盖已安装的包?
最后,如果我做错了,请解释一下解决这个用例的正确策略是什么.
我正在尝试从devel分支到主服务器的合并壁球.
stefanos-imac:trunk borini$ git merge --squash devel
CONFLICT (content): Merge conflict in test1
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your merge.renamelimit variable to at least 2224 and retry the command.
Squash commit -- not updating HEAD
Automatic merge failed; fix conflicts and then commit the result.
Run Code Online (Sandbox Code Playgroud)
很公平.
stefanos-imac:trunk borini$ git config merge.renameLimit 999999
Run Code Online (Sandbox Code Playgroud)
然后我尝试撤消合并并用更高的限制重做它
stefanos-imac:trunk borini$ git merge --abort
fatal: There is no merge to abort (MERGE_HEAD missing).
Run Code Online (Sandbox Code Playgroud)
好吧,也许我必须按照它说的做,只需重新调用merge命令 …
我需要一个具有以下行为的列表
>>> l = SparseList()
>>> l
[]
>>> l[2] = "hello"
>>> l
[ None, None, "hello"]
>>> l[5]
None
>>> l[4] = 22
>>> l
[ None, None, "hello", None, 22]
>>> len(l)
5
>>> for i in l: print i
None
None
"hello"
None
22
Run Code Online (Sandbox Code Playgroud)
虽然它可以通过字典"模拟",但它并不完全相同.numpy数组可以这样做,但我不想导入整个numpy这样的东西.在自己编码之前,我会问标准库中是否存在类似的东西.
我对jQuery和Yahoo UI API之间的设计差异感到困惑.免责声明:我非常不喜欢jQuery api,但我对网络编程和javascript一般都是一个无知的人,所以我可能会出错,并回到这里乞求兑换.太长...
我的问题如下.这两种设计是不同的.jQuery将DOM置于中心,并通过在其上执行"触发器"增强器方法来装饰DOM.例
$("#flexigrid").flexigrid()
Run Code Online (Sandbox Code Playgroud)
jQuery的一个要求是,在某些情况下,你必须事先遵循一个非常具体的传统结构.例:
<div id="accordion">
<h3><a href="#">First header</a></h3>
<div>First content</div>
<h3><a href="#">Second header</a></h3>
<div>Second content</div>
</div>
Run Code Online (Sandbox Code Playgroud)
然后
$("#accordion").accordion();
Run Code Online (Sandbox Code Playgroud)
此外,返回的实体通常不提供任何通过方便的编程方法隐藏DOM的机制.要操纵您的jQuery实体,您必须通过选择器访问DOM,在某些情况下访问不能保证很容易知道,就像内部生成的ID一样.假设你想以编程方式交换手风琴,你所做的就是
$('#accordion').accordion('option', 'active', 2);
Run Code Online (Sandbox Code Playgroud)
而不是更直观
myAccordion.setActiveTab(2);
Run Code Online (Sandbox Code Playgroud)
另一方面,雅虎ui专注于javascript对象,你创建它们传递DOM节点选择器(例如myDataTable = new YAHOO.widget.DataTable("container_id")),然后通过对象方法执行所有操作.想要添加新行吗?打电话myDataTable.addRow().DOM是隐藏的.你并不关心幕后发生的事情.
现在,我对Trolltech QT的体验很好地映射到了Yahoo UI.窗口小部件对象的清晰,定义的API,通过继承重新实现其中一部分的最终自由,不透明渲染,除非您想打开盒子并弄脏手.QT是一个成功的API,运行良好,易于使用,Yahoo UI在设计风格上有点类似.另一方面,jQuery以违反直觉(对我来说)的方式工作,非常开放的方式,在其对象上减少了API.
足够的咆哮.关键是我认为我可能在这方面做错了,但我想知道为什么.拥有类似jQuery的界面有哪些设计优势(DOM显然暴露在外,你可能不得不寻找jQuery插件自动创建的东西,所以你最终可以$(选择)它们并附加事件或修改它们的内容)而不是像YUI那样隐藏物品和商品方法背后的一切?
我不是在谈论速度,代码大小或打字数量.我在谈论封装,专注于接口和易于访问等设计概念.什么设计更好,在什么情况下,为什么?
在调用时ls,我希望文件名具有不同的颜色,具体取决于它们的subversion状态.例如,添加的文件将为青色,修改后的文件为红色,依此类推.是否有可能用bash的力量?在这方面有什么准备好了吗?
如果我调用
Rscript -e "print('hello')"
Run Code Online (Sandbox Code Playgroud)
它正确打印出答案
[1] "hello"
Run Code Online (Sandbox Code Playgroud)
但是,如果我切换单引号和双引号,则不起作用,并且看起来双引号被删除了:
Rscript -e 'print("hello")'
Run Code Online (Sandbox Code Playgroud)
给出:
Error in print(hello) : object 'hello' not found
Execution halted
Run Code Online (Sandbox Code Playgroud)
请注意,它不是 powershell 错误地进行转义。Echoing 只给出预期的结果:
PS> echo 'print("hello")'
print("hello")
PS> echo "print('hello')"
print('hello')
Run Code Online (Sandbox Code Playgroud)
在 macOs 或 Linux 上没有观察到相同的行为,这两种变体都被正确解析。
有趣的是,command.com 更疯狂:
C:>Rscript -e "print('hello')"
[1] "hello"
C:>Rscript -e 'print("hello")'
[1] "print(hello)"
Run Code Online (Sandbox Code Playgroud)
我的意思是……什么?!?这已经在这里提到了:
但没有关于它的解释。在我看来,这是 Windows 上 Rscript 的一个错误,但我想听听其他意见。
在这个简单的sparql查询中,我得到了一个对象列表,其对象是42
SELECT ?v WHERE { ?v ?p 42 }
Run Code Online (Sandbox Code Playgroud)
如果我将?p添加为变量
SELECT ?v ?p WHERE { ?v ?p 42 }
Run Code Online (Sandbox Code Playgroud)
我将获得每行两个实体,主题和谓词.如果我想要三个实体怎么办,包括42个?就像是:
SELECT ?v ?p ?m WHERE { ?v ?p (42 as m) }
Run Code Online (Sandbox Code Playgroud) 我在python中有一个简单的光线跟踪器.渲染图像200x200需要4分钟,这对我来说绝对太过分了.我想改善这种情况.
一些要点:我为每个像素拍摄多条光线(以提供抗锯齿),每个像素总共有16条光线.200x200x16总计640000条光线.必须测试每条光线对场景中多个Sphere对象的影响.雷也是一个相当微不足道的对象
class Ray(object):
def __init__(self, origin, direction):
self.origin = numpy.array(origin)
self.direction = numpy.array(direction)
Run Code Online (Sandbox Code Playgroud)
Sphere稍微复杂一些,并且带有hit/nohit的逻辑:
class Sphere(object):
def __init__(self, center, radius, color):
self.center = numpy.array(center)
self.radius = numpy.array(radius)
self.color = color
@profile
def hit(self, ray):
temp = ray.origin - self.center
a = numpy.dot(ray.direction, ray.direction)
b = 2.0 * numpy.dot(temp, ray.direction)
c = numpy.dot(temp, temp) - self.radius * self.radius
disc = b * b - 4.0 * a * c
if (disc < 0.0):
return None
else:
e = math.sqrt(disc)
denom …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用他们教程中的简单 next.js 示例博客。但是,当我访问该页面时,出现以下情况:
$ npm run dev
> nextjs-blog@0.1.0 dev /Users/<redacted>/tmp/nextjs-blog
> next dev
ready - started server on 0.0.0.0:3000, URL: http://localhost:3000
event - compiled client and server successfully in 386 ms (165 modules)
wait - compiling /_error (client and server)...
event - compiled client and server successfully in 91 ms (166 modules)
warn - Fast Refresh had to perform a full reload due to a runtime error.
wait - compiling / (client and server)...
error - Failed to download …Run Code Online (Sandbox Code Playgroud)