小编sha*_*sco的帖子

基于Web的VNC客户端?

我目前正在开发一个Web应用程序,其中有一部分我必须通过VNC打开一台特定的机器来监控它的桌面.

我需要有一个基于Web的VNC客户端,这意味着它不应该在客户端安装服务器或任何其他文件.客户端只需打开Web浏览器,即可在浏览器中打开目标计算机的IP,从而运行基于Web的VNC客户端.

有什么好的资源可以在这个领域开始?

更新2013-10-29

只是FYI:当时我结束了使用鳄梨作为@Dolph建议.
它是:

  • 很容易设置
  • 很容易遵循它的代码并对其进行反向工程(只要你知道java)
  • 它仍然在我曾经工作的公司使用并且非常强大

vnc vnc-viewer

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

Azure"Web apps"服务:从package.json自动安装npm模块

我在一个天蓝色的"web apps"容器中部署了一个node.js应用程序.我将"node_modules"文件夹添加到.gitignore并让azure从package.json安装模块.

但是,大多数模块都没有自动安装,我必须打开实例的命令行并使用"npm install"手动安装它们.

我使用的是节点v0.12.0,这是我的package.json:

{
 "main": "server.js",
 "scripts": {
   "start": "node server.js"
 },
 "devDependencies": {
  "body-parser": "^1.12.4",
  "cors": "^2.6.1",
  "express": "*",
  "gulp": "^3.8.11",
  "gulp-jshint": "^1.11.0",
  "gulp-nodemon": "^2.0.3",
  "moment": "^2.10.3",
  "mongoose": "^4.0.3"
},
"engines": {
  "node": "0.12.0"
}
}
Run Code Online (Sandbox Code Playgroud)

如何通过azure web应用程序启用模块的自动安装,而不必在每次提交时按"node_modules"文件夹?

azure node.js npm azure-web-sites package.json

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

如何针对倒排索引和关系数据库优化"文本搜索"?

更新2015-10-15

早在2012年,我正在构建个人在线应用程序,并且实际上想要重新发明轮子,因为我天生好奇,出于学习目的并提高我的算法和架构技能.我可以使用apache lucene和其他人,但正如我所提到的,我决定建立自己的迷你搜索引擎.

问:除了使用elasticsearch,lucene等可用服务之外,真的没有办法增强这种架构吗?


原始问题

我正在开发一个Web应用程序,用户在其中搜索特定的标题(例如:book x,book y等),这些数据位于关系数据库(MySQL)中.

我遵循的原则是,从db中获取的每条记录都缓存在内存中,以便应用程序对数据库的调用较少.

我开发了自己的迷你搜索引擎,具有以下架构:
架构图
这是它的工作原理:

  • a)用户搜索记录名称
  • b)系统检查查询开始的字符,检查是否在那里查询:获取记录.如果没有,请添加它并使用两种方式从数据库中获取所有匹配的记录:
    • 在表"查询"(这是一种历史表)中已经存在查询,从而根据ID获得记录(快速性能)
    • 或者,否则使用Mysql LIKE %%语句来获取记录/ ids(同时在历史表查询中保留用户使用的查询以及它映射到的ids).
      - >然后它将记录及其ID添加到 缓存中,并且只将id添加到反向索引映射中.
  • c)将结果返回给UI

系统工作正常,但我有两个主要问题,我找不到一个好的解决方案(过去一个月一直在尝试):

第一个问题:
如果你检查点(B),情况没有查询"历史"被发现,它必须使用像%%声明:此过程变得时间当查询数据库(而不是一个或匹配许多纪录消耗二):

  • 从Mysql获取记录需要一些时间(这就是我在特定列上使用INDEXES的原因)
  • 然后是时间保存查询历史记录
  • 然后是时候将记录/ ID添加到缓存和反向索引映射

第二个问题:
应用程序允许用户添加自己的新记录,这些记录可以立即被登录到应用程序的其他用户使用.
然而,为了实现这一点,必须更新反向索引映射和表"查询",以便在任何旧查询与新单词匹配的情况下.例如,如果添加了记录"woodX",旧的查询"wood"仍会映射到它.所以为了重新勾选查询"wood"到这个新记录,这就是我现在正在做的事情:

  • 新记录"woodX"被添加到"记录"表中
  • 然后我运行一个Like %%语句来查看表"查询"中哪些已存在的查询映射到此记录(例如"wood"),然后将此查询与新记录ID一起添加为新行:[wood,new ID].
  • 然后在内存中,通过将新记录ID添加到此列表来更新反向索引Map的"木"键值(即列表)

- >现在,如果远程用户搜索"wood",它将从内存中获取:wood和woodX

这里的问题也是时间消耗.将所有查询历史(在表查询中)与新添加的单词匹配需要花费大量时间(匹配查询越多,时间越多).然后内存更新也需要很多时间.

什么,我这样做来解决这个问题的时候,就是返回了预期的结果,用户第一,然后让应用程序发布一个AJAX所要求的数据呼叫,实现所有这些更新任务.但我不确定这是一种不良做法还是一种不专业的做事方式?
所以在过去的一个月(多一点)我试着想到这个架构的最佳优化/修改/更新,但我不是文档检索领域的专家(实际上它是我的第一个迷你搜索引擎).

我将非常感谢能够实现这种架构的任何反馈或指导.
提前致谢.

PS:

  • 它是一个使用servlet的j2ee应用程序.
  • 我正在使用MySQL innodb(因此我无法使用全文搜索选项)

architecture search-engine text-search inverted-index

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

与glassfish v3的jdbc领域:领域属性和配置错误

我有以下数据库模式(MySQL):

在此输入图像描述

我的登录是一个基于表单的身份验证系统,我正在尝试创建一个jdbc领域.


在此输入图像描述

我的web.xml:

<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>emdJDBCRealm</realm-name>
    <form-login-config>
    <form-login-page>/index.jsp</form-login-page>
    <form-error-page>/WEB-INF/loginerror.jsp</form-error-page>
    </form-login-config>
</login-config>
<security-constraint>
    <web-resource-collection>
        <web-resource-name>Login Page</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>adm</role-name>
        <role-name>usr</role-name>
    </auth-constraint>
    <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
<security-role>
    <description/>
    <role-name>usr</role-name>
</security-role>
<security-role>
    <description/>
    <role-name>adm</role-name>
</security-role>
Run Code Online (Sandbox Code Playgroud)

和sun-web.xml中的映射:

<security-role-mapping>
  <role-name>adm</role-name>
  <group-name>adm</group-name>
</security-role-mapping>
<security-role-mapping>
  <role-name>usr</role-name>
  <group-name>usr</group-name>
</security-role-mapping>
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,但它不适合我,我得到以下内容:

    FINE: Cannot load group
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'group_name' in 'field list'
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
            at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
            at com.mysql.jdbc.Util.getInstance(Util.java:382)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3603)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3535)
            at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1989)
            at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2150)
            at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626) …
Run Code Online (Sandbox Code Playgroud)

mysql servlets jdbc jdbcrealm glassfish-3

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

使用java在Android项目中获取计算机的IP地址

我正在使用ksoap2-android,我需要使用java获取IP地址,这样我就不必每次都手动输入.

我的意思是IP地址,例如,如果我使用命令shell 执行ipconfig:
特定于连接的DNS后缀.:
链接本地IPv6地址.....:f0 :: ed2:e3bf:8206:44%13
IPv4地址...........:192.168.1.107 < - 这个
子网掩码...........:255.255.255.0
默认网关.........:192.168.1.1

事情是开发一个Android应用程序,模拟器有一个不同类型的IP比机器的.
我需要获得机器的IP,这是怎么做到的?

非常感谢

java ip android ip-address android-ksoap2

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

Android浏览器插件

我在android源代码中找到了示例插件.假设我可以使用该示例编写插件,如何让我的模拟器运行我编写的插件?我需要重新编译源代码吗?如果是,那怎么可能呢?

谢谢:)

plugins android android-emulator

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

"FOR UPDATE"v/s"LOCK IN SHARE MODE":允许并发线程读取锁定行的更新"状态"值

我有以下场景:

  • 用户X从位置lc1登录到应用程序:将其命名为Ulc1
  • 用户X(已被黑客攻击,或者他的一些朋友知道他的登录凭证,或者他只是从他的机器上的其他浏览器登录等等.你明白了)从位置lc2同时登录:调用它ULC2

我正在使用一个主servlet:
- 从数据库池获取连接
- 将autocommit设置为false
- 执行通过app层的命令:如果全部成功,在"finally"语句中将autocommit设置为true,并关闭连接.否则,如果发生异常,则回滚().

在我的数据库(mysql/innoDb)中,我有一个"历史"表,其中包含行列:
id(主键)|用户名| 日期| 主题| 锁定

"已锁定"列默认值为"false",它用作标记特定行是否被锁定的标志.
每行都是特定于用户的(您可以从用户名栏中看到)

回到这个场景:
- > Ulc1发送命令从数据库中更新他的历史记录"日期""D"和主题"T".

- > Ulc2发送相同的命令,以便在同一时间从同一日期"D"和相同主题"T" 的数据库更新历史记录.

我想实现一个mysql/innoDB锁定系统,它将启用任何到达的线程进行以下检查:

此行的列"锁定"是否为真?

  • 如果为true,则向用户返回"他已经从其他位置更新相同数据"的消息
  • 如果不是真的(即未锁定):将其标记为已锁定并更新,然后重置锁定为false一旦完成.

这两种mysql锁定技术中的哪一种,实际上会允许第二个到达的线程读取锁定列的"更新"值来决定采取wt动作?

我应该使用"FOR UPDATE"还是"LOCK IN SHARE MODE"

这个场景解释了我想要完成的任务:
- Ulc1线程首先到达:列"locked"为false,将其设置为true并继续更新进程
- Ulc2线程在Ulc1的事务仍在进行时到达,即使该行被锁定innoDb功能,它不必等待,但实际上读取列的"新"值是"真",因此实际上不必等到Ulc1事务提交读取"锁定"的值"列(无论如何,此列的值已经被重置为false).

我对这两种类型的锁定机制不是很熟悉,到目前为止我所理解的是LOCK IN SHARE MODE允许其他事务读取锁定行,而FOR UPDATE甚至不允许读取.但是这个读取是否有更新的值?或者第二个到达的线程必须等待第一个线程提交然后读取值?

有关哪种锁定机制用于此方案的任何建议都值得赞赏.
此外,如果有更好的方法来"检查"行是否已被锁定(除了使用真/假列标志),请让我知道它.
谢谢

解决方案
(基于@Dathazer答案的Jdbc伪代码示例)

表:[id(主键)|用户名| 日期| 主题| 锁定]

connection.setautocommit(false);
//transaction-1
PreparedStatement ps1 = …
Run Code Online (Sandbox Code Playgroud)

mysql concurrency deadlock innodb jdbc

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

AngularJS谷歌图表:ChartRangeFilter

我正在使用AngularJS Google Chart来显示折线图.

我正在阅读ChartRangeFilter,需要在我的图表中使用它.是否可以在AngularJs Google Chart中集成范围过滤器?或者它没有支持此功能?

我找不到关于这个主题的任何教程/文档,所以任何帮助表示赞赏!

javascript charts google-visualization google-chartwrapper angularjs

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

Android webview:使用javascript突出显示页面中的特定单词?

我在我的Android应用程序中使用webview.我想知道是否可以使用javascript中的代码在加载的页面中突出显示或强调特定的单词/句子/段落?

谢谢

javascript android highlighting android-webview

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

为什么反射会降低Android手机的速度

我多次读到反射会降低手机的性能.这是真的吗?

例如,在我的情况下,我从Web服务获取一些参数,这些参数与我在Android应用程序中的类的参数具有相同的名称.所以我只是使用java字段和反射设置这些参数的值...它似乎没有减慢性能..

任何人都可以向我解释这个关于反思减慢性能的想法背后的事实吗?

reflection performance android android-ksoap2

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

android webview文本选择监听器

嘿所有我在我的Android应用程序中使用webview.一旦我在页面上选择文本,我知道我可以使用clipboardmanager"getText()".但是,每当选择新文本时,是否有一个监听器进行轮询?我希望每次用户选择文本时触发一个事件.

非常感谢 :)

android android-webview

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

在数据库中搜索文本:使用MySQL全文搜索将数据库记录缓存到域逻辑V/S中?

我正在开发一个分层的Web应用程序.简而言之,它有:

UI:html,javascript和jquery
域逻辑:Java和servlets
业务逻辑:MySQL

我在数据库中有大量记录,其中包含有关书籍的信息.此外,该应用程序将同时被许多用户使用.我希望用户能够在搜索文本字段中输入图书的"名称",例如"book1",并使用jquery自动完成显示下拉列表.

数据库中的记录不可更新,因为它们永远不会更改.

考虑到坚固的设计模式,这是更好的(性能和速度):

将这些数据库记录预加载到域逻辑的缓存对象中,让用户从该对象中搜索(查询)它们?或者使用MySQL全文搜索等方式直接从数据库查询?

如果使用MySQL全文搜索,我担心许多用户同时会对数据库进行大量调用.至于预加载到缓存对象,我不确定这通常是一个很好的软件实践,有人推荐它吗?我应该把记录的计时器保留在内存中吗?

这两种方法中哪一种更可取?这种情况还有其他更好的方法吗?

mysql database design-patterns java-ee vs-web-application-project

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

如何将列/行添加到现有的空JTable中?

我正在开发一个软件,我需要一个基本的Java Swing UI.我正在使用Netbeans,这使我可以拖放UI组件.但是,我需要使用代码显示最终结果表.

在我使用IDE的UI中我创建了一个JTabbedPane,在其中我添加了一个空JTable(无行或列)调用finalOutputTable.现在我想在运行时填充这个表,让我们说列:x,y和行:row1,row2和row3.

我怎么能通过编码来做到这一点?

java swing jtable

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