小编iti*_*nce的帖子

为什么 Postgres 中的 now() 和 now()::timestamp 对于 CET 和 CEST 时区如此“错误”?

我尝试理解PostgresTIMESTAMP WITH TIMEZONE中使用的一些查询示例。

\n

给出了一些将now结果转换为时区“CET”和“CEST”的时间戳的查询。“CEST”比 CET(夏令时间)早 1 小时

\n

例子:

\n
SELECT 1, now()\nUNION\nSELECT 2, now()::timestamp\nUNION\nSELECT 3, now() AT TIME ZONE \'CET\'\nUNION\nSELECT 4, now()::timestamp AT TIME ZONE \'CET\'\nUNION\nSELECT 5, now() AT TIME ZONE \'CEST\'\nUNION\nSELECT 6, now()::timestamp AT TIME ZONE \'CEST\'\n;\n
Run Code Online (Sandbox Code Playgroud)\n

结果:

\n
    1, 2023-09-10 17:07:10.524389 +00:00\n    2, 2023-09-10 17:07:10.524389 +00:00\n    3, 2023-09-10 18:07:10.524389 +00:00\n    4, 2023-09-10 16:07:10.524389 +00:00\n    5, 2023-09-10 19:07:10.524389 +00:00\n    6, 2023-09-10 15:07:10.524389 +00:00\n
Run Code Online (Sandbox Code Playgroud)\n

所以,之间的区别

\n
SELECT 5, now() AT TIME …
Run Code Online (Sandbox Code Playgroud)

postgresql

3
推荐指数
1
解决办法
139
查看次数

来自AppStore的IPA和来自XCode的IPA之间的二进制差异是什么?

长话短说:

如何直接在硬件(iPhone)上调试iPhone-App,其版本/二进制文件与AppStore完全相同,而无需等待AppStore-Preview-Process?

恩细节:

我发现在使用Developer Profile通过XCode/USB-Cable在iPhone上运行的编译IPA之间以及在Distribution-To-AppStore-Process之后直接从AppStore安装的版本之间,MKMapView的行为存在很大差异.

我将附上两个重要的截图.

这就是应用程序如何通过XCode/USB-Cable在iPhone上启动MKMapView,指向具有特殊区域的当前用户位置:

在此输入图像描述

这就是在AppStore安装分布式版本后,同一个App在同一个iPhone上启动的方式,而不需要对前一个版本进行任何代码更改:

在此输入图像描述

在这里,我将提供一些代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.mapView removeAnnotations:[self.mapView annotations]];

    CLLocationCoordinate2D noLocation;
    MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(noLocation, 6500, 6500);
    MKCoordinateRegion adjustedRegion = [self.mapView regionThatFits:viewRegion];
    [self.mapView setRegion:adjustedRegion animated:NO];

    mapView.delegate = self;

    mapView.showsUserLocation = YES;
    mapView.mapType = MKMapTypeStandard;

}

- (void)mapView:(MKMapView *)theMapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    theMapView.centerCoordinate = userLocation.location.coordinate;
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,仅供您参考:这里发生了由XCode直接在iPhone上运行的IPA和通过AppStore发布的分布式存档之间的另一个区别.没有Line"[self.mapView removeAnnotations:[self.mapView annotations]];" 应用程序在AppStore安装的版本中启动后直接崩溃,但从XCode运行时则没有.这个问题我在之前的版本中遇到过,并不是这个问题的一部分,只是对主要问题的补充

主要问题是:

调试iPhone-App是否可能与AppStore分发的方式完全相同,而无需等待AppStore-Preview-Process,如果是,如何调整?

xcode app-store ios

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

在React-Native中将指定的HTML标记之间的文本内容添加到UpCase

我想在React-Native应用程序中使用纯JavaScript将特定HTML标记的内容大写.

注意:这是一个React-Native应用程序.没有JS document,可用,也没有jQuery.同样,CSS text-transform: uppercase无法使用,因为它不会在Web浏览器中显示.

比方说,有以下HTML文本:

<p>This is an <mytag>simple Example</mytag></p>
Run Code Online (Sandbox Code Playgroud)

标签的内容<mytag>应转换为大写:

<p>This is an <mytag>SIMPLE EXAMPLE</mytag></p>
Run Code Online (Sandbox Code Playgroud)

我试过这段代码:

let regEx = storyText.match(/<mytag>(.*?)<\/mytag>/g)
if(regEx) storyText = regEx.map(function(val){
  return val.toUpperCase();
});
Run Code Online (Sandbox Code Playgroud)

但该map()函数仅返回匹配的内容,而不是整个字符串变量与转换后的部分<mytag>.

此外,match()如果未找到标记,则该方法将返回null.所以流畅的编程风格storyText.match().doSomething是不可能的.

由于有更多标记要转换,我可以理解一种可以将变量传递给正则表达式模式的方法.

任何提示要解决这个问题?

(此代码在React-Native-App中使用,react-native-html-view插件不支持text-transform开箱即用.)

html javascript ecmascript-5 ecmascript-6 react-native

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

AppIcon 将在带有 Android 应用程序的设备上显示两次

当我在设备上安装我的 android 应用程序时,AppIcon 将出现两次。

这意味着:有两个单独的应用程序图标。两个图标启动相同的应用程序版本。如果我删除一个应用程序图标,另一个也会消失。如果我重新安装它们,它会再次出现两次。

我怎样才能避免这种情况?

这是我的 AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.******"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="22" />

    <application
      android:name=".MainApplication"
      android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme">

        <meta-data android:name="com.bugsnag.android.API_KEY"
             android:value="524b0194108e90ae383189e509746766"/>

      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />

        <activity
            android:name=".SplashActivity"
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

android

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

如何使用ip-tables将2个IP地址列入白名单并阻止其他所有内容?

我想将2个外部ip-adresses vor端口3306(mysql)列入白名单,但阻止所有其他IP地址到运行mysql-instance的debian服务器上的端口3306.两个外部ip-adresses都应该能够连接到mysql-server.

iptables中最好的方法是什么?

我做了什么:

/ sbin/iptables -A INPUT -p tcp -d 127.0.0.1 --dport 3306 -j ACCEPT

/ sbin/iptables -A INPUT -p tcp -d 1.1.1.1.1 --dport 3306 -j ACCEPT

/ sbin/iptables -A INPUT -p tcp -d 85.xxx --dport 3306 -j ACCEPT

(1.1.1.1是一个内部ip,为了安全目的在这里掩盖)

##阻止所有与3306的连接##

/ sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP

发生了什么:

每个外部IP都被锁定,无法连接

会发生什么:

每个外部IP都将被锁定,但不能连接但不能连接1.1.1.1和85.xxx以及127.0.0.1

mysql networking firewall database-connection iptables

0
推荐指数
1
解决办法
3318
查看次数

Cloudfront:将整个发行版重定向到更新的发行版

我们在 S3 Bucket 上有大量文件(图像),这些文件将由 Cloudfront 分发提供给用户浏览器。存储桶中的大多数图像更改为更好的压缩算法,但文件仍会在未来 30 天内缓存在云端边缘位置。

随着时间的推移,我们创建了更多的发行版来提供存储桶中现有文件的更新版本。从现在开始,我们使用 Invalidation,但仍然存在搜索引擎和其他站点仍然引用的现有发行版。

现在我们想将旧发行版中的每个请求重定向到最新发行版:

GET http://old-distribution.amazonaws.com/user/filename.jpg
Run Code Online (Sandbox Code Playgroud)

应该将 301 重定向永久发送到

- > HTTP://-distribution.amazonaws.com/user/filename.jpg

这可能吗?如果是,如何实现?

redirect amazon-s3 amazon-cloudfront

0
推荐指数
1
解决办法
1426
查看次数

AWS S3:更改策略后无法列出存储桶

我们已经在AWS S3中创建了存储桶和具有特定策略的IAM用户,以限制对该存储桶的访问,如下所示:

:testbucket

政策

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl"
            ],
            "Resource": [
                "arn:aws:s3:::testbucket/*",
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

然后,我们创建了一个IAM用户,并将此策略分配给用户的权限。我们有一个访问密钥和一个秘密访问密钥,可以成功地将文件上传到存储桶中,还可以使用给定的已知URL将其下载到资源。

现在,我们还希望能够列出存储桶中的所有对象。为此,我以这种方式更改了政策:

新政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl"
            ],
            "Resource": [
                "arn:aws:s3:::testbucket/*",
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::testbucket/*"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是新项目s3:ListBucket

我已成功更改了此策略,可以在AWS上重新加载页面以确保这些更改仍然存在。

但是,我已经等了一个小时,但仍然无法列出存储桶中的对象。

对于测试,我使用应用程序Cyber​​Duck。它可以在身份验证后列出存储桶本身,但仍无法列出存储桶中的对象。

我还需要做其他事情吗?

amazon-s3 amazon-web-services amazon-iam

0
推荐指数
1
解决办法
764
查看次数

如何在 Postman 的预请求脚本中使用 Faker 变量?

PostMan 支持 faker-library 并提供了几个变量,如“randomFirstName”等。但是,我尝试让它们在预请求脚本中工作。

我发现了一篇关于这个主题的博文,告诉我它实际上应该有效:

pm.variables.replaceIn("{{$randomProductName}}")
Run Code Online (Sandbox Code Playgroud)

然而,对我来说这不起作用。该变量不会被替换:

var firstName = "{{$randomFirstName}}"

console.log(firstName)
Run Code Online (Sandbox Code Playgroud)

输出是:

{{$randomFirstName}}

如何在 PostMan 的预请求脚本中使用这些变量?

postman postman-pre-request-script

0
推荐指数
1
解决办法
2904
查看次数