在Linux环境中,我需要检测RJ45连接器到其插槽的物理连接或断开状态.最好只使用BASH脚本.
以下在其他网站上提出的解决方案不适用于此目的:
是不是有一些状态可以在/ proc文件系统中使用(其他一切都在那里)?
Linux世界是如何拥有自己的Windows泡泡版本,从图标托盘中弹出,表明您刚刚拔掉了网线?
Kent Fredric和lothar,你的两个答案都满足了我的需求......非常感谢!哪一个我会用...我还是不知道.
我想我不能把你们两个都当作正确的答案吗?对我来说,我选择一个可能是公平的.我猜是翻硬币吗?再次,谢谢!
关于在数据库中对数据进行版本控制,我已经阅读了关于SO的一些问题(比如这一个).
我喜欢上面提到的一些建议.我有最长的时间想要(需要)修改我的许多桌子,但从来没有绕过它.作为一个只有简单的数据库工作的程序员,我想知道如何才能真正做到这一点.
我不是要求SQL语法中的实际解决方案.我最终可以为自己解决这个问题(或者在时机成熟时发布).我只是要求人们评论他们将如何进行评论以及如果我要"修改"数亿条记录,可能会出现任何潜在的性能问题.或者任何其他建议,只要它基于以下示例.
举个简单的例子:
Person
------------------------------------------------
ID UINT NOT NULL,
PersonID UINT NOT NULL,
Name VARCHAR(200) NOT NULL,
DOB DATE NOT NULL,
Email VARCHAR(100) NOT NULL
Audit
------------------------------------------------
ID UINT NOT NULL,
UserID UINT NOT NULL, -- Who
TableName VARCHAR(50) NOT NULL, -- What
OldRecID UINT NOT NULL, -- Where
NewRecID UINT NOT NULL,
AffectedOn DATE NOT NULL, -- When
Comment VARCHAR(500) NOT NULL -- Why
Run Code Online (Sandbox Code Playgroud)
如果TableName是一个字符串,我不确定如何将Audit表链接到任何其他表(例如Person)?
另外,假设我有三个GUI来填充:
要完成1和2,查询Person表或Audit表会更好吗?
要完成3,所谓的数据库专家是否只需获取所有记录并将其传递给软件进行处理,或按PersonID和受影响日期分组?这通常是在一个查询中处理还是多个?
我正在尝试将整个"工作区"移植到USB密钥(包括Eclipse可执行文件),以便我可以随身携带我的工作并直接处理密钥.
我的目录层次结构与此类似:
/workspace/eclipse - Where my current eclipse binary is stored
/workspace/codebase - Where I keep the root of all my eclipse projects
/workspace/resources - Where I keep all project files (images, docs, libs, etc.)
Run Code Online (Sandbox Code Playgroud)
它在一个系统上完美运行.但是当我切换到另一个系统时,USB密钥会安装在另一个驱动器上.例如,在我的笔记本电脑上,我得到'E:\',在我的电脑上,我得到'K:\'并且在工作中我得到'F:\'等等.
这意味着因为Eclipse(出于"某些原因")似乎只在其每个配置文件(例如.classpath)中使用完整路径名(包括驱动程序字母),所以当我想在另一个系统上工作时,什么都没有用.
我在每个项目的基础上放置了一个'libs'目录,并用它依赖的JAR文件填充它.为什么不使用相对名称,以便我可以指定类似"../../libs/log4j.jar"的内容?
有谁知道如何解决这个问题?有谁知道这个的解决方法?
更新:2010.11.09
我最近发现了Dropbox,它允许您自动地在线和在计算机之间自动同步文件.它包括2GB的可用空间,如果需要,您可以升级到更多(每年一次).
我将它安装在我的两台笔记本电脑,两台电脑,我的Linux服务器和我的Android手机上,然后在"我的Dropbox"文件夹中创建了一个"工作区"目录.从'workspace'目录开始,我安装了Eclipse并像往常一样创建/配置了所有项目.我可以在任何计算机上工作,一切都保持完全同步.这比任何USB密钥功能和麻烦都要好!
我一直在阅读分手的 页面,但似乎无法找到有关有效参数的任何文档.我正在尝试将具有特定分区大小的USB CompactFlash分区(无论CF大小如何).但我想确保我的对齐完全正确和最佳.
例如,当我使用以下命令时:
parted -s -a optimal $DEV mkpart primary ext3 1 1600
parted -s -a optimal $DEV mkpart primary ext3 1600 3200
parted -s -a optimal $DEV mkpart primary ext3 3200 3600
Run Code Online (Sandbox Code Playgroud)
目前尚不清楚第一个分区是否应为1或0?我得到的唯一提示是它应该从1而不是0开始是我运行的时候:
parted /dev/sdc align-check optimal 1
Run Code Online (Sandbox Code Playgroud)
这告诉我它在以1开始时是对齐的而在从0开始时没有对齐.但是当我以1开始并且我执行'打印'时,开始是1049kB ...这是正常的吗?当我转储由其他工具创建的打印分区时,我发现它们以32kB开始.如果我使用0的开头,它会输出512kB的开头.哪个是对的,我不知道!
另外,我在网络上看到了许多使用第二个和第三个分区的起始值作为其前面分区的结束值的人的示例(即:1600和3200值).我们假设重叠或增量为1吗?手册页对此没有任何说明.我已经看到一些网页,他们说它的错误是为了开始时与上一端的价值相同.
当我使用'-a optimal'时,它似乎甚至不会影响我的分区.不使用对齐标志似乎产生相同的结果.这是为了什么目的?有什么我想念的吗?
我真的希望分手会更聪明,不需要一个开始,而是可以自己推断它.实际上很多人似乎都需要这个确切的功能,所以我不是唯一有这种需求的奇怪球.希望那里的一些极客会看到这种需求,并实际上将其添加为功能.
请注意,我正在使用自动构建脚本,这就是我使用'-s'标志的原因.
如果有人能在这方面给我启发,我将非常感谢...提前感谢!
我有两个使用Xorg的xinerama功能的LCD.每个LCD屏幕都有一个触摸屏,它们连接到各自的USB线.
查看'/ var/log/messages'文件,我看到以下内容:
kernel: input: Analog Resistive as /class/input/input0
kernel: input: USB HID v1.01 Mouse [Analog Resistive] on usb-0000:00:1d.3-1
kernel: input: Analog Resistive as /class/input/input1
kernel: input: USB HID v1.01 Mouse [Analog Resistive] on usb-0000:00:1d.3-2
Run Code Online (Sandbox Code Playgroud)
出于某种原因,在某个时间点,USB总线似乎重置(或奇怪的东西),我的两个触摸屏反转(按左侧LCD,鼠标右移,如果我按下右侧LCD,鼠标移动到剩下).
为了尝试调试问题,我尝试编写一个udev规则来记录我的设备何时重置/断开连接(或其他).但似乎udev会在连接时在设备上报告完整的详细信息(产品,制造商,idProduct,idVendor等),但在删除时只提供一些总线号码.为什么是这样?
当我得到一个ACTION =="删除",KERNEL =="输入*"规则时,我无法知道它是哪个设备!有没有人知道这方面的方法?
我正在尝试渲染一个自定义Swing组件,我扩展了JComponent类.
为了简化组件需求,我们只需将我的组件汇总为需要渲染一些字符串,每个字符串都有自己的字体.
我需要将我的组件的大小精确到我渲染的字符串的总宽度和高度.
为了确定这个大小,我使用FontMetrics来计算每个字符串的尺寸.有了这些信息,我可以弄清楚我的组件的大小,并适当调整大小.
问题是,当我访问getGraphics()时,它总是为null,所以我无法得到FontMetrics实例.如果我等待从覆盖的paintComponent()方法计算我的组件大小,它已经太晚了(组件已经有一个大小,对吧?).
文档说"如果此组件当前不可显示,则此方法将返回null".那么我何时知道组件何时可以显示并且有一个Graphics对象供我调整组件大小?
一旦调用frame setVisible(true)框架,渲染组件的Swing调用顺序是什么?
谢谢
更新:2010年2月6日星期二23:34
正如评论中所提到的,GridLayout根本不尊重任何setXxxSize().对于任何感兴趣的人,我发布了使用GridLayout,BoxLayout和FlowLayout的结果,使用一个简单的框架,接收5个固定大小的200宽50高的组件(通过设置min,max和preferred).
检测结果:
所述的GridLayout总是沿宽度和高度调整大小(如在评论中提到)
无论如何,FlowLayout始终尊重组件大小.
至于BoxLayout ......
的PAGE_AXIS和Y_AXIS收缩的部件的宽度的大约一半它们的大小(104),但没有收缩的高度.
该LINE_AXIS和X_AXIS萎缩的组件,以什么似乎为零,但没有触及宽度高度.
我JFrame用a BorderLayout和a 创建了一个初始化JScrollPane的CENTER元素.
滚动窗格设置为VERTICAL_SCROLLBAR_ALWAYS和HORIZONTAL_SCROLLBAR_NEVER策略.我的意图frame是控制宽度,而高度应该随着数据的添加/删除而增长/缩小.
在我的内部scroll pane,我添加了一个简单的JPanel(让我们称之为内容面板),它是用FlowLayout(和LEADING策略)初始化的.
为了测试这个,我只content panel用20个JLabel("Item " + n)组件填充我n的循环计数器.
labels如果frame足够大,我希望看到我在单行显示,当缩小宽度时标签会换行到其他行.但相反,只有一行显示没有包装......永远.
有没有人知道为什么在涉及flow layout时不包裹scroll pane?
如果我将scroll pane所有全部移除并content panel直接放入frame,则会发生所需的包裹效果,但如果frame高度缩小小于content panel高度则会消失.
我的想法是,我希望labels在必要时将其包裹起来,但如果必须向上/向下滚动,也始终可见.
对于如何解决这个问题,有任何的建议吗?
谢谢.
我的原始问题可以在这里找到,为此我得到了一些很棒的答案,idas和提示.
作为可行性和性能研究的一部分,我已经开始转换我的模式,以便使用这些想法对我的数据进行版本化.在这样做的时候,我想出了一些其他的问题.
在我原来的问题中,我的例子很简单,没有真正的关系引用.为了保留我之前问题的例子,我现在将'Name'部分扩展到另一个表.
所以现在,我的数据变成了:
Person
------------------------------------------------
ID UINT NOT NULL,
NameID UINT NOT NULL,
DOB DATE NOT NULL,
Email VARCHAR(100) NOT NULL
PersonAudit
------------------------------------------------
ID UINT NOT NULL,
NameID UINT NOT NULL,
DOB DATE NOT NULL,
Email VARCHAR(100) NOT NULL,
UserID UINT NOT NULL, -- Who
PersonID UINT NOT NULL, -- What
AffectedOn DATE NOT NULL, -- When
Comment VARCHAR(500) NOT NULL -- Why
Name
------------------------------------------------
ID UINT NOT NULL,
FirstName VARCHAR(200) NOT NULL,
LastName VARCHAR(200) NOT NULL, …Run Code Online (Sandbox Code Playgroud) 我是迄今为止加密专家,因此我正在寻找软件解密建议.我的例子涉及硬件,但我的问题是寻求关于软件解决方案是否可行,可行和合理的软件建议.
背景:
在我们的产品上,我们正在考虑在我们的RFID密钥上添加加密.我们当前的固件不支持这一点,我们的硬件人员现在想升级硬件以添加随机数生成器芯片.
如上所述,我不是加密方面的专家,但我总是认为加密需要一个随机数生成器,但不能用于解密?
附加信息:我们使用的是低功耗ARM处理器(此时不知道该型号).
所以我的问题如下:
最后,
先感谢您!
我收集了数千个(可能 30-40k)文档,其结构(大大简化)如下:
{
propA:'123',
obj: [
{prop1:'a'},
{prop1:'b'},
{prop1:'c'}
],
propB:456
}
Run Code Online (Sandbox Code Playgroud)
如何查询找到所有文档在哪里obj.prop1==='b'?我似乎无法弄清楚如何检查数组属性内对象的属性。这是使用1.5.1版本。
谢谢!
更新 已解决 - 请参阅我的答案...
我在 Linux 发行版上通过 usbserial 使用 RxTx 库。RxTx 库的行为似乎与串行方式的工作方式完全不同(以一种糟糕的方式)。
我最大的问题之一是它RxTx SerialPortEvent.OUTPUT_BUFFER_EMPTY无法通过 USB 串行在 Linux 上运行。
我如何知道何时应该写入流?我可能错过了任何指标吗?
到目前为止,我同时写作和阅读的经验并不是很好。DATA_AVAILABLE有谁知道我在流上写入时是否应该锁定处理程序不被调用?或者RxTx接受并发读/写?
JavaScript文档声明,为了向现有对象添加属性,您可以执行以下操作.
data["property"] = value;
Run Code Online (Sandbox Code Playgroud)
要么
data.property = value;
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我试图在添加之前将我的模型ID(由服务器接收)转换为字符串,例如:
data.model[id.toString()] = false;
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
Uncaught TypeError: Cannot set property '1' of undefined
Run Code Online (Sandbox Code Playgroud)
我最初虽然这是因为你不能使用字母数字字符串或某种奇怪的限制,所以我尝试用一个字母为我的ID添加前缀,例如:
var id = 'k' + id.toString();
Run Code Online (Sandbox Code Playgroud)
仍然不起作用!但是,当我使用Chrome的控制台面板并手动执行此操作时,例如:
var data = {};
var data['1'] = false;
Run Code Online (Sandbox Code Playgroud)
这有效,所以我做错了什么?
data.['key'] = value;无论如何,运营的官方名称是什么?这有助于了解何时向Google寻求帮助.
更新1:好的,似乎可能是由于以下原因:
var data = localStorage.getItem('model.state');
Run Code Online (Sandbox Code Playgroud)
当我将其更改为:
var data = {};
Run Code Online (Sandbox Code Playgroud)
它突然开始起作用了!
更新2:我看到我做错了什么(但仍然不确定为什么它给了我一个'未定义'错误......任何人?).
我做了以下事情:
var data = localStorage.getItem('model.state');
if (data) data = JSON.parse(data);
Run Code Online (Sandbox Code Playgroud)
它开始按预期工作.对不起...感谢大家的帮助!
database ×2
java ×2
linux ×2
swing ×2
versioning ×2
connection ×1
detection ×1
eclipse ×1
encryption ×1
javascript ×1
layout ×1
lokijs ×1
networking ×1
random ×1
rxtx ×1
udev ×1
workspace ×1