小编Rei*_*ien的帖子

保持DataGridView自动排序

我有一个由本文所述的DataGridView支持.SortableBindingList

这本质上是一个BindingList数据源是自定义对象列表.底层自定义对象以编程方式更新.

SortableBindingList允许我按升序或降序对每列进行排序.我通过重载ApplySortCore方法 完成了这个

protected override void ApplySortCore(PropertyDescriptor prop,
                                      ListSortDirection direction)
Run Code Online (Sandbox Code Playgroud)

这适用于单击列标题时的排序,但在以编程方式更新该列中的单元格时不会自动排序.

有没有其他人想出一个很好的解决方案来保持DataGridView从其基础数据源的程序化更新排序?

c# datagridview bindingsource

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

无法发送邮件 - javax.net.ssl.SSLException:无法识别的SSL消息,明文连接?

我们使用Spring JavaMailSenderImpl发送Mail .以下是配置

 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="${host}"/>
        <property name="port" value="${port}"/>
        <property name="username" value="${mail.username}"/>
        <property name="password" value="${mail.password}"/>
        <property name="javaMailProperties">
            <props>
                <!-- Use SMTP transport protocol -->
                <prop key="mail.transport.protocol" >${mail.transport.protocol}</prop>
                <!-- Use SMTP-AUTH to authenticate to SMTP server -->
                <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
                <!-- Use TLS to encrypt communication with SMTP server -->
                <prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop>
                <prop key="mail.debug">false</prop>
                <prop key="mail.smtp.ssl.enable">true</prop>
            </props>
        </property>
    </bean>
Run Code Online (Sandbox Code Playgroud)

属性文件: -

host=XXXX.XXXX.XX
port=25
mail.username=xxxxxxxx
mail.password=xxxxxxx
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true
Run Code Online (Sandbox Code Playgroud)

控制台日志

Exception in thread "taskExecutor-2" org.springframework.mail.MailSendException: Mail server connection failed; …
Run Code Online (Sandbox Code Playgroud)

java ssl spring jakarta-mail

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

Hashbang为Gnome .desktop文件

我希望能够#!在我的.desktop文件顶部添加注释,以便如果它具有执行权限并执行,它将实际运行.但是,我不知道.desktop文件的解释器是什么,所以我不知道/usr/bin/在hashbang中写入哪个文件.有任何想法吗?


编辑:

到目前为止,我已经制作了一个小的bash脚本,execdesktop可以执行桌面文件:

`sed -nr 's/Exec=(.*)$/\\1/p' $1`
Run Code Online (Sandbox Code Playgroud)

如果我然后将以下内容添加到我的.desktop文件中:

#!/usr/bin/execdesktop
Run Code Online (Sandbox Code Playgroud)

然后运行正常.这种方法有效,但我不想使用它,因为它需要安装execdesktop.

linux bash scripting gnome

7
推荐指数
3
解决办法
3498
查看次数

使用PowerShell包装现有COM对象

使用PowerShell System.DirectoryServices,我得到了一个如下所示的对象:

   TypeName: System.__ComObject

Name                      MemberType Definition
----                      ---------- ----------
CreateObjRef              Method     System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
Equals                    Method     bool Equals(System.Object obj)
GetHashCode               Method     int GetHashCode()
GetLifetimeService        Method     System.Object GetLifetimeService()
GetType                   Method     type GetType()
InitializeLifetimeService Method     System.Object InitializeLifetimeService()
ToString                  Method     string ToString()
Run Code Online (Sandbox Code Playgroud)

我能找到的所有示例代码都涉及从PowerShell创建新的COM对象,而不是包装已返回的现有对象.我如何有用地处理这个对象(枚举和使用实际的属性和方法)?

注:此对象实际上确实有一个类型库("ActiveDs"),但由于某些原因,我无法使用它的开箱,为不同的问题(通过PowerShell和脚本的Windows Live作家加载类型库)建议应是这样的.

这是一个单线显示如何获得这样的对象:

((new-object DirectoryServices.DirectoryEntry -a '
LDAP://somedc').Properties.GetEnumerator() |?{$_.PropertyName -eq 'usnChanged' }).Value[0] | Get-Member
Run Code Online (Sandbox Code Playgroud)

com powershell

7
推荐指数
1
解决办法
3684
查看次数

如何使用Gradle 4.4创建包含所有依赖项的jar?

这个问题关系到这一个.

我得到了这个Gradle任务:

task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'rpi-sense-hat-lib',
                'Implementation-Version': version,
                'Main-Class': 'io.github.lunarwatcher.pi.sensehat.Tests'
    }
    baseName = project.name
    from { 
        configurations.compile.collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
    with jar
}
Run Code Online (Sandbox Code Playgroud)

并且只有一个依赖项,将测试依赖项放在一边:

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    testImplementation group: 'junit', name: 'junit', version: '4.12'
}
Run Code Online (Sandbox Code Playgroud)

从IDE运行正常.但是,当我部署到我的Raspberry Pi(或gradlew fatJar在本地使用jar 结果)时,我得到以下异常:

$ java -jar java-sense-hat-1.0a.jar
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
    at io.github.lunarwatcher.pi.sensehat.UtilsKt.getSenseHat(Utils.kt:18)
    at io.github.lunarwatcher.pi.sensehat.SenseHat.<init>(SenseHat.java:12)
    at io.github.lunarwatcher.pi.sensehat.Tests.main(Tests.java:9)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

java gradle kotlin

7
推荐指数
1
解决办法
3977
查看次数

Bash脚本为所有文件添加一个随机数

我有一个"智能"手机似乎没有音乐随机播放功能,所以接下来最好的事情是编写一个bash脚本,用随机数在当前目录中添加所有文件名.

难道这难吗?

linux bash

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

msbuild在命令行上工作,但VS2010表示项目"未选中"

此问题的相关解决方案和项目文件位于:

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.sln?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Library/BenfWaves.Library.csproj?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Client/BenfWaves.Client.csproj?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Tests/BenfWaves.Tests.csproj?r=26

我试图重构项目文件以消除冗余,并允许编译到.NET 3.5以及.NET 4.0.目前,VS2010 IDE可以在.NET 4.0上为任何CPU编译.如果我尝试任何CPU for .NET 3.5,它说:

错误1无法加载文件或程序集'System.Drawing,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.第123行,第5行.D:\ projects\BenfWaves\trunk\BenfWaves.Client\Properties\Resources.resx 123 5 BenfWaves.Client

我读到这可能是resgen.exe的问题,但更改该文件上的32位标志并没有改善任何情况.此外,IDE不相信项目具有除Any CPU以外的任何配置,这会产生以下问题:

------ Skipped Build: Project: BenfWaves.Library, Configuration: Debug-4.0 Any CPU ------
           Project not selected to build for this solution configuration
------ Build started: Project: BenfWaves.Client, Configuration: Debug-4.0 x86 ------
           BenfWaves.Client -> D:\projects\BenfWaves\trunk\BenfWaves.Client\bin\x86\Debug-4.0\BenfWaves.Client.exe
------ Skipped Build: Project: BenfWaves.Tests, Configuration: Debug-4.0 Any CPU ------
           Project not selected to build for this solution configuration
========== Build: 1 succeeded …
Run Code Online (Sandbox Code Playgroud)

c# msbuild visual-studio-2010

5
推荐指数
3
解决办法
5320
查看次数

ggplot热图无法填充图块

这个(最小的,自包含的)示例被打破:

require(ggplot2) 

min_input = c(1, 1, 1, 2, 2, 2, 4, 4, 4)
input_range = c(4, 470, 1003, 4, 470, 1003, 4, 470, 1003)
density = c(
    1.875000e-01,
    5.598958e-04,
    0.000000e+00,
    1.250000e-02,
    3.841146e-04,
    0.000000e+00,
    1.250000e-02,
    1.855469e-04,
    0.000000e+00)       

df = data.frame(min_input, input_range, density)

pdf(file='problemspace.pdf')
ggplot(df, aes(x=min_input, y=input_range, fill=density)) +
    geom_tile()
dev.off()
Run Code Online (Sandbox Code Playgroud)

生产:

有缺口的瓷砖

为什么会有很大差距?

r heatmap ggplot2

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

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

为什么 Python 中的连接似乎变慢了?

为什么在某些情况下 Python 3 中的连接似乎比 Python 2 中的慢?

最受影响的连接方法似乎是bytes对象的连续连接,它已经从 O(n) 到 O(n²) 操作。

我的大部分分析代码在这里:

#!/usr/bin/env python

from operator import concat
from sys import version, version_info
from timeit import timeit  # Compatibility: ver >= 2.6

# ver = version.partition('\n')[0].rstrip()
ver = '.'.join(str(v) for v in version_info[:3])
print(ver)

if version_info[0] == 2:
    from StringIO import StringIO
else:
    from io import StringIO
    from functools import reduce
    xrange = range


def build_plus():
    output = ''
    for _ in xrange(input_len):
        output += 'a'
    return …
Run Code Online (Sandbox Code Playgroud)

python profiling concatenation

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