我一直在开始客户端 - 服务器应用程序.起初我自然地在Eclipse中创建了两个项目,两个源代码控制存储库等等.但我很快就发现两者之间有一些共享代码可能会从共享中受益(在同一个项目或共享库中)而不是复制.
另外,我一直在学习和尝试测试驱动开发,在我看来,基于真实的客户端组件进行测试会更容易,而不是只需要设置大量的代码来模拟某些东西,代码可能主要在客户端.在这种情况下,似乎将客户端和服务器放在一个项目中,由根包(org.myapp.client.*和org.myapp.server.,也许是org.myapp.shared.)进行了细分.
然而,我在合并客户端和服务器时最关心的是安全性; 如何确保代码的服务器部分不会到达用户的计算机?当Eclipse捆绑一个JAR时,我必须选择特定于服务器的位,并希望我不会错过任何一个,对吧?
因此,特别是如果您自己编写客户端 - 服务器应用程序(尤其是在Java中,尽管如果您想在其他语言中分享您的体验,这可能会变成与语言无关的问题),您保持什么样的分离?您的客户端和服务器代码之间?它们只是在不同的包/命名空间中,还是使用共享库完全不同的二进制文件,还是完全不同的东西?您如何一起测试代码然后单独发货?
我想问一下制作阴影和光量最简单的方法是什么?如何让现场更真实?你知道任何好的技巧吗?我听说要制作阴影我必须使用模板缓冲区,但我不知道如何:/我找不到任何超级简单的例子如何制作它.
这不是一个真实的情况; 请忽略您认为适用的法律问题,因为他们没有.
假设我有一组200个已知的有效许可证密钥用于假设的软件许可算法,而许可证密钥由5组5个字母数字不区分大小写(全部大写)字符组成.例:HXDY6-R3DD7-Y8FRT-UNPVT-JSKON
是否有可能(或可能)推断系统的其他可能密钥?
如果已知该集是连续的,该怎么办 这种方法如何改变方法,这给了什么样的优势?
我之前听说过"keygens",但我相信它们可能是通过反编译许可软件而不是检查已知的有效密钥来制作的.在这种情况下,我只给出了一组键,我必须确定算法.我也被告知这是一个行业标准算法,所以它可能不是什么基本的东西,尽管我认为机会总是在那里.
如果您认为这不属于Stack Overflow,请至少建议另一个地方让我查看或提出问题.老实说,我不知道从哪里开始这样的问题.我甚至不知道这类问题的术语.
我知道这是Builder模式,但它是它的修改形式.维基百科关于Builder模式的文章给出了一个例子:
pizzaBuilder.createNewPizzaProduct();
pizzaBuilder.buildDough();
pizzaBuilder.buildSauce();
pizzaBuilder.buildTopping();
Pizza p = pizzaBuilder.getPizza();
Run Code Online (Sandbox Code Playgroud)
是否有修改后的Builder模式的特定名称,如下所示:
Pizza p = pizzaBuilder.createNewPizzaProduct().buildDough().buildSauce().buildTopping();
Run Code Online (Sandbox Code Playgroud)
这在jQuery库中最为明显,您可以在其中执行以下操作:
$('li.item-a').parent().css('background-color', 'red');
Run Code Online (Sandbox Code Playgroud)
其中每个方法(包括初始$())返回一个jQuery对象,该对象通常表示一组页面元素,并且每个方法都以某种方式对该集合进行操作.
我在JOGL写一个游戏,需要代表游戏角色.我计划使用骨骼动画进行角色动作,当然角色也会被剥皮.我似乎无法为JOGL找到任何好的模型加载器,所以我打算根据规格或其他东西自己加载文件类型.我还计划使用Blender作为我的3D建模器,因此存在于其中的某种类型将是最好的.
你推荐我使用什么文件类型?.混合?.x,.3ds,.md2/3/5,...... 请记住,我喜欢具有明确定义格式的内容,这样我就可以编写加载程序而无需对某些随机文件格式进行反混淆处理,并且需要支持上述功能.您可以提供有关您为何选择它以及为什么最好的信息的其他信息也非常有用!
谢谢!
编辑:我将编写一个Blender MS3D导出器.当我完成后,我会在这里发布.
同时,请看下面我的明确答案; 但此后更多的事情发生了.我不打算用我正在做的更新这个,但基本上我找到了jMonkey Engine,它已经有一个ms3d导入器和其他子系统,我已经开始手写了.尽管有场景图(这就是为什么我要避免使用Java3D),但我认为将它与它联合起来是我最好的选择,所以这就是我要做的事情.
我正在写一个UDP服务器,这对我来说是第一次; 我只做了一点TCP通信.而且我无法确定如何区分哪个用户是哪个,因为UDP只处理数据包而不是连接,因此我无法确切地告诉我与谁通信.
这是我当前服务器循环的伪代码:
DatagramPacket p;
socket.receive(p); // now p contains the user's IP and port, and the data
int key = getKey(p);
if(key == 0) { // connection request
key = makeKey(p);
clients.add(key, p.ip);
send(p.ip, p.port, key); // give the user his key
} else { // user has a key
// verify key belongs to that IP address
// lookup the user's session data based on the key
// react to the packet in the context of the session …Run Code Online (Sandbox Code Playgroud) 我们有一个过去7个月开发的"网络应用程序".问题是,它没有真正记录.这些要求包括7个月前初次会议的一个小项目符号列表(它更多的是"目标"声明,而不是软件要求).它收集了许多源于小型口头或聊天讨论的功能.
开发人员很快就要离开了.他自己写了整个事情,他知道每个页面的所有怪癖和基本规则,但没有其他人真正了解它的用户界面; 这当然是最简单的部分,因为它对用户来说是直观的.但是,如果有人需要修复或添加一个功能,整个事情就是一个黑盒子.代码有一些最小的注释,当然,Web应用程序的好处是地址栏指向正确的方向来解决问题或升级页面.
但是开发人员应该如何记录这个Web应用程序呢?他有点迷失到哪里开始.作为开发人员,您如何为其他开发人员,维护人员和管理级用户完整地记录您的Web应用程序?你使用什么方法,从哪里开始,你使用什么软件,你有模板吗?
一个大小的想法:它使用PHP,MySQL和jQuery.它有大约20-30个主要(前端)文件,以及大约15个包含的文件和一些资产的几个文件夹 - 所以总体来说它是一个非常小的应用程序.它与7个MySQL表接口,每个表都有很好的名称,所以我认为数据库端是非常明显的.有一个config.inc.php文件,其中包含MySQL用户详细信息,一些来自/到电子邮件以及PHP用于插入电子邮件和页面(相对和绝对路径,基本上)的URL等定义.通过jQuery有一些AJAX.
请评论是否有任何其他信息可以帮助您,我将很乐意编辑它.
开发商周五离开.但是,他可以将剩余24小时的大部分时间用于此文档任务.所以,是的,事情是惨淡的,但24小时是相当多的......对吗?: - \
<EditText android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_weight="1"
android:id="@+id/name" android:singleLine="true"
android:maxLength="12" android:capitalize="none" android:inputType="text" />
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/search_button"
android:text="Search" />
Run Code Online (Sandbox Code Playgroud)
我在申请的顶部有这个.当应用程序启动时,EditText突出显示为橙色并且其中有一个光标; 点击EditText时,会弹出软键盘.用户使用它键入EditText.
但是,当他们单击Button时,我的onClick方法会触发并执行它应该执行的所有操作,但是软键盘会停留在屏幕上并且EditText仍会使用其光标突出显示.
我也有,在按钮onclick的顶部:
findViewById(R.id.name).clearFocus();
Run Code Online (Sandbox Code Playgroud)
尽管如此,EditText似乎还没有清楚它的重点.如何使按钮实际上就像提交表单一样?
此外,我不会在点击按钮时转换到其他活动.我想这是典型的情况,也可能是他们不打扰隐藏键盘的原因.但是我希望将搜索框和按钮保持在屏幕顶部,这样我只需在按下按钮时动态填充并向屏幕添加视图.
我怎样才能实现我想要的行为?
我们很难保持Subversion和FTP同步.有时我们忘记提交更改并将它们推送到Web服务器,我们的.svn文件夹分散在我们的Web服务器中,有些东西存在于一个地方而另一些则不存在,等等.
今天我想花点时间解决这个问题.解决办法是什么?有没有办法将SVN链接到我们的Web服务器,以便我们可以通过FTP提交存储库和Web服务器?我们是否应该向我们的Web主机询问一些能够更好地与SVN存储库同步的其他系统?我们如何强制存储库和Web服务器同步?我们如何删除.svn文件夹?
正如标题所说,我们如何保持SVN存储库和我们的Web服务器同步?
显然,你不能只<tr>用<a>标签包围标签并在一天之内调用它; 这是无效的,甚至不起作用.我看过使用过的JavaScript,但是那些不支持JavaScript的浏览器会发生什么?将整个表格行<tr>放入链接的最佳方法是什么?
编辑:在Lerxst的请求下,这是一个包含一些行的表的示例:
<table>
<thead>
<tr><th>Name</th><th>Number of widgets</th></tr>
</thead>
<tbody>
<tr><td>Bob Smith</td><td>Three</td></tr>
<tr><td>Chuck Norris</td><td>Infinity+1</td></tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud) java ×2
3d ×1
algorithm ×1
android ×1
blender ×1
cryptography ×1
css ×1
deployment ×1
file-format ×1
ftp ×1
html ×1
html-table ×1
javascript ×1
jogl ×1
license-key ×1
math ×1
opengl ×1
php ×1
shadow ×1
svn ×1
udp ×1