我有一张桌子
create table testtable(
testtable_rid serial not null,
data integer not null,
constraint pk_testtable primary key(testtable_rid)
);
Run Code Online (Sandbox Code Playgroud)
所以我要说这个代码约20次:
begin;
insert into testtable (data) values (0);
rollback;
Run Code Online (Sandbox Code Playgroud)
然后我做
begin;
insert into testtable (data) values (0);
commit;
Run Code Online (Sandbox Code Playgroud)
最后一个
select * from testtable
Run Code Online (Sandbox Code Playgroud)
Result: row0: testtable_rid=21 | data=0 Expected result: row0: testtable_rid=1 | data=0
如您所见,序列似乎不受事务回滚的影响.它们继续递增,就好像提交了事务一样,然后删除了该行.有没有办法防止序列以这种方式表现?
我想了解sqlite是如何实现的.并且,想要阅读源代码(我已经下载了源代码).我应该开始考虑哪部分代码?
OpenID是否改善了用户体验?
编辑
不要贬低其他评论,但我在下面得到了一个非常好的回复,概述了OpenID在理性底线方式中的3个优点.我还听到其他评论中的一些低语,你可以通过OpenID访问用户的一些细节(名称?电子邮件?什么?),使用它甚至可以通过不需要收集来简化注册过程尽可能多的信息.
在结账过程中肯定需要收集的东西:
(我很确定我自己要问这些)
从营销的角度来看,可能还有其他一些有趣的事情,但我不会要求用户手动输入在结账过程中不是绝对必需的任何内容.那么这方面有什么可能呢?
/编辑
(您可能已经注意到stackoverflow使用OpenID)
在我看来,用户只需输入他们必须经历的注册表单中的用户名和密码就更容易,更快捷.我的意思是你不要避免使用OpenID输入用户名和密码.但是,您可以避免选择OpenID提供商的混乱,以及从外部站点到外部和外部的旅程.
由于微软将Live ID作为OpenID提供商(更多信息),为Google,雅虎和其他公司提供的额外帐户增加了数亿个,这个问题比以往任何时候都更加重要.
我必须要求新客户在结账过程中进行注册,并且尽可能简单,顺利地进行体验绝对至关重要,每一点点都会变得难以转化为销售损失.在一天结束时,没有极客因素超过冷硬现金:)
OpenID似乎是一个不错的主意,但实现的价值有问题.OpenID的优点是什么?在我上面描述的场景中它真的值得吗?
我是Win32 API的新手,许多新类型开始让我感到困惑.
一些函数将1-2 ints和3 UINTS作为参数.
然后,还有其他类型:
DWORD LPCWSTR LPBOOL
Run Code Online (Sandbox Code Playgroud)
这个是痛苦的: WCHAR*
我不得不遍历它并将每个字符push_back到std :: string,因为没有其他方法可以将它转换为一个.可怕.
WCHAR?为什么重新发明轮子?他们本来可以用char*,或者?我读过一段时间后,昆腾计算机可以在很短的时间内打破大多数类型的散列和加密(我相信这只是几分钟).这怎么可能?我试过阅读有关它的文章,但我迷失了a quantum bit can be 1, 0, or something else.有人可以解释这是如何与普通英语破解这些算法没有所有花哨的数学?
我将创建一个将使用字典查找和插入相当多的项目.这是值得关注的吗?
此外,如果我进行基准测试等并且它确实很糟糕,那么用其他东西替换字典的最佳方法是什么?使用带有"散列"键的数组会更快吗?那会对插入时间有所帮助吗?
另外,我认为我不是微优化,因为这确实是生产服务器上代码的重要组成部分,因此如果需要额外100毫秒才能完成,那么我们将寻找新的方法来处理这个问题.
我有一个文本处理的东西,我在Ruby中做.基本上,我必须实现一个简单的状态机(一个字符后视).
我的代码目前看起来像这样:
text.each{ |c|
...
...
...
...
if @state!=:some_state
next
end
#processing stuff for if in :some_state mode
...
...
...
...
...
}
Run Code Online (Sandbox Code Playgroud)
这是对的吗?或者它应该像下面这样实现:
text.each{ |c|
...
...
...
...
if @state==:some_state
#processing stuff for if in :some_state mode
...
...
...
...
...
end
}
Run Code Online (Sandbox Code Playgroud)
有正确的方式还是只是偏好?哪一个与做事的"红宝石方式"更加融合?
我正在"调试"一个Xamarin Android应用程序,它只在没有连接调试器时出现问题,因此,我不得不依靠登录来找出问题所在.但是,adb logcat从命令行执行操作非常痛苦.常量窗口滚动非常麻烦.Xamarin在Visual Studio中对logcat进行了一些集成,但在实践中,我发现使用它太麻烦了.从我在网上可以看出,看起来每个人都在Eclipse中使用一些插件用于logcat.但是,我没有或想要Eclipse.
是否有任何工具可以提供一个漂亮且易于过滤(并且不是经常滚动)的方式的logcat?最好是在GUI中,因为我必须从一次试图查出这个错误的过程中筛选出相当多的消息
我试图找出isLike:实际上对NSStrings有什么作用并遇到麻烦.Apple 自己的文档很模糊:
返回一个布尔值,指示接收者是否"喜欢"另一个给定对象.
...
NSObject方法返回的此方法的默认实现NO.NSString还提供了此方法的实现,YES如果接收器匹配object描述的模式,则返回该方法.
它提到了一个"模式",但通过一些初步的测试,它似乎没有使用正则表达式.在这种情况下,模式格式究竟是什么?
c ×2
android ×1
arrays ×1
c# ×1
cocoa ×1
coding-style ×1
cryptography ×1
dictionary ×1
encryption ×1
javascript ×1
json ×1
logcat ×1
nsstring ×1
objective-c ×1
open-source ×1
openid ×1
optimization ×1
postgresql ×1
rollback ×1
ruby ×1
sqlite ×1
transactions ×1
winapi ×1