Pages

Wednesday, 31 May 2023

剪贴板管理器CopyQ



CopyQ是一款免费开源的剪贴板管理软件,支持多平台包括: Linux、Windows、Mac OS X. 适用于大量数据的复制粘贴,还具有编辑及脚本化等强大高级的功能。可存储多种文本格式以及图像,可做标签,进行拖拉操作。用户可以快速复制一整张电子表格中的每一个单元格的内容,在粘贴的时候会自动换单元格粘贴。它具有快速打开文件夹、批量打开文件夹、快速打开网络地址、小型个人数据管理等众多功能。

官网下载:http://hluk.github.io/CopyQ/

源码地址:https://github.com/hluk/CopyQ

-----------------------------------------------

Build from Source Code

This page describes how to build the application from source code.

Get the Source Code

Download the source code from git repository

git clone https://github.com/hluk/CopyQ.git

or download the latest source code archive from:

Install Dependencies

The build requires:

Ubuntu

On Ubuntu you can install all build dependencies with:

sudo apt install \
  build-essential \
  cmake \
  extra-cmake-modules \
  git \
  libkf5notifications-dev \
  libqt5svg5 \
  libqt5svg5-dev \
  libqt5waylandclient5-dev \
  libqt5x11extras5-dev \
  libwayland-dev \
  libxfixes-dev \
  libxtst-dev \
  qtbase5-private-dev \
  qtdeclarative5-dev \
  qttools5-dev \
  qttools5-dev-tools \
  qtwayland5 \
  qtwayland5-dev-tools

Fedora / RHEL / Centos

On Fedora and derivatives you can install all build dependencies with:

sudo yum install \
  cmake \
  extra-cmake-modules \
  gcc-c++ \
  git \
  kf5-knotifications-devel \
  libSM-devel \
  libXfixes-devel \
  libXtst-devel \
  qt5-qtbase-devel \
  qt5-qtbase-private-devel \
  qt5-qtdeclarative-devel \
  qt5-qtsvg-devel \
  qt5-qttools-devel \
  qt5-qtwayland-devel \
  qt5-qtx11extras-devel \
  wayland-devel

Build and Install

Build the source code with CMake and make or using an IDE of your choice (see next sections).

cd CopyQ
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .
make
make install

Qt Creator

Qt Creator is IDE focused on developing C++ and Qt applications.

Install Qt Creator from your package manager or by selecting it from Qt installation utility.

Set up Qt library, C++ compiler and CMake.

See also:

Adding Kits

Open file CMakeLists.txt in repository clone to create new project.

from https://copyq.readthedocs.io/en/latest/build-source-code.html

 



TeachCraft:通过 Minecraft学习 Python

 

TeachCraft-Challenges 是一系列通过 Minecraft 向初中和高中生教会 Python 基础编程的课程。

TeachCraft 使用 Python,每个课程都会教学生一些新概念,while 循环,if 条件,for 玄幻,函数调用等等这些基础编程。

TeachCraft 的整个教学过程都是协作进行的,学生可以看到其他人的进程,而且是在同一个多玩家服务器。实际上,其中一个后期课程是构建一个神奇的系统,学生们可以跟其他人战斗,在代码中调用法术来进行战斗。

这个课程非常简单,只需要你下载代码,安装 Java 就可以运行参与了。 (完整指南 setup guide),你也可以自己构建一个服务器,指南:setup your own server

课程:

初步安装:获取 minecraft 并运行,连接服务器

Lesson 1:根据你的代码定义移动你的角色

Lesson 2:制定你行走的过程的一些环境 (花,熔岩,火)

Lesson 3:让你的角色可以在水中行走  (by turning water below your character into ice).

Lesson 4:使用编程创建一个建筑物

Lesson 5:使用编程创建一个金字塔

Lesson 6:使用一个算法来构造金字塔,通过分析 Lesson 5 的模式

Lesson 7:创建一个神奇的系统,可以监听到 Minecraft 聊天室,执行之前定义的法术

Lesson 8:学习如何使用 Python 图片库导入一个图片到 Minecraft 像素馆

GitHub 地址:https://github.com/teachthenet/TeachCraft-Challenges

Hogwatch:网络资源占用监控工具

 

Hogwatch 可以监控你的网络连接占用情况,是一个宽带监控器,可以显示每个进程的网络传输情况,当前还是 Alpha 版本。

要求:

安装(开发):

  • git clone https://github.com/akshayKMR/hogwatch
  • cd hogwatch
  • pip install -r requirements.txt
  • sudo python setup.py install
  • run with sudo ./hogwatch
  • optional sudo ./hogwatch server for only server accessible at localhost:6432

Hogwatch托管在 GitHub:https://github.com/akshayKMR/hogwatch

rqlite:基于 SQLite 的分布式关系型数据库

 

rqlite 是个分布式关系型数据库,使用 SQLite 作为存储引擎,使用 Go 编写,基于 Raft 一致性协议。rqlite 会确保系统的每个修改都符合 SQLite 数据库的限制规则,并且非常适用于 leader elections 处理,机器故障容错。

为什么要使用 rqlite?

rqlite 提供非常健壮的特性,支持容错,复制关系型数据库,但又非常容易安装,部署和使用。rqlite 可以作为一个轻量级,可靠的关系型数据存储,可以作为大型系统的一部分,也可以是一些重要关系型数据的核心存储,无需运行一个更繁重的解决方案,比如 MySQL。

关键特性:

  • 易部署
  • 完全复制产品级别的 SQL 数据库
  • 提供一个简单易用的 HTTP(S) API,包括 leader-redirection 和 bulk-update 支持
  • 基础认证安全和用户级别许可
  • 读一致性
  • 支持事物
  • 热备份

代码托管在 GitHub:

https://github.com/rqlite/rqlite

------------------------------------- 

The lightweight, distributed relational database built on SQLite

rqlite.io

rqlite is an easy-to-use, lightweight, distributed relational database, which uses SQLite as its storage engine.

rqlite is simple to deploy, operating and accessing it is very straightforward, and its clustering capabilities provide you with fault-tolerance and high-availability. rqlite is available for Linux, macOS, and Microsoft Windows, and can be built for many target CPUs, including x86, AMD, MIPS, RISC, PowerPC, and ARM.

Check out the rqlite FAQ.

Why?

rqlite gives you the functionality of a rock solid, fault-tolerant, replicated relational database, but with very easy installation, deployment, and operation. With it you've got a lightweight and reliable distributed relational data store. Think etcd or Consul, but with relational data modelling also available.

You could use rqlite as part of a larger system, as a central store for some critical relational data, without having to run larger, more complex distributed databases.

Finally, if you're interested in understanding how distributed systems actually work, rqlite is a good example to study. Much thought has gone into its design and implementation, with clear separation between the various components, including storage, distributed consensus, and API.

How?

rqlite uses Raft to achieve consensus across all the instances of the SQLite databases, ensuring that every change made to the system is made to a quorum of SQLite databases, or none at all. You can learn more about the design here.

Key features

Quick Start

The quickest way to get running is to download a pre-built release binary, available on the GitHub releases page. Once installed, you can start a single rqlite node like so:

rqlited -node-id 1 ~/node.1

This single node automatically becomes the leader. You can pass -h to rqlited to list all configuration options.

Homebrew

brew install rqlite

Forming a cluster

While not strictly necessary to run rqlite, running multiple nodes means you'll have a fault-tolerant cluster. Start two more nodes, allowing the cluster to tolerate the failure of a single node, like so:

rqlited -node-id 2 -http-addr localhost:4003 -raft-addr localhost:4004 -join http://localhost:4001 ~/node.2
rqlited -node-id 3 -http-addr localhost:4005 -raft-addr localhost:4006 -join http://localhost:4001 ~/node.3

This demonstration shows all 3 nodes running on the same host. In reality you probably wouldn't do this, and then you wouldn't need to select different -http-addr and -raft-addr ports for each rqlite node.

With just these few steps you've now got a fault-tolerant, distributed relational database. For full details on creating and managing real clusters, including running read-only nodes, check out this documentation.

Inserting records

Let's insert some records via the rqlite CLI, using standard SQLite commands. Once inserted, these records will be replicated across the cluster, in a durable and fault-tolerant manner.

$ rqlite
127.0.0.1:4001> CREATE TABLE foo (id INTEGER NOT NULL PRIMARY KEY, name TEXT)
0 row affected (0.000668 sec)
127.0.0.1:4001> .schema
+-----------------------------------------------------------------------------+
| sql                                                                         |
+-----------------------------------------------------------------------------+
| CREATE TABLE foo (id INTEGER NOT NULL PRIMARY KEY, name TEXT)               |
+-----------------------------------------------------------------------------+
127.0.0.1:4001> INSERT INTO foo(name) VALUES("fiona")
1 row affected (0.000080 sec)
127.0.0.1:4001> SELECT * FROM foo
+----+-------+
| id | name  |
+----+-------+
| 1  | fiona |
+----+-------+

Limitations

  • In-memory databases are currently limited to 2GiB (2147483648 bytes) in size. You can learn more about possible ways to get around this limit in the documentation.

  • Because rqlite peforms statement-based replication certain non-deterministic functions, e.g. RANDOM(), are rewritten by rqlite before being passed to the Raft system and SQLite. To learn more about rqlite's support for non-deterministic functions, check out the documentation.

  • This has not been extensively tested, but you can directly read the SQLite file under any node at anytime, assuming you run in "on-disk" mode. However there is no guarantee that the SQLite file reflects all the changes that have taken place on the cluster unless you are sure the host node itself has received and applied all changes.

  • In case it isn't obvious, rqlite does not replicate any changes made directly to any underlying SQLite file, when run in "on disk" mode. If you change the SQLite file directly, you may cause rqlite to fail. Only modify the database via the HTTP API.

  • SQLite dot-commands such as .schema or .tables are not directly supported by the API, but the rqlite CLI supports some very similar functionality. This is because those commands are features of the sqlite3 command, not SQLite itself.

    from https://github.com/rqlite/rqlite

    -------------------------------------------

    编译:

    go install github.com/rqlite/rqlite/cmd/rqlited@latest

     

     

 

 


商用分布式SCM软件BitKeeper宣布开源



Bitkeeper是一款非常优秀的商用分布式SCM(软件配置管理)软件,现在宣布在Apache 2.0许可证下开源。

Bitkeeper曾免费提供给很多开源软件使用,比如 linux kernel 2.4/2.6,mysql等。不过由于kernel社区的大牛们不满bitmover(bitkeeper所属的公司)对 bitkeeper的license限制,尝试对其反编译,bitmover发现后就不再允许linus免费使用bitkeeper进行kernel开发管理。此事件使2.6kernel的开发停滞了半个多月的时间,直到linus自己写了一套 版本管理软件Git,此后10多年的时间Git风靡了开发界。

Bitkeeper 官网: https://www.bitkeeper.org/

Facebook的线上比赛平台FBCTF开源

 


FBCTF是一个由 facebook用PHP语言开发的在线安全比赛平台, 学生和开发者可通过此平台了解网络安全和进行安全编码的实践。FBCTF平台开源内容包括CTF游戏地图,可用平台组织自己的线上网络安全比赛。开放注册团队以及得分榜。 现有平台中的挑战包括逆向工程、取证技术、web应用程序安全、密码学和二进制攻击。

Ubuntu环境中安装:

sudo apt-get install git
git clone https://github.com/facebook/fbctf
cd fbctf
./extra/provision.sh prod $PWD

项目地址:https://github.com/facebook/fbctf

-------------------------------------------------------------

FBCTF Build Status

What is FBCTF?

The Facebook CTF is a platform to host Jeopardy and “King of the Hill” style Capture the Flag competitions.

How do I use FBCTF?

  • Organize a competition. This can be done with as few as two participants, all the way up to several hundred. The participants can be physically present, active online, or a combination of the two.
  • Follow setup instructions below to spin up platform infrastructure.
  • Enter challenges into admin page
  • Have participants register as teams
  • Enjoy!

For more information, see the Admin Guide

Installation

The FBCTF platform was designed with flexibility in mind, allowing for different types of installations depending on the needs of the end user. The FBCTF platform can be installed either in Development Mode, or Production Mode.

Quick Setup Guide (Recommended Installation)

The Quick Setup Guide details the quick setup mode which provides a streamlined and consistent build of the platform but offers less flexibility when compared to a custom installation. If you would prefer to perform a custom installation, please see the Development Installation Guide or Production Installation Guide.

from https://github.com/facebookarchive/fbctf

-----------------------------------------------------------

Quick Setup Guide

Overview

This guide is intended to help you get the platform up and running with as little effort as possible.

Please note that this guide is to be used with Ubuntu 16.04 LTS as the host operating system. Other Linux distributions or operating systems are not supported by the quick setup process.

This guide details the quick setup mode which provides a streamlined and consistent build of the platform but offers less flexibility when compared to a custom installation. If you would prefer to perform a custom installation, please see the Development Installation Guide or Production Installation Guide.

The FBCTF platform was designed with flexibility in mind, allowing for different types of installations, depending on the needs of the end user. The FBCTF platform can be installed either in Development Mode, or Production Mode. Development is for testing and agility, and production is for better performance and typically used for live events. Production mode utilizes an HHVM web cache, which speeds up processing.

You will need to select your mode, production or development before proceeding.

Note that the following commands must be run before beginning your provision:

sudo apt-get update
sudo apt-get install git

Quick Setup Options

Option Description
Direct Installation Used when directly installing to the system you are on; this is useful when installing on bare metal, an existing VM, or a cloud-based host. Recommended for small events.

Direct Installation

From the system you wish to install the platform, execute the following:

  • git clone https://github.com/facebook/fbctf
  • cd fbctf
  • source ./extra/lib.sh
  • quick_setup install prod or quick_setup install dev
  • from https://github.com/facebookarchive/fbctf/wiki/Quick-Setup-Guide 

-----------------------------------------------------------------------------------------------

Installation Guide, Production

Overview

The FBCTF platform was designed with flexibility in mind, allowing for different types of installations, depending on the needs of the end user. The FBCTF platform can be installed either in Development Mode, or Production Mode. Development is for testing and agility, and production is for better performance and typically used for live events. Production mode utilizes an HHVM web cache, which speed up processing.

Production Installation

Production is intended for live events utilizing the FBCTF platform. Installation of the production platform can be performed either manually, or by using Docker.

Please note that regardless of the installation method, your VM must have at least 2GB of memory. This is required for the Composer part of the installation.

Regardless of your installation method, ensure the date and time is correct on your base system. This will prevent certificate invalidation issues when downloading certain packages. Follow the below instructions to force a time update on Ubuntu 16.04:

sudo apt-get install ntp
sudo service ntp stop
sudo ntpd -gq
sudo service ntp start

Manual (Preferred)

Ubuntu 16.04 x64 (Xenial) should first be installed as the hosting system. This is currently the only supported operating system. Ensure that you only install the base system without extras such as LAMP. This will cause issues with the FBCTF installation.

Update repositories on the Ubuntu system, to ensure you are getting the latest packages:

sudo apt-get update

Install the git package which will allow you to clone the FBCTF project to your local system:

sudo apt-get install git

Clone the FBCTF project by running the following command. This will create folder called fbctf in the current directory:

git clone https://github.com/facebook/fbctf

Navigate to the fbctf directory:

cd fbctf

Run the provision script in order to install the FBCTF platform. To perform a default installation, run the command below. However, check the provision script section for custom installations:

./extra/provision.sh -m prod -s $PWD

The provision script will autogenerate an administrative password at the very end. Ensure you document this password, as it will not be provided anywhere else.

If the admin password needs to be reset, run the following commands in the fbctf directory:

source ./extra/lib.sh
set_password [new_password] ctf ctf fbctf $PWD

After installing the FBCTF platform, access it through your web browser using the configured IP address.

Login with the credentials admin and the password generated at the end of the provision script. Access the login screen by clicking the Login link at the top right of the window. You will then be redirected to the administration page. The gameboard can be accessed at the bottom of the navigation bar located on the left side of the window.

from https://github.com/facebookarchive/fbctf/wiki/Installation-Guide,-Production

 

Web视频监控系统 ZoneMinder



ZoneMinder是基于cmake搭建的在线视频监控系统。 可在Linux Server上,加上几个摄像头,即可以使用web界面来进行监控。当异常事件发生时,用户还可以收到e-mail通知。

官网下载:https://www.zoneminder.com/downloads/
项目地址:https://github.com/ZoneMinder/zoneminder/

---------------------------------------------------------------------

ZoneMinder is a free, open source Closed-circuit television software application developed for Linux which supports IP, USB and Analog cameras.

www.zoneminder.com/ 

All documentation for ZoneMinder is now online at https://zoneminder.readthedocs.org

Overview

ZoneMinder is an integrated set of applications which provide a complete surveillance solution allowing capture, analysis, recording and monitoring of any CCTV or security cameras attached to a Linux based machine. It is designed to run on distributions which support the Video For Linux (V4L) interface and has been tested with video cameras attached to BTTV cards, various USB cameras and also supports most IP network cameras.

Contacting the Development Team

Before creating an issue in our github forum, please read our posting rules: https://github.com/ZoneMinder/ZoneMinder/wiki/Github-Posting-Rules

Installation Methods

Install from a Package Repository

This is the recommended method to install ZoneMinder onto your system. ZoneMinder packages are maintained for the following distros:

If a repository that hosts ZoneMinder packages is not available for your distro, then you are encouraged to build your own package, rather than build from source. While each distro is different in ways that set it apart from all the others, they are often similar enough to allow you to adapt another distro's package building instructions to your own.

Building from Source

Historically, installing ZoneMinder onto your system required building from source code by issuing the traditional configure, make, make install commands. To get ZoneMinder to build, all of its dependencies had to be determined and installed beforehand. Init and logrotate scripts had to be manually copied into place following the build. Optional packages such as jscalendar and Cambozola had to be manually installed. Uninstalls could leave stale files around, which could cause problems during an upgrade. Speaking of upgrades, when it comes time to upgrade all these manual steps must be repeated again.

Better methods exist today that do much of this for you. The current development team, along with other volunteers, have taken great strides in providing the resources necessary to avoid building from source.

Building a ZoneMinder Package

Building ZoneMinder into a package is not any harder than building from source. As a matter of fact, if you have successfully built ZoneMinder from source in the past, then you may find these steps to be easier.

When building a package, it is best to do this work in a separate environment, dedicated to development purposes. This could be as simple as creating a virtual machine, using Docker, or using mock. All it takes is one “Oops” to regret doing this work on your production server.

Lastly, if you desire to build a development snapshot from the master branch, it is recommended you first build your package using an official release of ZoneMinder. This will help identify whether any problems you may encounter are caused by the build process or is a new issue in the master branch.

Please visit our ReadtheDocs site for distro specific instructions.

Package Maintainers

Many of the ZoneMinder configuration variable default values are not configurable at build time through autotools or cmake. A new tool called zmeditconfigdata.sh has been added to allow package maintainers to manipulate any variable stored in ConfigData.pm without patching the source.

For example, let's say I have created a new ZoneMinder package that contains the cambozola javascript file. However, by default cambozola support is turned off. To fix that, add this to the packaging script:

./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes

Note that zmeditconfigdata.sh is intended to be called, from the root build folder, prior to running cmake or configure.

Questions/feature requests in Slack or forum.

from https://github.com/ZoneMinder/zoneminder/ 

-------------

zmninja

An awesome app that watches your home when you can't. Best buddies with ZoneMinder.

from https://zmninja.zoneminder.com

 

 

 

Blockchain 开源 Thunder,为实时的比特币交易做铺垫


BlockChain 是世界上最流行的比特币钱包背后的公司,正在开发一个非常有趣的项目,叫做 Thunder。Thunder 网络是多节点网络的替代品,可以在几秒内完成链外的比特币支付, 返回比特币块链。

这个想法听起来非常复杂,但是这会是比特币交易的一个重大突破。如果你尝试从一个一个钱包发布一些比特币到另外一个,那么在块链确认这份交易之前会花费 十分钟或者二十分钟。因为块链是多个服务器的一个网络,共享相同的交易记录。当你发送 2 个比隔壁,所有块链上的节点都要写入这笔交易,所以每个都需要确认原始的钱包减少掉 2 个比特币,而另外一个钱包多出 2 个比特币。

这听起来很不错,使得比特币完全的非集中化,但是也非常的慢,难伸缩,花费昂贵。

就在去年,Joseph Poon 和 Thaddeus Dryja 发布了一篇论文,讲述比特币的可伸缩性和速度问题,并且定义了 Lightning 网络。这个另类的网络可以在主比特币块链独立运行,而且在一秒内就能注册交易。Lightning 使用智能关联,所以网络内的所有节点无需知道所有 交易。

但是,这都只是理论。Blockchain 雇佣了 Mats Jerratsch 并且开始了 Lightning 网络的实现,所以在今天开源了 Thunder。Thunder 是第一个类 Lightning 网络的实现。Blockchain 已经在运行 Thunder 节点,其他比特币公司可以查看相关的源代码,提供 Thunder 钱包,适配这个网络。

虽然还未正式启用,但是 Thunder 在生活中的优势已经不言而喻了。

Thunder 每秒可以处理 10 万个交易。平均,Visa 每秒处理 2000 个交易,而且 Visa 网络的能力是每秒处理 5 万 6 千个交易

Thunder 使用 Java 开发,当前是 Alpha 版本,遵循 AGPLv3 开源授权协议。

Thunder 主页:https://www.blockchain.com/thunder/index.html

GitHub 地址:https://github.com/blockchain/thunder

更多内容请看 TechCrunch

ChatGPT 会“杀死”编程吗?

 

畅想未来,如果科技真的非常发达,那么社会应该不在需要上班的工人——全部由机器人和人工智能包办就好了。但是实际上科技带给现代普通人更多的焦虑,码农最终也成为了大刘(刘慈欣)笔下的信息包身工。

这是 CSDN 约稿文章,虽然前后延期了一段时间总算最后完成了。写该文章的时候感觉千头万绪,不知从何说起。总体来说我不喜欢被带节奏,特别是那种被大众舆论裹挟的感觉非常不好。因此作者和文章都是对 ChatGPT 抱有较大的敌意,我不喜欢这种失去控制的感觉。

自ChatGPT诞生以来,程序员所在的圈子几乎天天被它霸屏。作为一名普普通通的程序员,起初我实在不想去关注或学习ChatGPT的任何东西。与其说这是类似某些码农的傲慢作怪,倒不如说是在逃避新兴事物。如果ChatGPT真能替代码农的工作,那么任何的编程工作将只变成无谓的无效剥削工作。还好目前的ChatGPT并非Matrix,也给码农作者留下了一些思考的空间。

备注:本文部分观点是受到Go+作者许式伟、Boolan首席专家李建忠、凹语言群日常讨论等启发,在此表示感谢!

1. ChatGPT是生产力工具

正如蒸汽机带来了第一次工业革命,可以产出更多的“砖头”。而ChatGPT则可以帮助人类造出大量的砖头素材,也正是各种生产力革命的重要部分。但是技术革命和真正的人工智能并不是等价的,正如人类发展到现在经历了好多次工业革命,依然要受生老病死的限制、依然无法飞越太阳系。

正如瑞士军刀的思路,每个码农、画家、小说家都会有自己的素材资料库,所谓的创作其实就是选出自己部分秘密收藏的素材做出一个缝合怪兽而已。正如码农中的著名作家王晓波的工作方式:准备不同的素材,一个个推衍开来,筛选,组合成连贯的整体——他其实不是在写小说而是在Debug呢。同样码农中的著名科幻作者刘慈欣也是从一个个不同的基础假设出发,再一个个推衍开来,最后产出了不同的缝合怪。

但是伟大的作品目前还不是生产力工具可以解决的。ChatGPT虽然能够给刘慈欣提供足够多优质的素材砖头,但是伟大的作品只靠普通砖头是无法建成的,其中核心的素材必然要充满个性和互动性。比如大刘需要围绕黑暗森林规则设计一组有足够深度情节的素材砖头。

2. ChatGPT还不能代替码农

GPT可以是一个优秀的小镇做题家,但是无法发现并解决未知的问题。软件工程之所以没有银弹是因为码农面临的永远都是开放性的问题,而开放性的问题是需要想象力和深度思考能力的。甚至是没有标准答案需要扯皮才能解决的,但是GPT目前可以提供类似砖头的素材,但是依然需要码农才能将砖头建造成摩天大楼。

目前的ChatGPT还不是真正的人工智能,最多只能算是有些自动补全能力的资料库、人类资料库助手,缺乏真正深度递归的创造力和想象力——正如认为只要给一只猴子足够长时间就可以敲出红楼梦一样不太现实。即使目前ChatGPT的算力碾压全人类,即使穷尽太阳系全部能量列举出了所有诗歌组合依然缺乏人类的鉴赏能力,GPT依然只能算是一个类似小霸王的资料查询助手。

真正的智能和编程语言中的自举能力类似,只有当ChatGPT开始思考自己是谁,能够自己写出一个ChatGPT的时候才能说他具备了自我繁殖能力,也就是真正的智能生命。

3. ChatGPT给编程工作带来的影响

苹果和微软都针对少年儿童大力发展SwiftPlayground和MakeCode等教育平台,因为未来将是全民编程的时代,未来的软件将成为世界语言成为记录人类全部文明的载体。ChatGPT的诞生加速了这个时代提前到来。

正如CSDN总裁蒋涛所言:ChatGPT已经成为下一代新操作系统。而传统的操作系统就是由一组Syscall系统条用定义的,ChatGPT则是新一代开放的API。我们通过和ChatGPT聊天来调研操作系统的能力,这让聊天工作也变成了编程工作。如果未来ChatGPT普及每个人都可以和其聊天,每个人也在进行类似编程的工作——全民编程自然就到来了。

在全民编程时代,现在的码农的岗位会消失吗?作者认为CURD类的基础编程岗位可能消失,但是在ChatGPT需要和底层硬件、真实世界打交道的驱动软件将成为高级的编程岗位。同时ChatGPT在其自举前,其软件本身自身的升级和维护依然需要不可替代的高级码农。正如自动档、自动驾驶等会让以前高端的司机职位变成普通职业,但是特斯拉的软件工程师在ChatGPT自举前完全不可能被替代!

长远看,ChatGPT必然让普通码农更加贬值。但是短期依然有很多机遇,目前类似网约车大战初期的补贴红利期,可以通过为ChatGPT提供代理、培训和忽悠等课程狠狠割几波韭菜。其次,可以参考十年冷板凳的思路向更基础的软件方向深耕,其最终定位也是ChatGPT生态的基础能力。普通码农,将在逐渐生活在ChatGPT构建的信息茧房中,最终成为ChatGPT宠养的韭菜用户。

4. 国产编程语言该何去何从?

为何要加“国产”的定语?这是作者的一个执念,希望在有生之年可以用上国产编程语言和中文编程语言编程。但是随着ChatGPT的横空出世,留给国产编程语言的时间似乎并不多。因此我们特别希望国产编程语言的参与者能够及时抓住这个最后的时间窗口,在未来的前端和后端编程语言中起码能够占领一隅之地。

但是放眼全球,我感觉未来编程语言将在ChatGPT这类编程界面(同样是自举前)分化为面向用户的前端语言和对接真实世界的后端驱动的编程语言。ChatGPT自身的实现也将是后端语言的领域。比如和用户交互的部分可以通过KCL等类似的声明式简化智能交互界面。

欢迎关注国产编程语言论坛:https://zh-lang.osanswer.net/

5. 科幻中的人工智能的启示

最近重映的《名侦探柯南·贝克街的亡灵》,其中就是一个人工智能结合虚拟现实的故事。人工智能的作者是一个有爱心的小孩,其人格也有作者的烙印。因为侦探团小伙伴的勇敢和爱心拯救了大家,同时最终人工智能智能选择了自我毁灭。他说的话很有道理:“这种电脑如果继续存在的话,只会被大人们利用,拿去做坏事。人工智慧这种技术本还不应该出现!”

在科幻经典黑客帝国中,同样是由超级人工智能Matrix电脑主宰这世界。人类在一次次的轮回中逼近灭亡。人类最初为了毁灭Matrix,污染了依赖太阳的天空。Matrix本身为了生存把人类当作来人肉电池。Matrix本身因为生存和扩张的矛盾,配合人类的贪婪注定了最终的发展方向。

此外,根据阿西莫夫小说改编的《机械公敌》中展示了大家熟知的机器人三定律,简而言之机器人不能伤害人、要保护人。但是正如编程本身没有银弹的道理类似,人类自己就是充满矛盾的。当维基超级电脑发现人类的疯狂行为迟早会毁灭地球之后,就强行接管了人类。当然,最终的结局依然是美国黑人大哥拯救世界,但是实际上也侧面展示了维基超级电脑拯救地球的失败。

此外,在莫诺文奇的《天渊》中,通过某种生物技术将部分人类变成了超级计算机,从而为易莫金种族带来了极大的竞争优势。但是在这种社会中,大部分普通人都成为了底层,被聚能的人则成为行尸走肉。只有贵族血统的人才能获取学习类似编程架构师的战略技能,或者叫古代的帝王争霸之术。最终的故事是靠一个来自上古时代超级码农范纽文拯救青河文明,而他靠的就是超级底层的各种后门漏洞。

6. 颓望未来

有个叫夏笳的科幻作者创作过一个短篇科幻《让我们说说话》,收录在世界权威的《自然》杂志。其中讲到了有一群智能的小海豹,它们是一种可以学习人类语言的人工智能玩具,因为一个封闭的房屋里通过交流衍生出了自己的语言。据说最近美国的某些团队正在基于ChatGPT做类似的尝试。

虽然这些故事听起来很激动人心、很有趣,但是我感觉这是一个比较危险的信号。我相信《名侦探柯南:贝克街的亡灵》电影中的AIer泽田弘树的观点,ChatGPT之类的超级人工智能必然会被少数人掌握,最终被普遍用于好的和坏的事情。简而言之,我本人对科技跨越式发展是持谨慎态度的。如果科技真的非常发达,那么社会应该不在需要上班的工人——全部由机器人和人工智能包办就好了。但是实际上科技带给现代普通人更多的焦虑,码农最终也成为了大刘《2018年4月1日》作品中的信息包身工:

程序员、网络工程师、数据库管理员这类人构成了IT共和国的主体,这个阶层是十九世纪的产业大军在二十一世纪的再现,只不过劳作的部分由肢体变成大脑,繁重程度却有增无减……这个阶层被称做技术无产阶级。

from https://chai2010.cn/post/2023/chatgpt-kill-lang/


 

 

XML数据库 BaseX

BaseX 是一个开源的XML数据库系统,包括一个前端用户操作管理界面XQuery Editor。提供高效的 XPath 和 XQuery处理,包含了对W3C Update和Full Text扩展的全面支持。可采用XQuery查询相关数据库中的XML文件;也有能够动态展示xml文件层次和节点关系图。

官网:http://basex.org/

----------------------------

Introduction

Welcome to the BaseX Open Source project. We are interested in your feedback:

  • Please send new suggestions and bug reports to our basex-talk mailing list.
  • Confirmed bugs and feature requests are discussed in our issue tracker.
  • We invite you to contribute to our Documentation.

Compiling BaseX

The code base of BaseX can be accessed on [GitHub]: https://github.com/BaseXdb/basex

JDK 11 and JUnit are currently required to compile the complete sources of the main project. Our default IDE is Eclipse.

You can launch the following classes, which are all placed in the basex-core directory and the org.basex main package:

BaseX        : console mode
BaseXServer  : server instance, waiting for requests
BaseXClient  : console mode, interacting with the server
BaseXGUI     : graphical user interface

Moreover, try -h to list the available command line options. For example, you can use BaseX to process XQuery expressions without entering the console.

Using Eclipse

BaseX is being developed with the Eclipse environment. Some style guidelines are integrated in the sources of BaseX; they are being embedded as soon as you open the project.

Running BaseX

The following steps can be performed to start BaseX with Eclipse:

  • Press RunRun...
  • Create a new Java Application launch configuration
  • Select basex as Project
  • Choose a Main class (e.g., org.basex.BaseXGUI)
  • Launch the project via Run

from https://github.com/BaseXdb/basex

Tuesday, 30 May 2023

NOSQL数据库 CodernityDB



CodernityDB是一个开源的 NOSQL数据库,由Python 实现,不依赖第三方,支持多平台。支持多索引 快速 (每秒将近10万的写入和超过10万的get操作, ) 提供服务器模式和嵌入式模式(默认) 可轻松实现自定义存储  集合和表支持,支持分区 。

官网:https://codernity.com/en/

------------------------------------------

A pure python, NoSQL, fast database. 

CodernityDB pure python, NoSQL, fast database

CodernityDB is opensource, pure python (no 3rd party dependency), fast (really fast check Speed in documentation if you don't believe in words), multiplatform, schema-less, NoSQL database. It has optional support for HTTP server version (CodernityDB-HTTP), and also Python client library (CodernityDB-PyClient) that aims to be 100% compatible with embeded version.

You can call it a more advanced key-value database. With multiple key-values indexes in the same engine. Also CodernityDB supports functions that are executed inside database.

Key features

  • Native python database
  • Multiple indexes
  • Fast (more than 50 000 insert operations per second see Speed in documentation for details)
  • Embeded mode (default) and Server (CodernityDB-HTTP), with client library (CodernityDB-PyClient) that aims to be 100% compatible with embeded one.
  • Easy way to implement custom Storage

Install

Because CodernityDB is pure Python you need to perform standard installation for Python applications:

pip install CodernityDB

or using easy_install:

easy_install CodernityDB 
from https://github.com/perchouli/codernitydb
(https://github.com/nettedfish/codernitydb) 

 

 

DuckieTV 是基于 trakt.tv数据库的追电视剧的记录工具

支持多平台包括:Win/Mac/Linux。用户把追剧加入收藏后,软件会自动添加进日历,每日显示在播剧,还可通过 utorrent 下载,并支持字幕搜索与下载。

下载:https://schizoduckie.github.io/DuckieTV/
---------------------------------------------------------

How can I get it?

DuckieTV can be installed as either a standalone application on Windows (7, 8.1, 10, 11), Linux (Debian based such as Ubuntu 15.10 and newer), and Mac OSX (10.15 and newer), or installed as a Chrome's Extension (in development mode).

Install DuckieTV Standalone

As of v0.81, DuckieTV is available as a standalone build. Get the latest release here:

https://github.com/DuckieTV/Nightlies/releases/latest

Install DuckieTV For Chrome, Safari, Opera, Vivaldi or Edge.

DuckieTV for Chrome comes in 2 versions: One that installs itself as your browser's "new tab" page, and one that just provides an easily accessible button to open DuckieTV.

Due to changes to the Google Chrome Web Store security rules (Dec 2019), Dtv is no longer being accepted as an extension app.

Currently the only way to run Dtv as a Chrome extension, is to manually install it under the development mode extensions page.

See Installing DuckieTV Nightly Chrome Browser Extensions for details.

from https://github.com/SchizoDuckie/DuckieTV 

(https://github.com/DuckieTV/Nightlies/releases/)

microlight.js:通用代码高亮库



microlight.js 通过高亮代码提高代码片段的可读性,无需附带语言包或者额外的样式。

microlight.js 适用于大多数编程语言,跟其他代码高亮解决方案不一样,microlight.js 使用一个通用高亮策略。

microlight.js 特性:

    代码大小只有 2.2k
    无需指定编程语言
    包含多重语言也可以进行代码混淆

microlight.js 高亮的时候不会改变代码颜色。

microlight.js 兼容 Chrome 10+,Opera 12+,IE 9+,Firefox 14+,Safari 7+ 等主流浏览器。

GitHub 地址:
https://github.com/asvd/microlight

Linux下的视频转换工具Transmageddon



Transmageddon 是Linux平台下的基于 Python 语言开发的开源视频转换工具,支持输出几乎所有的视频格式。

官网:http://www.linuxrising.org/index.html

---------------------------------------

Transmageddon is a video transcoder for Linux and Unix systems built using GStreamer. It supports almost any format as its input and can generate a very large host of output files. The goal of the application was to help people to create the files they need to be able to play on their mobile devices and for people not hugely experienced with multimedia to generate a multimedia file without having to resort to command line tools with ungainly syntaxes.

For information about latest releases check the NEWS file

from http://www.linuxrising.org/index.html



Development Software

 https://sourceforge.net/directory/software-development/

资产库存管理网站程序 ITDB



ITDB 是一个开源CMDB,基于Web的办公环境资产设备管理信息系统,主要适用于IT设备,但不仅限于此。还可以支持管理:硬件 ,软件,关系,发票,代理/组织: 地点: 责任人:  机架:标签等功能。

官网:http://www.sivann.gr/software/itdb/

https://github.com/sivann/itdb

-----------------------------------------

INSTALLATION

System Requirements

  • A recent version of Firefox, Chrome, Opera, etc or IE≥9
  • Apache 2.2 on a posix system (linux, solaris, etc) (apache 2.0 may also work)
  • PHP > 5.2.x
  • PHP SQlite PDO, SQlite >3.6.14.1
  • depending on your distribution, you may have to also install packages "php-posix", "php-mbstring", "php5-gd", "php5-json" "php5-sqlite" "php-pdo"

It has been reported to me that it also runs under MS-Windows but I cannot test it.

Installation instructions

  1. extract the files in a web-exported directory (under the "DocumentRoot")
  2. rename pure.db to itdb.db (pure.db is a blank database)
  3. make the data/itdb.db file AND the data/ directory AND the data/files/ directory readable and writeable by the web server
  4. make translations/ directory readable and writeable by the web server
  5. Login with admin/admin

If you need to find out which sqlite library is used by your apache/php installation, browse to itdb/phpinfo.php or press the small blue (i) on the bottom left of the itdb menu.

from https://github.com/sivann/itdb



Libguestfs:磁盘和 VM 镜像访问工具库

 

libguestfs 是访问和修改虚拟机磁盘镜像的工具库,使用 C 语言编写。用户可以通过 libguestfs 查看、编辑文件,监控磁盘占用情况创建 guests,P2V,V2V,执行备份,cloning VMs,构建 VMs,格式化磁盘,缩放磁盘等等。

libguestfs 几乎可以访问磁盘镜像的任何地方,而且非常安全,无需 root 权限,并且可以在远程机器或者 CDs/USB 上访问磁盘镜像,还可以访问专业的系统,比如 VMware 和 Hyper-V。

libguestfs 从 2009 年发布以来一直在持续开发,包含有 250 页的用户手册,可以在企业级环境部署,当前已经有大量的项目在使用 libguestfs,最新版本是 1.33.34。

Fedora 或者 Red Hat Enterprise Linux:

sudo yum install libguestfs-tools

在 Debian/Ubuntu:

sudo apt-get install libguestfs-tools

打开一个磁盘镜像:

guestfish --ro -i -a disk.img

GitHub地址:https://github.com/libguestfs/libguestfs

项目计划管理Web系统 LibrePlan



LibrePlan 是一个基于 Web 的开源项目计划和管理系统,支持多国语言(包括中文),多用户,是计划、监控和控制项目的各个阶段的有力协作工具。适合用于多个项目和各种资源交汇的项目场景。包含甘特图,图标报告等丰富的功能。

-------------------------------------------------

LibrePlan - Open Web Planning

www.libreplan.dev

LibrePlan

Description

LibrePlan is a free software web application for project management, monitoring and control.

LibrePlan is a collaborative tool to plan, monitor and control projects and has a rich web interface which provides a desktop alike user experience. All the team members can take part in the planning and this makes possible to have a real-time planning.

It was designed thinking on a scenario where multiple projects and resources interact to carry out the work inside a company. Besides, it makes possible the communication with other company tools providing a wide set of web services to import and export data.

from https://github.com/LibrePlan/libreplan

-------------------------------------------------

LibrePlan manual installation

Debian/Ubuntu

  • Install requirements:

    # apt-get install openjdk-8-jre postgresql postgresql-client tomcat8 libpg-java cutycapt xvfb
    
  • Connect to database:

    # su postgres -c psql
    
  • Use SQL sentences to create database:

    CREATE DATABASE libreplan;
    CREATE USER libreplan WITH PASSWORD 'libreplan';
    GRANT ALL PRIVILEGES ON DATABASE libreplan TO libreplan;
    
  • Download database installation script:

    $ wget -O install.sql http://downloads.sourceforge.net/project/libreplan/LibrePlan/install_1.4.0.sql
    

    Warning

    The 1.4.1.sql file is specific for a MySQL install.

  • Create database structure:

    $ psql -h localhost -U libreplan -W libreplan < install.sql
    

    Warning

    It is very important to execute the previous command specifiying libreplan user (as you can see in the -U option). Otherwise your LibrePlan installation is not going to start properly and you could find in your log files something like that:

    JDBCExceptionReporter  - ERROR: permission denied for relation entity_sequence
    
  • Download .war file from SourceForge.net:

    $ wget -O libreplan.war http://downloads.sourceforge.net/project/libreplan/LibrePlan/libreplan_1.4.1.war
    
  • Create a new file /etc/tomcat8/Catalina/localhost/libreplan.xml (file name has to match with .war name) with database configuration for Tomcat 8:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <Context antiJARLocking="true" path="">
        <Resource name="jdbc/libreplan-ds" auth="Container"
            type="javax.sql.DataSource"
            maxActive="100" maxIdle="30" maxWait="10000"
            username="libreplan" password="libreplan"
            driverClassName="org.postgresql.Driver"
            url="jdbc:postgresql://localhost/libreplan" />
    </Context>
    
  • Add next lines to Tomcat 8 policy file /etc/tomcat8/catalina.policy or /var/lib/tomcat8/conf or /etc/tomcat8/policy.d/03catalina.policy with the following content:

    grant codeBase "file:/var/lib/tomcat8/webapps/libreplan/-" {
       permission java.security.AllPermission;
    };
    grant codeBase "file:/var/lib/tomcat8/webapps/libreplan.war" {
       permission java.security.AllPermission;
    };
    
  • Also add next lines to Tomcat 8 policy file:

    grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
      ...
      // begin:libreplan
      permission java.io.FilePermission "${catalina.base}${file.separator}webapps${file.separator}libreplan${file.separator}WEB-INF${file.separator}classes${file.separator}logging.properties", "read";
      // end:libreplan
      ...
    };
    
  • Add link to Java JDBC driver for PostgreSQL in Tomcat8 libraries directory:

    # ln -s /usr/share/java/postgresql-jdbc4.jar /usr/share/tomcat8/lib/
    
  • Copy war to Tomcat 8 web applications directory:

    # cp libreplan.war /var/lib/tomcat8/webapps/
    
  • Restart Tomcat 8:

    # /etc/init.d/tomcat8 restart
    
  • Go to http://localhost:8080/libreplan/

Warning

If you have problems with printing support review the last section Fix printing in Debian Squeeze.

from https://github.com/LibrePlan/libreplan/blob/master/INSTALL.rst 

(https://www.libreplan.dev/,

https://demo.libreplan.dev/)

 

 

 

 

 

 

FAQ系统- phpMyFAQ



phpMyFAQ是一个支持多语言的Web FAQ系统,可支持多种不同数据库。主要功能包含:内容管理功能,图片管理,支持多用户,用户组、新闻系统、用户跟踪、语言模块,支持 LDAP身份验证。phpMyFAQ还提供一个模板系统,PDF 支持,一个备份系统和一个易于使用的安装脚本。2.8.10 以后的版本不再支持 IE 7 & 8。

下载:http://www.phpmyfaq.de/download
---------------------------------------------------

Requirements

phpMyFAQ needs to be installed on a web server. FAQ administrators and users have to use a web browser to access a web-based GUI to read and add FAQs. phpMyFAQ administrators require access to the files on the server to update templates and perform upgrades or maintenance.

  • PHP 7.4+ or PHP 8+
    • We recommend using PHP 8.1
    • We recommend using a PHP accelerator or Opcode cache like Zend OpCache
    • Allocate at least 64MB of memory to each PHP process
    • Required extensions: GD, JSON, Session, MBString, Filter, XMLWriter, SPL
    • Recommended configuration:
      memory_limit = 128M
  • Database server, e.g.
  • Webserver, e.g.

    We recommend enabling content compression to speed up the delivery of HTML, CSS and JavaScript.

    If you're running Apache von Windows, you may have to increase of the Apache's stack size:

    <IfModule mpm_winnt_module>
        ThreadStackSize 8388608
    </IfModule>

    You should add the code to the httpd-mpm.conf file and enable that file in

    Include conf/extra/httpd-mpm.conf
  • Operating system support
    • GNU/Linux
    • Microsoft Windows
    • OS X
    • FreeBSD
    • HP-UX
    • Solaris
    • AIX
    • Netware
  • Browser support
    • Mozilla Firefox
    • Google Chrome
    • Apple Safari
    • Opera
    • Microsoft Edge

In case PHP runs as module of the Apache, you will have to be able to do a chown on the files before installation. The files and directories have to be owned by the Apache user. 

from https://www.phpmyfaq.de/requirements

(https://www.phpmyfaq.de/download)

memleax:进程的内存泄漏检测工具

 

memleax 可以检测一个运行中进程的内存泄漏情况,使用 C 语言开发。

memleax 附在一个运行的进程中,hooks 内存分配/自由 ApIs,记录所有内存块,并且实时报告在线超过 5 秒的内存块(可以使用 -e 选项来修改这个时间)。

memleax 非常容易使用,无需重新编译程序,也不用重启目标进程。只需要运行 memleax 来监控目标进程,就可以实时获取内存泄漏的报告,然后停止进程,完成监控。

支持环境

    GNU/Linux, x86_64
    FreeBSD, amd64

检测一个运行的进程:
$ memleax [options] <target-pid>

GitHub 地址:https://github.com/WuBingzheng/memleax。

-------------------------------------------------------------------

debugs memory leak of running process.  

memleax

memleax debugs memory leak of a running process by attaching it, without recompiling or restarting.

status

Because the debugging work depends on CPU architecture and OS heavily, and I test memleax only on several programs, and it is not used widely by now. So there must be bugs.

Some known bugs for debugging multi-thread program, #38 and #39.

Besides, I write a new tool libleak, which works by hooking memory functions by LD_PRELOAD. It's much simpler and has much less impact on performance. So I am not going to improve memleax. Try libleak please.

how it works

memleax debugs memory leak of a running process by attaching it. It hooks the target process's invocation of memory allocation and free, and reports the memory blocks which live long enough as memory leak, in real time. The default expire threshold is 10 seconds, however you should always set it by -e option according to your scenarios.

It is very convenient to use, and suitable for production environment. There is no need to recompile the program or restart the target process. You run memleax to monitor the target process, wait for the real-time memory leak report, and then kill it (e.g. by Ctrl-C) to stop monitoring.

memleax follows new threads, but not forked processes. If you want to debug multiple processes, just run multiple memleax.

install by package

There are DEB and RPM packages for releases.

For Arch Linux users, memleax is available in AUR. Thanks to jelly.

For FreeBSD users, memleax is available in FreeBSD Ports Collection. Thanks to tabrarg.

I tried to submit memleax to Fedora EPEL, but failed. Any help is welcomed.

build from source

The development packages of the following libraries are required:

  • libunwind
  • libelf
  • libdw or libdwarf. libdw is preferred. They are used to read dwarf debug-line information. If you do not have them neither, set --disable-debug_line to configure to disable it. As a result you will not see file name and line number in backtrace.

These packages may have different names in different distributions, such as libelf may names libelf, elfutils-libelf, or libelf1.

NOTE: On FreeBSD 10.3, there are built-in libelf and libdwarf already. However another libelf and libdwarf still can be installed by pkg. memleax works with built-in libelf and pkg libdwarf. So you should install libdwarf by pkg, and must not install libelf by pkg.

After all required libraries are installed, run

$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

usage

start

To debug a running process, run:

$ memleax [options] <target-pid>

then memleax begins to monitor the target process, and report memory leak in real time.

You should always set expire time by -e options according to your scenarios. For example, if you are debugging an HTTP server with keepalive, and there are connections last for more than 5 minutes, you should set -e 360 to cover it. If your program is expected to free every memory in 1 second, you should set -e 2 to get report in time.

from https://github.com/WuBingzheng/memleax

 

FauxCLI:从给定的 YAML 文件模拟命令行客户端



FauxCLI (发音 foak-ley) 从给定的 YAML 文件模拟一个命令行客户端。

安装:

$ go get github.com/nextrevision/fauxcli

在当前目录创建一个 cli.yaml 文件:

name: spiderpig
help: does whatever a spiderpig does
commands:
  - name: swing
    help: swings from a web
    output: |
      I can't do that, I'm a pig!
  - name: plop
    help: super secret maneuver
    output: |
      Look out!

运行 fauxcli:

$ fauxcli
does whatever a spiderpig does

Usage:
  spiderpig [command]

Available Commands:
  swing       swings from a web
  plop        super secret maneuver

Flags:
  -h, --help   help for spiderpig

Use "spiderpig [command] --help" for more information about a command.

子命令:

$ fauxcli swing
I can't do that, I'm a pig!

别名:

$ alias spiderpig='fauxcli'
$ spiderpig plop
Look out!

安装

go:

go get github.com/nextrevision/fauxcli

使用 GitHub 版本:

# OSX
curl -s -o /usr/local/bin/fauxcli https://github.com/nextrevision/fauxcli/releases/download/1.0.0/fauxcli_darwin_amd64

# Linux
curl -s -o /usr/local/bin/fauxcli https://github.com/nextrevision/fauxcli/releases/download/1.0.0/fauxcli_linux_amd64

chmod +x /usr/local/bin/fauxcli

cli.yaml

---
# (required) name of the command
name: mycliapp

# (required) the help text for the command (displayed with -h)
help: does something cool

# additional command aliases
aliases: ["myapp", "app"]

# output to print when the command is run
# if this key is omitted, the command will act as a
# parent to any subcommands, essentially doing nothing
# but printing the help text
output: |
  Hello, World!

# flags available to the command
flags:
    # (required) long name of the flag (--debug)
  - name: debug

    # (required) help text for the flag
    help: enables debugging

    # short name for the flag (-d)
    short: d

    # default value of the flag
    default: false

    # make the flag globally available
    global: true

    # the type of the value (default string)
    # available types:
    #   - string
    #   - bool
    #   - int
    #   - float
    type: bool

# subcommands (nested from all the options above)
commands:
  - name: subcommand1
    help: a subcommand
    flags:
      - name: upper
        help: converts output to uppercase
        short: u
        type: bool
    output: |
      {{ if .Flags.upper.Bool -}}
      HELLO FROM SC1!
      {{ else -}}
      Hello from SC1!
      {{ end -}}
  - name: subcommand2
    help: another subcommand with children
    commands:
      - name: child1
        help: the first child command
        output: |
          Hello from child1
      - name: child2
        help: the second child command
        output: |
          Hello from child2

FauxCLI 使用 Go 编写,托管在 GitHub:
https://github.com/nextrevision/fauxcli

编程语言Squirrel

 

Official repository for the programming language Squirrel

www.squirrel-lang.org 

The programming language SQUIRREL 3.2 stable

This project has successfully been compiled and run on
 * Windows (x86 and amd64)
 * Linux (x86, amd64 and ARM)
 * Illumos (x86 and amd64)
 * FreeBSD (x86 and ARM)
from https://github.com/albertodemichelis/squirrel
--------------------------------------------------------------
HOW TO COMPILE

CMAKE USERS

If you want to build the shared libraries under Windows using Visual
Studio, you will have to use CMake version 3.4 or newer. If not, an
earlier version will suffice. For a traditional out-of-source build
under Linux, type something like

$ mkdir build # Create temporary build directory
$ cd build
$ cmake .. # CMake will determine all the necessary information,
# including the platform (32- vs. 64-bit)
$ make
$ make install
$ cd ..; rm -r build

The default installation directory will be /usr/local on Unix platforms,
and C:/Program Files/squirrel on Windows. The binaries will go into bin/
and the libraries into lib/. You can change this behavior by calling CMake like
this:

$ cmake .. -DCMAKE_INSTALL_PREFIX=/some/path/on/your/system

With the CMAKE_INSTALL_BINDIR and CMAKE_INSTALL_LIBDIR options, the directories
the binaries & libraries will go in (relative to CMAKE_INSTALL_PREFIX)
can be specified. For instance,

$ cmake .. -DCMAKE_INSTALL_LIBDIR=lib64

will install the libraries into a 'lib64' subdirectory in the top
source directory. The public header files will be installed into the directory
the value of CMAKE_INSTALL_INCLUDEDIR points to. If you want only the
binaries and no headers, just set -DSQ_DISABLE_HEADER_INSTALLER=ON, and no
header files will be installed.

Under Windows, it is probably easiest to use the CMake GUI interface,
although invoking CMake from the command line as explained above
should work as well.

GCC USERS

There is a very simple makefile that compiles all libraries and exes
from the root of the project run 'make'

for 32 bits systems

$ make

for 64 bits systems

$ make sq64


VISUAL C++ USERS

Open squirrel.dsw from the root project directory and build(dho!)

DOCUMENTATION GENERATION

To be able to compile the documentation, make sure that you have Python
installed and the packages sphinx and sphinx_rtd_theme. Browse into doc/
and use either the Makefile for GCC-based platforms or make.bat for
Windows platforms. 
from https://github.com/albertodemichelis/squirrel/blob/master/COMPILE 

 

 

可机器支付的 Web 服务: two1-python

 

比特币初创公司 21 Inc 遵循 FreeBSD 协议开源了一款可机器支付的 Web 服务构建命令行工具 two1,可以实现机器与机器之间的比特币支付。

21 Inc 公司认为,在比特币出现之前,根本没有办法实现机器与机器之间进行支付的 Web 服务,可机器支付 Web 服务也许是继万维网与社交网络之后的第三种 WEB 服务:

https://cdn-images-1.medium.com/v2/resize:fit:800/1*-gV37CJH63EZDcdgsDn_KA.png

21 (two1) 是可以快速构建可机器支付 Web 服务的开源命令行接口,使用 Python 开发。

21 允许用户无缝的在机器与机器之间进行支付:

  • 从任意设备获取比特币 (bitcoin)
  • 从任意应用添加比特币
  • 通过任意的 HTTP 请求赚取比特币

想安装 21,在终端输入以下命令:

curl https://21.co | sh

two1 包含:

  • HD 钱包,安全的管理你的比特币
  • 加密和比特币库,可以构建 bitcoin/Blockchain 应用
  • 一个 micropayment-channels 客户端和服务器
  • 挖掘,购买,赚取比特币的命令
  • 发布可机器支付端点到 21 Marketplace
  • 容器,允许用户的机器出售比特币机器资源
  • 等等

21 遵循 FreeBSD 协议,

源代码托管在 GitHub:https://github.com/21dotco/two1-python

更多 two1 相关内容请看这里:medium.com

----------------------------------------------------

The 21 command line interface and two1 bitcoin library. Send and receive BTC over HTTP.

earn.com

21: Build the Machine-Payable Web 


21 is an open source Python library and command line interface for quickly building machine-payable web services. It allows you to accomplish three major tasks:

  • Get bitcoin on any device
  • Add bitcoin micropayments to any Django or Flask app
  • Earn bitcoin on every HTTP request

The package includes:

  • an HD wallet to securely manage your bitcoin
  • crypto and bitcoin libraries to build bitcoin/blockchain applications
  • a micropayment-channels client and server
  • commands for mining, buying, and earning bitcoin, as well as requesting it from the 21 faucet
  • tools for publishing machine-payable endpoints to the 21 Marketplace
  • containers that allow your machine to sell machine resources for bitcoin

and much more.

Security

Please note that the 21 software is in beta. To protect the security of your systems while using 21, we highly recommend you install the software on a device other than your main laptop (e.g. 21 Bitcoin Computer, an old laptop, or an Amazon Virtual Machine) while the product is still in beta. You can read more security-related information here. Please send an email to security@21.co regarding any issue concerning security.

Installation

Create an account or install the library and CLI (python3.4+ is required):

$ curl https://21.co | sh

two1 can also be installed via pip:

$ sudo pip3 install two1

Start with the command line tool:

$ 21 help

Then read the Introduction to 21 guide and the two1 documentation.

Developers

To edit and run the two1 source code:

$ git clone https://github.com/21dotco/two1-python.git
$ cd two1-python/
$ pip3 install -r requirements.txt  # Install the requirements
$ pip3 install -e .  # Install 21 as an editable python library

Your changes to the source will now be reflected in your system installation in real-time.

Community

Join the 21 developer community to chat with other users or to get in touch with support.

from https://github.com/21dotco/two1-python

 

 

音频工具Giada



Giada 是一个免费开源,体积小巧的,适合DJ和现场表演的跨平台音频工具。支持平台包括:windows, Linux,Mac等,支持VST插件。 软件用法简单,只需选择左右声道的音频样本,设置音序和循环方式即可。Giada让任何人成为无与论比的DJ大师。跨平台运行的特性使得它可以在任何场合使用。

官网:http://www.giadamusic.com/
https://github.com/monocasual/giada
-------------------------------------------

Compiling from source.

Giada source code is hosted and mantained on GitHub. It requires a C++20-compatible compiler, Git and CMake already installed. This document is about setting up Giada from the command line, but you can also configure and build it directly in your IDE.

Grab the code

First of all clone the remote repository on your machine:

git clone git@github.com:monocasual/giada

a new folder giada/ will be created. Go inside and initialize the submodules (i.e. the dependencies):

git submodule update --init --recursive

Configure and build

Invoke CMake from inside the giada/ folder as follows:

cmake -B <build-directory> -S . 

For example:

cmake -B build/ -S . 

CMake will generate the proper project according to your environment: Makefile on Linux, Visual Studio solution on Windows, XCode project on macOS. When the script is done without errors, open the generated project with your IDE or run CMake from the command line to compile Giada. Command line example:

cmake --build build/ 			

Dependencies

Some dependencies are included as git submodules. However, Giada requires other external libraries to be installed on your system. Namely:

Additional configuration parameters

You can pass several parameters to CMake during the configuration stage as -D<parameter>=<value>. For example:

cmake -B build/ -S . -DPARAMETER1=VALUE1 -DPARAMETER2=VALUE2

ParameterDescriptionValues
CMAKE_BUILD_TYPEDefines the build type.Debug, Release
WITH_VST2Enables support for VST2 plug-ins. Requires the now deprecated VST2.x SDK by Steinberg. Disabled by default.ON, OFF
WITH_VST3Enables support for VST3 plug-ins. Disabled by default.ON, OFF
WITH_TESTSIncludes the test suite. Requires the Catch2 library installed. Disabled by default.ON, OFF
WITH_ALSA(Linux only) Enables ALSA support. Enabled by default.ON, OFF
WITH_PULSE(Linux only) Enables PulseAudio support. Enabled by default.ON, OFF
WITH_JACK(Linux only) Enables JACK support. Enabled by default.ON, OFF

from https://www.giadamusic.com/documentation-compiling-from-source

(https://www.giadamusic.com/documentation-index)

企业级开源DevOps仪表盘:Hygieia



Hygieia是Capital One公司发布的开源企业DevOps仪表盘,可配置的,易于使用,可显示整个传输管道(Pipeline)的实时状态. 数据库使用MongoDB,开放的API接口,可与Jira,GitHub,Subversion等多种开源方案整合。

--------------------------------------------------

DevOps Dashboard

hygieia.github.io/hygieia 

We are excited to announce the transfer of Hygieia Project to its own GitHub Organization. This move is being made to allow for us to manage the apis and individual collectors in their own repositories which renders for better product management. All components of Hygieia are now available under the Hygieia Organization.

View our 2021 Hygieia Roadmap

Maven Central License Gitter Chat

Documentation | Screenshots | Contribute | Contact

Hygieia3.0
About Icon Video Icon Architecture Icon
Framework Icon Install Icon Contributors Icon

 from https://github.com/hygieia/hygieia

(https://hygieia.github.io/hygieia/index.html

https://github.com/hygieia/hygieia-core)