在不使用glLineWidth的情况下绘制可变宽度线的最佳方法是什么?只画一个矩形?各种平行线?以上都不是?
我有一个Google App Engine应用程序 - http://mylovelyapp.appspot.com/ 它有一个页面 - mylovelypage
目前,页面就是这样 self.response.out.write('OK')
如果我在我的计算机上运行以下Python:
import urllib2
f = urllib2.urlopen("http://mylovelyapp.appspot.com/mylovelypage")
s = f.read()
print s
f.close()
Run Code Online (Sandbox Code Playgroud)
它打印"OK"
问题是如果我login:required在应用程序的yaml中添加到此页面
然后打印出Google帐户登录页面的HTML
我尝试过"正常"的身份验证方法.例如
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(None,
uri='http://mylovelyapp.appspot.com/mylovelypage',
user='billy.bob@gmail.com',
passwd='billybobspasswd')
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
Run Code Online (Sandbox Code Playgroud)
但它没有任何区别 - 我仍然得到登录页面的HTML.
我已经尝试了Google的ClientLogin auth API,但我无法让它工作.
h = httplib2.Http()
auth_uri = 'https://www.google.com/accounts/ClientLogin'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
myrequest = "Email=%s&Passwd=%s&service=ah&source=DALELANE-0.0" % ("billy.bob@gmail.com", "billybobspassword")
response, content = h.request(auth_uri, 'POST', body=myrequest, headers=headers)
if response['status'] == '200':
authtok = re.search('Auth=(\S*)', …Run Code Online (Sandbox Code Playgroud) 我有2台显示器,大多数时候我在一个屏幕上打开了一些参考资料,而在另一个屏幕上打开了Visual Studio.但是,为了真正进入这个区域,我需要我的代码是我唯一看到的东西.有谁知道在Visual Studio中是否可以有多个代码窗口?到目前为止,我能做的最好的事情是将调试器输出和解决方案资源管理器放在我的左侧监视器上,其余的VS放在右侧.不过,我很乐意在两个窗口上都有代码.
我使用过git pull并且发生了合并冲突:
unmerged: _widget.html.erb
You are in the middle of a conflicted merge.
Run Code Online (Sandbox Code Playgroud)
我知道该文件的其他版本是好的,我的是坏的所以我的所有更改都应该放弃.我怎样才能做到这一点?
git version-control git-merge merge-conflict-resolution git-merge-conflict
我正在尝试使用cygwin作为Windows下的构建环境.我对第三方软件包有一些依赖,例如GTK +.
通常当我在Linux下构建时,在我的Makefile中我可以添加对pkg-config的调用作为gcc的参数,所以它就像这样:
gcc example.c `pkg-config --libs --cflags gtk+-2.0`
这在Linux下工作正常,但在cygwin中,我得到:
:Invalid argument make: *** [example] Error 1
现在,我只是手动运行pkg-config并将输出粘贴到Makefile中,这真的很糟糕.有没有一种解决方法或解决此问题的好方法?
制造不是罪魁祸首.我可以复制并粘贴用于调用gcc的命令行,并且它本身将运行gcc,它将以":Invalid argument"停止.
我写了一个小的测试程序来打印出命令行参数:
for (i = 0; i < argc; i++)
printf("'%s'\n", argv[i]);
Run Code Online (Sandbox Code Playgroud)
注意单引号.
$ pkg-config --libs gtk+-2.0 -Lc:/mingw/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpang owin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule- 2.0 -lglib-2.0 -lintl
贯穿测试程序:
$ ./t `pkg-config --libs gtk+-2.0` 'C:\cygwin\home\smo\pvm\src\t.exe' '-Lc:/mingw/lib' '-lgtk-win32-2.0' '-lgdk-win32-2.0' '-latk-1.0' '-lgdk_pixbuf-2.0' '-lpangowin32-1.0' '-lgdi32' '-lpangocairo-1.0' '-lpango-1.0' '-lcairo' '-lgobject-2.0' '-lgmodule-2.0' '-lglib-2.0' '-lintl' '
注意最后一行的单引号.看起来argc比它应该更大,而argv [argc - 1]为null.在Linux上运行相同的测试没有这个结果.
也就是说,有一些方法可以让Makefile将pkg-config的结果存储到变量中,然后使用该变量,而不是使用反向运算符?
假设我有这段代码:
if (md5($_POST[$foo['bar']]) == $somemd5) {
doSomethingWith(md5($_POST[$foo['bar']]);
}
Run Code Online (Sandbox Code Playgroud)
我可以通过这样做来缩短它:
$value = md5($_POST[$foo['bar']];
if ($value == $somemd5) {
doSomethingWith($value);
}
Run Code Online (Sandbox Code Playgroud)
但是,是否有任何预设变量包含当前的第一个或第二个条件?例如:
if (md5($_POST[$foo['bar']]) == $somemd5) {
doSomethingWith($if1);
}
Run Code Online (Sandbox Code Playgroud)
可能是一种不必要的方式,但我只是想知道.
我正在使用Microsoft Access 2007在两个SQL Server之间移动和按摩一些数据.昨天一切正常,我能够运行查询,更新数据和删除数据.
今天我打开了Access数据库来完成数据迁移,当我尝试运行一些更新查询时,我现在收到以下消息:
禁用模式已阻止操作或事件.
这是什么想法?
我正在开发一个安装系统范围键盘钩子的应用程序.当我从visual studio内部运行调试版本时,我不想安装这个钩子(否则它会挂起工作室,最终挂起系统),我可以通过检查是否定义了DEBUG符号来避免这种情况.
但是,当我调试应用程序的发布版本时,有没有办法检测它是否已从visual studio内部启动以避免同样的问题?因为我一直在处理发布版本,并且想要使用忘记切换回调试版本的调试器修复一些错误,所以必须重新启动工作室/计算机是非常烦人的.
目前我使用这样的方法来检查这种情况:
System.Diagnostics.Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();
string moduleName = currentProcess.MainModule.ModuleName;
bool launchedFromStudio = moduleName.Contains(".vshost");
Run Code Online (Sandbox Code Playgroud)
我称之为"蛮力方式",这在我的设置中有效,但我想知道是否有另一种(更好的)方法来检测这种情况.