小编Bas*_*asj的帖子

如何使用git合并特定的分支?

注意:这与此问题有某种联系,但它需要额外关注分支.

假设我有一个Github项目https://github.com/basjj/myproject.git ,我的计算机上有2个分支(masterfeature1)和一个本地存储库.

名为的用户blah提出了一个pull-request.他有3个分支(master,feature1,feature2)上https://github.com/blah/myproject.git.

情况1

我想feature2在我的计算机上尝试他的分支,稍微修改它,并将其合并到我自己的master.以下命令是否正确?

git checkout -b feature2
git pull https://github.com/blah/myproject.git   # it pulls only his feature2 branch or all?
# review the new files, make changes, etc.
git add .
git commit
git checkout master
git merge feature2
Run Code Online (Sandbox Code Playgroud)

第二行(git pull...)是拉他所有的分支还是仅仅是他的feature2
还有别的:用户是否blah会出现在Github的贡献者列表中

案例#2

我想feature1在我的计算机上尝试他的分支,稍微修改它,并将其合并到我自己的master. …

git github

2
推荐指数
1
解决办法
52
查看次数

如何禁用"联系Board Administrator"?

该页面/forum/memberlist.php?mode=contactadmin指向此页面,允许访客发送垃圾邮件.

如何在phpBB 3中完全禁用"联系板管理员"功能?

在此输入图像描述


垃圾邮件示例:

你好管理员,

以下是通过"xxx"管理联系页面发送给您的电子邮件.

该消息是从指定以下联系信息的访客发送的:姓名:Barnypok电子邮件地址:jfvynms4281rt@hotmail.com IP地址:188.143.xx

发送给您的消息如下
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

zd9hNf 链接已删除.

phpbb phpbb3

2
推荐指数
1
解决办法
1000
查看次数

Python 中精确的循环计时

对于这个项目,我正在设计一个音序器/鼓机,它应该能够以精确的速度发送 MIDI 音符。示例:每 2 秒 16 个音符(即音乐术语中,每小节 16 个 1/16 音符,BPM 120),即每 125 毫秒一个音符。

我在想:

import time

def midi_note_send(...):
    ....

while True:
    midi_note_send(...)
    time.sleep(0.125)
Run Code Online (Sandbox Code Playgroud)

如果我这样做,如何确定它恰好是 125 毫秒?该循环的 1000 次迭代是否存在使用 126 秒而不是 125 秒的风险?如果是这样,如何获得更精确的循环?

最后一点:一台好的鼓机应该能够在 1 小时内保持 120 BPM 的节奏,精度误差 < 1 秒。
使用的平台:Linux + RaspberryPi 但这个问题一般来说是有效的。

python time timer

2
推荐指数
1
解决办法
6546
查看次数

重新分配struct的std :: vector

比方说,我们有一个std::vectorstructS:

struct abc {
    wstring a;     // length between 0 and 200, 100 on average
    long b;
    long c;
};

std::vector<abc> v;    // 1 - 10 millions of items will be there
Run Code Online (Sandbox Code Playgroud)

在重新分配的情况下会发生什么(例如,因为容量太小push_back(),或者我自己突然增加了容量v.reserve(v.size() + 100000)?

更确切地说:

  1. 所有数据都重写(即所有数据wstrings被重写,等等)

要么

  1. 一个struct类的向量 - 内部"保持指针的记录"到每个单独的结构,所以如果向量被重写,只有这些指针被重写,而不是实际的数据


为了使问题更清楚,它看起来像这样

在此输入图像描述

或者像这样:

在此输入图像描述

或者这个:

在此输入图像描述

或另一种方式?


其他信息供将来参考:

struct abc { wstring a; int b; int c; }; 
wcout << sizeof(wstring);   // 32
wcout << sizeof(int); …
Run Code Online (Sandbox Code Playgroud)

c++ struct memory-management vector

2
推荐指数
1
解决办法
104
查看次数

对 wstrings 向量进行排序,但不区分大小写

对 s的向量进行排序时wstring

vector<wstring> v; 
v.push_back(L"zzz"); 
v.push_back(L"BBB"); 
v.push_back(L"aaa"); 
sort(v.begin(), v.end()); 
Run Code Online (Sandbox Code Playgroud)

结果是 BBB、aaa、zzz。如何进行不区分大小写的排序?


我尝试过

sort(v.begin(), v.end(), 
       [](wstring lhs, wstring rhs) { return tolower(lhs) < tolower(rhs); });
Run Code Online (Sandbox Code Playgroud)

但没有任何成功,因为tolower仅适用于 char / wchar_t,而不适用于 wstring。

我可能必须使用lexicographical_compare,但我不知道如何使用。

(因为我正在寻找一种有效的排序,能够在短时间内对数百万个 wstring 进行排序,所以我认为临时存储所有 wstring 小写的副本,并对第二个向量进行排序不是一个好主意?)

c++ sorting string vector

2
推荐指数
1
解决办法
1250
查看次数

SetTimer(具有回调函数)是否通过启动新线程工作?

使用SetTimer这种方式时:

SetTimer(hWnd, IDT_TIMER_LONGPROCESSING, 2000, (TIMERPROC) NULL);
DoSomethingElse();
Run Code Online (Sandbox Code Playgroud)

执行立即继续(即它是非阻塞的DoSomethingElse()立即执行),但是当此消息到达时

case WM_TIMER:
    if (wParam == IDT_TIMER_LONGPROCESSING)
         DoAOneSecondLongJob();
Run Code Online (Sandbox Code Playgroud)

然后它在1秒长的处理期间再次阻止"窗口消息循环",导致无响应的界面.这SetTimer只是发布计时器消息的正常行为.

但我看到SetTimer也可以以第二种方式使用,具有回调函数:

VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{ 
    DoAOneSecondLongJob();
}

// in another function    
SetTimer(hwnd, IDT_TIMER_LONGPROCESSING, 2000, (TIMERPROC) MyTimerProc);
Run Code Online (Sandbox Code Playgroud)

题:

  • 这种方法也会阻塞吗?

要么

  • 它会解决1秒内无响应接口的问题吗?如果是这样,怎么样?引擎盖下是否有新的线程创建?

c++ windows winapi multithreading timer

2
推荐指数
1
解决办法
1494
查看次数

使用 Javascript 检查字符串是否包含列表中的标记

我想检查字符串是否s包含列表中的任何标记L

Javascript 中有内置函数可以实现此目的吗?或者我是否必须手动执行以下操作:

function present(s, L) {
  for (var i = 0; i < L.length; i++)
    if (s.indexOf(L[i]) !== -1)
      return true;
  return false;
}

var L = ['abc', 'def', 'ghi'];
var s = 'Yes, definitely.';
present(s, L);  // true
Run Code Online (Sandbox Code Playgroud)

javascript arrays string

2
推荐指数
1
解决办法
1585
查看次数

使用SQLite作为键:值存储

正如在这里的评论和其他问题中所建议的那样,SQLite可以完全用作持久性密钥:值存储.

你将如何定义一个类(或只是包装函数),使用一个键:使用SQLite的值存储将如下所示:

kv = Keyvaluestore('/test.db')
kv['hello'] = 'hi'        # set
print kv['hello']         # get
print 'blah' in kv        # answer: False because there's no key 'blah' in the store
kv.close()
Run Code Online (Sandbox Code Playgroud)

python sqlite dictionary key-value key-value-store

2
推荐指数
2
解决办法
4430
查看次数

将 std::vector&lt;int&gt; 保存到文件

我注意到,使用时:

std::vector<int> v(100000);
...
std::ofstream outfile("outfile.dat", std::ios::out | std::ofstream::binary);
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(outfile));
outfile.close();
Run Code Online (Sandbox Code Playgroud)

mystd::vector<int>未序列化为原始字节数据(每个 4 个字节)int),而是序列化为字符串,即每个整数的字符串表示形式保存到磁盘,这是我不想要的。

如何保存std::vector<int>为二进制数据?

(注意:在学习新方法之前,我想用标准 C++03 来学习它)。

c++ serialization vector c++03

2
推荐指数
1
解决办法
1937
查看次数

在模态弹出窗口中打开外部网站

我知道在新选项卡<a href="http://www.example.com" target="_blank">Click here</a>打开链接(Chrome 和 Firefox 中的默认行为)并且

<a href="http://www.example.com" onclick="window.open('http://www.example.com', 
        'newwindow', 'width=700,height=500'); return false;">Click here</a>
Run Code Online (Sandbox Code Playgroud)

在新窗口中打开它。

但是如何在模式弹出窗口中打开外部页面(以屏幕为中心,原始页面的其余部分“变暗”)?

有什么好的方法吗?

我尝试了以下代码,但它似乎不起作用(单击:弹出窗口打开,重新单击,它关闭,重新单击链接:它不再打开。iframe 也不会加载)。

<a href="http://www.example.com" onclick="window.open('http://www.example.com', 
        'newwindow', 'width=700,height=500'); return false;">Click here</a>
Run Code Online (Sandbox Code Playgroud)
document.getElementById("a").onclick = function(e) {
  e.preventDefault();
  document.getElementById("popup").style.display = "block";
  document.getElementById('iframe').src = "http://example.com";
  document.getElementById('page').className = "darken";
  setTimeout(function() { 
    document.getElementById('page').onclick = function() {
      document.getElementById("popup").style.display = "none";
      document.getElementById('page').className = "";
    }
  }, 100);
  return false;
}
Run Code Online (Sandbox Code Playgroud)
#popup { 
  display: none; 
  border: 1px black solid;
  width: 400px; height: 200px; 
  top:20px; left:20px; …
Run Code Online (Sandbox Code Playgroud)

html javascript css iframe popup

2
推荐指数
2
解决办法
2万
查看次数