我正在开发一个可视化编辑器,它需要用户可以随意添加,删除和拖动的元素.每个元素都是div用jQueryUI创建的.新元素将附加到div表示工作空间的父级.每个元素本身都有一个按钮可以将其删除.一切都很好.
我遇到的问题是当我删除一个不是最近创建的元素时,所有其他可拖动元素都会改变位置.这似乎是由使用relative定位的可拖动元素引起的.
目前,我的删除功能只是调用$('#item-x').remove().还有另一种方法我应该删除可拖动的元素吗?
我已经和C一起工作了一段时间,并且对简单的命令行界面非常熟练.我也玩过这个curses库,对于终端应用来说,不仅仅是写文本stdout.但是,我无法弄清楚中途点的位置 - 应用程序喜欢wget或make拥有,例如,更新他们输出的文本的能力(如wget弹跳下载计量器和进度条),而不占用整个屏幕.
这种界面是我应该使用curses的,还是介于两者之间?优选地是跨平台的.
我正在编写一个非常简单的数据库应用程序,我想在本地存储(而不是查找远程数据库).我喜欢用于设计界面的HTML/Javascript,而且它们是跨平台的(每个人都有浏览器!),所以我真的想把网页写成前端.不应涉及客户端/服务器交互 - 我只希望用户能够使用浏览器而不是本机程序与数据库进行交互.
但是,我可以看到从浏览器访问数据库的唯一方法是使用WebSQL或IndexedDB之类的东西.但是,这两者都抽象出了管理数据库文件本身的过程,并将其存储在某个用户设置中.我想将数据库文件本身与应用程序一起分发.
简而言之:有没有办法使用HTML/Javascript来修改本地SQLite数据库文件?或者HTML不是我应该用于此类应用程序的工具?
编辑: 可能相关
我正处于在Haskell中为类C语言编写解析器的开始阶段.我已经得到了AST数据类型,并且在我深入研究解析器方面之前,我正在通过在AST本身上编写一些简单的查询来解决它.
我的AST围绕两种类型:语句(没有值,如if/ else)和表达式(有一个值,如文字或二进制操作).所以它看起来像这样(当然非常简化):
data Statement
= Return Expession
| If Expression Expression
data Expression
= Literal Int
| Variable String
| Binary Expression Op Expression
Run Code Online (Sandbox Code Playgroud)
假设我想获取表达式中使用的所有变量的名称.使用uniplate,很容易:
varsInExpression exp = concat [s | Variable s <- universe exp]
Run Code Online (Sandbox Code Playgroud)
但是,如果我想在语句中找到变量列表呢?在每个构造函数中Statement,都有一个Expression我应该应用的嵌套varsInExpression.所以目前,看起来我必须对每个Statement构造函数进行模式匹配,这是uniplate要避免的.我只是没有充分了解文档,或者这是uniplate的限制(或者我做错了吗?)?
阅读Bartosz Milewski 关于STM 的精彩博文,我很高兴看到以下内容:
但考虑到一个重要的事实:STM非常精细.例如,当您将项目插入树中时,STM事务将仅锁定您实际修改的节点.STM将轻松击败每个整棵树使用一个全局锁的解决方案.
但是,据我了解,这种行为不是自动的,是吗?如果我使用a TVar (Map k a),它不会在整个地图上作为单个全局锁吗?为了获得这种细粒度行为的好处,我(或某人)必须实现内部TMap包含的地图替换(例如)TVars,正确吗?
这似乎是一个显而易见的问题,但是阅读STM实现我在读取TVar内存位置和读取内存位置时感到困惑.我只是想确保我做对了!
巴托斯进一步说:
由于存在死锁风险,每节点手动锁定很难正确实现.
据我所知,与STM的不同之处在于,虽然STM实现实际上使用锁定手动锁定解决方案的方式,但锁的实际检查和释放是由运行时处理的,而不是程序员 - 正确吗?
我在控制系统类中使用SciPy而不是MATLAB来绘制LTI系统的阶跃响应.它到目前为止工作得很好,但我遇到了一个非常具体的系统问题.使用此代码:
from numpy import min
from scipy import linspace
from scipy.signal import lti, step
from matplotlib import pyplot as p
# Create an LTI transfer function from coefficients
tf = lti([64], [1, 16, 64])
# Step response (redo it to get better resolution)
t, s = step(tf)
t, s = step(tf, T = linspace(min(t), t[-1], 200))
# Plotting stuff
p.plot(t, s)
p.xlabel('Time / s')
p.ylabel('Displacement / m')
p.show()
Run Code Online (Sandbox Code Playgroud)
代码按原样显示扁平线.如果我将分母的最终系数修改为64.00000001(即tf = lti([64], [1, 16, 64.0000001])),那么它将按预期工作,显示欠阻尼阶跃响应.设置系数63.9999999也有效.将所有系数更改为具有显式小数位(即 …
我在Haskell中进行的一些计算的一部分导致映射Float到的函数列表Float.我想对所有这些函数应用一个参数,如下所示:
-- x :: Float
-- functions :: [Float -> Float]
map (\f -> f x) functions
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用丢弃lambda函数的情况下做到这一点?我已经搜索了Hoogle,我认为签名应该是([a -> b] -> a -> [b])没有运气.
我正在Haskell中编写一个小命令行实用程序,该实用程序应接受带有可选命令行参数的命令 - 但如果该参数不存在,则应提示用户输入*.例如:
$ my_prog add item_name
Adding... done
$ my_prog add
Enter item name: item_name
Adding... done
Run Code Online (Sandbox Code Playgroud)
我最初的尝试看起来像这样:
add args = do
let id = if length args > 0
then head args
else input where
input <- readLine
-- Do stuff with id
putStrLn id
Run Code Online (Sandbox Code Playgroud)
哪个无法解析<-.
*我已经决定这是一个愚蠢的想法,但我想我还是会问这个问题.
我正在编写一个小命令行程序,它从stdin中读取两个浮点数,一个int和一个小字符串(最多4个字符串).我试图找出我应该创建的缓冲区大小并传递给fgets.我想我可以基于有多少个数字中应包括的最大值计算这个float和int分别,就像这样:
#include <float.h>
#include <limits.h>
...
int fmax = log10(FLOAT_MAX) + 2; // Digits plus - and .
int imax = log10(INT_MAX) + 1; // Digits plus -
int buflen = 4 + 2*fmax + imax + 4; // 4 chars, 2 floats, 1 int, 3 spaces and \n
...
fgets(inbuf, buflen + 1, stdin);
Run Code Online (Sandbox Code Playgroud)
但是我发现这可能实际上并不正确.imax最终在我的系统上是10,这似乎有点低,而fmax如果是40.(我认为有点高,因为更长的值可以用e表示法表示.)
所以我的问题是:这是解决这个问题的最好方法吗?这甚至是必要的吗?它只是感觉比分配一个256的缓冲区更优雅,并假设它足够了.称之为骄傲; P.
简单地说:为什么nullptrC++ 0X/C++ 11标准中的关键字是小写的,而它的紧密伴侣NULL是大写的?我确实意识到这两者遵循不同的标准; nullptr是一个关键字,而是NULL一个宏.但是,由于它们将在类似的情况下使用,如果新用户遵循相同的约定,它会不会更清楚?
(并不是说要记住这么多麻烦 - 我只是对设计决定感到好奇.)
我正在开发一个Angular应用程序,需要链接到固定(外部)路由,并在Angular页面本身设置一些查询参数.我想在我的Angular HTML中提供一些很好的数据绑定,比如:
<a href="http://www.api.com/query?param={{value}}&flag={{check}}">Link</a>
Run Code Online (Sandbox Code Playgroud)
但是,我的所有查询参数都是可选的.这可以在Angular应用程序本身中轻松处理,使用类似的东西
$location.path('/query').search({param: value, flag: check});
Run Code Online (Sandbox Code Playgroud)
当我只想格式化文本链接时,有什么方法可以获得这种声明式样式的好处吗?
我正在尝试在Vagrant(VirtualBox)VM中运行一个简单的Laravel项目。来宾是Ubuntu 14.04 x64,主机是Windows 7 x64。我已经设置了端口转发(8000从主机到8000来宾),但是在运行时php artisan serve,尽管收到一条消息,指出服务器在port上运行,但是8000当我localhost:8000在主机上访问时,Chrome告诉我“此网页不是可用”。有两个并发症:
首先,如果我curl从VM内部使用,我会收到正确的页面内容-这样看来服务器可以正常工作。
其次,如果我python -m SimpleHTTPServer在同一VM上运行Python Web服务器,则可以在主机OS上正常访问它。访问localhost:8000,我看到列出的目录内容。因此看来端口转发工作正常。
我试图删除public/.htaccessLaravel项目中的文件,但无济于事。我不是PHP专家,这个问题对Google来说很难!任何指针将不胜感激。