javascript

git

java

python

git-remote

reactjs

c++

github

django

c#

operators

git-fetch

typescript

user-experience

chmod

css

content-type

variables

var

loops

html5-Angular JS缩放和性能

我们正在使用为银行构建的Angular应用程序来应对性能问题。

不幸的是,显示代码片段违反了合同。 无论如何,我可以描述正在进行的一些主要问题,我希望可以推荐最佳实践。

应用结构:

  • 本质上,是一个巨大的多表单页面。
  • 每种形式都是其自己的部分,带有嵌套的控制器和大约3层深的部分。
  • 在json对象的集合上重复ng相同的形式。
  • 每个表单都绑定到重复的对象/模型。
  • 我们应该支持该页面上1-200个表格中的任何一个。

如果您看一下时间线。 我们在jQuery parse html方法,jQuery重新计算stye方法,GC事件(垃圾收集)上花费了大量时间。 我想将这些最小化应该可以加快速度。 它们都是Angular生命周期的一部分,但是可能有更好的方法来避免它们。 这是探查器的一些屏幕截图:

Recalculate Style GC Event

最终,随着重复表单的数量超过5,该应用程序变得迟钝。每种表单相对于其他表单都没有关系。 我们试图不监视表单之间的任何共享属性。

trans by 2020-08-12T10:38:40Z

在Maven项目之间共享测试资源

有一个明确的解决方案,可以使用maven-antrun-plugin插件的test-jar目标在maven项目之间共享通用测试代码(请参见此处)。

我需要对测试资源做类似的事情,特别是,我希望在测试过程中项目A的测试资源在项目B的类路径中可用。

对于项目A,需要声明:

<!-- Package and attach test resources to the list of artifacts: -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <tasks>
                    <jar destfile="${project.build.directory}/test-resources.jar">
                        <fileset dir="${project.basedir}/test-resources" />
                    </jar>
                </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>attach-artifact</goal>
            </goals>
            <configuration>
                <artifacts>
                    <artifact>
                        <file>${project.build.directory}/test-resources.jar</file>
                        <type>jar</type>
                        <classifier>test-resources</classifier>
                    </artifact>
                </artifacts>
            </configuration>
        </execution>
    </executions>
</plugin>

在项目B中,它将是正常依赖项:

<dependency>
    <groupId>myproject.groupId</groupId>
    <artifactId>myartifact</artifactId>
    <version>1.0-SNAPSHOT</version>
    <classifier>test-resources</classifier>
    <scope>test</scope>
</dependency>

问题:是否在所有情况下都有效? 是否可以在没有maven-antrun-plugin的情况下打包资源(使用更多的“轻量级”插件)?

trans by 2020-08-12T10:34:38Z

是否可以在运行时通过Java设置环境变量?

是否可以在运行时从Java设置环境变量应用?在Java 1.5 java.lang.System类中,有getenv()方法,我会只需要一个setenv()方法...

是否可以在java进程本身中修改环境变量? 不在子进程中。

是否可以通过JNI实现它? 那将如何工作?

谢谢。

编辑:好的,让我这样说-我们可以使用Java进行以下操作。 请回答。

  1. 我们可以修改当前流程的环境吗?
  2. 我们可以修改父流程的环境吗?
  3. 我们可以修改子进程的环境吗?

Hemal Pandya回答说:“您可以修改当前进程和子进程的环境,但不能修改产生此进程的父进程的环境。” 你同意吗?

trans by 2020-08-12T10:30:14Z

设计模式-IObservable vs普通事件,或者为什么应该使用IObservable?

微软通过.NET Framework 4向BCL引入了IObservable<T>接口,我想:“太好了,最后,我必须使用它!” 因此,我深入研究并阅读了帖子和文档,甚至实现了该模式。

这样做之后,我意识到基本实现实际上将所有T事件发送给所有订阅者,而没有对其进行任何过滤。 即纯广播。 我在某处读到Observable模式是用于普通广播的。 我觉得这是不正确的,我缺少了一些东西。

我的问题:

  1. 如果添加过滤机制,则使用Observable模式与仅使用普通CLR事件有什么区别?

  2. 什么时候应该使用这种模式,什么时候应该选择使用普通的CLR事件?

  3. 可观察模式的主要优点是什么?

trans by 2020-08-12T10:28:49Z

c-* nix select和exceptfds / errorfds语义

select syscall需要3个filedescriptor集,用于监视fds的可读/可写性以及filedescriptor上的“ exceptions”。

我的选择手册页对exceptfd描述符集的描述不多。 它是干什么用的; 可以并且会在文件描述符上通知什么样的异常?

我假设这对于描述符类型可以是不同的……无论是TCP套接字,管道,tty等)。 没有人能提供有关select可以报告各种描述符的错误的更多信息吗?

trans by 2020-08-12T10:26:48Z

音频-Android-ICS 4.0中的MediaPlayer缓冲区大小

我使用套接字作为MediaPlayer的代理,因此可以在将mp3音频写入套接字之前下载并解密。 这类似于NPR新闻应用程序中显示的示例,但是我将其用于所有Android版本2.1-4 atm。

NPR StreamProxy代码-[http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java]

我的问题是,对于2.1-2.3而言,播放速度很快,但是在Android 4.0 ICS中,MediaPlayer在触发onPrepared侦听器之前会缓冲太多数据。

在onPrepared()之前写入Socket OutputStream的数据量示例:

在具有2.3.4的SGS2上-约133920字节后的onPrepared()

在使用4.0.4的Nexus S上-约961930字节后的onPrepared()

这也发生在Galaxy Nexus上。

奇怪的是4.0仿真器不像4.0设备那样缓冲太多的数据。 任何人在ICS上遇到MediaPlayer的类似问题?

编辑

这是代理写入套接字的方式。 在此示例中,它是从文件加载的CipherInputStream中获得的,但是从HttpResponse中加载它的情况相同。

final Socket client = (setup above)

// encrypted file input stream
final CipherInputStream inputStream = getInputStream(file);

// setup the socket output stream
final OutputStream output =  client.getOutputStream();

// Writing the header
final String httpHeader = buildHttpHeader(file.length());
final byte[] buffer = httpHeader.getBytes("UTF-8");
output.write(buffer, 0, buffer.length);

int writtenBytes = 0;
int readBytes;
final byte[] buff = new byte[1024 * 12]; // 12 KB

while (mIsRunning && (readBytes = inputStream.read(buff)) != -1) {
    output.write(buff, 0, readBytes);
    writtenBytes += readBytes;
}

output.flush();
output.close();

在音频之前写入MediaPlayer的HTTP标头。

private String buildHttpHeader(final int contentLength) {
    final StringBuilder sb = new StringBuilder();

    sb.append("HTTP/1.1 200 OK\r\n");
    sb.append("Content-Length: ").append(contentLength).append("\r\n");
    sb.append("Accept-Ranges: bytes\r\n" );
    sb.append("Content-Type: audio/mpeg\r\n");
    sb.append("Connection: close\r\n" );
    sb.append("\r\n");

    return sb.toString();
}

我四处寻找替代实现,但是由于我已经加密了音频并且MediaPlayer不支持InputStreams作为数据源,所以我唯一的选择(我认为..)是使用诸如此类的代理。

同样,这在Android 2.1-2.3上运行良好,但在ICS中,MediaPlayer在播放之前会缓冲大量此类数据。

编辑2:

进一步的测试表明,一旦升级到Android 4.0.3,这在SGS2上也是一个问题。 因此,似乎MediaPlayer的缓冲实现在4.0中已发生了显着变化。 由于API无法提供任何更改行为的方式,因此令人沮丧。

编辑3:

已创建Android错误。 请添加评论并在其中加注星标[http://code.google.com/p/android/issues/detail?id=29870]

编辑4:

我的播放代码相当标准。.我在onPrepared()方法中对MediaPlayer进行了start()调用。

mCurrentPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mCurrentPlayer.setDataSource(url);
mCurrentPlayer.prepareAsync();

仅使用prepare()和ajacian81的推荐方法进行了尝试,但无济于事。

我应该补充一点,最近有一位Google员工回覆了我的问题,并确认ICS(用于HD内容)的缓冲区大小是有意增加的。 已要求API开发人员添加在MediaPlayer上设置缓冲区大小的功能。

尽管我认为这个API更改请求在我来之前就已经存在了,所以我不建议任何人屏住呼吸。

trans by 2020-08-12T10:25:06Z

ssh-Git获取/拉/克隆挂在接收对象上

从git仓库中获取或提取信息,或克隆存储库时,我到了这一点:

remote: Counting objects: 6666, done.
remote: Compressing objects: 100% (5941/5941), done.
Receiving objects:  23% (1534/6460), 11.68 MiB | 23 KiB/s  

它挂了。 对象的23%/数目不是给定的,它的范围从个位数到60年代不等。 列出的下载速度也会冻结-并不是像它缓慢地向零爬行一样。

我旁边的那个家伙没有问题,所以这不是路由器问题。 我们将beantalk用作我们的工作存储库,但是我遇到了来自beantalk和github的问题(尽管有时它似乎会完成一个github)。

自升级到Mountain Lion和更新Xcode以来,这个问题似乎才出现。 我擦了git(包括XCode的),并尝试用自制软件安装它。 那没有用,所以我将其删除并尝试使用他们提供的Mac安装软件包,该软件包也无法解决该问题。

Beanstalk为git存储库提供SSH URL,但是通过SCP或SSH连接到我已经完成工作的服务器时,我没有任何问题。

这扼杀了我的工作流程,因此不胜感激!

trans by 2020-08-12T10:20:23Z

notepad ++-需要在目录中合并大量文件

我的目录中有50到60个文件,需要定期将它们连接成一个文件。

我考虑过使用notepad ++,以为可能有一个插件会帮上忙,但一直找不到。

还有其他想法吗?

trans by 2020-08-12T10:14:55Z

iPhone-是否可以将UITableView配置为允许多选?

对于iPhone,是否可以配置UITableView使其允许多选?

我已经尝试为每个UITableViewCell覆盖-setSelected:animated:,但是尝试捏合所需的行为非常棘手,因为很难将真正的未选择项与UITableView认为由于选择了另一个单元格而未选择的项分开!

希望有人能帮忙!

谢谢,

缺口。

trans by 2020-08-12T10:08:27Z

网络-使用Python请求衡量网站加载时间

我正在尝试构建一个工具来测试我的Internet连接的延迟,更具体地说是网站加载时间。 我想到了将python request模块用于加载部分。

问题是,它没有内置功能来衡量获得完整响应所花费的时间。 为此,我认为我将使用timeit模块。

我不确定的是,如果我像这样运行timeit:

t = timeit.Timer("requests.get('http://www.google.com')", "import requests")

我实际上是在衡量响应到达所花费的时间,还是建立,发送,接收请求等所花费的时间? 我猜我可能会忽略执行时间,因为我正在测试延迟很长的网络(〜700ms)?

有没有更好的方法以编程方式执行此操作?

trans by 2020-08-12T10:06:29Z

大文件Git

情况

我有两个服务器,生产和开发。 在生产服务器上,有两个应用程序和多个(6)数据库(MySQL),我需要将这些数据库分发给开发人员进行测试。 所有源代码都存储在开发服务器上的GitLab中,开发人员仅与此服务器一起使用,无权访问生产服务器。 当我们发布应用程序时,master会登录生产并从Git中提取新版本。 数据库很大(每个数据库都超过500M,并且还在增加),我需要将它们尽可能容易地分发给开发人员进行测试。

可能的解决方案

  • 在将每个数据库都转储到单个文件的备份脚本执行之后,执行一个脚本,将每个数据库推入其自己的分支。 如果开发人员想要更新其本地副本,则拉其中一个分支。

    发现这一项无效。

  • 生产服务器上的Cron每天保存二进制日志,并将它们推送到该数据库的分支中。 因此,在分支中,存在每日更改的文件,而开发人员会提取他没有的文件。 当前的SQL转储将以另一种方式发送给开发人员。 当存储库的大小太大时,我们会将完整的转储发送给开发人员,并刷新存储库中的所有数据,然后从头开始。

问题

  • 解决方案可行吗?
  • 如果git从存储库中推入/拉入,它是上传/下载整个文件,还是只是对其进行更改(即添加新行或编辑当前行)?
  • Git可以管理这么大的文件吗? 没有。
  • 如何设置在存储库中保留多少修订? 新解决方案无关紧要。
  • 有没有更好的解决方案? 我不想强迫开发人员通过FTP或类似方式下载如此大的文件。
trans by 2020-08-12T09:56:34Z

ruby on rails-设计:在注册期间禁用密码确认

我正在使用Devise for Rails。 在默认注册过程中,Devise要求用户输入两次密码以进行验证和身份验证。 如何禁用它?

trans by 2020-08-12T09:50:41Z

python-如何向熊猫数据框添加额外的行

这个问题已经在这里有了答案:

  • 向pandas DataFrame添加一行 19个答案

如果我有一个空的数据框:

columns = ['Date', 'Name', 'Action','ID']
df = pd.DataFrame(columns=columns) 

有没有一种方法可以向此新创建的数据框追加新行? 目前,我必须创建一个字典,将其填充,然后将字典附加到最后的数据框中。 有更直接的方法吗?

trans by 2020-08-12T09:49:00Z

打字稿-Angular 2 Datepicker未绑定到日期值

尝试建立表单,但由于某种原因,尽管使用[[ngModel)],但我的html中的Date输入未绑定到对象的日期值

的HTML:

<input type='date' #myDate [(ngModel)]='demoUser.date'/><br>

表单组件:

export class FormComponent {
    demoUser = new User(0, '', '', '', '', new Date(), '', 0, [], []);  
}

用户类别:

export class User {
    constructor (
        public id: number,
        public email: string,
        public password: string,
        public firstName: string,
        public lastName: string,
        public date: Date,
        public gender: string,
        public weight: number,
        public dietRestrictions: string[],
        public fitnessGoals: string[]
    ){

    }
}

测试输出显示当前的“新”日期作为对象的值,但是输入不会更新User对象的日期值或反映该值,表明双向绑定都不起作用。 帮助将不胜感激。

trans by 2020-08-12T09:42:46Z

使用JavaScript替换字符串的最后一个字符

我有一个非常小的查询。 我尝试使用concat,charAt,slice和诸如此类的东西,但是我不知道该怎么做。

这是我的字符串:

var str1 = "Notion,Data,Identity,"

我想用.替换最后一个,,它应该看起来像这样。

var str1 = "Notion,Data,Identity."

有人可以让我知道如何实现吗?

trans by 2020-08-12T09:40:45Z

javascript-Chart.js 2.0甜甜圈工具提示百分比

我已经使用chart.js 1.0,并且我的甜甜圈图表工具提示根据数据除以数据集显示百分比,但是我无法使用图表2.0进行复制。

我搜索过很多,还没有找到有效的解决方案。 我知道它将进入选项,但是我尝试过的一切都使饼功能失调。

<html>

<head>
    <title>Doughnut Chart</title>
    <script src="../dist/Chart.bundle.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <style>
    canvas {
        -moz-user-select: none;
        -webkit-user-select: none;
        -ms-user-select: none;
    }
    </style>
</head>

<body>
    <div id="canvas-holder" style="width:75%">
        <canvas id="chart-area" />
    </div>
    <script>
    var randomScalingFactor = function() {
        return Math.round(Math.random() * 100);
    };
    var randomColorFactor = function() {
        return Math.round(Math.random() * 255);
    };
    var randomColor = function(opacity) {
        return 'rgba(' + randomColorFactor() + ',' + randomColorFactor() + ',' + randomColorFactor() + ',' + (opacity || '.3') + ')';
    };

    var config = {
        type: 'doughnut',
        data: {
            datasets: [{
                data: [
                    486.5,
                    501.5,
                    139.3,
                    162,
                    263.7,
                ],
                backgroundColor: [
                    "#F7464A",
                    "#46BFBD",
                    "#FDB45C",
                    "#949FB1",
                    "#4D5360",
                ],
                label: 'Expenditures'
            }],
            labels: [
                "Hospitals: $486.5 billion",
                "Physicians & Professional Services: $501.5 billion",
                "Long Term Care: $139.3 billion",
                "Prescription Drugs: $162 billion",
                "Other Expenditures: $263.7 billion"
            ]
        },
        options: {
            responsive: true,
            legend: {
                position: 'bottom',
            },
            title: {
                display: false,
                text: 'Chart.js Doughnut Chart'
            },
            animation: {
                animateScale: true,
                animateRotate: true
            }

        }
    };

    window.onload = function() {
        var ctx = document.getElementById("chart-area").getContext("2d");
        window.myDoughnut = new Chart(ctx, config);{

        }
    };


    </script>
</body>

</html>
trans by 2020-08-12T09:38:56Z

如何在Xcode中的选区中查找和替换?

在Xcode <4中,您可以按住“ option”键,而“ Replace All”按钮将变为“ Replace in Selection”。 从Xcode 4开始,此操作无效。 任何人都知道是否有一种新的方式来执行此操作,或者是提交错误的时间?

trans by 2020-08-12T09:32:20Z

http状态码403-403禁止使用Java,但不能使用网络浏览器?

我正在编写一个小型Java程序,以获取给定Google搜索字词的结果数量。 出于某种原因,在Java中我得到了403禁止访问,但在Web浏览器中却得到了正确的结果。 码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;


public class DataGetter {

    public static void main(String[] args) throws IOException {
        getResultAmount("test");
    }

    private static int getResultAmount(String query) throws IOException {
        BufferedReader r = new BufferedReader(new InputStreamReader(new URL("https://www.google.com/search?q=" + query).openConnection()
                .getInputStream()));
        String line;
        String src = "";
        while ((line = r.readLine()) != null) {
            src += line;
        }
        System.out.println(src);
        return 1;
    }

}

错误:

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: https://www.google.com/search?q=test
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at DataGetter.getResultAmount(DataGetter.java:15)
    at DataGetter.main(DataGetter.java:10)

为什么这样做呢?

trans by 2020-08-12T09:30:21Z

android-如何自行停止服务?

我在活动中启动服务,然后希望该服务在一段时间后自行停止。

我在服务中调用了stopSelf(),但是它不起作用。

如何使服务自行停止?

trans by 2020-08-12T09:25:08Z

如何使用Shell命令启动Genymotion设备?

我需要通过shell命令启动genymotion,有人知道是否可以这样做?

trans by 2020-08-12T09:22:26Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共4258页