我是GitX的作者.GitX的一个功能是分支的可视化,这可以在这里看到.
此可视化目前通过读取以正确顺序从git发出的提交来完成.对于每次提交,父母都是已知的,因此以正确的方式构建通道相当容易.
我想通过使用自己的提交池并自己线性化提交来加快这个过程.这允许我重用现有的已加载提交并允许git更快地发出提交,因为它不必以正确的顺序发出它们.
但是,我不确定使用什么算法来实现这一目标.重要的是,构建是增量的,因为提交的加载可能需要很长时间(100,000次提交> 5秒,应该全部显示).
Gitk已经以同样的方式,并有一个补丁在这里,显示它是如何实现的,但我的TCL技能薄弱,补丁是不是很详尽的注释和有点难以遵循.
我也希望这个算法有效,因为它必须处理数十万次提交.它也必须显示在表中,因此访问特定行很快很重要.
我将描述我到目前为止的输入,我想要的输出和一些观察.
输入:
输出:
几点评论:
有没有办法生成可以在JOIN中使用的任意数量的行,类似于Oracle语法:
SELECT LEVEL FROM DUAL CONNECT BY LEVEL<=10
Run Code Online (Sandbox Code Playgroud) 使用时,你有什么方法可以用脚射击自己boost::shared_ptr?换句话说,当我使用时,我必须避免哪些陷阱boost::shared_ptr?
目前,我的Perl输出是硬编码的,可以转储到以下Unix目录中:
my $stat_dir = "/home/courses/" . **NEED DIR VAR HERE**;
Run Code Online (Sandbox Code Playgroud)
文件名是这样构建的:
$stat_file = $stat_dir . "/" . $sess.substr($yr, 2, 2) . "_COURSES.csv";
Run Code Online (Sandbox Code Playgroud)
我需要一个类似的方法来构建Unix目录,但我需要在创建它们之前先检查它们是否存在.
如何对$ stat_file进行自动编号(修订),以便当这些文件被泵入同一目录时,它们不会覆盖或附加到目录中的现有文件?
给定IP地址列表如何以编程方式检查本地计算机是否仍具有到这些IP地址的活动TCP连接?我正在使用C#.
有没有更好的方法来做到以下几点:
try:
a.method1()
except AttributeError:
try:
a.method2()
except AttributeError:
try:
a.method3()
except AttributeError:
raise
Run Code Online (Sandbox Code Playgroud)
它看起来很讨厌,我宁愿不这样做:
if hasattr(a, 'method1'):
a.method1()
else if hasattr(a, 'method2'):
a.method2()
else if hasattr(a, 'method3'):
a.method3()
else:
raise AttributeError
Run Code Online (Sandbox Code Playgroud)
保持最高效率.
我希望确定3D空间(x,y,z)中点的2D屏幕坐标(x,y).
我希望投射的点是由GPS坐标和海拔高度表示的真实世界点.
例如:Point(Lat:49.291882,Long:-123.131676,Height:14m)
摄像机位置和高度也可以确定为ax,y,z点.我还有相机的标题(罗盘度),它的倾斜度(地平线上方/下方)和滚动(绕z轴).
我没有3D编程的经验,因此,我已经阅读了透视投影的主题,并了解到它需要矩阵,变换等知识 - 所有这些都使我目前感到困惑.
有人告诉我,OpenGL可能用于构建真实世界点的3D模型,设置相机方向并检索3D点的2D坐标.
但是,我不确定使用OpenGL是否是解决此问题的最佳解决方案,即使它是我不知道如何创建模型,设置相机等
有人可以提出解决问题的最佳方法吗?如果OpenGL是一个可行的解决方案,我必须使用OpenGL ES,如果这有任何区别.哦,无论我选择哪种解决方案,都必须快速执行.
谢谢你的帮助
从shell脚本中的目录中选择随机文件的最佳方法是什么?
这是我在Bash中的解决方案,但我会对在Unix上使用的更便携(非GNU)版本非常感兴趣.
dir='some/directory'
file=`/bin/ls -1 "$dir" | sort --random-sort | head -1`
path=`readlink --canonicalize "$dir/$file"` # Converts to full path
echo "The randomly-selected file is: $path"
Run Code Online (Sandbox Code Playgroud)
有人还有其他想法吗?
编辑: lhunath对解析提出了一个很好的观点ls.我想这取决于你是否想要携带.如果您有GNU findutils和coreutils,那么您可以:
find "$dir" -maxdepth 1 -mindepth 1 -type f -print0 \
| sort --zero-terminated --random-sort \
| sed 's/\d000.*//g/'
Run Code Online (Sandbox Code Playgroud)
哇,这很有趣!此外,它更符合我的问题,因为我说"随机文件".但是很幸运的是,现在很难想象在安装了GNU而不是Perl 5的情况下部署的Unix系统.
我们为Outlook编写了一个附加组件,用于将电子邮件存入我们的CRM系统.在此过程中,它将Outlook消息ID作为UserField保存在消息本身上.
例如.
currentUserProperty = Constants.APPLICATION_NAME + "EntryID";
mailItem.UserProperties.Add(currentUserProperty,
Microsoft.Office.Interop.Outlook.OlUserPropertyType.olText,
Missing.Value,
Missing.Value).Value = entryId;
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是一个HUUUGGEE号码,很像:
"00000000D502D779150E2F4580B1AADDF04ECDA6070097EF5A1237597748A4B4F9BFF540020800000006E9E4000068BB5B6DFC36924FAEC709A17D056583000002DE0E350000"
问题是,当用户打印消息时,Outlook坚持要包含此字段(在From/To下面)并且因为它没有空格,所以无法包装ID并压缩A4页面直到它可以水平放置.这会产生极小的电子邮件打印输出.
有什么方法可以纠正这个吗?我曾想过用一个空格分隔的覆盖字段OriginalEntryID(导致问题的那个),但是我从COM层得到一个异常.我的下一步是尝试抑制Outlook上此和其他用户定义字段的输出静止.
有谁知道如何实现这一目标?
总新手问题在这里; 我提前道歉.
假设我有一个用C编写的守护进程,它每五分钟左右唤醒一次,如果输入队列中有任何内容,则进行一些处理,然后再回到睡眠状态.现在假设有一些处理,它只需要在某个(可配置的)时间之后 - 例如,下午2点(和午夜之前)).
在C中,将当前时间小时变为int变量的最快,最好的方法是什么,以便可以轻松检查 - 以确定实际上是否在今天下午2点之后?