我见过这个建议......
理想情况下,Web应遵循REST原则并完全无状态.因此,单个URL应标识单个资源,而不必保留每个用户的导航历史记录.
...我读了维基百科页面http://en.wikipedia.org/wiki/REST,这听起来不错,但我不知道如何实际实现它.我在ASP .NET Webforms NOT MVC工作.
例如,在我即将构建的应用程序中 - 我需要我的用户登录才允许他们做任何事情.在他们被允许做很多有用之前,他们必须跳过几个箍 - 比如接受T和C并确认他们的基本细节不变.最后他们被允许做他们真正想要的东西,比如BuyAProduct!
在我看来(我来自Rich客户端的HEAVILY有状态世界),我需要状态来记录他们所做的事情并从中推断他们可以做什么.我不知道如何支持他们(比如)为BuyAProduct URI添加书签.当他们到达书签时,我如何知道他们是否已登录,以及他们是否同意T和C以及他们是否尽职尽责地检查了他们的基本细节?
我喜欢应用程序无状态的想法,部分原因是它似乎完全解决了"当用户点击后退和前进按钮时,我该怎么办?" 我看不出我怎么能让它正常工作.我觉得我错过了一些非常基本的东西.
我想在动态URL中读取包含HTML文件的内容,并根据节点(HTML标记)将其读取为XML文件.这有点可能吗?
我的意思是,有这个HTML代码:
<table class="bidders" cellpadding="0" cellspacing="0">
<tr class="bidRow4">
<td>kucik (automata)</td>
<td class="right">9 374 Ft</td>
<td class="bidders_date">2010-06-10 18:19:52</td>
</tr>
<tr class="bidRow4">
<td>macszaf (automata)</td>
<td class="right">9 373 Ft</td>
<td class="bidders_date">2010-06-10 18:19:52</td>
</tr>
<tr class="bidRow2">
<td>kucik (automata)</td>
<td class="right">9 372 Ft</td>
<td class="bidders_date">2010-06-10 18:19:42</td>
</tr>
<tr class="bidRow2">
<td>macszaf (automata)</td>
<td class="right">9 371 Ft</td>
<td class="bidders_date">2010-06-10 18:19:42</td>
</tr>
<tr class="bidRow0">
<td>kucik (automata)</td>
<td class="right">9 370 Ft</td>
<td class="bidders_date">2010-06-10 18:19:32</td>
</tr>
<tr class="bidRow0">
<td>macszaf (automata)</td>
<td class="right">9 369 Ft</td>
<td class="bidders_date">2010-06-10 18:19:32</td>
</tr>
<tr class="bidRow8"> …Run Code Online (Sandbox Code Playgroud) 有人知道是否有可能返回一个关联数组作为Oracle函数的结果,如果有,你有没有任何例子?
我有一个Oracle包,其中包含一个关联数组声明,如下所示:
TYPE EVENTPARAM IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
Run Code Online (Sandbox Code Playgroud)
然后将其用于包外的存储过程,如下所示:
v_CompParams areva_interface.eventparam;
Run Code Online (Sandbox Code Playgroud)
目的是在变量v_CompParams中存储一个关联的字符串数组,从另一个包中的Parse函数返回.其定义如下:
PACKAGE STRING_MANIP
IS
TYPE a_array IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
FUNCTION Parse (v_string VARCHAR2, v_delim VARCHAR2) RETURN a_array;
FUNCTION RowCount(colln IN a_array) RETURN NUMBER;
END;
Run Code Online (Sandbox Code Playgroud)
实现此目的的代码是:
v_CompParams := STRING_MANIP.PARSE(v_CompID,v_Delim);
Run Code Online (Sandbox Code Playgroud)
不幸的是它不起作用,我得到错误'PLS-00382:表达式是错误的类型'.我愚蠢地假设,因为a_array来自与变量v_CompParams相同的源Oracle类型,所以它们之间没有问题.任何帮助非常感谢.
亲切的问候
保罗J.
我有一个名为的文件,genes.txt我想成为一个data.frame.它有很多行,每行有三个制表符分隔的字段:
mike$ wc -l genes.txt
42476 genes.txt
Run Code Online (Sandbox Code Playgroud)
我想将这个文件读入R中的data.frame.我使用read.table命令,如下所示:
genes = read.table(
genes_file,
sep="\t",
na.strings="-",
fill=TRUE,
col.names=c("GeneSymbol","synonyms","description")
)
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,在哪里genes_file点genes.txt.但是,我的data.frame中的行数明显少于我的文本文件中的行数:
> nrow(genes)
[1] 27896
Run Code Online (Sandbox Code Playgroud)
我可以在文本文件中找到的东西:
mike$ grep "SELL" genes.txt
SELL CD62L|LAM1|LECAM1|LEU8|LNHR|LSEL|LYAM1|PLNHR|TQ1 selectin L
Run Code Online (Sandbox Code Playgroud)
似乎不在data.frame中
> grep("SELL",genes$GeneSymbol)
integer(0)
Run Code Online (Sandbox Code Playgroud)
事实证明
genes = read.delim(
genes_file,
header=FALSE,
na.strings="-",
fill=TRUE,
col.names=c("GeneSymbol","synonyms","description"),
)
Run Code Online (Sandbox Code Playgroud)
工作得很好.为什么read.delim在read.table时不起作用?
如果它正在使用,您可以genes.txt使用以下命令重新创建,您应该从命令行运行这些命令
curl -O ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene_info.gz
gzip -cd gene_info.gz | awk -Ft '$1==9606{print $3 "\t" $5 "\t" $9}' > genes.txt
Run Code Online (Sandbox Code Playgroud)
但请注意,gene_info.gz是101MBish.
您可以创建一个shell脚本或Python或Ruby脚本,并使用"终端"在Mac上运行它...如果您打开Finder,并单击包含已保存shell脚本源代码的文件的图标有没有办法让脚本运行,而不是在我的文本编辑器中打开?
精灵是如何工作的?
我见过《超级马里奥兄弟》等老派游戏中的精灵,想知道如何将它们制作成动画来制作游戏。
它们总是以一张大图像图的形式呈现,那么它们是如何使用的呢?
对于马里奥(作为示例),是否有预先计算的图像坐标来勾画马里奥的轮廓,并在各种马里奥精灵之间交换以生成动画?
或者是在游戏初始化期间使用预先计算的图像坐标预先“剪切”精灵并将其存储在内存中的某处?
显然我对游戏开发一无所知。
我正在寻找一个落在主窗口前面的"下拉"视图.例如,当您在"系统偏好设置" - >"网络"中单击"高级"时,窗口会下降.
如果有人可以指出我在文档方面的正确方向,这将是伟大的.提前致谢.
是否可以将datareader权限授予SQL Server数据库角色而不是用户?
本地机器:Fedora 13 Subversion:1.6.9
remote machine:
CentSO 5.3
subversion 1.4.2
Run Code Online (Sandbox Code Playgroud)
我有一个远程机器上的项目:
remote@x.x.x.x:projects/ssd1
Run Code Online (Sandbox Code Playgroud)
我把它安装在我的本地机器上:
sshfs remote@x.x.x.x:projects/ssd1 /home/jbloggs/projects/mnt/ssd1
Run Code Online (Sandbox Code Playgroud)
一切都安装好了.所以我使用GNU Emacs 23.2.1打开我的项目.当我想在emacs中评论我的更改时,我收到以下错误:
can't move /home/jbloggs/projects/mnt/ssd1/.svn/tmp/entries to /home/jbloggs/mnt/ssd1/.svn/entries: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
有谁知道我可以解决这个问题的方法吗?
非常感谢任何建议,
我写了一个网络爬虫,我希望能够通过键盘停止.当我打断它时,我不希望程序死掉; 它需要先将其数据刷新到磁盘.我也不想抓住KeyboardInterruptedException,因为持久数据可能处于不一致状态.
我目前的解决方案是定义一个捕获SIGINT并设置标志的信号处理程序; 在处理下一个url之前,主循环的每次迭代都会检查此标志.
但是,我发现如果在socket.recv()发送中断时系统正好执行,我会得到:
^C
Interrupted; stopping... // indicates my interrupt handler ran
Traceback (most recent call last):
File "crawler_test.py", line 154, in <module>
main()
...
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/socket.py", line 397, in readline
data = recv(1)
socket.error: [Errno 4] Interrupted system call
Run Code Online (Sandbox Code Playgroud)
并且该过程完全退出.为什么会这样?有没有办法阻止中断影响系统调用?
macos ×2
animation ×1
asp.net ×1
c# ×1
cocoa ×1
datareader ×1
desktop ×1
html ×1
interrupt ×1
nsview ×1
nswindow ×1
objective-c ×1
oracle ×1
parsing ×1
permissions ×1
plsql ×1
python ×1
r ×1
rest ×1
role ×1
scripting ×1
shell ×1
signals ×1
sprite ×1
sql-server ×1
sshfs ×1
stateless ×1
svn ×1
system-calls ×1
unix ×1
webforms ×1
xml ×1