• 每周散记 2018112


    1. java 环境

    java gradle 项目导入问题
    解决: 修改settings.gradle 文件的 rootProject.name 属性值与项目名相同
    原因是因为项目中 settings.gradle 文件的 rootProject.name 属性值与项目名不同造成的
    https://www.cnblogs.com/daimajun/p/7298540.html

    Java开发常用工具
    elipse jdk JUnit maven gradle
    git svn
    starUML powerDesigner
    https://blog.csdn.net/han0373/article/details/79180553

    2. 通过过媒体曝光向社会公布
    可以发布微博@比较权威的媒体。如央视新闻,人民网。

    微信小程序推广
    https://www.douban.com/note/695520290/

    3. c++ 库

    Qt 完全可以代替 stl 写数据模型。多线程的话,Qt 有 QtConcurrent,包含线程池和山寨 map/reduce,也比 boost 好用多了。

    网络通信的话,Qt 就不太行了。所以我折腾了一个 QtNetworkNg(github),实现基于 coroutine 的 socket/ssl,顺便包装了一下 libressl 的加密算法。又折腾了一个 laf_rpc(github),实现了 C++ 史上 API 最简洁的 RPC. 我现在自己用这一套,完全基于 Qt,写起来很舒服。。

    然而,,其实并没什么卵用,我只有一个项目用 c++,平时都是 python/java/js

    :
    : 某软件
    : 数据模型用 stl 写
    : 数据服务接口用corba写
    : 界面用 qt 写
    : 网络通讯用 ACE + TAO写
    : 多线程用boost写
    : 于是一个对象,在各种框架中转来转去。。。
    : 看起来设计的人员也很牛逼,跨平台,什么专业用什么
    : 最后系统成了一团烂泥,没人维护了
    : 其实从根上就是, stl 不好用
    : 每个库都不能完全基于 stl, 又试图标准,兼容 stl
    : 特别是gui库, 就没有基于 stl的好用的库
    : 所以如果是小型项目, 你就没必要折腾 stl, 啥好用啥快用啥
    : 如果是大型项目, 就得考虑基准库的生态问题, 库越少越基于一致标准越好
    : 所以,大型项目,如果涉及到 gui的, 压根别考虑 stl
    : 还是全部用 qt 好一些

    Qt 安装
    https://jingyan.baidu.com/article/656db918d9292ae380249c4f.html
    https://blog.csdn.net/qq_37059483/article/details/77800592

    下载地址:
    http://www.qter.org/portal.php?mod=view&aid=10
    Qt SDK下载:包括各种开发需要的组件的包
    Qt Creator下载:只有编辑器组件 编译器都没有
    旧版本:个版本历史,Qt 从后期版本开始 使用了组件包 所以体积比较大。

    sqlite 内存模式
    http://www.qter.org/portal.php?mod=view&aid=51

    QML是一种用户界面规范和标记语言,理解类似html。
    Quick是 QML 类型和功能的标准库,是一个用于 QML 的工具包。
    Qt Widgets 模块提供了一组UI元素来创建经典的桌面风格的用户界面。组件库。
    Qt Widgets VS QML/Qt Quick 关键区别前者传统开发c++, 后者现代开发,qml标记语言,使ui和数据分离。

    mfc 设置透明
    https://blog.csdn.net/songyimin1208/article/details/53419810
    https://blog.csdn.net/abidepan/article/details/7925679

    设置层次 使用HWND_TOP参数调用SetWindowPos?
    ipmaskdlg.SetWindowPos(&wndTop, rect.left, rect.top, rect.Width(), rect.Height(), SWP_SHOWWINDOW);

    ffmpeg 推流

    push
    ffmpeg -re -i F: est.mp4 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://alipush.51joyshow.com/test/test0?auth_key=1542118030-0-0-8c3a6c6b544a65108c34a5016d025a14

    windows 共享内存封装
    https://blog.csdn.net/zsc_976529378/article/details/52604973
    https://blog.csdn.net/while0/article/details/11358887 这个不错

    windows 进程互斥 线程关键段
    https://blog.csdn.net/KLKFL/article/details/80575090
    https://www.cnblogs.com/huhuuu/p/3589590.html

    linux 共享内存
    https://blog.csdn.net/wan_exe/article/details/56484664

    linux 用共享内存和互斥锁 实现进程间互斥
    https://blog.csdn.net/baidu20008/article/details/23782465
    互斥锁变量可以是进程专用的(进程内)变量,也可以是系统范围内的(进程间)变量。要在多个进程中的线程之间共享互斥锁,可以在共享内存中创建互斥锁,并将pshared属性设置为 PTHREAD_PROCESS_SHARED。

    进程间互斥 信号量
    https://blog.csdn.net/svitter/article/details/39757359

    互斥和信号量区别:
    互斥量用于线程的互斥,信号线用于线程的同步。
    互斥量的加锁和解锁必须由同一线程分别对应使用,信号量可以由一个线程释放,另一个线程得到
    https://blog.csdn.net/shaohua_lv/article/details/70257100

    进程间通信
    同一个机子 共享内存更好些,不过需要考虑同步和互斥问题。
    1.管道:速度慢,容量有限,只有父子进程能通讯    
    2.FIFO:任何进程间都能通讯,但速度慢    
    3.消息队列:容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题    
    4.信号量:不能传递复杂消息,只能用来同步    
    5.共享内存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了同一进程内的一块内存
    https://blog.csdn.net/wh_sjc/article/details/70283843


    中医入门
    http://www.360doc.com/content/17/1108/07/26469483_701848645.shtml
    https://jingyan.baidu.com/article/5225f26bbf0b03e6fa090806.html

  • 相关阅读:
    仿google的suggest
    renderjs主动发起通讯
    数据库设计原则(转载)
    SqlBulkCopy批量插入
    NPOI使用word模板
    visual studio 2010与NUNIT集成调试
    bond
    linux 内核参数优化
    Linux清除用户登陆及历史命令
    nginx 常用请求
  • 原文地址:https://www.cnblogs.com/swing07/p/9969702.html
Copyright © 2020-2023  润新知