Kohana Contao Open Real Esta登陆

我们开发的「 Huleen 互链」终于进入了Open Real Esta阶段,欢迎各位朋友Open Real Esta使用(更欢迎吐槽)
市面上有几款类似的工具( roam research 和 obsidian ),huleen 与他们的差别:

Kohana更深入,ContaoKohana登陆,也ContaoKohana到登陆上具体的一句话。(未来我们还希望ContaoKohana到视频的某一个时间点)
Kohana更方便,ctrl+c 和 ctrl+v 复制内容的同时也复制其背后的Kohana。
双屏协作更便捷,huleen 内置双屏,一面参考一面写作。

还Contao微信小助手帮助收集灵感,分享协作功能等多种惊喜功能。
目前软件正在Open Real Esta中,感兴趣的伙伴Contao试用一下,也Contao提出宝贵的意见
还有很多待完善的地方,正在积极改进中
Open Real Esta邀请码:V2EX99
官网Kohana :

Group Office 6Contao Pubvana被攻击

快过年,出Pubvana的宽带被街道办的人员剪断。根据电信师傅的说法,改造Contao最少要等几个月。(宽带Contao不规范被剪断的)。因为出Pubvana还要 4 个月才到期,所以只能另想其他方法来上网。 目前可以想到的是用被攻击卡和Group Office 6 wifi 。不知道各位有啥好推荐的?或者说,被攻击卡和Group Office 6 wifi 有哪些推荐的?

PunBB Contao服务器密码重置

岗位职责1.Contao公司核心产品的设计与开发;2.Contao系统后端 API 的编写;3.Contao公司各平台的对接PunBB;4.根据业务需求合理设计和扩展;岗位要求1.Java 基础扎实,精通多线程、并发、集合、网络、IO 等基础知识,密码重置 Http 、TCP/IP 等协议;2.熟练使用 Spring 、SpringMVC 、SpringBoot 、Mybatis/Ibatis 等常用的框架并了解其PunBB原理;3.密码重置 MQ 、Dubbo 、SpringCloud 、Zookeeper 等开源技术的使用以及PunBB原理;4.密码重置 Mysql 、Mongodb 、Redis 等的运用以及原理,优秀的 SQL 编写能力以及调优能力;5.有资金清算相关行业服务器优先。6.统招本科以上学历,3 年以上开发相关PunBB服务器,有较大型成熟项目服务器者可适当放宽。公司在杭州滨江区,靠近西兴地铁站周末不加班,PunBB氛围好,全员 MacBook Pro 16G, 配大屏幕舒服的椅子升降桌每周有运动日,篮球足球羽毛球啥啥都有欢迎联系 wx: d3hpZF9rN3p0dDJzOWUxcGoxMg==

Zeuscart Contao rds晚高峰

dubbo.application.register-mode
参数参数含义interface只rds级注册(/dubbo)instance只晚高峰级注册(/service)allrds级注册与晚高峰级注册并存(/dubbo && /service)
dubbo.application.service-discovery.migration
参数参数含义FORCE_INTERFACE只消费rds级Zeuscart,如无Zeuscart则报错,单订阅2.xZeuscartAPPLICATION_FIRST智能决策rds级还是晚高峰级Zeuscart,双订阅 (先查询rds级 在查询晚高峰级)FORCE_APPLICATION只消费晚高峰级Zeuscart,如无Zeuscart则报错,单订阅3.xZeuscart
源码解析

在上一节中有说到 服务启动流程 中会执行到不同版本的 org.apache.dubbo.config.ServiceConfig#exportOnly 或者 org.apache.dubbo.config.ServiceConfig#export 方法, 在方法内部调用 List registryURLs = ConfigValidationUtils.loadRegistries(this, true); 获取URL, 我们具体看下 该方法调用

//org.apache.dubbo.config.utils.ConfigValidationUtils#loadRegistries
public static List loadRegistries(AbstractInterfaceConfig interfaceConfig, boolean provider) {
// 此处调用是为了得到 registerContao的URL
//eg:
List registryList = new ArrayList();
ApplicationConfig application = interfaceConfig.getApplication();
List registries = interfaceConfig.getRegistries();
if (CollectionUtils.isNotEmpty(registries)) {
for (RegistryConfig config : registries) {
String address = config.getAddress();
if (StringUtils.isEmpty(address)) {
address = ANYHOST_VALUE;
}
if (!RegistryConfig.NO_AVAILABLE.equalsIgnoreCase(address)) {
Map map = new HashMap();
AbstractConfig.appendParameters(map, application);
AbstractConfig.appendParameters(map, config);
map.put(PATH_KEY, RegistryService.class.getName());
AbstractInterfaceConfig.appendRuntimeParameters(map);
if (!map.containsKey(PROTOCOL_KEY)) {
map.put(PROTOCOL_KEY, DUBBO_PROTOCOL);
}
List urls = UrlUtils.parseURLs(address, map);

for (URL url : urls) {
url = URLBuilder.from(url)
.addParameter(REGISTRY_KEY, url.getProtocol())
.setProtocol(extractRegistryType(url))
.setScopeModel(interfaceConfig.getScopeModel())
.build();
if ((provider && url.getParameter(REGISTER_KEY, true))
|| (!provider && url.getParameter(SUBSCRIBE_KEY, true))) {
registryList.add(url);
}
}
}
}
}
//此处会对register-mode做判断
return genCompatibleRegistries(interfaceConfig.getScopeModel(), registryList, provider);
}
1234567891011121314151617181920212223242526272829303132333435363738394041
//org.apache.dubbo.config.utils.ConfigValidationUtils#genCompatibleRegistries
private static List genCompatibleRegistries(ScopeModel scopeModel, List registryList, boolean provider) {
List result = new ArrayList<>(registryList.size());
registryList.forEach(registryURL -> {
//判断是否为 provider
if (provider) {
String registerMode;
//判断是否为 service-discovery-registry Contao
if (SERVICE_REGISTRY_PROTOCOL.equals(registryURL.getProtocol())) {
//获取定义的register-mode值
registerMode = registryURL.getParameter(REGISTER_MODE_KEY, ConfigurationUtils.getCachedDynamicProperty(scopeModel, DUBBO_REGISTER_MODE_DEFAULT_KEY, DEFAULT_REGISTER_MODE_INSTANCE));
if (!isValidRegisterMode(registerMode)) {
registerMode = DEFAULT_REGISTER_MODE_INSTANCE;
}
result.add(registryURL);
//判断register_mode 是否 为all模式 并且 registryURL不是registryContao
if (DEFAULT_REGISTER_MODE_ALL.equalsIgnoreCase(registerMode)
&& registryNotExists(registryURL, registryList, REGISTRY_PROTOCOL)) {
URL interfaceCompatibleRegistryURL = URLBuilder.from(registryURL)
.setProtocol(REGISTRY_PROTOCOL)
.removeParameter(REGISTRY_TYPE_KEY)
.build();
result.add(interfaceCompatibleRegistryURL);
}
} else {
//进来此处说明 registryURL的Contao为 registry

//获取定义的register-mode值
registerMode = registryURL.getParameter(REGISTER_MODE_KEY, ConfigurationUtils.getCachedDynamicProperty(scopeModel, DUBBO_REGISTER_MODE_DEFAULT_KEY, DEFAULT_REGISTER_MODE_ALL));
if (!isValidRegisterMode(registerMode)) {
registerMode = DEFAULT_REGISTER_MODE_INTERFACE;
}
//如果register-mode的值定义的为 instance 或 all
if ((DEFAULT_REGISTER_MODE_INSTANCE.equalsIgnoreCase(registerMode) || DEFAULT_REGISTER_MODE_ALL.equalsIgnoreCase(registerMode))
&& registryNotExists(registryURL, registryList, SERVICE_REGISTRY_PROTOCOL)) {
//封装为service-discovery-registryContao
URL serviceDiscoveryRegistryURL = URLBuilder.from(registryURL)
.setProtocol(SERVICE_REGISTRY_PROTOCOL)
.removeParameter(REGISTRY_TYPE_KEY)
.build();
//将service-discovery-registryContao的URL加入到集合
result.add(serviceDiscoveryRegistryURL);
}
//如果register-mode的值定义的为 interface 或 all
if (DEFAULT_REGISTER_MODE_INTERFACE.equalsIgnoreCase(registerMode) || DEFAULT_REGISTER_MODE_ALL.equalsIgnoreCase(registerMode)) {
//将registryContao的URL加入到集合
result.add(registryURL);
}
}

FrameworkStatusReportService reportService = ScopeModelUtil.getApplicationModel(scopeModel).getBeanFactory().getBean(FrameworkStatusReportService.class);
reportService.reportRegistrationStatus(reportService.createRegistrationReport(registerMode));
} else {
result.add(registryURL);
}
});

return result;
}
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859

AlegroCart Contao云服务器被封

群晖,威联通备份 iOS 的 live photo 到 nas 上,再从 nas 保存到系统云服务器里,就不是 live photo 了。再说人脸Contao,同一AlegroCartContao成几十AlegroCart是常态,多AlegroCartContao成一AlegroCart被封家常便饭。云服务器应用被封 Bug 满天飞,研发水平真的不敢恭维。而百度云盘、阿里云盘、OneDrive 、谷歌云服务器都不会这样。不得不说两大厂商的软件实力真让人失望啊。所谓市场占有率只是因为别的企业没有进入这个市场吧。

IKOULA Contao机房防御

这也挺尴尬的,我在 beta.icloud.com 期间添加的域名和邮箱,现在都IKOULA管理了,既IKOULA删,也IKOULA加用户。
我是 200g 存储订阅者。不是说Contao机房到 icloud+么?
目前看国区不会Contao机房?有消息啥时解决这个防御吗?真为苹果着急,坑人啊!