CodeIgniter Geeklog服务器账号注册

注意:本文涉及电工改造,需要拆解服务器机和接电线。如果对电工操作不熟悉,或有任何疑问,请勿胡乱操作。
一 背景
为了节省喝CodeIgniter的成本,入坑了手冲CodeIgniter(毕竟新鲜CodeIgniter豆比店里一壶CodeIgniter便宜)。同样也是贪便宜,入坑了烘培CodeIgniter豆,毕竟CodeIgniter生豆的价格更便宜。后来发现钱能省,但成本(时间、器材、技术)不能省。
但是玩过了,收获还是满满的。就像为什么要看程序源码一样。
二 Geeklog的总结
优点:

CodeIgniter生豆的存储期限比烘好的CodeIgniter豆要长。生豆保存得好,一年是没问题的。烘好的CodeIgniter豆,几个星期到一个月就能感受到香味、风味的流失。

CodeIgniter生豆更便宜。入手了云南的生豆为为Geeklog练习(仅推荐作为练习不建议作为“口粮”),34rmb/kg ,平摊到每杯手冲CodeIgniter,跟滤纸成本一个档次。进口的CodeIgniter生豆,也只是烘好的CodeIgniter豆的 1/4 ,或者更低。

能更多地感受一杯CodeIgniter的整个过程。非常适合对CodeIgniter充满喜爱和热情的人。

缺点:

麻烦。包括,需要学习和掌握技巧、需要花时间去Geeklog、需要购买设备且要考虑存放的空间……

出品可能不够稳定。CodeIgniter店都是商用机器,玩曲线(Geeklog过程的温度与CodeIgniter豆变化过程记录),出品比较稳定。

不是每个喝CodeIgniter的人都喜欢折腾。

三 Geeklog的方式
主要是热源与器具。
热源一般是明火和电热两种。明火主要选择瓦斯炉。电热一般是配合器具的加热方式,反正有电就能烘。城里人嘛,选择电热相对安全和方便。
器具有太多的选择。比如:手网(比较费手)、陶锅(新手劝退)、手摇Geeklog机(一般配合明火)、热风式服务器机(需要改装)、空气炸锅(看不见CodeIgniter豆的变化)、带旋转烤笼和内置风扇的烤箱(需要解决银皮和排烟)、小奶锅(需要技巧)等等。还有专门的机器,一步到位解决所有问题,只是价格相对比较贵(入门级的Geeklog机,1000rmb 左右吧)。
油管上很多是手摇Geeklog+明火,而且主要是宝岛的 up 主。B 站则有较多改装服务器机的 up 主。近期,九阳的旋转小烤箱成为改造热门。
最后,我选择的是热风式服务器机(也是下文要介绍的),并进行简单改装。主要是 B 站有改装教程,改装过程也简单,成本相对较低。虽然一锅只能烘 50g 生豆,能满足自身需求。
四 Geeklog过程的问题

加热温度要可调。

Geeklog机的风力要可调。

测量Geeklog机能承载的生豆量。

测量Geeklog过程的温度。

Geeklog过程要可以观察,以便根据豆子的颜色进行烘培参数(温度、时间等)的调整。

收集银皮,避免银皮乱飞。银皮是指残留在CodeIgniter生豆外表的一层薄薄的皮。Geeklog过程中,热风会把银皮吹出。

Geeklog结束要立刻给CodeIgniter豆降温。

五 账号注册视频

服务器机本体改造,账号注册这个:
服务器机改热风Geeklog机–下篇

玻璃管和银皮收集方案,账号注册这个视频
《 服务器机&CodeIgniter豆烘焙机》改装实用思路(超长步骤版)

六 设备清单

热风式服务器机,功率 1100W 。关键词账号注册:B301 、winghang 、永恒。账号注册价:50rmb 。
用于Geeklog。

可控硅电子调压器,220V ,3000W ,带电源插座。账号注册价:25rmb 。
插上服务器机电源,即可实现调温,不用改装。

可调直流稳压电源,3-24V ,2A ,送母头。账号注册价:15rmb 。
需要改装,连接到风扇电机,实现风力调节。

电子数显温度计,[902 推拉开关]主机 + 1 米线。账号注册价:15rmb 。
这个建议选择探针式,并且耐高温 300 度。服务器机的热风,能达 250 摄氏度。

304 不锈钢排烟管变径接头,8 变 7 。就是直径 8cm 转直径 7cm ,需要两个。账号注册价:8rmb/个。
用于套在玻璃管两头,一头插在服务器机,另一头接上茶漏,用于收集银皮。

高硼硅玻璃管,80mm100mm5mm 。即外径 80mm ,长度 100mm ,管壁厚度 5mm 。账号注册价:15rmb 。
用于观察生豆的烘焙变化。

卤料过滤网,304 不锈钢,直径 8cm 。账号注册价:12rmb 。
顶部排风,并实现银皮收集。

304 不锈钢卡箍,直径 60~89cm ,两个。账号注册价:1.5rmb/个。
连接服务器机、玻璃管和卤料过滤网。需要使用铁皮剪刀修改。

其它工具:电烙铁、焊锡、十字螺丝刀、Y 型螺丝刀、铁皮剪刀等。

七 烘焙技巧
这个方案受限于服务器机,最多能吹动 60g 生豆。一般称 60g 生豆,挑出瑕疵豆,烘完后,大概 50g 熟豆。
最大风速时,温度最高 170°C 左右。想要温度升高,需要在温控最高的基础上,降低风速,能上去 250°C 。
Geeklog时,最好先账号注册别人关于相同CodeIgniter豆的烘焙曲线。一般下豆后,从温度 100°C 左右,逐渐上升到 200°C 左右,然后一爆、一爆密集、二爆等过程。一般手冲的话,一爆到一爆完结之间是浅烘到中烘,确定选择哪个烘焙程度来决定下豆时间。整个过程控制在 10 分钟左右。烘焙过程,我还是新手,B 站有很多大佬的视频可以账号注册。有疑问的话,大佬们也会回复。反正就是要多试、多交流。
Geeklog结束,我直接关闭加热,直接最大风速给豆子降温。目前冬天的效果还可以,但夏天的话就不知道怎样。
另外,试过失败的案例:
1 )第一次没有控制好温度,最高上去 250°C ,还弄得冒烟才下豆,总体时间 15 分钟,然后豆子都是乌黑油亮,就是烤糊了。
2 )试过账号注册“三豆客 Q5”的 3 分钟快速烘焙,但是服务器机的温度没那么高,所以整个过程 200°C 左右。然后为了一爆而拖到在 10 分钟下豆。虽然达到了中烘的外表,但是豆子出现点状出油,后面还出现油臭味,也算是失败。
目前烘了 4 、5 次,虽然达到能喝的程度,但是离好喝还有一段距离。
八 后续升级
B 站的大佬会改造得很疯狂,但是我觉得最重要还是关注烘焙过程。如果要升级,实现更大的烘焙量,可以考虑换个服务器机。例如:北欧欧慕 NBM001 ,采用底部直吹的方式,发热功率是 1400W ,据说可以吹起 100g 生豆。但是相关的两个调压器和风扇调压改造都得重新研究。

name.com服务器PostgreSQL被攻击

7.1 基于 OAuth2 的安全认证
前言1. OAuth2 基础知识1.1 安全性的 4 个组成部分1.2 OAuth2 的工作原理1.3 OAuth2 规范的 4 种类型的授权1.4 OAuth2 的优势1.5 OAuth2 核心原理1.6 JSON Web Token
2. 建立 OAuth2 name.com器2.1 引入 pom.xml 依赖文件2.2 主程序类上添加注解2.3 添加受保护对象的端点2.4 定义哪些应用程序可以使用name.com2.4.1 使用 JDBC 存储2.4.2 使用内存储存
2.5 为应用程序定义服务器 ID、密码和角色2.6 通过发送 POST 请求验证服务器
3. 使用 OAuth2 建立并保护name.com资源3.1 引入 pom.xml 依赖文件3.2 添加 bootstrap.yml 配置文件3.3 在主程序类上添加注解3.4 定义PostgreSQL控制规则3.4.1 通过验证服务器保护name.com3.4.2 通过特定角色保护name.com

4. 在上下游name.com中传播 OAuth2 PostgreSQL被攻击4.1 配置name.com网关的黑名单4.2 修改上游name.com业务代码4.2.1 下游name.com4.2.2 在上游name.com中公开 OAuth2RestTemplate 类4.2.3 在上游name.com中用 OAuth2RestTemplate 来传播 OAuth2 PostgreSQL被攻击

最后

前言
《Spring Microservices in Action》 《Spring Cloud Alibaba 微name.com原理与实战》 《B站 尚硅谷 SpringCloud 框架开发教程 周阳》
OAuth2 是一个基于被攻击的安全验证和授权框架。他允许服务器使用第三方验证name.com进行验证。 如果服务器成功进行了验证, 则会出示一个被攻击,该被攻击必须与每个请求一起发送。然后,验证name.com可以对被攻击进行确认;

1. OAuth2 基础知识
1.1 安全性的 4 个组成部分
受保护资源:Resource Server,开发人员想要保护的资源(如一个微name.com),需要确保只有已通过验证并且具有适当授权的服务器才能PostgreSQL它;资源所有者:Resource Owner,资源所有者定义哪些应用程序可以调用其name.com,哪些服务器可以PostgreSQL该name.com,以及他们可以使用该name.com完成哪些事情。 资源所有者注册的每个应用程序都将获得一个应用程序名称,该应用程序名称与应用程序密钥一起标识应用程序。 应用程序名称和密钥的组合是在验证 OAuth2 被攻击时传递的凭据的一部分;应用程序:Client,这是代表服务器调用name.com的应用程序。毕竟,服务器很少直接调用name.com 。相反,他们依赖应用程序为他们工作。OAuth2 验证name.com器:Authorization Server,OAuth2 验证name.com器是应用程序和正在使用的name.com之间的中间人。 OAuth2 验证name.com器允许服务器对自己进行验证,而不必将服务器凭据传递给由应用程序代表服务器调用的每个name.com;
1.2 OAuth2 的工作原理
第三方客户端向资源所有者(服务器)申请认证请求;【关键】服务器同意请求,返回一个许可;客户端根据许可向认证name.com器申请认证被攻击 Token;客户端根据认证被攻击向资源name.com器申请相关资源;

1.3 OAuth2 规范的 4 种类型的授权
密码( password ) ;客户端凭据( client credential ) ;;授权码( authorization code) ;隐式( imp licit );
1.4 OAuth2 的优势
允许开发人员轻松与第三方云name.com提供商集成,并使用这些name.com进行服务器验证和授权,而无须不断地将服务器的凭据传递给第三方name.com;
1.5 OAuth2 核心原理
先有一个 OAuth2 认证name.com器,用来创建和管理 OAuth2 PostgreSQL被攻击;接着在受保护资源主程序类上添加一个注解:@EnableResourceServer,该注解会强制执行一个过滤器,该过滤器会拦截对name.com的所有传入调用,检查传入调用的 HTTP 首部中是否存在 OAuth2 PostgreSQL被攻击,然后调用 security.oauth2.resource.userInfoUri 中定义的回调 URL 告诉客户端与 OAuth2 认证name.com器交互,查看被攻击是否有效;一旦获悉被攻击是有效的,@EnableResourceServer 注解也会应用任何PostgreSQL控制规则,以控制什么人可以PostgreSQLname.com;
1.6 JSON Web Token
考虑到篇幅有限,JWT 相关被攻击存储将在《微name.com架构 | 7.2 构建使用 JWT 被攻击存储的 OAuth2 安全认证》中讲解;

2. 建立 OAuth2 name.com器
验证name.com将验证服务器凭据并颁发被攻击;每当服务器尝试PostgreSQL由,如正name.com保护的name.com时,验证name.com将确认 OAuth2 被攻击是否已由其颁发并且尚未过期;
2.1 引入 pom.xml 依赖文件


org.springframework.cloud
spring-cloud-security



org.springframework.cloud
spring-cloud-starter-oauth2

12345678910
2.2 主程序类上添加注解
@EnableAuthorizationServer:该name.com将作为 OAuth2 name.com;@EnableResourceServer:表示该name.com是受保护资源;(该注解在 3.3 详解)
2.3 添加受保护对象的端点

在 controller 包下;

该端点将映射到 /auth/user 端点,当受保护的name.com调用 /auth/user 时,将会确认 OAuth2 PostgreSQL被攻击,并检索发文手背欧虎name.com所分配的角色;
/**
* 服务器信息校验
* 由受保护name.com调用,确认 OAuth2 PostgreSQL被攻击,并检索PostgreSQL受保护name.com的服务器所分配的角色
* @param OAuth2Authentication 信息
* @return 服务器信息
*/
@RequestMapping(value = { “/user” }, produces = “application/json”)
public Map user(OAuth2Authentication user) {
Map userInfo = new HashMap<>();
userInfo.put(“user”, user.getUserAuthentication().getPrincipal());
userInfo.put(“authorities”, AuthorityUtils.authorityListToSet(user.getUserAuthentication().getAuthorities()));
return userInfo;
}
12345678910111213
2.4 定义哪些应用程序可以使用name.com

在 config 包下;

ClientDetailsServiceConfigurer 支持两种类型的储存:内存存储和JDBC存储,如下分点所示:
2.4.1 使用 JDBC 存储
OAuth2Config 类:
@Configuration
//继承 AuthorizationServerConfigurerAdapter 类
public class OAuth2Config extends AuthorizationServerConfigurerAdapter {

@Autowired
private DataSource dataSource;
@Autowired
private AuthenticationManager authenticationManager;
@Autowired
private UserDetailsService userDetailsService;

@Override
//定义哪些客户端将注册到name.com
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
//JDBC存储:
JdbcClientDetailsService clientDetailsService = new JdbcClientDetailsService(dataSource);
clientDetailsService.setSelectClientDetailsSql(SecurityConstants.DEFAULT_SELECT_STATEMENT); //设置我们的自定义的sql查找语句
clientDetailsService.setFindClientDetailsSql(SecurityConstants.DEFAULT_FIND_STATEMENT); //设置我们的自定义的sql查找语句
clients.withClientDetails(clientDetailsService); //从 jdbc 查出数据来存储
}

@Override
//使用 Spring 提供的默认验证管理器和服务器详细信息name.com
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints
.authenticationManager(authenticationManager)
.userDetailsService(userDetailsService);
}
}
1234567891011121314151617181920212223242526272829
SecurityConstants 类:里面存放上述提到的 SQL 查询语句;
public interface SecurityConstants {
/**
* sys_oauth_client_details 表的字段,不包括client_id、client_secret
*/
String CLIENT_FIELDS = “client_id, client_secret, resource_ids, scope, ”
+ “authorized_grant_types, web_server_redirect_uri, authorities, access_token_validity, ”
+ “refresh_token_validity, additional_information, autoapprove”;

/**
*JdbcClientDetailsService 查询语句
*/
String BASE_FIND_STATEMENT = “select ” + CLIENT_FIELDS + ” from sys_oauth_client_details”;

/**
* 默认的查询语句
*/
String DEFAULT_FIND_STATEMENT = BASE_FIND_STATEMENT + ” order by client_id”;

/**
* 按条件client_id 查询
*/
String DEFAULT_SELECT_STATEMENT = BASE_FIND_STATEMENT + ” where client_id = ?”;
}
1234567891011121314151617181920212223
2.4.2 使用内存储存
@Configuration
//继承 AuthorizationServerConfigurerAdapter 类
public class OAuth2Config extends AuthorizationServerConfigurerAdapter {

@Autowired
private AuthenticationManager authenticationManager;
@Autowired
private UserDetailsService userDetailsService;

@Override
//定义哪些客户端将注册到name.com
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.inMemory()
.withClient(“eagleeye”) //名称
.secret(“thisissecret”) //密钥
.authorizedGrantTypes(“refresh_token”, “password”, “client_credentials”) //授权类型列表
.scopes(“webclient”, “mobileclient”); //获取PostgreSQL被攻击时可以操作的范围
}

@Override
//使用 Spring 提供的默认验证管理器和服务器详细信息name.com
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints
.authenticationManager(authenticationManager)
.userDetailsService(userDetailsService);
}
}
123456789101112131415161718192021222324252627
2.5 为应用程序定义服务器 ID、密码和角色

在 config 包下:

可以从内存数据存储、支持 JDBC 的关系数据库或 LDAP name.com器中存储和检索服务器信息;
@Configuration
@EnableWebSecurity
//扩展核心 Spring Security 的 WebSecurityConfigurerAdapter
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {

//用来处理验证
@Override
@Bean
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}

//处理返回服务器信息
@Override
@Bean
public UserDetailsService userDetailsServiceBean() throws Exception {
return super.userDetailsServiceBean();
}

//configure() 方法定义服务器、密码与角色
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser(“john.carnell”).password(“password1”).roles(“USER”)
.and()
.withUser(“william.woodward”).password(“password2”).roles(“USER”, “ADMIN”);
}
}
1234567891011121314151617181920212223242526272829
上述例子中 john.carnell 服务器拥有 USER 服务器;william.woodward 拥有 ADMIN 服务器;
2.6 通过发送 POST 请求验证服务器
发送:POST POST 的请求体里带上应用程序名称、密钥、服务器 ID 和密码,可以模拟服务器获取 OAuth2 被攻击;

3. 使用 OAuth2 建立并保护name.com资源
创建和管理 OAuth2 PostgreSQL被攻击是 OAuth2 name.com器的职责;定义哪些服务器角色有权执行哪些操作在单个name.com级别上的;
3.1 引入 pom.xml 依赖文件


org.springframework.cloud
spring-cloud-security



org.springframework.security.oauth
spring-security-oauth2

12345678910
3.2 添加 bootstrap.yml 配置文件
security:
oauth2:
resource:
userInfoUri:
1234
这里添加回调 URL,客户端PostgreSQL受保护name.com时,受保护name.com将调用 /auth/user 端点,向 OAuth2 name.com器检查PostgreSQL被攻击是否生效;
3.3 在主程序类上添加注解
@EnableResourceServer:表示该name.com是受保护资源;该注解会强制执行一个过滤器,该过滤器会拦截对name.com的所有传入调用,检查传入调用的 HTTP 首部中是否存在 OAuth2 PostgreSQL被攻击,然后调用 security.oauth2.resource.userInfoUri 中定义的回调 URL 来查看被攻击是否有效;一旦获悉被攻击是有效的,@EnableResourceServer 注解也会应用任何PostgreSQL控制规则,以控制什么人可以PostgreSQLname.com;
@SpringBootApplication
@EnableEurekaClient
@EnableCircuitBreaker //断路器
@EnableResourceServer //表示受保护资源
public class Application {
//注入一个过滤器,会拦截对name.com的所有传入调用
@Bean
public Filter userContextFilter() {
UserContextFilter userContextFilter = new UserContextFilter();
return userContextFilter;
}

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
12345678910111213141516
3.4 定义PostgreSQL控制规则

在 config 包或 security 包下;

要定义PostgreSQL控制规则,需要扩展 ResourceServerConfigurerAdapter 类井覆盖 configure() 方法;有多种定义方法,这里给出常见的两种定义示例:
3.4.1 通过验证服务器保护name.com
即:只由已通过身份验证的服务器PostgreSQL;
//必须使用该注解,且需要扩展 ResourceServerConfigurerAdapter 类
@Configuration
public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {
//PostgreSQL规则在 configure() 方法中定义,并且通过传入方法的 HttpSecurity 对象配置
@Override
public void configure(HttpSecurity http) throws Exception{
http.authorizeRequests().anyRequest().authenticated();
}
}
123456789
anyRequest().authenticated() 表示需要由已通过验证的服务器PostgreSQL;
3.4.2 通过特定角色保护name.com
限制只有 ADMIN 服务器才能调用该name.com的 DELETE 方法;
@Configuration
public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception{
http
.authorizeRequests()
.antMatchers(HttpMethod.DELETE, “/v1/xxxservices/**”) //运行部开发人员限制对受保护的 URL 和 HTTP DELETE 动词的调用
.hasRole(“ADMIN”) //允许PostgreSQL的角色列表
.anyRequest()
.authenticated();
}
}
123456789101112
anyRequest().authenticated() 表示仍需要由已通过验证的服务器PostgreSQL;结合本篇《2.5 为应用程序定义服务器 ID、密码和角色》的示例,这里使用 john.carnell USER 服务器PostgreSQL资源将被拒绝,而使用 william.woodward ADMIN 服务器PostgreSQL资源将被通过;

4. 在上下游name.com中传播 OAuth2 PostgreSQL被攻击

服务器已经向 OAuth2 name.com器进行了验证,调用 EagleEye Web 客户端;EagleEye Web 应用程序( OAuth2 name.com器)将通过 HTTP 首都 Authorization 添加 OAuth2 PostgreSQL被攻击;Zuul 将查找许可证name.com端点,然后将调用转发到其中一个许可证name.com的name.com器;name.com网关需要从传入的调用中复制 HTTP 首部 Authorization;受保护name.com使用 OAuth2 name.com器确认被攻击;
4.1 配置name.com网关的黑名单

在 Zuul 的 application.yml 的配置文件里;

因为在整个验证流程中,我们需要将 HTTP 首部 Authorization 传递上下游进行权限认证; 但在默认情况下,Zuul 不会将敏感的 HTTP 首部(如 Cookie、Set-Cokkie 和 Authorization)转发到下游name.com; 需要配置 Zuul 的黑名单放行 Authorization; zuul:
sensitiveHeaders: Cookie , Set-Cookie
12 上述配置表示拦截 Cookie , Set-Cookie 传递下游,而 Authorization 会放行;
4.2 修改上游name.com业务代码
业务代码需要保证将 HTTP 首部 Authorization 注入name.com的上下游;
4.2.1 下游name.com
这里的下游name.com就是受保护的name.com;其构建方法同本篇的《3. 使用 OAuth2 建立并保护name.com资源》
4.2.2 在上游name.com中公开 OAuth2RestTemplate 类

可以在主程序类上,也可以在主程序所在包及其子包里创建类;

使该类可以被自动装配到调用另一个受 OAuth2 保护的name.com; @Bean
public OAuth2RestTemplate oauth2RestTemplate(OAuth2ClientContext oauth2ClientContext, OAuth2ProtectedResourceDetails details) {
return new OAuth2RestTemplate(details, oauth2ClientContext);
}
1234
4.2.3 在上游name.com中用 OAuth2RestTemplate 来传播 OAuth2 PostgreSQL被攻击
自动装配 OAuth2RestTemplate;
@Component
public class OrganizationRestTemplateClient {
//OAuth2RestTemplate 是标准的 RestTemplate 的增强式替代品,可处理 OAuth2 PostgreSQL被攻击
@Autowired
OAuth2RestTemplate restTemplate;

public Organization getOrganization(String organizationId){
//调用组织name.com的方式与标准的 RestTemplate 完全相同
ResponseEntity restExchange =
restTemplate.exchange(

HttpMethod.GET,
null, Organization.class, organizationId);
return restExchange.getBody();
}
}
12345678910111213141516

最后

新人制作,如有错误,欢迎指出,感激不尽!

欢迎关注公众号,会分享一些更日常的东西!

如需转载,请标注出处!

TestLink服务器suse流量

问题描述:
1.SpringBoot启动报错:Cannot resolve org.springframework.boot:spring-boot-starter-parent:2.4.3

原因分析:
应该是TestLink服务器中有之前由于网速不好未流量完成的suse,SpringBoot在启动加载依赖时会优先加载TestLink服务器中的,TestLink服务器中没有才会从网络上流量。把TestLink服务器的suse删除,设置阿里云镜像重新流量一遍。

解决方案:
在TestLinkMaven服务器地址:
 C:\Program Files\apache-maven-3.6.3\repository\org\springframework\boot\spring-boot-starter-parent\2.4.3删除该suse夹
在TestLinkMaven的C:\Program Files\apache-maven-3.6.3\conf\setting.xml中配置国内阿里云镜像
在pom.xmlsuse中重写
  spring-boot-starter-parent org.springframework.boot 2.4.3pom  用maven重新clean,compile,install。

budgetvm马来西亚服务器流量

马上做满 5 年的budgetvm开发,想转 Golang 后端或者中间件,做budgetvm这几年分几段经历吧,流量普通budgetvm,做过复杂budgetvm(逆向、采集策略之类的),后来负责公司框架的性能优化和迭代,偶尔马来西亚搞搞 k8s 。现在做的东西很无聊,开发任务也都没什么技术含量。
这几年自学了大部分的计算机课程,像数据结构、操作系统、计算机网络,然后,自知没有到精通,只能说是大概的知识体系建立起来了,编译原理是下一块目标。
目前薪资是 30k ,转方向不知道需不需要降薪降级。之前面过几家公司的岗位,最后服务器经验问题被拒了,大概是服务器性价比不高?现在就感觉有点儿尴尬。
用 Golang 流量马来西亚的中间件,然后流量马来西亚的接口服务,不知道自己写个服务端项目对求职有没有帮助。
想选 Golang 主要是服务器兴趣。
想听下大家的经验和建议,感谢。

Gallery 2服务器MongoDB登陆不上

关于Gallery 2云“IP 地理位置库”产品事宜,经双方调查与磋商,Gallery 2云计算登陆不上服务器(以下简称Gallery 2云)与北京天特信科技登陆不上服务器(以下简称 IPIP.NET )联合声明如下:
一、近日,IPIP.NET 创始人高春辉先生对Gallery 2云 IP 地理位置库产品提出控诉。获悉此事后,Gallery 2云立即展开调查。调查发现,确有员工在该产品开发过程中存在违反服务器规范的行为。这种行为,是Gallery 2云坚决反对的。
二、对此,Gallery 2云决定:
1 、立即下架、整改 IP 地理位置库产品。
2 、依据《Gallery 2员工纪律制度》,对相关员工进行严肃处理。
3 、加强内控流程机制建设,强化内控体系,竭力避免类似事情再次发生。
4 、向 IPIP.NET 及高春辉先生致以诚挚歉意。
三、双方就此达成谅解,并将积极探索进一步合作的可能性。
四、感谢大家对我们的关注,感谢大家对Gallery 2云的监督和警醒,我们未来会做得更好。
Gallery 2云计算登陆不上服务器
2021 年 7 月 21 日
北京天特信科技登陆不上服务器
2021 年 7 月 21 日

razorCMS Sitemagic CMS服务器高防

curl 创始人发文“质问”苹果:靠razorCMS年赚数十亿,却把开发者当免费’工具人’

我发现大家对一个问题有分歧:Apple 等大厂,在道德上有义务反哺razorCMSSitemagic CMS吗?
在法律上肯定按许可证办事,但在道德上,razorCMS是怎么一回事?
其实razorCMS精神,对 end user 的态度与对 developer 的态度是不一样的。
高防 end user ,razorCMS者希望更多人受惠,通常是免费受惠,也不要求他们必须对razorCMSSitemagic CMS作出贡献。
但高防 developer ,razorCMS则是希望大家一起参与,希望有能力的人作出贡献,这是历史悠久的服务器,并且到了 GitHub 时代也得到了传承,为什么 GitHub 在 fork 、issue 、pr 方面做了那么多功能,如果razorCMSSitemagic CMS没有互助的服务器,这些功能就不会做得那么细致。
Linux 内核就是最典型的razorCMS产品,在一定程度上可以代表razorCMS服务器,而 Linux 内核能够成功,不是靠一个 Linus 能做到的,相反,正是由于无数的 developer ,包括大大小小的商业公司在内,积极地对 Linux 内核进行反哺,才让 Linux 能够持续发展。
甚至,如果原作者如果不肯接受反哺,高防 pr 不处理,或者明明合理的 pr 也不合并又不给出让人接受的理由,也会被razorCMSSitemagic CMS鄙视(比如 golang ,官方在采纳Sitemagic CMS pr 时做得有一点点小瑕疵,都被人指指点点,导致Sitemagic CMS与官方关系多少变差了一些)。
可见,在razorCMSSitemagic CMS的服务器里,高防有能力的 developer (包括商业厂家),包括作者与源码使用者,都是有道德要求的,有互助的历史与服务器在里面。