我正在DynamoDB中编写一个简单的日志记录服务.
我有一个日志表,由user_id哈希和时间戳(Unix epoch int)范围键入.
当服务的用户终止其帐户时,我需要删除表中的所有项目,而不管范围值如何.
这种操作的推荐方法是什么(请记住可能有数百万项要删除)?
据我所知,我的选择是:
答:执行扫描操作,在每个返回的项目上调用删除,直到没有剩余项目
B:执行BatchGet操作,再次对每个项目调用delete,直到没有剩下
这些对我来说都很糟糕,因为它们需要很长时间.
我理想的做法是调用LogTable.DeleteItem(user_id) - 不提供范围,并让它为我删除所有内容.
我正在编写一个处理大量图像的Windows Phone 7应用程序 - 这些图像的范围可以从几百像素到1080P(未来可能更高).
图像是非常耗费资源的,所以我在显示它们之前走了缓存+调整手机图像大小的路径.
这意味着在用户输入图像存储的IP地址后第一次设置时,我可以要求他们等待几分钟,同时检索/调整大小/缓存.从那时起,他们可以拥有漂亮而快速的表现.
目前,我的缓存管理器通过Uri和文件位置的字典跟踪图像.我有一个队列,一次最多可处理5个图像(异步Web请求,调整大小是在线程池线程上完成的).
我遇到的问题是Silverlight中的WritableBitmap类是一个UI元素,这意味着我必须通过Dispatcher转换到UI线程来进行实际的大小调整,这是一个愚蠢的事情并减慢整个事情 - 这也意味着我的缓存管理器是有效的单线程.
所以它进入缓存管理器(线程池) - >异步Web请求(线程池) - >回调(线程池) - >调整大小(UI线程) - >将缓存作业标记为完成(线程池).
我一直在寻找第三方库,它将A)编译并在Windows Phone 7和B上运行.能够通过操纵流或字节数组来调整各种格式的图像,而不依赖于UI线程.
有没有人有这方面的经验?
干杯,
泰勒
我一直在搜索SO和谷歌,但还没有发现任何有用的东西.
我们正在更新现有的iOS项目以针对iOS 5进行构建.
我们的项目有两个目标,第一个是我们的静态库,第二个是单元测试应用程序(GHUnit).
构建单元测试目标时,它成功编译静态库,但是无法使用以下输出链接它:
Ld /Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Products/Debug-iphonesimulator/UnitTests.app/UnitTests normal i386
cd /Users/XXXXXX/Documents/iOS/trunk
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -L/Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Products/Debug-iphonesimulator -F/Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Products/Debug-iphonesimulator -F/Users/XXXXXX/Documents/iOS/trunk -F/Users/XXXXXX/Documents/iOS/trunk/UnitTests -filelist /Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Intermediates/XXXXXXLibrary.build/Debug-iphonesimulator/UnitTests.build/Objects-normal/i386/UnitTests.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -ObjC -all_load -Wl -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=50000 -framework SystemConfiguration -framework CoreLocation -framework CoreData /Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Products/Debug-iphonesimulator/XXXXXX.a -framework GHUnitIOS -framework CoreGraphics -framework Foundation -framework UIKit -o /Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Products/Debug-iphonesimulator/UnitTests.app/UnitTests
Undefined symbols for architecture i386:
"_llvm_gcda_start_file", referenced from:
___llvm_gcov_writeout in XXXXXX.a(NSObject+SBJSON.o)
___llvm_gcov_writeout in XXXXXX.a(NSString+SBJSON.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonBase.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonParser.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonWriter.o)
___llvm_gcov_writeout …Run Code Online (Sandbox Code Playgroud) 我们最近一直在开发一个相当现代的Web应用程序,并准备将其部署到alpha/beta并获得一些真实的体验.
我们有基于ASP.Net的Web服务(Web Api)和JavaScript前端,它是使用骨干的100%客户端MVC.
我们已经购买了域名,为了这个问题,我们的部署如下:
webservices.mydomain.com(Webservices)
mydomain.com(JavaScript前端)
如果JavaScript试图与子域上的Web服务进行通信,那么我们就会遇到跨域问题,我已经玩过CORS,但我不满意跨浏览器支持,所以我把它作为一个选项.
在我们的开发PC上,我们使用IIS反向代理将所有请求转发到mydomain.com/webservices到webservices.mydomain.com - 这解决了我们所有的问题,因为浏览器认为一切都在同一个域上.
所以我的问题是,在公开部署中,这个问题最常见的解决方法是什么?反向代理是正确的方法吗?如果有,是否有任何托管服务为这种情况提供反向代理?是否有更好的部署方法?
我想使用CloudFront CDN,因为我们所有的服务器/服务都是用亚马逊托管的,我真的很难找到有关CDN是否可以支持这种类型设置的信息.
谢谢
我有一个WPF列表框,并更新了列表项数据模板,基本上有3列布局.
我想要:
|状态颜色|名称| 按钮|
这些可能是CSS术语,但我想将状态颜色和名称浮动到左边,我已经完成了,然后我希望按钮向右浮动,并且即使窗口变宽也始终保持向右.
我感觉自己如此接近,当窗口变宽时,列表项宽度会增长,我觉得我要做的就是告诉按钮向右浮动,但无法弄清楚如何.我已经尝试过堆叠面板,一个带有auto |*| auto列布局的网格(在最后一列上有一个拉伸),我尝试了一个dockpanel.
这是我的XAML:
<Controls:MetroWindow x:Class="Appsecute.Views.MainView2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:AppsecuteControls="clr-namespace:Appsecute.Controls"
Title="APPSECUTE" Height="630" Width="480" Icon="/Appsecute;component/Images/icon.png" WindowStartupLocation="CenterScreen">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedSingleRowTabControl.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro.Resources;component/Icons.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid Margin="0,0,12,0">
<AppsecuteControls:NotifyIcon
x:Name="NotifyIcon"
Text="Appsecute"
Icon="/Images/icon.ico" MouseDoubleClick="NotifyIconMouseDoubleClick" Grid.ColumnSpan="2">
<AppsecuteControls:NotifyIcon.ContextMenu>
<ContextMenu StaysOpen="False">
</ContextMenu>
</AppsecuteControls:NotifyIcon.ContextMenu>
</AppsecuteControls:NotifyIcon>
<Grid Height="auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="auto" Margin="12,0,0,24">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
<RowDefinition Height="*" /> …Run Code Online (Sandbox Code Playgroud) 背景:
我们在.NET C#解决方案中使用第三方工具.此工具具有自己的语法并与Visual Studio集成.当我们使用这个工具时,我们在Visual Studio中编写它的标记,然后当我们构建解决方案时,自定义工具运行并根据我们编写的标记生成.cs文件.
生成的源文件包含一个版本号,当我们将这些版本控制到版本控制时会产生问题(无休止的冲突).我们的理解是,最好不要检查生成的源文件.
因此我们从SVN中排除了生成的.cs文件,然后我们遇到的下一个问题是Visual Studio解决方案引用了这些文件,因此当TeamCity(我们的持续构建/集成软件)去构建解决方案时,它会立即失败因为它找不到这些文件.
然后我们从解决方案中删除了这些并将它们从SVN中排除,这解决了原始问题,我们不再检查生成的代码,并且它在TeamCity中构建良好(因为文件是在每次构建时重新生成的).
我们现在遇到了一个新问题 - 由于生成的文件不再包含在解决方案中,因此无法找到生成的类,因此智能感知和代码检查失败.解决方案构建得很好(再次在构建期间重新生成代码).
题
有没有办法告诉ReSharper在代码检查中包含生成的.cs文件?这些文件在解决方案外部,但它们位于obj目录中.
干杯,
泰勒
c# resharper intellisense code-generation visual-studio-2010
我有一个JSON结构,我想使用JSON.NET手动解析为POCO对象.
JSON结构是一堆嵌套字典...根字典包含类别,下一级包含这些类别中的产品,最后一级包含这些产品的版本.
{
"category-1": {
"product-1": {
"product-version-1": {
"id":1,
...
}
}
},
"category-2": {
"product-2": {
"product-version-2": {
"id":2,
...
}
},
"product-3": {
"product-version-3": {
"id":3,
...
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想解析这个结构,记住所有词典的关键是我不知道的.
这是我写的(我要转换为LINQ一旦它的工作...)的代码 - 我想到这与一对夫妇嵌套循环的工作,但显然JTokens和JObjects不工作我以为的方式.. .Id始终为空.
var productsJObject = JObject.Parse(result.Content.ReadAsStringAsync().Result);
foreach (var category in productsJObject)
{
foreach (var product in category.Value)
{
foreach (var version in product)
{
var poco = new Poco
{
Id = version.SelectToken("id").ToString()
};
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何使用JSON.Net迭代嵌套字典?
有人有 MongoDB 中访问控制建模的例子吗?我想到的情况是:
有一组资源,每个资源都有自己的文档(例如汽车、人、树木等)。
用户可以通过显式授予来获得对资源的访问权,或者通过成为存在于另一个集合中的资源的所有者(例如角色)或一些其他隐式方式来隐式地获得对资源的访问权。
在一个 collection.find() 方法中,可以应用跳过和限制选项(用于分页),是否有一种方法可以检查所有这些显式和隐式路径并生成用户有权访问的资源的结果?
在 MySQL 中,我们使用带有资源 ID、授予用户 ID、授权用户 ID 和操作(读、写等)的授权表对此进行建模。然后,我们在一个查询中选择至少一个子查询为真的所有资源,然后子查询检查所有不同的访问路径,例如一个检查授权,一个检查所有权等。
我只是无法集中精力在 MongoDB 中执行此操作,我不确定这是否可能......
谢谢
我们正在编写一个Web应用程序作为后端的控制面板,我们只使用JavaScript - 所有DOM元素都是动态创建的,根本没有静态HTML.
我们有一个模块/插件类型接口,模块是"视图"的集合 - 视图本质上是一个函数,它包含一个初始化方法,它接受一个div的arg,因此它知道在哪里绘制自己.
当用户在视图之间浏览时,我们会保留他们去过的地方和他们所在的历史等等.因此我们可以在视图之间提供后退/前进导航,以及在导航时保存视图的状态.
我们提供面包屑跟踪以及后退和前进按钮.我还想做的是挂钩浏览器后退/前进按钮,这样我们就可以拦截点击并覆盖它,以便浏览我们正在维护的历史记录 - 当它们到达我们维护的历史记录的第一页时我们当然不会覆盖并让他们离开我们的网站.
有一个共同的方法来做到这一点?或者浏览器明确地阻止了这种事情?
谢谢
我正在为我们的Web服务编写内存缓存设置.这样我们就不必在每次需要设置时都访问数据库.我们有一种机制可以在更新数据库时使缓存无效.
缓存是一堆包含不同类型的字典,这里有两个字典:
static readonly object StringValueCacheMutex = new object();
static readonly Dictionary<string, Dictionary<string, string>> StringValueCache = new Dictionary<string, Dictionary<string, string>>();
static readonly object IntegerValueCacheMutex = new object();
static readonly Dictionary<string, Dictionary<string, Int64>> IntegerValueCache = new Dictionary<string, Dictionary<string, Int64>>();
Run Code Online (Sandbox Code Playgroud)
我想编写一个从这些字典中获取值的泛型函数,如果在字典中找不到类别/设置,它应返回null以表示未找到它.
问题是这些字典包含可空和非可空类型.
这是我想要的通用:
public static TValue GetValueOrNull<TValue>(
IDictionary<string, Dictionary<string, TValue>> cacheDictionary,
object cacheMutex,
string categoryName,
string settingName)
{
TValue value = null;
lock (cacheMutex)
{
if (cacheDictionary.ContainsKey(categoryName))
{
if (cacheDictionary[categoryName].ContainsKey(settingName))
{
value = cacheDictionary[categoryName][settingName];
}
}
}
return value;
}
Run Code Online (Sandbox Code Playgroud)
这将无法编译,因为:"无法将null转换为类型参数'TValue',因为它可能是一个不可为空的值类型.请考虑使用'default(TValue)'."
我想返回null而不是默认值(TValue)的原因是,在整数的情况下,调用者无法知道设置值是否实际为0或者是否在缓存中找不到它. …