小编sga*_*a62的帖子

当将负数左移两位补码时,保证负结果吗?

假设负二进制数中表示我们如何能保证标志被保留?

假设我们-5用四位表示一个十进制数:1011,并想将一个数左移乘以2:

1011 << 1
Run Code Online (Sandbox Code Playgroud)

此操作返回0110,它是6,而不是我们希望的-10

(我假设这仅适用于第二位为0的负数,即负数接近某个范围的最小可表示负数)

binary bit-manipulation bit-shift negative-number twos-complement

6
推荐指数
1
解决办法
2285
查看次数

什么是async.waterfall的简单实现?

我正在使用异步库中的一些函数,并希望确保我了解它们在内部的工作方式; 但是,我坚持 async.waterfall(在这里实施).实际实现使用了库中的其他功能,没有太多经验,我发现很难遵循.

有人可以在不担心优化的情况下提供一个非常简单的实现来实现瀑布的功能吗?可能与这个答案相当的东西.

文档中,瀑布的描述:

运行函数的tasks数组,每个函数将结果传递给数组中的下一个.但是,如果任何任务将错误传递给它们自己的回调,则不执行下一个函数,并立即调用主回调并显示错误.

一个例子:

async.waterfall([
    function(callback) {
        callback(null, 'one', 'two');
    },
    function(arg1, arg2, callback) {
      // arg1 now equals 'one' and arg2 now equals 'two'
        callback(null, 'three');
    },
    function(arg1, callback) {
        // arg1 now equals 'three'
        callback(null, 'done');
    }
], function (err, result) {
    // result now equals 'done'    
});
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous waterfall node.js

6
推荐指数
1
解决办法
1168
查看次数

Instagram 基本显示 API 响应 400 AccessToken 错误请求

问题

https://api.instagram.com/oauth/access_token从我们的后端向(此处的步骤 2)发出 post 请求会导致 400 Bad Request,而没有任何其他信息。

我们始终能够使用 cURL 请求并在 iOS 模拟器上使用 fetch 访问 API 来获得成功的响应,但节点请求失败。我们现在已经尝试了几个请求库,包括requestnode-fetchaxios,它们都显示相同的响应状态和错误消息。

成功的 cURL 请求

这是成功运行的 cURL(忽略敏感数据):

curl -X POST \
  https://api.instagram.com/oauth/access_token \
  -H 'Accept: */*' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Host: api.instagram.com' \
  -H 'Postman-Token: ${myPostmanToken} ' \
  -H 'User-Agent: PostmanRuntime/7.11.0' \
  -H 'accept-encoding: gzip, deflate' \
  -H 'cache-control: no-cache' \
  -H 'content-length: 403' \
  -H …
Run Code Online (Sandbox Code Playgroud)

node.js instagram instagram-api

6
推荐指数
1
解决办法
3183
查看次数

在 Sequelize 中使用范围和 create 方法

Sequelize范围允许用户在模型上定义可重用的查询。您可以定义 adefaultScope以及 name scopesfind我让这些为、update和工作findAll,但不为create.

来自文档:

.scope通过调用模型定义并传递一个或多个范围的名称来应用范围。.scope返回具有所有常规方法的功能齐全的模型实例:.findAll.update.count.destroy

是否可以将范围应用于该create方法,以便返回的实例仅限于某些属性?

sequelize.js

6
推荐指数
1
解决办法
1175
查看次数

Django:当用户提交未完成的表单时如何引发异常?

我有一个相对标准的RegistrationForm,如下所示:

class RegisterForm(forms.Form):
    username = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'username'}), initial='')
    email = forms.EmailField(widget=forms.TextInput(attrs={'placeholder': 'email'}), initial='')
    password = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'password'}), initial='')
    password_repeat = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'retype password'}), initial='')
Run Code Online (Sandbox Code Playgroud)

如何在用户忘记填写一个或多个字段时创建一个返回错误的干净方法?(即"你忘了填写电子邮件字段")

我在clean()方法中尝试了以下两个选项(我将使用password和password_repeat字段作为示例):

password = self.cleaned_data['password']
password_repeat = self.cleaned_data['password_repeat']
# initial values are set to '' for all fields, see above.
if password == '':
    raise forms.ValidationError("You forgot to type in a password.")
elif password_repeat == '':
        raise forms.ValidationError("You forgot to retype your password.")
Run Code Online (Sandbox Code Playgroud)

第一个选项返回:

/ homepage /的KeyError /

'密码'


try:
    password = self.cleaned_data['password']
    password_repeat = self.cleaned_data['password_repeat'] …
Run Code Online (Sandbox Code Playgroud)

python forms django error-handling

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

Django:查询通过外键获取User.usernames

考虑以下友谊模型,对于每个友谊,有一个发送好友请求的用户和一个收到好友请求的用户:

from django.contrib.auth.models import User

class Friendship(models.Model):
    sender = models.ForeignKey(User)
    receiver = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)

我将如何构建一个查询,该查询将为我提供与例如user123在友谊中的用户的所有用户名

请记住,user123可能是他所处的任何友谊的发送者或接收者.

另外,我只想要返回User.username值,而不是整个User对象.


到目前为止,我有这个笨重的一半/解决方案(我正在使用,list()以便我可以添加user123的接收朋友和user123的发送朋友,最终生成所有朋友的列表).问题是,我得到了所有的User对象,我只想要用户名......而且还有一个更好的方法来做到这一点.

friends_a = list(Friendship.objects.filter(sender=user123).values('receiver'))
friends_b = list(Friendship.objects.filter(receiver=user123).values('sender'))
friends_a = [] if not friends_a else friends_a[0].values()
friends_b = [] if not friends_b else friends_b[0].values()
all_friends = friends_a + friends_b
Run Code Online (Sandbox Code Playgroud)

python django foreign-keys django-models

5
推荐指数
1
解决办法
8320
查看次数

Django:我应该在发布到模型之前将知晓的日期时间实例转换为UTC吗?

知道tzinfo = "America/Los_Angeles"我想要保存到模型的日期时间实例(在哪里).

在保存之前我应该​​以某种方式将其转换为UTC吗?或者我可以保存原样,因为它知道自己的时区吗?我是否需要稍后将其转换为用户的时区activate(),或者Django会为我做这个,因为实例知道吗?

我最好奇的是这些约定是什么.提前致谢.

python django datetime django-models django-timezone

5
推荐指数
1
解决办法
726
查看次数

如果memoization是自上而下的深度优先,DP是自下而上的广度优先; 什么是自上而下的广度优先,自下而上的深度优先?

我刚读了这篇由Krishnamurthi教授撰写的关于递归记忆与动态规划的心理模型的简短帖子.在其中,Krishnamurthi将memoization的自上而下结构表示为递归树,将DP的自下而上结构表示为DAG,其中源顶点是第一个 - 可能是最小的 - 子问题求解,并且接收器顶点是最终计算(基本上是图形)与前面提到的递归树相同,但所有边都翻转了).很公平; 这很有道理.

无论如何,最后,他给读者一个心理锻炼:

Memoization是对答案的自上而下,深度优先计算的优化.DP是针对答案的自下而上,广度优先计算的优化.

我们应该自然地问,怎么样

  • 自上而下,广度优先
  • 自下而上,深度优先

他们在哪里适应技术空间,以避免重新计算,通过时间折衷空间?

  • 我们已经有了他们的名字吗?如果是,那是什么?或者
  • 我们是否错过了一两个重要的技巧?或者
  • 我们没有这些名字的原因吗?

但是,他停在那里,没有对这些问题发表意见.


我迷路了,但是这里有:

我的解释是,自上而下,广度优先计算将需要为每个函数调用单独的过程.自下而上,深度优先的方法将以某种方式将最终解决方案拼凑在一起,因为每条迹线到达"接收器顶点".所有呼叫完成后,解决方案最终会"加起来"到正确的答案.

我怎么了?有谁知道他的三个问题的答案?

algorithm recursion call memoization dynamic-programming

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

通过单个HTTP / 2连接反应本机映像请求

<Image>每个屏幕都有许多React Native 组件渲染,并且由于同时存在许多HTTP请求,因此出现性能问题。打开和关闭连接的成本很高,并且同时连接过多会导致限制,从而导致超时。

HTTP / 2具有多路复用功能,允许通过单个连接而不是多个连接同时运行客户端和服务器之间的多个请求和响应消息,从而缩短了页面加载时间。

CloudFront默认情况下支持HTTP / 2,HTTP / 1.1和HTTP / 1,具体取决于客户端在请求标头中发送的版本。

我们注意到,我们的React Native应用程序正在将HTTP / 1.1作为版本的HTTP请求发送到请求标头中<Image>。与流行的应用程序不同,我们为每个GET打开和关闭一个连接。我们如何确保React Native Image请求使用HTTP / 2并共享连接?

(我们的映像都共享相同的CloudFront域。)

在此处输入图片说明


编辑-更多信息:

我们的CloudFront发行版支持HTTP / 2:

在此处输入图片说明

看来客户端和服务器在h2上达成了共识:

在此处输入图片说明

multiplexing amazon-cloudfront http2 react-native react-image

5
推荐指数
0
解决办法
366
查看次数

在 Sequelize 中更改 createdAt 的值?

我想将 的值设置createdAt为过去的某个时间。

但是,我所有的尝试都无法更改createdAt数据库中的日期。值保持不变。

const yesterday = ( d => new Date(d.setDate(d.getDate()-1)) )(new Date);

// failed attempts
hang.createAt = yesterday;
hang.set('createdAt', yesterday);
hang.changed('createdAt', yesterday);

await hang.save();
Run Code Online (Sandbox Code Playgroud)

我也试过

const yesterday = ( d => new Date(d.setDate(d.getDate()-1)) )(new Date);

// failed attempt
await hang.update({ createdAt: yesterday });
Run Code Online (Sandbox Code Playgroud)

问题证明

2020-10-07T19:24:29.058Z // before
2020-10-07T19:24:29.058Z // after
Run Code Online (Sandbox Code Playgroud)

如何更改createdAt实例的值?

node.js sequelize.js

5
推荐指数
1
解决办法
563
查看次数