小编Ric*_*ral的帖子

与Linux的"cat"相比,为什么我的"cat"函数与系统调用相比较慢?

我在C语言中使用系统调用(打开,读取和写入)来完成此功能,以模拟Linux系统中的"cat"功能,并且它比实际的慢...

我使用与真正的"猫"相同的缓冲区大小并使用"strace"我认为它正在进行相同数量的系统调用.但是我的"猫"的输出比真正的"猫"慢了一点.

这是我的代码:

#define BUFSIZ 32768

int sysWriteBuffer(int fdout, char *buffer, ssize_t readBytes) {
    ssize_t writtenBytes = 0;

    while(writtenBytes < readBytes) {
        writtenBytes += write(fdout,
            buffer + writtenBytes, readBytes - writtenBytes);
        if(writtenBytes == -1) {
            return -1;
        }
    }

    return 0;
}

int catPrint(int fdin, int fdout) {
    char buffer[BUFSIZ];
    ssize_t readBytes;

    do {
        readBytes = read(fdin, buffer, BUFSIZ);

        if(readBytes == -1) {
            return -1;
        }

        if(sysWriteBuffer(fdout, buffer, readBytes) == -1) {
            return -1;
        }
    } while(readBytes > 0);

    return …
Run Code Online (Sandbox Code Playgroud)

c linux system-calls cat

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

使用PHP计算Oracle中SELECTED行的数量

我正在为大学做这个项目,它基本上是一个电影数据库,对于一些查询,我需要知道选择了多少行.目前,有两种情况需要我:

  • 显示单个电影信息.我希望所选行的计数知道数据库是否包含用户选择的电影.或者有更好的解决方案吗?
  • 所选择的电影有类型,我需要知道有多少,以便我可以构建一个字符串,其中的类型被分隔,|而不会在字符串的末尾添加一个.

使用MySQL这很容易,我只是查询数据库并使用mysql_num_rows()oci_num_rows()对SELECT语句不起作用.

我在OCI/PHP中找到的唯一解决方案是:

if(is_numeric($mid) && $mid > 0) {
        $stid = oci_parse($db,
            'SELECT COUNT(*) AS NUM_ROWS
            FROM movies
            WHERE mid = '.$mid
        );

        oci_define_by_name($stid, 'NUM_ROWS', $num_rows);
        oci_execute($stid);
        oci_fetch($stid);

        if($num_rows > 0) {
            $stid = oci_parse($db,
                'SELECT title, year, synopsis, poster_url
                FROM movies
                WHERE mid = '.$mid
            );

            oci_execute($stid);

            $info = oci_fetch_assoc($stid);

            $stid = oci_parse($db,
                'SELECT COUNT(*) AS NUM_ROWS
                FROM genres g, movies_genres mg
                WHERE mg.mid = '.$mid.' AND g.gid …
Run Code Online (Sandbox Code Playgroud)

php sql oracle select

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

最好在Gradle中使用任务依赖项或task.doLast吗?

用Gradle构建我的最终输出文件后,我想做两件事.更新本地version.properties文件并将最终输出final复制到某个特定目录以进行存档.假设我已经有2种方法实现的正是我刚才描述的那些,updateVersionProperties()archiveOutputFile().

我知道想知道最好的方法是什么......

备选方案A:

assembleRelease.doLast {
    updateVersionProperties()
    archiveOutputFile()
}
Run Code Online (Sandbox Code Playgroud)

备选方案B:

task myBuildTask(dependsOn: assembleRelease) << {
    updateVersionProperties()
    archiveOutputFile()
}
Run Code Online (Sandbox Code Playgroud)

在这里,我将调用myBuildTask而不是assembleRelease,如替代A.

推荐哪种方式,为什么?一个优于另一个有什么优势吗?想请一些澄清... :)

gradle build.gradle

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

ListView的自定义CursorAdapter是否为Android正确编码?

我从未对我的自定义CursorAdapter上的代码感到满意,直到今天我决定复习它并修复一个困扰我很长时间的小问题(有趣的是,我的应用程序的用户都没有报告过这样的问题).

这是我的问题的一个小描述:

我的自定义CursorAdapter覆盖newView(),bindView()而不是getView()我看到的大多数示例.我在这两种方法之间使用ViewHolder模式.但我的主要问题是我为每个列表项使用的自定义布局,它包含一个ToggleButton.

问题是当列表项视图滚出视图然后滚动回视图时,按钮状态不会保留.这个问题之所以存在,cursor是因为当ToggleButton按下时数据库数据发生了变化,并且它总是在拉动相同的数据.我在点击时尝试重新查询光标ToggleButton并解决了问题,但速度非常慢.

我已经解决了这个问题,我将全班发布在这里进行审核.我已经对这个特定问题彻底评论了代码,以便更好地解释我的编码决策.

这段代码对你来说好看吗?你会以某种方式改进/优化或改变它吗?

PS:我知道CursorLoader是一个明显的改进,但我暂时还没有时间处理这么大的代码重写.这是我在路线图中的一些东西.

这是代码:

public class NotesListAdapter extends CursorAdapter implements OnClickListener {

    private static class ViewHolder {
        ImageView icon;
        TextView title;
        TextView description;
        ToggleButton visibility;
    }

    private static class NoteData {
        long id;
        int iconId;
        String title;
        String description;
        int position;
    }

    private LayoutInflater mInflater;

    private NotificationHelper mNotificationHelper;
    private AgendaNotesAdapter mAgendaAdapter;

    /*
     * This is used to store the state of the …
Run Code Online (Sandbox Code Playgroud)

database optimization android android-cursoradapter

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

如何将ngFocus/ngBlur委托给指令的模板<input>元素?

我正在尝试创建一个自定义组件(指令),它由一个<input>框和一个[-][+]按钮组成.目前,以下示例仅实现输入框.

所以,我说我的指令有以下HTML:

<my-input ng-blur="onBlur($event)" ng-focus="onFocus($event)"></my-input>

出于测试目的,我使用以下代码:

app.run(function ($rootScope) {
  $rootScope.onBlur = function ($event) {
    console.log('onBlur', $event);
  };

  $rootScope.onFocus = function ($event) {
    console.log('onFocus', $event);
  };
});
Run Code Online (Sandbox Code Playgroud)

现在我想创建我的自定义<my-input>指令,它<input>在模板上有一个框,我需要ng-blurng-focus设置<my-input>为响应输入框上的模糊/焦点事件.

我有以下解决方案几乎工作:http://codepen.io/anon/pen/KpELmj

1)我有一种感觉,这可以用更好的方式实现,我似乎无法做到这一点.思考?

2) $event似乎是undefined,我无法理解为什么.思考?

inputbox dom-events angularjs angular-directive

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

如何测试React with Enzyme中子组件回调调用的组件回调?

说我有以下应用程序:

class Child extends React.Component {
    render() {
        return <button onClick={this.handleChildOnClick}>{this.props.children}</button>;
    }

    handleChildOnClick() {
        this.props.onChildClick('foo');
    }
}

class Parent extends React.Component {
    render() {
        return <Child onChildClick={this.handleParentOnClick}>click me</Child>;
    }

    handleParentOnClick(text) {
        this.props.onParentClick(12345);
    }
}

class App extends React.Component {
    render() {
        return <Parent onParentClick={(num) => console.log(num)} />;
    }
}
Run Code Online (Sandbox Code Playgroud)

我很难找到测试Parent组件的正确方法.在ChildApp一个都没有问题,但Parent...

我的意思是,如何测试Child组件上的单击是否将调用Parent单击回调而不:

  1. ...渲染Child.Parent应该作为浅层渲染单独测试.Child也将进行单独测试,如果我进行了渲染渲染,我基本上是在Child两次测试点击回调.
  2. ...直接调用handleParentOnClickParent实例.我不应该依赖Parent于此的确切实施.如果我更改了回调函数的名称,测试将会中断并且很可能是误报.

有第三种选择吗?

unit-testing callback reactjs jestjs enzyme

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

哪里可以免费找到一个漂亮的.NET Tab Control?

我正在使用免费的Krypton工具包在C#中执行此应用程序但是Krypton Navigator是一种付费产品,这对我来说相当昂贵,而且这个应用程序正在我的空闲时间开发,它将免费向公众开放.

所以,我正在寻找一个免费的控件来更好地集成到我的Krypton应用程序中,因为默认的一个不太合适,它将根据操作系统版本而有所不同...

有什么建议?

PS:我知道我可以拥有它,但我不想做那种工作......我更喜欢已经完成的东西,如果它是免费的.

编辑: 我刚刚找到了我想要的东西:http:
//www.angelonline.net/CodeSamples/Lib_3.5.0.zip

.net c# tabcontrol krypton winforms

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

如何在两个节点之间找到循环图中最长的路径?

我已经解决了这里发布的大多数问题,除了最长的路径之外.我已经读过关于最长路径的维基百科文章,如果图表是非循环的,那么这似乎是一个简单的问题.

那我怎么解决这个问题呢?蛮力,通过检查所有可能的路径?我怎么开始这样做?

我知道它会在图表上获得很多~18000.但我只是想开发它,因为它是项目所需要的,我只是测试它并在一个较小比例图表上向教师展示,执行时间只有一两秒钟.

至少我完成了所有必需的任务,并且我有一个运行的概念证明它可以工作但是在循环图上没有更好的方法.但我不知道从哪里开始检查所有这些路径......

c graph cyclic longest-path

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

WebView如何从当前的Android主题继承颜色?

此问题最初发布在谷歌版主上,用于上周举行的AndroidDev办公时间环聊.问题实际上是现场回答,如果你愿意,你可以在这里观看.我在这里发帖,因为他们似乎对它很感兴趣,而且我有更多的空间来详细阐述.

A WebView通常用于显示作者想要的Web内容(如他们在环聊中所述).但我使用a WebView来显示,不仅仅是内容本身,而是格式化文本(主要是粗体,斜体,项目符号列表和文本对齐).这是一个容易得多WebView(换句话说,更容易使用HTML/CSS),而不是用一堆TextViews,并保持这一切完全格式化.

问题是我正在使用这个特定WebView的透明背景AlertDialog.该WebView文本颜色来自加载的内容CSS但重要的是,这种色彩搭配的背景色对比AlertDialog.那是我的问题.

直到Android 2.3,AlertDialog背景总是很暗.如果应用主题是默认的暗色或浅色,无关紧要,AlertDialog仍然是深灰色.这个在香草Android上.但即使在蒙皮的Android(Sense,TouchWiz,MotoBlur等)上,它AlertDialog也一直是暗色(对于默认/暗色和浅色主题).

这一切都随着ICS而改变(它可能在Honeycomb上有所改变,但我没有证实).默认/黑暗主题现在有一个黑暗,AlertDialog而灯光主题实际上有一个光AlertDialog.

由于我在我的应用程序上专门使用灯光主题,我可以通过加载WebView不同CSS文件的内容轻松解决我的问题.一种是深色文本颜色,适用于ICS以下版本,另一种是浅色文本颜色,适用于ICS及以上版本.如果不是OEM皮肤,这将主要解决我的问题.

在他们的ICS皮肤版本中,他们可能会提供暗/亮主题AlertDialog.或不.他们更有可能做到这一点,他们一如既往地提供黑暗和浅色的主题,但是对于AlertDialog唯一的黑暗版本,无论应用程序的主题如何.

我可以强制Holo我的应用程序并解决问题,但我不想干扰整个系统在用户设备上的外观.例如,如果他们有Sense并且非常喜欢它,我不想在使用我的应用程序时显示Holo主题AlertDialog.

最终,我的问题是:

那么,我该如何应对呢?如何确保我的文字在后台WebView可读AlertDialog?无论是Android版本,正在使用的主题还是由OEM设计的主题......

我不知道这有多可行,但解决这个问题的另一种方法是以某种方式从AlertDialog设备中的主题中提取文本颜色.但不是默认主题或Holo主题,而是DeviceDefault我相信的主题.

这种萃取很容易完成吗?它能解决我的问题吗?你还有其他选择吗?

最后一个细节......如果您观看了环聊以及实际回复我的人,其中一人建议注入CSS.如果我以前不清楚,我不需要这样做.我只需要用WebView我想要的CSS 构建内容String,它可以采用从主题中提取的文本颜色.

android colors android-webview android-theme android-alertdialog

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

App初始化非常慢:FirebaseApp初始化失败

我知道这个问题,但我不认为这有助于我,问题看起来略有不同.

我正在使用此应用程序,我需要实施AppsFlyer进行跟踪,并且我只需要使用Google Play服务中的2个组件:

com.google.android.gms:播放服务的广告

com.google.android.gms:播放服务-GCM

我正在使用最新版本的Google Play服务,即9.0.2.

问题是在安装应用程序后的第一个应用程序启动时,该应用程序需要相当多的时间来启动.没有日志输出,当应用程序开始执行某些操作时,日志的第一行是:

06-16 16:50:23.782 22368-22368/com.company.app I/FirebaseInitProvider:FirebaseApp初始化失败

我没有使用Firebase,我怎么能摆脱这个?它确实减慢了应用程序初始化的速度.用户体验不是很好......

编辑:

我已经添加了两个库,一次一个,我意识到GCM是导致问题的那个.当我添加:

com.google.android.gms:播放服务-GCM

我开始收到"FirebaseApp初始化失败"日志,应用程序需要一段时间才能启动.也许降级"修复"了这个问题,但这不是一个很好的解决方案.

android google-cloud-messaging google-play-services

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