首页 文章 精选 留言 我的

精选列表

搜索[声音工坊],共7887篇文章
优秀的个人博客,低调大师

以太坊私有链DApp开发环境搭建(一)

一、安装前的准备 1.1 查看当前CPU架构 在终端中执行以下命令,确定是32位架构还是64位架构: ~$ uname –p x86_64 如果你看到输出x86_64,那么就是64位系统,否则是32位。 1.2下载工具 确保你安装了下载工具wget: ~$ wget –V GNU Wget 1.17.1 built on linux-gnu 如果还没有安装wget,使用apt-get来安装 ~$ sudo apt-get install wget 如果你不喜欢把时间浪费在搭建开发环境上,推荐一个在线教程可以直接学习关键知识: http://xc.hubwiz.com/course/5a952991adb3847553d205d1。 二、安装DApp开发环境 2.1 安装Node.js 首先根据你的ubuntu是32位还是64位,分别下载不同的预编译版本,我们使用官方长期支持的8.10.0LTS版本: 64位:~$ wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x64.tar.gz 32位:~$ wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x86.tar.gz 然后解压到当前目录,以64位为例: ~$ tar zxvf node-v8.10.0-linux-x64.tar.gz 然后接下来修改.bashrc来设置相关的环境变量: ~$ echo "export NODE_HOME=$HOME/node-v8.10.0-linux-x64" >> .bashrc ~$ echo "export NODE_PATH=$NODE_HOME/lib/node_modules" >> .bashrc ~$ echo "export PATH=$NODE_HOME/bin:$PATH" >> .bashrc 最后重新载入.bashrc(或者重新登陆)来使node生效: ~$ source .bashrc 现在,你可以使用node了: ~$ node –v v8.10.0 2.2 安装Geth 在终端执行以下命令: ~$ wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.8.3-329ac18e.tar.gz ~$ mv get-linux-amd64-1.8.3-329ac18e geth ~$ echo export PATH=$HOME/geth:$PATH >> .bashrc ~$ soure .bashrc 安装完毕后,执行命令验证安装成功: ~$ geth version Geth Version: 1.8.3-stable 2.3 安装solidity编译器 ~$ npm install –g solc 安装完毕后,执行命令验证安装成功 ~$ solcjs –version 0.40.2+commit.3155dd80.Emscripten.clang 2.4安装web3 ~$ npm install –g web3@0.20.2 安装验证: ~$ node –p 'require("web3")' {[Function: Web3] providers:{…}} 2.5安装truffle框架 执行以下命令安装truffle开发框架: ~$ npm install –g truffle 验证安装: ~$ truffle version Truffle v4.1.3 (core 4.1.3) 2.6安装webpack 执行以下命令安装webpack: ~$ npm install –g webpack@3.11.0 验证安装 ~$ webpack –v 3.11.0 如果你不喜欢把时间浪费在搭建开发环境上,推荐一个在线教程可以直接学习关键知识: http://xc.hubwiz.com/course/5a952991adb3847553d205d1

优秀的个人博客,低调大师

Android美工坊:Selector选择器的使用

Android selector选择器可以让你切换自定义的背景风格,比如button、ListView、或者布局点击时候的背景切换等,都需要用到它 背景可以是自定义到颜色,或者图片资源 首先需要在你的res目录下创建drawable文件夹,然后在里面创建一个selector文件,如myselector.xml 注:不知为什么,selector里面有关focus的东西在真机上没什么效果,反而会影响使用,比如android:state_focus="true",加上它就没有效果,去掉它就可以正常使用了 默认情况下直接用下面的布局即可实现点击后即可切换背景,其实只需要两个item标签即可,当然,item标签内部可以用shape标签自定义不同的风格 例子1:button点击效果 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@drawable/button_pressed" ></item> <item android:drawable="@drawable/button_normal" ></item> </selector> res/layout/main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/test" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/myselectr" android:text="Go Home" /> </LinearLayout> 运行效果: 这是正常情况 这是点击后的效果 当然,针对button的selector还有很多其他的配置,但是对于一般程序来说上面的配置就够了 例子2:TextView点击效果 这个例子是网上找的,演示的是一个用TextView来定义的一个Button,实现类似TabWidget风格的选项卡。 自定义按钮,这里没有通过Button类或者子类去做派生,而是通过TextView派生出来的。 在这里三个按钮是三个TextView派生类实例,中间的白线,是1px宽的白色矩形,这样就可以做出类似上面的效果。先看图 点击后 转自:http://marshal.easymorse.com/archives/3059 /res/drawable/background_color.xml 用shape标签自定义一个渐变背景 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <gradient android:startColor="#FFFFFFFF" android:endColor="#FFFFFFFF" android:angle="270.0" android:centerY="0.3" android:centerColor="#FFBDBDBD" /> </shape> /res/drawable/button_color.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <gradient android:startColor="#FF7F7F7F" android:endColor="#FF000000" android:angle="270.0" /> </shape> <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" android:constantSize="true"> <!-- 获得焦点时的背景图片 --> <item android:state_focused="true"> <shape> <gradient android:startColor="#FFE5CF33" android:endColor="#FFF1E7A2" android:angle="90.0" /> </shape> </item> <!-- 设置相应所有事件 --> <item android:state_enabled="true" android:state_pressed="false"> <shape> <gradient android:startColor="#FF1B1B1B" android:endColor="#FF969696" android:angle="90.0" /> </shape> </item> <!-- 按钮点击时的背景 --> <item android:state_enabled="true" android:state_pressed="true"> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> <item android:state_enabled="false" android:state_pressed="true"> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> <!-- 默认情况下的背景 --> <item> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> </selector> res/drawable/button_selector.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" android:constantSize="true"> <!-- 获得焦点时的背景图片 --> <item android:state_focused="true"> <shape> <gradient android:startColor="#FFE5CF33" android:endColor="#FFF1E7A2" android:angle="90.0" /> </shape> </item> <!-- 设置相应所有事件 --> <item android:state_enabled="true" android:state_pressed="false"> <shape> <gradient android:startColor="#FF1B1B1B" android:endColor="#FF969696" android:angle="90.0" /> </shape> </item> <!-- 按钮点击时的背景 --> <item android:state_enabled="true" android:state_pressed="true"> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> <item android:state_enabled="false" android:state_pressed="true"> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> <!-- 默认情况下的背景 --> <item> <shape> <gradient android:startColor="#FF000000" android:endColor="#FF474747" android:angle="90.0" /> </shape> </item> </selector> res/layout/main.xml,这个是主布局,由自定义的Button和1px的白色矩形组成 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background_color" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="10dip" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dip" > <com.loulijun.demo02.TextButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:text="饮食" android:gravity="center" android:background="@drawable/button_selector" android:focusable="true" android:clickable="true" /> <View android:layout_width="2px" android:layout_height="fill_parent" android:background="#FFFFFFFF"/> <com.loulijun.demo02.TextButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:text="旅行" android:gravity="center" android:background="@drawable/button_selector" android:focusable="true" android:clickable="true" /> <View android:layout_width="2px" android:layout_height="fill_parent" android:background="#FFFFFFFF"/> <com.loulijun.demo02.TextButton android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:text="体育" android:gravity="center" android:background="@drawable/button_selector" android:focusable="true" android:clickable="true" /> </LinearLayout> </LinearLayout> 继承自TextView的自定义Button package com.loulijun.demo02; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class TextButton extends TextView { public TextButton(Context context) { super(context); } public TextButton(Context context, AttributeSet attrs, int defStyle) { super(context,attrs,defStyle); } public TextButton(final Context context, AttributeSet attrs) { this(context,attrs,0); this.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction()==MotionEvent.ACTION_CANCEL ||event.getAction()==MotionEvent.ACTION_UP ||event.getAction()==MotionEvent.ACTION_OUTSIDE) { Toast.makeText(context, "hello", Toast.LENGTH_SHORT).show(); } return false; } }); } } 主程序 package com.loulijun.demo02; import android.app.Activity; import android.os.Bundle; public class Demo02Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/wws5201985/812711,如需转载请自行联系原作者

优秀的个人博客,低调大师

【以太坊】什么是雷电网络 Raiden network

什么是雷电网络 Raiden网络是一种脱机扩展解决方案,可实现近即时,低费用和可扩展的支付。 它与Ethereum块链互补,并与任何ERC20兼容的令牌一起使用。 Raiden项目正在进行中。 其目标是研究状态通道技术,定义协议并开发参考实现。 特点 可扩展的 参与者的数量成线性比例 快速的 传输可以在一秒内进行确认 私密的 个人转账不会显示在全球分类帐中 可互操作的 符合Ethereum标准化标记API(ERC20)之后的任何令牌, 低费用 转移费可能比区块链低一个数量级 小额支付 低交易费允许有效地转移微小的价值 技术 Raiden网络是一个基础设施层,在Eth之上。 虽然基本思想很简单,但是底层的协议是相当复杂的,实现是非常简单的。 尽管如此,技术性可以被抽象出来,使得开发人员可以使用相当简单的API来界定基于Raiden的可扩展的分布式应用程序。 Raiden Network 101 blockchain不能很好地扩展,因为需要对所有转移的顺序和结果达成全球共识。 每个参与者需要了解共享账户的所有更新。 硬件和带宽约束限制了可以在分布式网络中共享的每秒更新数量。 Raiden网络的基本思想是避免区块链共识的瓶颈。 这是通过利用支付渠道,其允许安全地传输值关链的,即不涉及为每一个传输blockchain的网络来完成。 用途 Raiden网络的明显用例是付款。 目前,全球支付行业每年的收入约为2万亿美元,而且正在增长。 零售支付 有相当多的高调的基于Ethereum令牌的项目相互竞争,将基于块的付款付给群众。 特别是在发展中国家,这些努力可能会改善数百万人的生命。 Raiden网络可以是一个关键的组成部分,因为重大的采用依赖于可扩展技术和有竞争力的费用。 P2P现金 我们所知道的现金正在减少使用,因为有现金社会的趋势。 基于可扩展的基于块的付款可以帮助保持私有和分散的现金性质,同时将其用户体验更新为新一代的期望。 小额支付 区块链是成为即将到来的机器到机器经济的支付基础设施的热门候选者。 物联网可以将商业交易的数量增加一个数量级,而转移成本越便宜越多,用例越多。 小额支付可以用来获得对API,带宽,计算能力,存储,电力,基本上任何基础设施的细粒度访问。 诸如网页,游戏,视频或音频流的内容或娱乐也是如此。 今天已经有很多提议的DApps依靠网络参与者之间的小额支付来激励合作行为。 即时令牌互换 除了付款之外,代币交换可能是块链的第二大突出用例。 如果现在的令牌化趋势继续下去,情况就更为如此了。 以Raiden Network的原子标记交换为基础的分散式交换功能可以以低成本立即交换令牌。 参考资料 https://raiden.network/ https://github.com/raiden-network/raiden http://www.8btc.com/ln-rn-corda

优秀的个人博客,低调大师

来听听 2000 多个中国开发者的声音

近日,OSCHINA 和 Gitee 联合发布了《2022 中国开源开发者报告》。报告对开发者展开了问卷调查,共收集到 2004 份有效反馈,本文分享一些主要观点。还有更多关于开源收入、入职公司规模、是否支持开源商业化等 20+ 话题,请移步至官网下载完整问卷:https://gitee.com/report/china-open-source-2022 1. 你接触开源多久了? 2. 你每周在开源中,投入多少时间? 3. 目前你如何参与开源? 4. 你了解 OSPO 吗? 5. 在个人开发中,使用开源软件会考虑哪些因素? 6. 在工作场景中,使用开源软件关心的因素是? 感谢大家支持完成问卷,有你更好!

优秀的个人博客,低调大师

听,引擎的声音「GitHub 热点速览 v.22.33」

这期的热点速览异常 Cool,因为有呜呜声内燃机引擎加成的 engine-simengine-sim 坐镇,听到如此曼妙的引擎声,相比你的人生也在高速上升吧。还有,自己搭建个服务就能在本地用上 AI 编程工具的 fauxpilot。一个工具就能处理各种二进制文件打包、解包的 ofrak,号称自己是 DNS 收割机的子域名接管工具 dnsReaper,搭配微软新开源的表情包 fluentui-emoji,本周的 GitHub 棒极了! 以下内容摘录自微博@HelloGitHub 的 GitHub Trending 及 Hacker News 热帖(简称 HN 热帖),选项标准:新发布 | 实用 | 有趣,根据项目 release 时间分类,发布时间不超过 14 day 的项目会标注 New,无该标志则说明项目 release 超过半月。由于本文篇幅有限,还有部分项目未能在本文展示,望周知 🌝 本文目录 本周特推 1.1 燃烧引擎模拟:engine-sim 1.2 自建 Copilot:fauxpilot GitHub Trending 周榜 2.1 子域名管理:dnsReaper 2.2 知识管理:AFFiNE 2.3 二进制文件处理:ofrak 2.4 通知服务:novu 2.5 cute 表情包:fluentui-emoji 往期回顾 1. 本周特推 1.1 燃烧引擎模拟:engine-sim 本周 star 增长数:2,350+ New 不知道你在路上听过跑车飞驰而过留下的声响没?Engine Simulator 实时内燃机模拟器,它能生成各种发动机音频,通过改变油门位置、调节高频增益等等操作,你能听到速度的声调变化。 GitHub 地址→https://github.com/ange-yaghi/engine-sim 1.2 自建 Copilot:fauxpilot 本周 star 增长数:1,250+ New FauxPilot 希望提供一个本地的 Copilot,它采用 NVIDIA 的 Triton Inference Server 内部的 SalesForce CodeGen 模型以及 FasterTransformer Backend。 只要你有 Docker 环境(docker-compose 不低于 1.28)且 NVIDIA GPU 算力不低于 7.0,就可以自建一个自己本地的 Copilot。 GitHub 地址→https://github.com/moyix/fauxpilot 2. GitHub Trending 周榜 2.1 子域名管理:dnsReaper 本周 star 增长数:500+ New 这个项目很酷,DNS Reaper 又一款子域名工具,侧重点在于子域名的准确性、速度、签名数量等特性。按照项目的说明,他们每秒可扫描 50 个子域名,并每个测试超过接管的 50 个签名,即 10 秒之内可以扫描整个 DNS。 GitHub 地址→https://github.com/punk-security/dnsReaper 2.2 知识管理:AFFiNE 本周 star 增长数:3,950+ New 这个号称下一代知识管理工具、可替代 Notion 和 Miro 的项目,有着好看的 UI 界面,同 Notion 布局类似采用了卡片式布局,通过拖拽可管理对应的卡片。在系统兼容方面,支持 Windows、macOS、Linux,而服务可自托管在自己的服务器上。 GitHub 地址→https://github.com/toeverything/AFFiNE 2.3 二进制文件处理:ofrak 本周 star 增长数 550+ New OFRAK(Open Firmware Reverse Analysis Konsole)是一个二进制分析和修改平台,具有解包、分析、修改和重新打包二进制文件等功能。 GitHub 地址→https://github.com/redballoonsecurity/ofrak 2.4 通知服务:novu 本周 star 增长数:1,850+ 简化你的通知服务,Novu 一个 API 就能在多个渠道上用上通知服务,它的特性如下: 支持 Email、短信、App 推送、定向推广; 配有高级布局和精心设计的 CMS; 易集成; 方便调试,可在单面板查看多频道信息; 重视社区; GitHub 地址→https://github.com/novuhq/novu 2.5 cute 表情包:fluentui-emoji 本周 star 增长数:3,900+ New Fluent Emoji 微软推出的一组可爱的表情包。 GitHub 地址→https://github.com/microsoft/fluentui-emoji 3. 往期回顾 往期回顾: 一键到位「GitHub 热点速览 v.22.32」 你的工具包已到货「GitHub 热点速览 v.22.31」 以上为 2022 年第 33 个工作周的 GitHub Trending 🎉如果你 Pick 其他好玩、实用的 GitHub 项目,记得来 HelloGitHub issue 区和我们分享下哟 🌝

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册