我正在使用嵌入式Jetty运行websocket服务器.
当我从同一台机器(localhost)建立连接时它按预期工作,但是当我尝试从另一台机器连接时,我收到错误"Host is down"(也称为EHOSTDOWN).
日志说Jetty正在侦听0.0.0.0地址,所以它应该接受来自任何地方的连接,并且12345允许ufw所有协议的端口(在这个例子中).我也试过暂时禁用ufw,但没有效果.
这是我的代码(这是一个简单的websocket echo-server,我删除了所有不相关的内容):
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.websocket.api.WebSocketAdapter;
import org.eclipse.jetty.websocket.servlet.WebSocketServlet;
import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;
import java.io.IOException;
public class EchoServerLauncher {
static final int PORT = 12345;
public static void main(String[] args) {
startServer(PORT);
}
private static void startServer(final int port) {
new EchoServer(port).startAndJoin();
}
}
class EchoServer extends WebsocketServerBase {
static final String PATH = "/hello/";
public EchoServer(final int port) {
super(port);
} …Run Code Online (Sandbox Code Playgroud) IDEA不断提出一个弹出窗口,其中包含"渲染问题缺少样式.是否为此布局选择了正确的主题?..."
是的,一切都正确,IDEA只是没有看到AppCompat库中的某些符号.
是否有可能抑制这些警告?因为它很烦人.(我希望IDEA只是"闭嘴"并尽可能地渲染一切,忽略可能的错误.)
例如,如果我使用如下的顶点着色器:
#version 400 core
uniform mat4 projM;
uniform mat4 viewM;
uniform mat4 modelM;
in vec4 in_Position;
out vec4 pass_position_model;
void main(void) {
gl_Position = projM * viewM * modelM * in_Position;
pass_position_model = modelM * in_Position;
}
Run Code Online (Sandbox Code Playgroud)
它是否会projM * viewM * modelM为每个顶点进行矩阵乘法,或者它是否足够智能来计算是否一次并且在重新计算变量之前不重新计算?如果它不够"足够聪明",那么有没有办法优化它,除了计算CPU上所有统一相关值并将它们作为统一变量发送到GPU?
此外,我对可以在没有问题的情况下移植到OpenGL ES 2.0的解决方案感兴趣.
这里描述了一些预定义的混合模式:https://developer.android.com/reference/android/graphics/PorterDuff.Mode.html
是否有可能使用其他一些自定义模式?(用于在Canvas上绘制各种内容)
例如,我真的需要两个:
[Sa, Dc]好像我理解的那样)[Sa, Da * Sc + (1 - Da) * Dc](这里我真的不关心结果的alpha)如果需要OpenGL ES 2+,那就没关系了.
这里有一个[远程]类似的问题:在android中实现不同的PorterDuff模式 - 但答案似乎需要使用两个位图,我想保持不受临时位图的影响,因为它们......不是免费的.
我对跷跷板表有问题。当我尝试组成并显示一个简单的表时,它显示时没有列名。
我做了什么:
首先,我必须说我正在使用[seesaw "1.4.2"]。
然后:
;; Clojure 1.4.0
(require '[seesaw.core :as ss])
(ss/native!)
(def main-window
(-> (ss/frame
:title "Main window")
ss/pack!
(ss/config! :minimum-size [320 :by 240])
ss/show!))
(def display
#(ss/config! main-window
:content %))
(display
(ss/table
:id :dumb-table
:model [:columns
[:one :another]
:rows
[["1" "2"]
["3" "4"]]]))
Run Code Online (Sandbox Code Playgroud)
我得到的是http://img.leprosorium.com/1663368
表,但没有列名,我想它必须是“一个”和“另一个”。这里出了什么问题?
如果我使用与官方Wiki中完全相同的代码,也会发生这种情况:https : //github.com/daveray/seesaw/wiki/Tables
我忘了提,我正在使用JDK 1.7u10,也许这很有意义。
我已经做了一些基准测试并且得到了我不知道如何解释的结果.
我有两个类使用泛型数组做同样的事情(计算繁重),它们都使用特化(@specialized稍后@spec).一个类定义如下:
class A [@spec T] {
def a(d: Array[T], c: Whatever[T], ...) = ...
...
}
Run Code Online (Sandbox Code Playgroud)
第二:(单身人士)
object B {
def a[@spec T](d: Array[T], c: Whatever[T], ...) = ...
...
}
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,我获得了巨大的性能.为什么会这样?(注意:目前我不太了解Java字节码,而Scala编译器内部也是如此.)
完整代码在这里:https://github.com/magicgoose/trashbox/tree/master/sorting_tests/src/magicgoose/sorting
这是从Java中删除的排序算法,(几乎)自动转换为Scala并且比较操作更改为通用的允许在没有装箱的情况下使用与原始类型的自定义比较.加上简单的基准测试(不同长度的测试,使用JVM预热和平均)
结果如下:(左列是原始Java Arrays.sort(int[]))
JavaSort | JavaSortGen$mcI$sp | JavaSortGenSingleton$mcI$sp
length 2 | time 0.00003ms | length 2 | time 0.00004ms | length 2 | time 0.00006ms
length 3 | time 0.00003ms | length 3 | time 0.00005ms …Run Code Online (Sandbox Code Playgroud) 我想以类似于此示例的方式在地图上显示标记,但我有更多标记,我想使用"原生"Google地图.
到目前为止,我发现只有一个看起来能够做到这一点的库:android-maps-utils.但经过测试后发现,当有大约35000个标记时,它会出现严重的性能问题.(甚至java.lang.OutOfMemoryError).所以我想知道还有哪些其他选择.从头开始滚动我自己的解决方案可能是我想做的最后一件事.
我想,这个库根本不可用于非常大的标记计数,因为它将它们全部保存在RAM中.例如,在从文件中读取当前不可见标记时,最好过滤掉它们,并在每次摄像机移动后进行.(double从二进制文件中读取35k对DataInputStream非常快,所以现在这不是什么大问题.我想这可以进一步加速.)另外,我可以为不同的缩放级别准备预处理的集群集.文件,因为标记不会经常更改.
但是从头开始实现这一点(特别是 - 适当的集群)看起来很多工作.也许我错过了已经做过的事情?
为此,我尝试使用android-maps-extensions.它工作得更好,但它也将所有标记保存在内存中,当显示大约35k标记时,它会在完全缩小时导致大约20MB的内存消耗,并且在放大时会导致大约24MB.另外大约7MB并且会出现崩溃...所以我想我需要在RAM中保留尽可能少的数据.有没有像这样工作的图书馆?
标题说.(很明显,SQLite.NET 在这里托管)
所有示例都使用可变记录类型,这意味着它们{ get; set; }在每个属性定义中都有.我希望在我的项目中尽可能地删除可变类型,但SQLite.NET看起来像是一个可能的障碍.
例如,如果我尝试使用1列类型获取查询结果System.String,则会失败.那么是否可以使SQLite.NET使用构造函数而不是属性setter,或者我必须使用可变类型在SQLite.NET中检索和存储数据?
我有一个包含以下include标签的片段布局:
<include
android:id="@+id/ivRemoveData"
layout="@layout/item_menu"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_margin="16dp"
android:visibility="visible"/>
Run Code Online (Sandbox Code Playgroud)
item_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<ImageView
android:id="@+id/ivIcon"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_centerInParent="true"
android:visibility="gone"
android:background="@drawable/not_passed_circle_level_item"
android:clipChildren="false"
android:clipToPadding="false"/>
Run Code Online (Sandbox Code Playgroud)
我需要使用方法ivIcon.setImageResource().
我的片段类:
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.fragment_options.*
import kotlinx.android.synthetic.main.item_menu.view.*
class OptionsFragment : BaseFragment(), OptionsMVP.View
{
override fun onCreateView(inflater : LayoutInflater, container : ViewGroup?, savedInstanceState : Bundle?) : View?
{
val view = inflater.inflate(R.layout.fragment_options, container, false)
return view
}
override fun onViewCreated(view : View?, savedInstanceState : Bundle?)
{
super.onViewCreated(view, savedInstanceState)
ivRemoveData.ivIcon.setImageResource(R.drawable.ic_delete)
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误: …
我在package对象中有这个方法:
def extractLoop[@specialized T](x: Map[T, T]) = {
val whatever = x.head
val stop = whatever._1
def iteration(
acc: Seq[T] = Seq(whatever._1, whatever._2),
last: T = whatever._2): Seq[T] = {
val next = x(last)
if (next == stop) acc
else iteration(acc :+ next, next)
}
iteration()
}
Run Code Online (Sandbox Code Playgroud)
但我还不明白,为什么编译器(我有版本2.9.2)说type T is unused or used in non-specializable positions.?
compiler-construction generics scala jvm-languages compiler-warnings
我的问题是因为我相信简单,但它变得有点复杂,我想要实现的是:我在WinForm中有几个按钮,几乎完全相同,所以我创建了一个单独的事件来处理所有这些,现在我希望根据他们点击的鼠标按钮为他们提供一些其他功能,例如,如果按下左键单击按钮执行,但如果右键单击以其他方式执行,可以如何实现?,任何帮助将不胜感激.
我正在寻找像这样的声明......
private void buttons_Click(object sender, EventArgs e)
{
if(e.buttons==mousebuttons.right)
//do something
else
//do other thing
}
Run Code Online (Sandbox Code Playgroud)
你知道的事情是,这是不能实现的,因为e没有mouse button events它,因为我被称为一个button click event.
首先,如果我问一些愚蠢的话,我很抱歉,因为我是Python的新手...
我正在阅读http://docs.python.org/3.1/reference/datamodel.html#objects-values-and -types并看到那句话:
type()函数返回一个对象的类型(它本身就是一个对象)
当然,我决定检查一下:
>>> def someFunction(x):
... return x * x
...
>>> type(someFunction)
<class 'function'>
>>> type(type)
<class 'type'>
Run Code Online (Sandbox Code Playgroud)
所以,看起来函数有function类型,但是type如果它是一个函数,为什么函数有不同的类型?或者说文档是撒谎,它不是真正的功能?
鉴于Scala中的这一代码:
val mapMerge : (Map[VertexId, Factor], Map[VertexId, Factor]) => Map[VertexId, Factor] = (d1, d2) => d1 ++ d2
Run Code Online (Sandbox Code Playgroud)
这可以缩短为:
val mapMerge : (Map[VertexId, Factor], Map[VertexId, Factor]) => Map[VertexId, Factor] = _ ++ _
Run Code Online (Sandbox Code Playgroud)
实际上代码的作用是重命名Map [VertexId,Factor]的operator ++,因此:有没有办法将该运算符赋值给变量?就像在这个想象中的例子一样:
val mapMerge : (Map[VertexId, Factor], Map[VertexId, Factor]) => Map[VertexId, Factor] = Map.++
Run Code Online (Sandbox Code Playgroud)
并且可能使用类型推断它就足够了
val mapMerge = Map[VertexId,Factor].++
Run Code Online (Sandbox Code Playgroud)
谢谢
android ×4
scala ×3
c# ×2
java ×2
benchmarking ×1
clojure ×1
function ×1
generics ×1
glsl ×1
google-maps ×1
immutability ×1
jetty ×1
jvm ×1
object ×1
opengl ×1
opengl-es ×1
operators ×1
optimization ×1
porter-duff ×1
python ×1
python-3.x ×1
quadtree ×1
scala-2.10 ×1
seesaw ×1
sqlite ×1
sqlite.net ×1
swing ×1
types ×1
ubuntu-14.04 ×1
ufw ×1
websocket ×1
winforms ×1