小编GeR*_*ReV的帖子

.NET的String.Normalize做什么?

关于String.NormalizeMSDN文章简单说明:

返回一个新字符串,其二进制表示形式为特定的Unicode规范化形式.

有时也会提到"Unicode规范化形式C".

我只是想知道,这是什么意思?这个功能在现实生活中有用吗?

.net string

70
推荐指数
4
解决办法
2万
查看次数

WinAPI:创建一个具有指定客户区大小的窗口

我想知道如何使用具有特定客户区大小的 Win32 API创建窗口.

当尝试使用以下代码创建窗口时,整个窗口为640x480,窗口的chrome占用了一些客户区域:

HWND       hWnd;
WNDCLASSEX WndClsEx;
ZeroMemory(&WndClsEx, sizeof(WNDCLASSEX));

WndClsEx.cbSize        = sizeof(WNDCLASSEX);
WndClsEx.style         = CS_HREDRAW | CS_VREDRAW;
WndClsEx.lpfnWndProc   = DefWindowProc;
WndClsEx.cbClsExtra    = 0;
WndClsEx.cbWndExtra    = 0;
WndClsEx.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
WndClsEx.hCursor       = LoadCursor(NULL, IDC_ARROW);
WndClsEx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClsEx.lpszMenuName  = NULL;
WndClsEx.lpszClassName = TEXT("Title");
WndClsEx.hInstance     = hInstance;
WndClsEx.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

RegisterClassEx(&WndClsEx);

hWnd = CreateWindowEx(  NULL,
            TEXT("Title"),
            TEXT("Title"),
            WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            640,
            480,
            NULL,
            NULL,
            hInstance,
            NULL);
Run Code Online (Sandbox Code Playgroud)

假设简单的数学不能解决问题,我该如何考虑铬尺寸?

注意:我在创建窗口后使用SDL,但我猜它与窗口大小绑定并且与其大小没有区别.

c++ winapi window createwindowex

33
推荐指数
1
解决办法
2万
查看次数

什么是DCI以及它如何适合Rails?

最近与同事讨论了在Rails应用程序中设计和编码模型的不同方法,这使我在Rails环境中跨越了DCI.

但是,即使经过这个示例应用程序,我似乎也无法围绕整个概念.

目前,在编写Rails应用程序时,我倾向于或多或少地" 按书 ".

所以我想问一些事情 -

  • 什么是DCI,与MVC一起在普通的旧MVC(以及Rails中的vanilla ActiveRecord)上实现时有什么优势?
  • 如何在Rails中实现(或者换句话说,在所有模块中实现什么)?

编辑

我想在RoR的上下文中进一步扩展我的问题 - 是否建议使用Rails中的模型和控制器之间的另一个抽象层次?它在不同规模的应用中有多广泛?

architecture design-patterns ruby-on-rails dci

23
推荐指数
4
解决办法
5257
查看次数

为什么存在静态Create方法?

我在想,为什么Create存在静态方法?

例如,为什么要使用此代码:

System.Xml.XmlReader reader = System.Xml.XmlReader.Create(inputUri);
Run Code Online (Sandbox Code Playgroud)

在这段代码上:

System.Xml.XmlReader reader = new System.Xml.XmlReader(inputUri);
Run Code Online (Sandbox Code Playgroud)

我找不到使用one over other的理由,也找不到使用这个构造的类与其他类之间的任何关系.

任何人都可以对此有所了解吗?

language-agnostic oop design-patterns factory-pattern

14
推荐指数
2
解决办法
1615
查看次数

AES加密和密钥存储?

几年前,当我第一次被引入ASP.net和.NET Framework时,我构建了一个非常简单的在线文件存储系统.该系统使用Rijndael加密来存储服务器硬盘上加密的文件,并使用HttpHandler解密并将这些文件发送到客户端.

作为我的第一个使用ASP.net和数据库的项目之一,我不了解整个事情是如何工作的(以及陷入Jeff Atwood在这个主题上描述相同陷阱),我决定将新生成的密钥和IV存储在一起与数据库中的每个文件条目.

为了使事情更加清晰,加密只是为了保护文件不被直接访问服务器,并且密钥不是由用户输入的密码生成的.

我的问题是,假设我不想为所有文件保留一个密钥,我应该如何存储加密密钥以获得最佳安全性?什么是最佳做法?(即:在不同的服务器上,在纯文本文件上,加密).

此外,这种加密算法中使用的初始化向量是什么?它应该在系统中保持不变吗?

asp.net encryption

11
推荐指数
2
解决办法
1万
查看次数

ASP.net"BasePage"类的想法

在ASP.net BasePage : System.Web.UI.Page类中添加了哪些很酷的功能和方法?

例子

这是我用于身份验证的内容,我想听听您对此的意见:

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);

    // Authentication code omitted... Essentially same as below.

    if (_RequiresAuthentication && !(IsAuthorized))
    {
        RespondForbidden("You do not have permissions to view this page.", UnauthorizedRedirect);
        return;
    }
}

// This function is overridden in each page subclass and fitted to each page's
// own authorization requirements.
// This also allows cascading authorization checks,
// e.g: User has permission to view page? No - base.IsAuthorized - Is user …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

11
推荐指数
1
解决办法
1万
查看次数

HTML5拖放事件和setDragImage浏览器支持

我正在研究一个小的jQuery插件,它模仿使用原生HTML5拖放事件的jQuery UI可拖动/可放置行为.

我想要添加的功能是指定将用作拖动代理的节点的功能.

我做了一些研究,根据MDN,要做到这一点需要使用setDragImage(),传递图像或元素.在不同的浏览器中有什么
支持setDragImage

我注意到有一个名为jquery.event.drag的插件,它与我对此问题的预期不同.
这个功能是否需要我像上面的插件一样制作某种解决方法,或者在大多数或所有浏览器中使用它是否可以开箱即用setDragImage

编辑

在使用此功能玩了一下之后,似乎这个功能非常有限.

除了在相当多的浏览器中没有支持之外,使用任意DOM元素作为帮助器需要它在DOM树中并且可见,因此您将元素本身放在主体上,并将其副本作为处理程序.对于这种插件,这通常是不需要的.

此外,即使满足正确的术语,渲染也是有问题的.当试图创建一个帮助器时<span>TEST</span>,帮助器本身只显示一个白色矩形,其尺寸为span.

这些问题是根据规格预期的吗?它们可以修复代码还是需要解决方法?

javascript html5 drag-and-drop cross-browser

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

以编程方式清理Word生成的HTML,同时保留样式?

在我现在的公司,我们已经有十年了......我们称之为" Hello World "应用程序.

虽然想要创建它的新版本,但我们还希望保留较旧的条目.这些较旧的条目包含可怕的Word生成的HTML,以前从未过滤过.

如果我们迁移到更新的系统,我宁愿清理和过滤HTML,以使网站尽可能符合HTML标准.
然而,只是清理像他在博客中描述的Jeff Atwood那样的代码,或者我所知道的任何其他方式,也会破坏风格和格式.

现在,这可能会导致我们的用户反抗,然后所有地狱都会破裂 - 这不是一个好主意.

所以问题是:可以在保留基本格式的同时清理Word的HTML吗?(例如:着色,斜体,粗体等)

优选地,使用公共可用的代码或库,例如HTML Tidy,C#中的示例将非常受欢迎.

.net html xhtml ms-word

9
推荐指数
1
解决办法
4476
查看次数

NVD3.js(可重用图表库)的替代方案?

我最近一直在寻找为网页创建图表的解决方案.

在使用(过时版本)Highcharts的糟糕体验之后,我试图为D3.js提供机会,我发现它非常方便.

由于我的项目时间紧迫,我正在尝试找到一个可重复使用的图表库,它位于D3之上.
到目前为止,我发现的唯一候选人是味噌项目的d3.chartNVD3.js.

问题是d3.chart只是制作可重复使用图表的一个小框架,而NVD3非常广泛,但不是非常灵活且非常缺乏文档.

是否有替代这些库(或者我应该开始编写一个)?

javascript charts d3.js nvd3.js

9
推荐指数
1
解决办法
2万
查看次数

创建一个类似 Wacom 的 Linux uinput 设备,用于触摸屏和笔

这是一个相当广泛的问题,所以我会尽力集中精力。

我目前拥有一台安装了 Ubuntu 并具有触摸屏功能的联想笔记本电脑,还有一支压敏蓝牙笔,并一直在尝试让两者一起工作,作为一款廉价的类似 Cintiq 的平板电脑。

不幸的是,这款笔仅支持 iOS 手机和平板电脑的特定应用程序。
因此,经过大量研究,我成功地与笔连接并uinput为其创建了一个设备,这样我就可以记录笔上的按钮点击和压力变化,甚至可以在通过“输入控制器”菜单配置设备时看到它们路由到 GIMP 。

到目前为止,我拥有的该接口的代码可以在这里找到

当尝试用 GIMP 测试它时,麻烦就开始了。
据我所知,这是因为 GIMP 假设 Wacom 设备报告自己的位置,将触摸屏触摸视为鼠标移动,并且一次只允许来自单个设备的输入。

我的问题是,我该如何解决这个问题?

更具体地说,我如何创建一个uinput充当 Wacom 平板电脑并取代/阻止我描述的行为的设备?
或者是否有不同的解决方案,例如修补 GIMP 或为其编写插件。

更新 (2014-06-07)

上面提到的代码现在可以工作了。

我写了一篇关于让它发挥作用的过程的博客文章:http://gerev.github.io/laptop-cintiq

linux input-devices gimp

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