我正在使用MiKTeX 2.8 distibution for Windows.
我们主要开发软件,并使用LaTeX来制作用户说明.我们使用LaTeX是因为:
作为构建服务器上无人参与构建过程的一部分,我们使用MiKTeX的texify可执行文件构建文档.这很有效.
但是,当开发人员出错时(例如\ ref为不存在的\标签)会出现问题.这样的错误只会在LaTeX中生成警告.texify没有注意到这个警告,我们在文档中留下了错误.
我目前有一个构建步骤,它扫描日志文件以查找以'LaTeX Warning'开头的行,如果有的话,则构建失败.这有效,但显然非常不稳定,可能会让警告漏掉.它目前不用于开发机器上的本地构建,但如果这是唯一的方法,我可能必须将它与我们当前使用的编辑器集成(TeXworks随MiKTeX一起提供).
如果发生任何警告(例如未定义的引用),我想使构建失败,而我宁愿不对日志文件进行片状扫描.有什么提供此功能吗?
如果我可以在开发机器以及构建服务器上的本地构建中使用此功能,那将是一个巨大的奖励.
我被给了一个谜题作为礼物.它由4个立方体组成,并排排列.每个立方体的面是四种颜色之一.
为了解决难题,立方体必须定向,以便所有四个立方体的顶部不同,它们的所有前沿都不同,它们的背部都是不同的,并且它们的底部都是不同的.左右两边无所谓.
我的伪代码解决方案是:
我使用F#中的伪代码实现解决了这个难题,但我对第3步的处理方式并不满意:
let problemSpace =
seq { for c1 in cube1Orientations do
for c2 in cube2Orientations do
for c3 in cube3Orientations do
for c4 in cube4Orientations do
yield [c1; c2; c3; c4] }
Run Code Online (Sandbox Code Playgroud)
上面的代码非常具体,只能得出四个方向序列的笛卡尔积.我开始考虑为n个方向序列编写它的方法.
我提出了(从现在开始的所有代码应该在F#interactive中执行得很好):
// Used to just print the contents of a list.
let print =
Seq.fold (fun s i -> s + i.ToString()) "" >> printfn "%s"
// Computes the product of two sequences - kind of; the 2nd argument is …
Run Code Online (Sandbox Code Playgroud) 使用锚点我可以写下以下行:
myControl.Anchor = (AnchorStyles.Top | AnchorStyles.Left);
Run Code Online (Sandbox Code Playgroud)
它将锚定myControl
在左侧和顶部.
为什么我不能做以下事情:
myControl.Dock = (DockStyle.Top | DockStyle.Left);
Run Code Online (Sandbox Code Playgroud)
我可以写上面这一行,但它只是设置DockStyle
为左边.
有什么想法/原因吗?
我正在调整大量的SQL Server 2005脚本来合并我们的两个数据库.脚本从.cmd文件运行,该文件调用sqlcmd以按顺序运行脚本.但是,我遇到脚本失败的一两个问题.
我想快速查看一些出错的脚本的状态 - 检查变量值,一些查询的结果,这样的东西.
如果我在.NET程序集中遇到此问题,我会使用Debug.Assert扩充代码或设置断点,我知道将要发生故障,这会暂停程序执行并允许我检查变量值.
我想知道,SQL Server 2005中是否有相同的功能?
我的数据库中的表格格式如下:
customer old_code new_code
C1 A X
C1 B Y
C2 C Y
C2 D Z
Run Code Online (Sandbox Code Playgroud)
所以键对customer和old_code映射到new_code.这是一种很好的存储数据的方式,查找非常快,但对于人类消费,数据会更好地显示如下:
C1 C2
X A
Y B C
Z D
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法使用SQL将数据转换为第二个视图?显然可以有任意数量的客户,虽然我可以事先查询独特的设置.目前我有<50000条记录,我希望这是常态,但我希望任何可能的解决方案扩展到几十万.我的应用程序目前针对MySQL.
在我们的ASP.NET应用程序访问内部Web服务上运行压力测试后,我们的中间层服务器(我们托管ASMX .NET 3.5 Web服务)显示接近1GB的内存消耗.
在检查来自中间层服务器的内存转储后,我发现了Web服务运行时本身引用的1000多个Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer对象.
这与我们的自定义对象如何在Web服务层中进行序列化/反序列化有关吗?任何人都可以对此有所了解吗?
当我做了!gcroot这些1000个对象中的一些时,我得到了以下描述:(Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeFileWatcher) - > 1c4bb450(System.Threading.Thread) - > 18236aa0(System.Runtime .Remoting.Contexts.Context) - > 18236914(System.AppDomain) - > 10409dc4(System.ResolveEventHandler) - > 10409494(System.Web.Compilation.BuildManager) - > 10409f30(System.Web.Compilation.MemoryBuildResultCache) - > 103d115c (System.Web.Caching.CacheMultiple) - > 103d1174(System.Object []) - > 103d2034(System.Web.Caching.CacheSingle) - > 103d2080(System.Collections.Hashtable) - > 1c24b97c(System.Collections.Hashtable + bucket []) - > 1c24b934(System.Web.Caching.CacheEntry) - > 18363994(System.Web.Services.Protocols.SoapServerType) - > 183639c4(System.Collections.Hashtable) - > 1c24aa5c(系统.Collections.Hashtable + bucket []) - > 1c24a458(System.Web.Services.Protocols.SoapServerMethod) - > 1c248ae4(Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer26)
(Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeFileWatcher) - > 1c5ac4b0(System.Threading.Thread) - > 1c52b5f0(System.Runtime.Remoting.Contexts.Context) - > 1c52b464(System.AppDomain) - > 18823880 …
我有一个名为cube的类型,它代表一个物理多维数据集.我编写了一些带有立方体的代码,并生成了多维数据集所有可能方向的列表.
我使用了以下术语,假设立方体在我眼前坐在我面前.
对于立方体的面:
对于轴,立方体可以旋转:
当6个面中的每一个面朝下时,立方体可以以不同的方式(0°,90°,180°和270°)围绕其法线轴旋转.这导致24种可能的取向.
我已经开始使用立方体类型(请原谅S/O的语法着色):
type 'a cube(top:'a, bottom:'a, left:'a, right:'a, front:'a, back:'a) =
member this.Top = top
member this.Bottom = bottom
member this.Left = left
member this.Right = right
member this.Front = front
member this.Back = back
override this.ToString() =
sprintf "Top: %O, Bottom: %O, Left: %O, Right: %O Front: %O, Back: %O" top bottom left right front back
Run Code Online (Sandbox Code Playgroud)
然后我继续编写一个Cube模块,它提供了函数getOrientations.
module Cube =
let rotateNormalRight (c:'a cube) =
cube(c.Top, …
Run Code Online (Sandbox Code Playgroud) 首先我要说的是,我非常喜欢这种模式的优雅 - 我有一组基本实体,我已经实现了构建器(专门用于测试).然而,我发现(这可能是警告)随着我的程序的发展,我不得不回去重建建筑工人.最后,让它们保持更新似乎并不值得,我回过头来主要保留一个具有大量预配置实体的Object Mother.我是否应该继续更新构建器以供将来使用,或者TDB是否应该只在您的设计达到某种稳定性并且Object Mother变得太大时才会创建?
另请注意,我发现我没有在应用程序中的任何其他地方使用构建器,因为我喜欢使用.Net 3.0的新属性初始化语法.
在使用F#解决一些小问题之后,我发现将C#扩展方法看作是一种转向的方法对我自己很有帮助.进入管道运营商'.
例如,给定一个名为int的Int32s序列,C#代码:
ints.Where(i => i > 0)
.Select(i => i * i)
Run Code Online (Sandbox Code Playgroud)
类似于F#代码
let where = Seq.filter
let select = Seq.map
ints |> where (fun i -> i > 0)
|> select (fun i -> i * i)
Run Code Online (Sandbox Code Playgroud)
事实上,我经常认为IEnumerable上的扩展方法只是一个函数库,它提供与F#的Seq模块类似的功能.
显然,管道参数是F#函数中的最后一个参数,但是C#扩展方法中的第一个参数 - 但除此之外,在描述扩展方法或管道转发给其他开发人员时是否存在使用该解释的问题?
我会误导他们,还是一个有用的类比?
我正在尝试找出我们在上一次测试过程中发现的错误.它涉及使用公用表表达式的查询.查询的主题是它模拟"第一个"聚合操作(获取此分组的第一行).
问题是,查询,似乎在某些情况下完全任意选择行-从同一组的多个行得到恢复,一些群体根本得到完全消除.但是,它总是选择正确的行数.
我已经创建了一个最小的例子来发布.有客户端和地址,以及定义它们之间关系的表.这是一个多少我期待在实际查询的简化版,但我相信它应该具有相同的特性,它是用来解释什么,我觉得是走错了一个很好的例子.
CREATE TABLE [Client] (ClientID int, Name varchar(20))
CREATE TABLE [Address] (AddressID int, Street varchar(20))
CREATE TABLE [ClientAddress] (ClientID int, AddressID int)
INSERT [Client] VALUES (1, 'Adam')
INSERT [Client] VALUES (2, 'Brian')
INSERT [Client] VALUES (3, 'Charles')
INSERT [Client] VALUES (4, 'Dean')
INSERT [Client] VALUES (5, 'Edward')
INSERT [Client] VALUES (6, 'Frank')
INSERT [Client] VALUES (7, 'Gene')
INSERT [Client] VALUES (8, 'Harry')
INSERT [Address] VALUES (1, 'Acorn Street')
INSERT [Address] VALUES (2, 'Birch Road') …
Run Code Online (Sandbox Code Playgroud) 以下示例(SQL Server 2008 - 可能更多).您必须想象一下@query
其源是用户输入的参数:
DECLARE @query varchar(100)
SET @query = 'less than 1% fat'
CREATE TABLE X ([A] VARCHAR(100))
INSERT X VALUES ('less than 1% fat')
INSERT X VALUES ('less than 1% of doctors recommend this - it''s full of fat!')
SELECT * FROM X WHERE A LIKE '%' + @query + '%'
DROP TABLE X
Run Code Online (Sandbox Code Playgroud)
查询说明了'less than 1% fat'
,但实际上我们获得了比我们想要的更多:
less than 1% fat
less than 1% of doctors recommend this - it's full of …
Run Code Online (Sandbox Code Playgroud) 我正在使用System.Func但是已经遇到了绊脚石.
System.Func<TReturn> // (no arg, with return value)
System.Func<T, TReturn> // (1 arg, with return value)
System.Func<T1, T2, TReturn> // (2 arg, with return value)
System.Func<T1, T2, T3, TReturn> // (3 arg, with return value)
System.Func<T1, T2, T3, T4, TReturn> // (4 arg, with return value)
Run Code Online (Sandbox Code Playgroud)
它接受的最大值是4个参数.
有没有办法将此扩展到5个参数?