所以,我正在制作一个在线应用程序,用户可以提交代码,输出将显示给用户.我已将安全性作为首要任务,并已采取以下步骤以确保代码安全运行:
使用以下G ++标志:
-O -std=c++98 -pedantic-errors -Wfatal-errors -Werror -Wall -Wextra -Wno-missing-field-initializers -Wwrite-strings -Wno-deprecated -Wno-unused -Wno-non-virtual-dtor -Wno-variadic-macros -fmessage-length=0 -ftemplate-depth-128 -fno-merge-constants -fno-nonansi-builtins -fno-gnu-keywords -fno-elide-constructors -fstrict-aliasing -fstack-protector-all -Winvalid-pch
Run Code Online (Sandbox Code Playgroud)我的问题我想我真的怎么能让这更安全?你个人认为这种方法有什么问题吗?
我有(另一个)未经检查的演员问题.我90%确定它是安全的,但我想确定(我正在使用@SupressWarnings另一个正在审查代码的开发人员)
我们的框架已经建立了以下模式:
abstract class Writer<T> {
Class<T> valueType;
Writer(Class<T> valueType) {
this.valueType = valueType;
}
}
class Cat { }
class CatWriter extends Writer<Cat> {
CatWriter() {
super(Cat.class);
}
}
Run Code Online (Sandbox Code Playgroud)
我也在使用子类Writer来编写一个使用泛型的类:
class Color {}
class Green extends Color {}
class Brown extends Color {}
Run Code Online (Sandbox Code Playgroud)
我的作家类看起来像这样:
abstract class Bird<C extends Color> {}
class Parrot extends Bird<Green>{}
class Ostrich extends Bird<Brown>{}
class BirdWriter<C extends Color> extends Writer<Bird<C>> {
BirdWriter(Bird<C> bird) {
super((Class<Bird<C>>)bird.getClass());
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在编写器中使用原始类型但是会提供更多警告.相反,我在Writer类中包含泛型.除了构造函数之外,这到处都很好.我不得不投的bird.getClass()(这是一个类对象,它没有一般签名)到Class对象有 …
我正在尝试在每列中构建一个包含7列和24个TextView的子视图.
当我的活动开始时,我得到一个异常,它在堆栈跟踪中的任何地方都没有我的包.
这是24个文本视图中每个视图的背景可绘制资源
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item><shape><solid android:color="#CCC"/></shape></item>
<item android:top=".5pt" android:bottom=".5pt">
<shape android:shape="line">
<size android:height="1pt" android:color="#CCC" android:dashWidth="1pt" android:dashGap="1pt" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
在发生这种情况之前,CPU会在一两秒内达到100%.
我正在使用Android 2.2的模拟器
这是我的例外.
01-26 16:51:38.084: ERROR/AndroidRuntime(955): FATAL EXCEPTION: main
01-26 16:51:38.084: ERROR/AndroidRuntime(955): java.lang.NullPointerException
01-26 16:51:38.084: ERROR/AndroidRuntime(955): at android.graphics.Canvas.drawLine(Canvas.java:809)
01-26 16:51:38.084: ERROR/AndroidRuntime(955): at android.graphics.drawable.GradientDrawable.draw(GradientDrawable.java:347)
01-26 16:51:38.084: ERROR/AndroidRuntime(955): at android.graphics.drawable.LayerDrawable.draw(LayerDrawable.java:320)
01-26 16:51:38.084: ERROR/AndroidRuntime(955): at android.view.View.draw(View.java:6725)
01-26 16:51:38.084: ERROR/AndroidRuntime(955): at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
01-26 16:51:38.084: ERROR/AndroidRuntime(955): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
01-26 16:51:38.084: ERROR/AndroidRuntime(955): at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
01-26 16:51:38.084: ERROR/AndroidRuntime(955): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
01-26 16:51:38.084: …Run Code Online (Sandbox Code Playgroud) 我正在编写一个游戏,它会在一些xml文档和资源文件中包含大量信息(配置,一些内容等).这将使我和其他人更容易编辑程序,而无需编辑实际的C++文件,也无需重新编译.
但是,随着程序开始增长,与程序在同一目录中的文件会增加.所以我想把它们放在一个文件存档中(因为它们主要是文本,因此压缩效果很好).
我的问题是:压缩所有文件会更容易吗:
我认为数字1和2是相似的,但我找不到有关zlib是否可以处理受密码保护的档案的任何信息.
另请注意,我不希望在程序使用时将存档中的文件"提取"到文件夹中.它应该只在系统的内存中.
在我的小部件中,我可以做类似的事情:
MyWindow::MyWindow(QWidget *parent) :
QWidget(parent)
{
ui.setupUi(this);
setStyleSheet("QWidget { background-color: red }"); // <--- HERE
}
Run Code Online (Sandbox Code Playgroud)
这会将小部件背景设置为红色.
我的资源中有一个QSS文件.我如何指示我的小部件从那里获取其样式表内容,而不仅仅是将qss语法作为参数?
当它的必要,我不介意的东西偶尔重复,但在我的MSBuild真的不知道该怎么过避免重复.它通常意义上不提供"功能"; 一个目标只能被调用一次,甚至通过CallTarget,<Import>只能在Project关卡上工作.
这是一个我试图去"重复"的具体例子:
<Target Name="Tgt1">
<PropertyGroup><Conf1>Twiddle</Conf1><Conf2>Thing</Conf2></PropertyGroup>
<PropertyGroup><xxxxxxxxxxExePath>$(xxxxxxxBuildRoot)\$(Conf1)Console-xxxxxxxxed</xxxxxxxxorExePath></PropertyGroup>
<MSBuild Projects="$(BuildSingleProj)" Targets="Build;Merge"
Properties="Configuration=$(Conf1)$(Conf2);Platform=$(Platform);CompiledFileName=$(CompiledFileName);ProjectName=$(ProjectName);SolutionFile=$(SolutionFile);Root=$(Root);Caller=$(MSBuildProjectFullPath)"/>
<MakeDir Directories="$(xxxxxxxxorExePath)" />
<WriteLinesToFile File="$(xxxxxxxxorExePath)\xxxxxxx.IsPortable.txt" />
<WriteLinesToFile File="$(xxxxxxxxorExePath)\xxxxxxx.Global.Settings.xml" Lines="@(xxxxxxxLicense)" Overwrite="true" />
<Exec Command='$(xxxxxxxxorExePath)\xxxxxxx.exe -a "$(xxxxxxxBuildRoot)\$(Conf1)$(Conf2)-Merged\xxxxxxx.exe" "$(xxxxxxxBuildRoot)\$(Conf1)$(Conf2)-xxxxxxxxed\xxxxxxx.exe"'/>
</Target>
Run Code Online (Sandbox Code Playgroud)
我有四个这样的目标,Tgt1,Tgt2,Tgt3,Tgt4.在只有这四个目标之间的区别就是第一行,定义一个Conf1和Conf2.
我所知道的唯一或多或少可行的重复数据删除思想是将共享代码移动到新目标并通过MSBuild任务调用它.遗憾的是,这需要手动传入loooooong属性字符串,并且此任务使用了相当多的(我计算了11个属性和1个项目组).
另一个要求是我可以使用这些目标的任意子集来调用脚本,例如\t:Tgt2,Tgt3.
是否有任何明智的替代方法只需复制/粘贴这一块代码 - 这不涉及复制庞大的属性列表而不是?
假设我想要遍历每个文件(递归地),并用以下内容替换所有内容:
{{ MEDIA_URL }}
Run Code Online (Sandbox Code Playgroud)
有:
{% media_url %}/
Run Code Online (Sandbox Code Playgroud)
在我的所有文件中,我可以在Linux中运行什么命令以递归替换前者?
我的所有实体和值对象都实现了标记接口IEntity和IValueObject.我把它们设置为像这样的组件:
public override bool IsComponent(Type type)
{
return typeof(IValueObject).IsAssignableFrom(type);
}
public override bool ShouldMap(Type type)
{
return typeof(IEntity).IsAssignableFrom(type) || typeof(IValueObject).IsAssignableFrom(type);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎不允许将具有值对象集合的实体自动化为组件集合.例如:
public class MyEntity : IEntity
{
public IList<MyValueObject> Objects { get; set; }
}
public class MyValueObject : IValueObject
{
public string Name { get; set; }
public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
有没有办法定义一个约定,这样,只要IEntity有IList一个类型实现IValueObject,它就像我指定的那样被映射:
HasMany(x => x.Objects)
.Component(x => {
x.Map(m => m.Name);
x.Map(m => m.Value); …Run Code Online (Sandbox Code Playgroud) nhibernate components fluent-nhibernate automapping value-objects
这个问题只是出于好奇.我想知道jquery的.click()是如何在幕后工作的.
例如,如果我创建一个按钮:
<input type="button" id="myButton" value="Click me!" />
Run Code Online (Sandbox Code Playgroud)
然后我有以下jquery代码:
$('#myButton').click( function() {
alert("I have been clicked.");
});
Run Code Online (Sandbox Code Playgroud)
jquery如何使它在单击按钮时调用我的函数?
起初我以为它会将onClick=""属性添加到按钮的标签中,但是当我用Firebug检查页面时,我刚刚看到:
<input type="button" id="myButton" value="Click me!" />
Run Code Online (Sandbox Code Playgroud)
那么jquery在幕后做什么呢?
我试图找到实际呈现JPassword字段的方法.也许渲染不是正确的词,所以这是交易:
我试图让JPassword字段显示不同数量的字符,而不是与我输入的实际密码长度相同.例如,如果我输入密码123456和setEchoChar((字符)值)为"#"
密码将显示如下:######
我希望能够生成随机数量的星星以显示:##########
如果数字为10,例如.(当然没有空格)
我能够通过添加几个侦听器来检测更改,然后获取文本并用我创建的掩码替换它,但这不能令人满意,我希望能够改变实际对象的行为.一点挑战不会伤害,对吗?:)我准备好任何建议.谢谢.
c++ ×2
java ×2
android ×1
automapping ×1
casting ×1
components ×1
compression ×1
drawable ×1
dry ×1
encryption ×1
events ×1
generics ×1
grep ×1
javascript ×1
jquery ×1
linux ×1
msbuild ×1
nhibernate ×1
qt ×1
swing ×1
unix ×1
warnings ×1