假设我有一个向量,我设置了一些属性:
vec <- sample(50:100,1000, replace=TRUE)
attr(vec, "someattr") <- "Hello World"
Run Code Online (Sandbox Code Playgroud)
当我对向量进行子集化时,属性将被删除.例如:
tmp.vec <- vec[which(vec > 80)]
attributes(tmp.vec) # Now NULL
Run Code Online (Sandbox Code Playgroud)
有没有办法,子集和持久化属性,而不必将它们保存到另一个临时对象?
额外奖励:哪里可以找到这种行为的文件?
谁必须管理ZeroMQ中的持久性?
当我们在Python语言中使用ZeroMQ客户端时,有哪些插件/模块可用于管理持久性?
我想知道使用ZeroMQ的模式.
Haskell和Yesod新手在这里.我一直在尝试从Yesod书中的Persistent章节(http://www.yesodweb.com/book/persistent)中跟踪与Yesod示例的集成.似乎Sqlite编译并运行良好.但是,我正在尝试使用MongDB,并且很难让事情发挥作用.特别:
在sqlite的示例中:
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persist|
Yesod书中说"Mongo代码将mongoSettings改为使用".但我无法在任何模块中找到它,并且代码无法编译.所以相反,我不得不使用它而不是mongoSettings:
MkPersistSettings { mpsBackend = ConT ''Action }
我必须导入Language.Haskell.TH.Syntax才能让它进行编译,我假设它应该对用户隐藏,所以我当然不是正确的.
另外,我发现在Mongo的Persistent测试中没有"share"和"migrate"部分.我实际上不确定为什么,我猜它是因为MongoDB是Schema-less而不需要迁移?
SqlPersist
我认为MongoPersist是SqlPersist的对应物,我猜它几乎是 - 我MongoPersist在Persistent的测试目录中的init.hs中找到了一个实例.但它被评论出来了,所以我觉得它已经过时了?否则,就我所知,它无论如何都没有定义.所以我不知道如何转换以下行(Yesod书的第115页,或接近http://www.yesodweb.com/book/persistent的末尾)来为MongoDB工作:
instance YesodPersist PersistTest where
type YesodPersistBackend PersistTest = SqlPersist
runDB action = do
PersistTest pool <- getYesod
runSqlPool action pool
Run Code Online (Sandbox Code Playgroud)使用withMongoDBConn
所以对于sqlite,代码是(上面网页的第一个例子):
main :: IO ()
main = withSqliteConn ":memory:" $ runSqlConn $ do
runMigration migrateAll
johnId <- insert $ Person "John Doe" $ Just 35
... and …Run Code Online (Sandbox Code Playgroud)我试图处理通过小块将大量的腌制数据写入磁盘.这是示例代码:
from cPickle import *
from gc import collect
PATH = r'd:\test.dat'
@profile
def func(item):
for e in item:
f = open(PATH, 'a', 0)
f.write(dumps(e))
f.flush()
f.close()
del f
collect()
if __name__ == '__main__':
k = [x for x in xrange(9999)]
func(k)
Run Code Online (Sandbox Code Playgroud)
内置循环中的open()和close()可以排除内存中数据累积的可能原因.
为了说明问题,我附上了使用Python 3d party模块memory_profiler获得的内存分析结果:
Line # Mem usage Increment Line Contents
==============================================
14 @profile
15 9.02 MB 0.00 MB def func(item):
16 9.02 MB 0.00 MB path= r'd:\test.dat'
17
18 10.88 MB 1.86 MB for e …Run Code Online (Sandbox Code Playgroud) 我知道它与CE 1.6中引入的Magento的持久特性有关
但深层含义是什么?为什么Magento模板加倍?
首先,我要完成的任务的简化版本:我有几个大文件(相当于30GB),我想修剪重复的条目.为此,我建立了一个数据散列数据库,逐个打开文件,散列每个项目,并将其记录在数据库和输出文件中,如果它的散列不在数据库中.
我知道如何使用迭代器,枚举器,我想尝试管道.我也知道如何用管道来做,但现在我想使用管道和持久性.我遇到了类型问题,可能还有整个概念ResourceT.
这里有一些伪代码来说明问题:
withSqlConn "foo.db" $ runSqlConn $ runResourceT $
sourceFile "in" $= parseBytes $= dbAction $= serialize $$ sinkFile "out"
Run Code Online (Sandbox Code Playgroud)
问题在于dbAction功能.我想自然地在这里访问数据库.由于它所做的动作基本上只是一个过滤器,我首先想到这样写:
dbAction = CL.mapMaybeM p
where p :: (MonadIO m, MonadBaseControl IO (SqlPersist m)) => DataType -> m (Maybe DataType)
p = lift $ putStrLn "foo" -- fine
insert $ undefined -- type error!
return undefined
Run Code Online (Sandbox Code Playgroud)
我得到的具体错误是:
Could not deduce (m ~ b0 m0)
from the context (MonadIO m, MonadBaseControl IO (SqlPersist m))
bound by …Run Code Online (Sandbox Code Playgroud) 我正在构建一个使用scotty和persistent编译的麻烦的Web应用程序.这是我的代码:
runDb :: SqlPersist (ResourceT IO) a -> IO a
runDb query = runResourceT . withSqliteConn "dev.app.sqlite3" . runSqlConn $ query
readMessage :: KeyBackend (PersistEntityBackend Post) Post -> IO (Maybe Post)
readMessage postID = runDb $ get postID
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
Message.hs:30:30:
No instance for (Control.Monad.Logger.MonadLogger IO)
arising from a use of `get'
Possible fix:
add an instance declaration for
(Control.Monad.Logger.MonadLogger IO)
In the second argument of `($)', namely `get postID'
In the expression: runDb $ get postID …Run Code Online (Sandbox Code Playgroud) 不要saveRDS和readRDS,相应地,保存和恢复所有对象的属性,包括应用程序创建者(通过attr)?我试图使用这种方法而不是save和load,试图找到我的问题的解决方法链接在下面.但是,似乎并非如此,除非我做错了什么:我可以访问R数据对象的属性而无需从文件中完全加载对象吗?.
无法找到一种方法来为我的旧问题提供赏金,所以我重新发布它,因为它可能是一个错误.
简短版本:我希望PhoneGap + JQM应用程序中的持久标头在页面转换之间保持原位(从不移动),就像页脚可以设计的那样.
长版:首先,我是jQuery和JQM的新手,所以请指出我所犯的任何新错误.
我正在尝试在应用程序中的不同页面之间保留一个标题.当用户在页面之间转换时,它必须像持久的页脚一样保持在原位.使用data-role ="footer"data-id ="(某些一致的id)"data-position ="fixed"来实现持久页脚.它运作得相当好(随机故障,因为它错位,然后在几秒后自动修复).有关我正在寻找的内容的更多信息,请参阅此处的"持久页脚":http: //jquerymobile.com/test/docs/#/test/docs/toolbars/docs-footers.html
并在下面的链接中查看持久页脚的示例.了解如何选择页脚中的项目转换为全新页面,但页脚不会移动:http: //jquerymobile.com/test/docs/#/test/docs/toolbars/footer-persist-a.html
现在我正在尝试做同样的事情,但我希望它在应用程序的顶部而不是底部.我尝试过以下的事情:
每页上的HTML:
<div data-role="footer" data-position="fixed" data-id="header">
<img src="images/bgheader.png" />
</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript:
$('div.ui-footer').css('top', '0px');
$('div.ui-footer-fixed').css('top', '0px');
$('div.fade').css('top', '0px');
$('div.ui-fixed-overlay').css('top', '0px');
$('div.ui-bar-a').css('top', '0px');
Run Code Online (Sandbox Code Playgroud)
每页上的HTML:
<div data-role="header" data-position="fixed" data-id="header" id="header" data-backbtn="false">
<img src="images/bgheader.png" />
</div>
Run Code Online (Sandbox Code Playgroud) 假设我在事务中执行以下步骤:
如果A在平均时间内发生变化,是否有可能使此交易失败?
简而言之:如何在持久化包中实现隔离?
persistent ×10
haskell ×4
yesod ×3
python ×2
r ×2
attributes ×1
conduit ×1
database ×1
environment ×1
file-io ×1
header ×1
jquery ×1
logging ×1
magento ×1
mobile ×1
mongodb ×1
performance ×1
persistence ×1
pickle ×1
rdata ×1
subset ×1
themes ×1
vector ×1
zeromq ×1