我有这个家庭作业,我必须使用bittorrent算法将一个非常大的文件从一个源传输到多台机器.最初我将文件切割成块,然后将块传输到所有目标.目标具有分享他们与其他目标的块的智能.它工作正常.我想传输一个4GB的文件,所以我把四个1GB的文件.当我创建4GB tar文件时没有出错,但在另一端将所有块组装回原始文件时,它错误地说超出了文件大小限制.我怎样才能解决这个2GB限制问题?
这两个陈述之间有什么区别:
IntPtr myPtr = new IntPtr(0);
IntPtr myPtr2 = IntPtr.Zero;
Run Code Online (Sandbox Code Playgroud)
我已经看到许多使用PInvoke的示例,如果myPtr参数由ref发送到被调用函数,则它更喜欢第一种语法.如果我在我的应用程序中用IntPtr.Zero替换所有新的IntPtr(0),它会造成任何损害吗?
我开始在WPF做一些事情,我有一个问题.我认为答案可能很容易,甚至很明显,但不知怎的......
我在网格包含的表单上有两个控件.我希望第二个控件位于第一个位置上方(它是透明的).来自WinForms开发并不那么难,所以它不会出现在WPF中.但我不明白......
萨沙
我正在尝试使用以下代码获取位图上下文:
GContextRef MyCreateBitmapContext (int pixelsWide, int pixelsHigh)
{
CGContextRef context = NULL;
CGColorSpaceRef colorSpace;
void * bitmapData;
int bitmapByteCount;
int bitmapBytesPerRow;
bitmapBytesPerRow = (pixelsWide * 4); // 1
bitmapByteCount = (bitmapBytesPerRow * pixelsHigh);
colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);// 2
bitmapData = malloc( bitmapByteCount ); // 3
if (bitmapData == NULL)
{
fprintf (stderr, "Memory not allocated!");
return NULL;
}
context = CGBitmapContextCreate (bitmapData, // 4
pixelsWide,
pixelsHigh,
8, // bits per component
bitmapBytesPerRow,
colorSpace,
kCGImageAlphaPremultipliedLast);
if (context== NULL)
{
free (bitmapData); // …Run Code Online (Sandbox Code Playgroud) 我已经制作了一个渐变,我非常喜欢表达式混合,我正在努力研究如果我可以围绕一个角落制作渐变曲线,给我一个带渐变的圆角边框效果.
问题是我不能使用普通边框,因为渐变不一致.
我提出以下内容应该有助于展示我的想法: 带有渐变的圆角http://img232.imageshack.us/img232/9899/roundedcornerrg0.th.jpg
<Grid x:Name="grid" >
<Border
BorderThickness="0,0,40,40"
CornerRadius="0,0,40,0"
Padding="2" Height="60" VerticalAlignment="Bottom" Width="65" HorizontalAlignment="Right" >
<Border.BorderBrush>
<RadialGradientBrush>
<RadialGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="2.058" ScaleY="2.177"/>
<SkewTransform AngleX="0" AngleY="0" CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="-119.481" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform X="0.209" Y="0.52"/>
</TransformGroup>
</RadialGradientBrush.RelativeTransform>
<GradientStop Color="#FF000000" Offset="0"/>
<GradientStop Color="#000A0A0A" Offset="1"/>
<GradientStop Color="#6B050505" Offset="0.829"/>
<GradientStop Color="#BB020202" Offset="0.763"/>
</RadialGradientBrush>
</Border.BorderBrush>
</Border>
<Rectangle VerticalAlignment="Stretch" Height="100" Width="40" HorizontalAlignment="Right" Margin="0,0,0,60" StrokeThickness="0" Panel.ZIndex="0">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="-0.025,0.5" StartPoint="1,0.5">
<GradientStop Color="#FF000000" Offset="0"/>
<GradientStop Color="#000A0A0A" Offset="1"/>
<GradientStop Color="#6B050505" Offset="0.829"/>
<GradientStop Color="#BB020202" Offset="0.763"/>
</LinearGradientBrush>
</Rectangle.Fill> …Run Code Online (Sandbox Code Playgroud) 我需要同时对两个数组进行排序,或者更确切地说,我需要对其中一个数组进行排序,并在排序时将其关联数组的相应元素与它一起使用.那就是如果数组是[(5,33),(4,44),(3,55)]并且我按第一轴排序(标记为dtype ='alpha')那么我想:[(3.0,55.0 )(4.0,44.0)(5.0,33.0)].这些都是非常大的数据集,我需要先排序(对于nlog(n)速度),然后再进行其他操作.我不知道如何以正确的方式合并我的两个单独的数组,以使排序算法工作.我认为我的问题很简单.我尝试了三种不同的方法:
import numpy
x=numpy.asarray([5,4,3])
y=numpy.asarray([33,44,55])
dtype=[('alpha',float), ('beta',float)]
values=numpy.array([(x),(y)])
values=numpy.rollaxis(values,1)
#values = numpy.array(values, dtype=dtype)
#a=numpy.array(values,dtype=dtype)
#q=numpy.sort(a,order='alpha')
print "Try 1:\n", values
values=numpy.empty((len(x),2))
for n in range (len(x)):
values[n][0]=y[n]
values[n][1]=x[n]
print "Try 2:\n", values
#values = numpy.array(values, dtype=dtype)
#a=numpy.array(values,dtype=dtype)
#q=numpy.sort(a,order='alpha')
###
values = [(x[0], y[0]), (x[1],y[1]) , (x[2],y[2])]
print "Try 3:\n", values
values = numpy.array(values, dtype=dtype)
a=numpy.array(values,dtype=dtype)
q=numpy.sort(a,order='alpha')
print "Result:\n",q
Run Code Online (Sandbox Code Playgroud)
我评论了第一个和第二个版本,因为它们会产生错误,我知道第三个版本会起作用,因为这反映了我在RTFM时所看到的内容.给定数组x和y(非常大,只显示示例)如何构造可以被numpy.sort正确调用的数组(称为值)?
***Zip很棒,谢谢.奖金问题:我怎样才能将排序后的数据再次解压缩成两个数组?
好的,所以标题可能不能很好地解释我的问题.希望这是有道理的.这也是我用jQuery的第一个应用程序,所以请原谅我,如果我做的事情是愚蠢的.
我有以下功能:
function getRandomImages(limit) {
imagesArray = new Array();
$.getJSON('createImageArray.php', {limit: limit}, function(data) {
$.each(data, function(i) {
imagesArray[i] = data[i]; //imagesArray is declared globally.
});
});
}
Run Code Online (Sandbox Code Playgroud)
getJSON正确地抓取JSON对象.它返回如下内容:
{"image0":"images/19.10.FBB9.jpg","image1":"images/8.16.94070.jpg","image2":"images/8.14.47683.jpg","image3":"images/8.15.99404.jpg","image4":"images/8.13.20680.jpg","image5":"images/21.12.9A.jpg","image6":"images/8.17.75303.jpg"}
Run Code Online (Sandbox Code Playgroud)
我正在调试并确信data [i]正确包含从JSON对象中获取的图像路径.但是,在调用getRandomImages()之后,我会查看我的全局imagesArray并注意到没有任何更改.我猜它正在创建imagesArray的副本,而不是抓住实际的.
有人可以告诉我我需要做什么,以便我的全局imagesArray在$ .each块中更新?我是否需要以某种方式通过引用传递imagesArray?对不起,我有点迷路了.
谢谢您的帮助.
编辑:一些背景信息.我正在从DB填充一组随机图像位置.我不想一次将db中的所有图像加载到一个数组中,因为它太多了.所以,我有一个计数器,可以跟踪我在图像数组中的位置.完成图像后,我将指针移动到下一个图像.如果我到达终点,我需要抓取更多随机图像.这就是调用上面的js函数的地方; 它调用createImageArray.php,它从db中抓取x个随机图像并返回一个数组.然后我想将这些图像位置存储在我的全局imagesArray中.
我不确定如何重构我的代码以考虑.getJSON的asynchronouos性质.
对于图像上传工具,我想自动检测图像的(主观)质量,从而产生质量评级.
我有以下想法,以启发式方式实现这一点:
显然,如果对大图像进行评级,我的方法会消耗很多周期和内存,尽管这可以在我的场景中实现(胖服务器,上传的内容不多),而且我总是可以围绕更昂贵的步骤建立"短路"如果图像超过一定的分辨率.
还有其他我可以尝试的,还是有办法更有效地做到这一点?
在我的PHP应用程序(使用symfony框架和Propel ORM构建)中,当我向MYSQL数据库添加记录时,我需要使用外部供应商提供的Web服务API更新外部MYSQL数据库.
问题是维护数据库完整性的最佳实践是什么.举例来说,如果第一次更新成功,而第二次更新不成功,由于Web服务不可用,我必须能够
具体来说,我正在寻找类似的语法
void RootMethod()
{
using(TransactionScope scope = new TransactionScope())
{
try
{
SomeMethod();
scope.Complete();
CallWebService();
}
catch
{
scope.abort();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但不确定是否
你怎么看?
编辑:有些人问我为什么需要两部分更新.这是因为我正在创建一个连接到现有后端应用程序的前端应用程序.我不想改变后端应用程序.因此不可避免地会有一些重叠.因此需要同步数据
另一个编辑:两部分事务必须一起完成,做一个cron作业同步表是不可取的