我刚开始阅读Brian Kernighan和Dennis Ritchie 的C编程语言,我发现了这句话:
该语言没有定义除静态定义之外的任何存储分配工具以及由函数的局部变量提供的堆栈规则; 没有堆或垃圾收集.
那么这是否意味着它是由于malloc()函数,它从堆中返回一些内存地址,C才能访问堆内存?然后必须malloc用其他语言编写,最有可能是汇编或B?
这可能是一个愚蠢的怀疑,但我必须清除它.谢谢.
我的导航结构如下所示:
<div class="menu">
<ul>
<li><a href="#">Page 1</a></li>
<li><a href="#">Page with Subpages</a>
<ul class="children">
<li><a href="#">Page with another subpage</a>
<ul class="children">
<li><a href="#">subsubpage</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Page 3</a></li>
<li><a href="#">Page 4</a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
我希望所有<li>有子导航孩子的人都有一个小箭头,所以用户知道这个页面有子页面.
是否可以在纯css中检测是否<li>有孩子ul.children?在上面的示例中,"带子页面的页面"应该应用向下箭头,并且"页面带有另一个子页面"也是如此.
现在我正在使用jquery来解决这个问题:
$(function() {
$('.menu a').each(function() {
if ( $(this).parent('li').children('ul').size() > 0 ) {
$(this).append('<span class="dwn">?</span>');
}
});
});
Run Code Online (Sandbox Code Playgroud)
有一种简单的纯CSS方式吗?
谢谢.
我正在Rails中为现实世界组织的成员构建一个基于社区的站点.我正在努力坚持RESTful设计的最佳实践,而且大多数都是或多或少地通过书本.使我的大脑在整洁的RESTful圈子中运行的问题是授权.身份验证是一个容易,长期解决的问题,广泛接受的RESTful解决方案,但RESTful授权似乎有点黑色艺术.我正在尝试找到这样一种方法,它将提供最通用和灵活的框架来控制对资源的访问,同时尽可能简单,同时符合RESTful架构.(还有一匹小马.)
注意事项:
考虑(2)是最让我担忧的问题.在我的权限概念和RESTful动作概念之间似乎存在阻抗不匹配.例如,选择帖子(如留言板).REST指示在Post资源上存在四个操作:创建,读取,更新和删除.很容易说用户应该能够更新自己的帖子,但只允许某些用户(或角色或组)锁定它们.表示锁定的传统方式在Post的状态内,但是这会导致在相同条件下的用户可能或可能无法根据他提供的(完全有效)值更新帖子的气味.对我来说,似乎有两种不同的行动来改变邮政的状态,
(我应该注意,这个问题与由于无效或不一致的数据导致更新失败的问题截然不同- 来自非特权用户的锁定请求原则上非常有效,简单地不允许.)
腐烂不是分解另一个词吗?
这可以通过分解Post来克服:一个Lock是一个特定帖子的子资源,而Create或Destroy一个可能具有单独的权限.这个解决方案具有REST环,但它带来了理论和实践方面的困难.如果我将锁定分解出来,那么其他属性呢?假设我完全决定只允许一名管理员修改帖子的标题?然后,授权的简单更改需要重组数据库以适应它!这不是一个解决方案.为了在分解策略下允许这种灵活性,需要每个属性都是资源.这有点进退两难.我的隐含假设是资源在数据库中表示为表.在这个假设下,每个属性的资源表示每个属性的表.显然,这是不切实际的.但是,要消除这种假设会导致表和资源之间的阻抗不匹配,这可能会打开它自己的蠕虫病毒.使用这种方法需要比我给出的更深入的考虑.一方面,用户合理地希望能够一次编辑多个属性.请求在哪里?到包含所有属性的最小资源?并行地对每个单独的资源?到月球?使用这种方法需要比我给出的更深入的考虑.一方面,用户合理地希望能够一次编辑多个属性.请求在哪里?到包含所有属性的最小资源?并行地对每个单独的资源?到月球?使用这种方法需要比我给出的更深入的考虑.一方面,用户合理地希望能够一次编辑多个属性.请求在哪里?到包含所有属性的最小资源?并行地对每个单独的资源?到月球?
其中一些东西不像其他东西......
假设我没有分解属性.然后,替代方案似乎是为每个资源定义一组权限.然而,在这一点上,REST的同质性已经丧失.为了定义资源的访问规则,系统必须具有该资源功能的特定知识.此外,现在不可能一般地将权限传播给后代资源 - 即使子资源具有相同名称的特权,特权之间也没有固有的语义连接.在我看来,定义类似REST的标准权限集是两个世界中最糟糕的,所以我对每种类型的资源都会遇到单独的权限层次结构.
好吧,我们做了鼻子.还有帽子.但这是一种资源!
我看到的一个建议减轻了上述方法的一些缺点,即将权限定义为资源上的create/delete 和属性的读/写.该系统是属性 - 资源和每资源特权之间的折衷:一个仍然只有CRUD,但为了授权,读取和更新属于属性,可以将其视为伪资源.这提供了属性 - 资源方法的许多实际好处,尽管概念完整性在某种程度上受到了损害.权限仍然可以从资源传播到资源,从资源传播到伪资源,但绝不会从伪资源传播.我还没有充分探讨这一战略的后果,但似乎它似乎很有希望.在我看来,这样的系统最适合作为模型的组成部分.例如,在Rails中,它可能是一个改进版ActiveRecord.这对我来说似乎相当激烈,但授权是如此根本的交叉关注,这可能是合理的.
哦,不要忘记小马
所有这些都忽略了预测权限的问题.显然,用户应该能够编辑自己的帖子,但没有其他人的帖子.同样显然,管理员编写的权限表不应该为每个用户分别记录.这几乎不是一个罕见的要求 - 诀窍是使它成为通用的.我认为我所需要的所有功能都可以通过仅使规则具有预测性来获得,从而可以快速且立即地确定规则的适用性.规则" allow User write Post where Author(User, Post)"将转换为" for all User, Post such that Author(User, Post), allow User write Post"和" deny all write Post where Locked(Post)"转换为" for all Post such that Locked(Post), deny all write Post".(这将是伟大的如果所有这些谓词都可以用一个用户和一个资源来表达.)概念上得出的"最终"规则将是非预测性的.这提出了如何实现这样一个系统的问题.谓词应该是Model类的成员,但我不确定如何在规则的上下文中优雅地引用它们.要安全地这样做需要某种反思.在这里我再次感觉这将需要改进Model实现. …
我尝试将其导入Code Snippets Manager并收到错误"所选的代码段文件无效".由于这是我的第一个片段,并且错误消息没有指出为什么该片段无效,我感到茫然.
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>EDI Property</Title>
<Shortcut>edi</Shortcut>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>required</ID>
<ToolTip>required</ToolTip>
<Default>[Required]
</Default>
</Literal>
<Literal>
<ID>min</ID>
<ToolTip>min</ToolTip>
<Default>1</Default>
</Literal>
<Literal>
<ID>max</ID>
<ToolTip>max</ToolTip>
<Default>10</Default>
</Literal>
<Literal>
<ID>position</ID>
<ToolTip>position</ToolTip>
<Default>1</Default>
</Literal>
<Literal>
<ID>type</ID>
<ToolTip>type</ToolTip>
<Default>string</Default>
</Literal>
<Literal>
<ID>name</ID>
<ToolTip>name</ToolTip>
<Default>Property</Default>
</Literal>
</Declarations>
<Code Language="C#">
<![CDATA[
$required$[MinLength($min$)]
[MaxLength($max$)]
[ElementPosition($position$)]
public $type$ $name$ { get; set; }
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
Run Code Online (Sandbox Code Playgroud) 是否可以在C#泛型中实现基本算法(至少是加法),就像使用C++模板一样?我已经尝试了一段时间来让它们起作用,但是C#不允许你多次声明相同的泛型类型,就像你可以使用模板一样.
广泛的谷歌搜索没有提供答案.
编辑:谢谢,但我正在寻找的是一种在编译时进行算术运算的方法,在泛型类型中嵌入像教会数字这样的东西.这就是为什么我把我做过的文章联系起来的原因.算术在泛型类型,而不是算术上的情况下,泛型类型.
我有一个startd运行的脚本启动服务器,然后告诉它在launchd将其关闭时(优先应该在关闭时)正常退出.我的问题:在获得信号之前,告诉脚本空闲的适当的惯用方法是什么?我应该只使用while-true-sleep-1循环,还是有更好的方法来做到这一点?
#!/bin/bash
cd "`dirname "$0"`"
trap "./serverctl stop" TERM
./serverctl start
# wait to receive TERM signal.
Run Code Online (Sandbox Code Playgroud) 我正在查看RegisterHotKey函数:
http://msdn.microsoft.com/en-us/library/ms646309(VS.85).aspx
BOOL RegisterHotKey(
__in HWND hWnd,
__in int id,
__in UINT fsModifiers,
__in UINT vk
);
Run Code Online (Sandbox Code Playgroud)
我一直在使用IntPtr传递第一个参数,在大多数情况下都能正常工作.但是现在我需要故意传递一个空指针作为第一个参数,IntPtr(故意)不会这样做.我是.Net的新手,这让我感到困惑.我怎样才能做到这一点?
前段时间,我需要一个解决方案来在VBScript中理所当然地导入库.
作为参考,VBScript没有内置导入功能.导入文件的传统方法是使用SSI,它将includee逐字的内容转储到包含器中.由于多种原因,这不是最优的:没有办法避免多次包含,没有办法指定库目录等等.所以我编写了自己的函数.它非常简单,使用executeGlobal字典来跟踪导入的模块并将整个事物包装在一个对象中进行封装:
class ImportFunction
private libraries_
private sub CLASS_INITIALIZE
set libraries_ = Server.createObject("Scripting.Dictionary")
end sub
public default property get exec (name)
if not libraries_.exists(name) then
' The following line will find the actual path of the named library '
dim lib_path: set lib_path = Path.resource_path(name & ".lib", "libraries")
on error resume next
' Filesystem is a class of mine; its operation should be fairly obvious '
with FileSystem.open(lib_path, "")
executeGlobal .readAll
if Err.number <> 0 then
Response.write "Error …Run Code Online (Sandbox Code Playgroud) 我阅读了Eric Lippert关于VBScript中默认属性语义的文章:http://blogs.msdn.com/b/ericlippert/archive/2005/08/30/458051.aspx
它说:
IDispatch :: Invoke的实现者的规则是,如果满足以下所有条件:
- 调用者调用属性
- 调用者传递参数列表
- 该属性实际上并没有采用参数列表
- 该属性返回一个对象
- 该对象具有默认属性
- 该默认属性采用参数列表
然后使用参数列表调用默认属性.奇怪但真实.
这似乎是一个奇怪的规则,但是当你使用集合时它是非常宝贵的.或者至少,它会,但我似乎无法让它工作.
class Test1
public property get foo
set foo = new Test2
end property
end class
class Test2
public default property get bar (arg)
Response.Write arg
end property
end class
dim t: set t = new Test1
Response.Write TypeName(t.foo) ' => "Test2"
t.foo.bar("Hello, World!") ' => "Hello, World!"
t.foo("Hello, World!") => "Microsoft VBScript runtime error '800a01c2' / Wrong number of arguments or invalid property …Run Code Online (Sandbox Code Playgroud) 我正在编写一个脚本来处理X12 EDI文件,我想逐行迭代.这些文件由一系列不同的记录组成,每个记录都由一个特殊字符终止(例如~,见下文).文件可能很大(> 100 MB),所以我不想读取整个内容并将其拆分.记录不是换行符分隔的; 在第一行读取可能会读取整个文件.这些文件都是ASCII.
Python显然提供了读取特定字符的文件,前提是该字符是换行符.我想用任意角色做同样的事情.我认为按行读取是通过缓冲实现的.我可以实现自己的缓冲读取器,但如果有更好的解决方案,我宁愿避免额外的代码和开销.
注意:我已经看到了一些类似的问题,但他们似乎都认为应该在线上读取文件,假设线条的大小合理.在这种情况下,整个文件可能是一行.
编辑:段终止符字符是文件的第106个字节.在调用脚本之前不知道.
c# ×2
vbscript ×2
.net ×1
architecture ×1
asp-classic ×1
bash ×1
c ×1
css ×1
generics ×1
import ×1
launchd ×1
malloc ×1
null ×1
permissions ×1
pinvoke ×1
properties ×1
python ×1
rest ×1
signals ×1