小编Mat*_*hew的帖子

为什么不<textarea>自我关闭?

我一直在想为什么HTML规范的任何修订都没有textarea能够自我关闭.如此问题很多的已经回答了为什么它是由一个单独的标签input,这对我来说很有意义,他们会希望保持它作为兼容单独的标签,但为什么他们不把<textarea />同样有效,<textarea></textarea>因为这止跌"据我所知,打破任何事情.

html w3c

12
推荐指数
1
解决办法
4070
查看次数

为什么这两个字符串不相等?

我最近在考虑GUID,这让我尝试了这段代码:

Guid guid = Guid.NewGuid();
Console.WriteLine(guid.ToString()); //prints 6d1dc8c8-cd83-45b2-915f-c759134b93aa
Console.WriteLine(BitConverter.ToString(guid.ToByteArray())); //prints C8-C8-1D-6D-83-CD-B2-45-91-5F-C7-59-13-4B-93-AA
bool same=guid.ToString()==BitConverter.ToString(guid.ToByteArray()); //false
Console.WriteLine(same);
Run Code Online (Sandbox Code Playgroud)

您可以看到所有字节都在那里,但是当我使用它们时,其中一半是错误的顺序BitConverter.ToString.为什么是这样?

c# guid

10
推荐指数
1
解决办法
202
查看次数

为什么asp.net Web API上的GET方法返回IQueryable?

在asp.net Web Api2中,当您为具有实体框架的模型创建异步Web api控制器时,默认情况下,新控制器中的第一个方法如下:

 public IQueryable<MyModel> GetMyModel()
 {
     return db.MyModel;
 }
Run Code Online (Sandbox Code Playgroud)

此方法的JSON输出只是所有MyModel条目的数组.同时,POST,PUT,GET(int id)和DELETE的所有其他方法都标记为async并返回Task<IHttpActionResult>.为什么不是同一风格的第一个GET方法,如下所示:

 public async Task<IHttpActionResult> GetMyModel()
 {
     return Ok(await db.MyModel.ToArrayAsync());
 }
Run Code Online (Sandbox Code Playgroud)

我试过这个,它产生相同的JSON输出.

c# asp.net iqueryable asp.net-web-api2

7
推荐指数
1
解决办法
3079
查看次数

如何在ggplot2中设置y轴标签的宽度

我在ggplot2中制作了直方图集合,并使用ImageMagick将它们设置为gif动画. 在ggplot2中制作的图形动画GIF 我们的想法是假设x轴刻度在所有图形中都是相同的,但这并不完全正确,因为y轴由于标签的宽度变化而摇摆不定.如何锚定图形以使所有图形具有完全相同的轴位置?

这是我的ggplot代码,如果它有帮助:

hist.fn<-function(tier,ddf){
    df<-ddf[ddf$tier==tier,]
    l<-match(tier,levels(df$tier))
    hist.png<-ggplot(df,aes(df$"Premium Adult Individual Age 40" ))+
    geom_histogram()+   
    labs(title=paste0(tier," premiums in federal exchanges"),
            x ="Premium", y = "Frequency")+
    coord_cartesian(xlim=c(0, 1500))+
        theme_bw()+
        theme(text = element_text(size=14), plot.title = element_text(face="bold"),axis.title.x =element_text(face="bold"),axis.title.y =element_text(face="bold"))
    file=paste0(l,"hist.jpg")

    ggsave(filename=file, plot=hist.png, width=13, height=8, dpi=50)
    return(hist.png)
}
data.df$tier%>% levels %>% lapply(FUN=hist.fn,ddf=data.df) ->histograms.of.tiers    

system("magick -delay 75 *hist.jpg hist.gif")
Run Code Online (Sandbox Code Playgroud)

r animated-gif ggplot2

7
推荐指数
1
解决办法
1429
查看次数

我们应该总是使用`let`进行循环吗?

Javascript着名的是不为循环中的每个循环创建新的作用域for.所以例如这段代码:

for(var i=0;i<10;i++){
    //some code
}
console.log(i); //prints 10 instead of ReferenceError!
Run Code Online (Sandbox Code Playgroud)

i实际上创建为与for循环之外的所有内容在同一范围内的变量.这对我来说似乎完全是疯了,因为它以一种不直观的方式污染了命名空间.

但是,最新的ECMA规范添加了一个let关键字,用于将变量范围限定在包含块中:

for(let i=0;i<10;i++){
    //some code
}
console.log(i); //gives ReferenceError 'i' is not defined
Run Code Online (Sandbox Code Playgroud)

假设兼容性不是问题(let在IE11中支持,firefox,chrome,至少在严格模式下)我们现在应该考虑let成为编写for循环的标准,正确方法吗?或者有什么理由继续使用var

另外,兼容性的最佳方法是什么?无论如何使用let支持的浏览器,但是对于其他浏览器有某种后备,或者我们是否var一直在使用,直到每个人都升级他们的浏览器?

javascript

6
推荐指数
1
解决办法
1606
查看次数

Linq-to-entities中的OrderBy,Select和Where子句的顺序是否重要

假设我有一张包含大量列的学生表.我想要相当于EF

SELECT id,lastname,firstname 
FROM students 
WHERE coursename='Eurasian Nomads'
ORDER BY lastname,firstname
Run Code Online (Sandbox Code Playgroud)

我只想要完整Student模型的一个子集,所以我制作了一个视图模型

public class StudentView{
    public int ID{get;set;}
    public string LastName{get;set;}
    public string FirstName{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这个EF代码似乎工作:

List<StudentView> students=context.Students
.Where(s=>s.CourseName=="Eurasian Nomads")
.OrderBy(s=>s.LastName)
.ThenBy(s=>s.FirstName)
.Select(s=>new StudentView(){ID=s.ID,LastName=s.LastName,FirstName=s.FirstName})
.ToList();
Run Code Online (Sandbox Code Playgroud)

但我的问题是这些条款的顺序是否重要,如果是这样,我应遵循哪种规则以获得最佳表现?

例如,这似乎也有效:

List<StudentView> students=context.Students
.Select(s=>new StudentView(){ID=s.ID,LastName=s.LastName,FirstName=s.FirstName})
.OrderBy(s=>s.LastName)
.ThenBy(s=>s.FirstName)
.Where(s=>s.CourseName=="Eurasian Nomads")
.ToList();
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

6
推荐指数
1
解决办法
1126
查看次数

如何使用d3.js创建<dl>

我想dl使用d3.js从一些数据列表中创建一系列标签.

我想出的代码是这样的:

var x=d3.select("body")
    .append('ol')
    .selectAll('li')
    .data(data)
    .enter()
    .append('li')
    .append('dl')
    .selectAll()
    .data(d=>Object.entries(d.volumeInfo)).enter();

x.append('dt')
    .text(d=>d[0]);

x.append('dd')
    .text(d=>d[1]);
Run Code Online (Sandbox Code Playgroud)

其中data是一个对象数组.除了元素的顺序不正确外,一切正常.

这是我设法得到的订单:

<dl>
    <dt>key1</dt>
    <dt>key2</dt>
    <dd>value1</dd>
    <dd>value2</dd>
</dl>
Run Code Online (Sandbox Code Playgroud)

但它应该是这样的:

<dl>
    <dt>key1</dt>
    <dd>value1</dd>
    <dt>key2</dt>
    <dd>value2</dd>
</dl>
Run Code Online (Sandbox Code Playgroud)

我已经做了相当多的谷歌搜索,没有回答这个问题,至少不是在v5中工作的方式,或者不是有多个dt/dd对.

这似乎是d3.js应该能做的基本事情.

javascript d3.js

6
推荐指数
1
解决办法
105
查看次数

使用 DirectorySearcher 时如何防止 LDAP 注入

以前有人问这个问题但答案已经过时了,我想知道现代方法是什么。

我有一些 C# 代码可以在 Active Directory 中搜索具有 employeeid 的员工,employeeidid是一个字符串,可能来自 Web 表单或其他东西,并且不能完全信任。

DirectorySearcher search = new DirectorySearcher(new DirectoryEntry());
search.Filter = "(&(objectClass=user)(employeeid=" + id + "))";
search.PropertiesToLoad.Add("mail");
search.PropertiesToLoad.Add("telephonenumber");
SearchResult sresult = search.FindOne();
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,输入一个id可以做我并不真正打算做的事情的值并不会太难。OWASP 认为这是一个严重的漏洞。防止这种情况的最佳现代方法是什么?

如果有一个正在积极维护的替代库函数,我不希望像这样手动替换特定字符的我自己的代码。

我在任何地方看到的最佳解决方案是使用AntiXSS库:

string encoded = Microsoft.Security.Application.Encoder.LdapFilterEncode(id);
Run Code Online (Sandbox Code Playgroud)

似乎不再维护该库:

AntiXSS 现已终止 在 .NET 4.0 中,框架中包含一个 AntiXSS 版本,可以通过配置启用。在 ASP.NET v5 中,基于白名单的编码器将是唯一的编码器。因此,AntiXSS 的独立版本应被视为生命周期结束。源代码和安装程序将保持在线状态,允许使用 .NET 早期版本的人们启用替代的、基于白名单的编码,但除了安全修复之外,不会进行进一步的增强。

很多答案都指出,LinqtoAD这听起来确实是一个很好的方法,但不幸的是,它听起来并没有做好生产准备:

免责声明 该项目旨在作为实现自定义 LINQ 查询提供程序的基本示例。它尚未经过彻底测试,我们不提供任何支持。如果没有对技术行为进行适当的测试和验证,请勿在生产环境中使用它。非常欢迎用户通过本站点上的问题跟踪器报告问题和错误。

什么是现代方法?.Net 框架的较新版本中是否有任何东西可以减轻 LDAP 注入?

.net c# ldap code-injection

6
推荐指数
0
解决办法
1211
查看次数

如何在代码优先的实体框架 fluent API 中指定多列 UNIQUE 约束

假设我有以下实体:

public class Calendar{
    public int ID{get;set;}
    public ICollection<Day> Days { get; set; }
}
public class Day{
    public int ID{get;set;}
    public DateTime Date{get;set;}
    public int CalendarID{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这是与CalendarID作为外键的一对多关系。问题是我还想确保每个日期在每个日历中只存在一次。也就是说,没有两天同时具有相同Date和相同的CalendarID。在原始 SQL 中,我可以通过以下方式执行此操作:

ALTER TABLE Days
ADD CONSTRAINT UN_Day UNIQUE ([Date],CalendarID);
Run Code Online (Sandbox Code Playgroud)

但是,实体框架在自动创建表时不会知道我想要这个。如何在 fluent API 中指定它?

c# entity-framework ef-fluent-api

5
推荐指数
1
解决办法
1261
查看次数

如何使用RODBC将数据帧保存到具有在数据库中生成的主键的表

我想使用R脚本将数据框输入到数据库中的现有表中,并且我希望数据库中的表具有顺序主键.我的问题是RODBC似乎不允许主键约束.

这是用于创建我想要的表的SQL:

CREATE TABLE [dbo].[results] (
    [ID]         INT            IDENTITY (1, 1) NOT NULL,
    [FirstName]  VARCHAR (255) NULL,
    [LastName]   VARCHAR (255) NULL,
    [Birthday]   DATETIME      NULL,
    [CreateDate] DATETIME      NULL,
    CONSTRAINT [PK_dbo.results] PRIMARY KEY CLUSTERED ([ID] ASC)
);
Run Code Online (Sandbox Code Playgroud)

并使用一些R代码进行测试:

ConnectionString1="Driver=ODBC Driver 11 for SQL Server;Server=myserver; Database=TestDb; trusted_connection=yes"
ConnectionString2="Driver=ODBC Driver 11 for SQL Server;Server=notmyserver; Database=TestDb; trusted_connection=yes"
db1=odbcDriverConnect(ConnectionString1)    
query="SELECT a.[firstname] as FirstName
  , a.[lastname] as LastName
  , Cast(a.[dob] as datetime) as Birthday
  , cast(a.createDate as datetime) as CreateDate
FROM [dbo].[People] a"
results=NULL
results=sqlQuery(db1,query,stringsAsFactors=FALSE)
close(db1)

db2=odbcDriverConnect(ConnectionString) …
Run Code Online (Sandbox Code Playgroud)

sql sql-server r rodbc

5
推荐指数
1
解决办法
624
查看次数