text:
Configurable Rest Collection Filters

Hi ,
I wonder, in apigility is there a way to configure filters that to be injected
into your rest collection based on configuration ?
At the moment I'm doing it programmatically like
public function fetchAll($criteria = [])
 {
     /** @var Paginator $paginator */
     $paginator = parent::fetchAll($criteria);

     $paginator->setFilter(
         $this->getServiceLocator()->get(PasswordCollectionFilter::class)
     );

     return $paginator;
 }

This filter injection can be done by configuration , smth like :
'zf-rest' => array(
 'Some\\Controller' => array(
    other configs ...
    'collection_class' => 'Some\\KerioEmailsCollection',
    'collection_filters' => [
          ExampleFilterCapitalLetters,
          AnotherExampleFilter
      ]
    other configs ..
)

There is, but not the way you're doing it!
First off, all filters are configured via the filters configuration key, which itself follows the semantics of a service manager: it has subkeys for services, aliases, invokables, factories, etc. You access filters via the Zend\Filter\FilterPluginManager, which is stored as the service FilterManager. In your example above, you'd do the following instead:
// This line:
$this->getServiceLocator()->get(PasswordCollectionFilter::class)

// becomes:
$this->getServiceLocator()->get('FilterManager')->get(PasswordCollectionFilter::class)

However, I don't recommend that! We have deprecated the usage of the ServiceLocatorAwareInterface, and, if you upgrade to the latest zend-mvc versions, it's not available at all! There's a good reason for that: pulling dependencies from the service locator is a form of dependency hiding, and makes understanding the requirements for a class harder to determine, and harder to test.
Instead, update your resource class to instead accept the filter(s) you want via its constructor, and then update the factory for your resource class to inject it. This allows you then to use any configuration scheme you want. As an example, based on your examples above:
<?php
// Your resource class would accept a filter to the constructor:
use Zend\Filter\FilterInterface;

class SomeResource extends AbstractResource
{
    private $filter;

    public function __construct(FilterInterface $filter)
    {
        $this->filter = $filter;
    }

    /* ... */

    public function fetchAll($criteria = [])
    {
        /** @var Paginator $paginator */
        $paginator = parent::fetchAll($criteria);
        $paginator->setFilter($this->filter);
        return $paginator;
    }

    /* ... */
}

// Your factory would inject the filter:
use Zend\Filter\FilterChain;

class SomeResourceFactory
{
    public function __invoke(ContainerInterface $container)
    {
        $config = $container->get('config');
        $filters = $config['zf-rest'][Some\\Controller::class]['collection_filters'];

        $chain = new FilterChain();
        $chain->setPluginManager($container->get('FilterManager'));
        array_walk($filters, function ($filter) use ($chain) {
            $chain->attachByName($filter);
        });

        return new SomeResource($chain);
    }
}

Is that means that currently Apigility haven't native support for filters injection into the resource-collection based on zf-rest configs?

Is that means that currently Apigility haven't native support for filters injection into the resource-collection based on zf-rest configs?

Yes; this has never been supported, other than via the zf-doctrine-querybuilder-filter, which only works for Doctrine-connected services, and is highly specific to how the ORM supports querying data.
Additionally, your code $paginator->setFilter() is non-standard; zend-paginator instances do not have filters, nor do our shipped Collection classes.
My point is: you are talking about application-specific features. Apigility can accommodate these features, but you need to write such functionality yourself. One way you can accomplish it is to write your own base Resource class that overrides fetchAll(), your own base Collection class that allows injection of a filter, and use either initializers or delegator factories to inject the filters into these resources.

https://github.com/zendframework/zend-paginator/blob/master/src/Paginator.php (486)

This repository has been closed and moved to laminas-api-tools/api-tools; a new issue has been opened at https://github.com/laminas-api-tools/api-tools/issues/3.

authors: karborator weierophinney

repo: zfcampus/zf-apigility


text:
[Discussion] Exceptions thrown by resources should trigger dispatch.error

Actually MvcEvent::EVENT_DISPATCH_ERROR does not trigger because the exception is catched and wrapped in an ApiProblem object.
This breaks the expected behavior of a ZF2 application.
I don't modified yet the tests until discuss this.
The actual behavior was introduced by https://github.com/zfcampus/zf-rest/commit/30ef832fa4c6343ad14ca4a37a53383a4684c52d

Actually... we can register this from the RestController pre-dispatch, which would not require many changes at all. I'll see if I can get this in place this morning.

Is this still active @weierophinney ? This is a big problem for us as we need to capture these exceptions for logging and this implementation is interfering with how we'd expect errors to be handled in a ZF2 project.

@Tomdarkness I was never able to come up with a sane solution.

Is it possible to merge this ticket into this PR?
Adding a check for /Throwable or /Exception in the ExceptionsListener should do the trick.

This is something I just stumbled upon as well because I randomly found out that our exceptions were not being logged in Sentry. ):
I can fork and do something that would work for me, but maybe we can come with a proper solution that works for everyone?

source: gharchive/pull-request

repo: zfcampus/zf-rest

license_type: permissive

license_source: github-api


text:
boot into debug kernel when BB_KERNEL_TYPE == DEBUG

Alter bootstrap script to install debug kernel and boot into it prior to
beginning build and test, on Redhat-based distros, when
BB_KERNEL_TYPE is set to DEBUG.
This will be paired with a new test step that checks /proc or dmesg for
lockdep warnings produced while testing zfs.

Let's go with this for now and get this infrastructure in place.  It can always be optimized/reworked if needed.  Merged as:
fe98de5 boot into debug kernel when BB_KERNEL_TYPE == DEBUG

authors: behlendorf ofaaland

repo: zfsonlinux/zfs-buildbot

license_source: bigquery


text:
在线表单生成代码功能生成不了代码

版本号：2.2.1
问题描述：
请求接口
/online/cgform/head/tableInfo?_t=1596182201&code=8a80cb8173a3c88c0173a3c88ce40000
响应数据
{"success":false,"message":"操作失败，Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/jeecg/common/constant/enums/CgformEnum","code":500,"result":null,"timestamp":1596182203099}

截图&代码：

友情提示： 未按格式要求发帖，会直接删掉。

代码生成器的数据库配置正确了吗

source: gharchive/issue

repo: zhangdaiscott/jeecg-boot


text:
PepLand license

Dear PepLand team,
Thank you for publishing your pre-print and code! I think this is a great approach to model peptides with non-canonical amino acids.
I am interested in using your code and pre-trained models. However, I cannot find the license file in the repository. What is the license of the code and model? Are you releasing them under a free license like MIT or Apache?
Thanks in advance,
Miguel

Dear PepLand team,
Thank you for publishing your pre-print and code! I think this is a great approach to model peptides with non-canonical amino acids.
I am interested in using your code and pre-trained models. However, I cannot find the license file in the repository. What is the license of the code and model? Are you releasing them under a free license like MIT or Apache?
Thanks in advance, Miguel

Hi Miguel,
Thank you for your interest in our work. I have already update the LICENSE file in the repository. If you have any other question, please reach out to me.
Best,
Richard.

Great, thanks a lot!
Closing this issue now.

authors: mgarort zhangruochi

repo: zhangruochi/pepland


text:
DB repo for data storage.

see https://www.scidb.cn/en

nice


text:
Signature is not updated even though manifest changes

I use webpack-stable-module-id-and-hash and inline-manifest-webpack-plugin.
I have a file which references a bunch of bundles. In this file webpack injects the right code to find the bundle signatures in the manifest.
Now in my latest release, I created a new bundle, which changed the manifest. Webpack injected a new index in the file referencing bundles.
But the signature was not updated. I guess maybe it's because the plugin generates the content before webpack injects the index, so in that sense it is exactly the same file.
Any idea if this issue can be solved?
Note: I had the same issue when I updated the config of CommonsChunkPlugin. It adds a global variable at the beginning of each bundle. I need to update the name of the variable, and same issue, it did not update the signature. This was solved by purging the cache in the CDN.
In that case it is every time we add a new bundle which is not acceptable for long term caching

Actually what I need is webpack to not change these indexes when I add new bundles. Otherwise it would mean that the signature of files using require.ensure would change even though the source code has not changed

@florian-bd
Which version of webpack?
I will take a look「inline-manifest-webpack-plugin」later, and see what I can do.

Webpack 1.13.2
But I don't think this is related to webpack-stable-module-id-and-hash. I mean it makes sense that the signature is not updated. Webpack should be smarter and not change the indexes. I will post something on stackoverflow if I don't manage to find anything

To be more precise:
I need the chunk ids to remain the same after each build, even if I add new chunks. I need to make some research about that.
Probably related to OccurrenceOrderPlugin that I use.
You can close this issue :)

Ok I realized that this plugin is also about having stable ids. My bad!
So the only problem is probably that I use OccurrenceOrderPlugin?

Ha but it stable chunk ids that I want

Yeah! Do not use this plugin with 「OccurrenceOrderPlugin」,use this plugin in production stage and 「OccurrenceOrderPlugin」 in Development stage.

Ok but still I need to have stable chunk IDs.
For that, the only solution I have found is to use the recordsPath.
Then as I add or delete new chunks, the other chunks IDs are untouched.
It would be super nice if this plugin could handle that as well.
Thank you for your quick answers.

authors: florian-bd zhenyong

license: mit


text:
Make async layer independent.

Currently we are using async_io for handling async feature.
And it currently works.
But it could be cool to be able to switch async primitive seamlessly.
Like use a smol::Unblock which runs async stuff in a separate thread.

closed in #24

repo: zhiburt/expectrl

license: MIT


text:
why not use prob after softmax?

https://github.com/zhiguowang/BiMPM/blob/33cc8fe5d450f432a6843bc05cad29c6ce9f5714/src/SentenceMatchModelGraph.py#L158
hi zhiguowang !
why not use prob after softmax?

oh, I know ,it is same.

repo: zhiguowang/BiMPM


text:
项目集成到SpringBoot 引发 java.lang.NoSuchFieldError: OSX_ARM64 请问是什么原因呢

AndroidEmulatorBuilder.for32Bit()
.setProcessName("com.xinjin.xhs")
.addBackendFactory(new HypervisorFactory(true))
.build();
在这里报错了
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.damei.xhs.xhsshield.controller.Xhs668Controller]: Constructor threw exception; nested exception is java.lang.NoSuchFieldError: OSX_ARM64
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:225)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1308)
... 18 more
Caused by: java.lang.NoSuchFieldError: OSX_ARM64

我用了之前的0.9.2的没有这个问题，0.9.3这个就有问题

更新 unidbg-server pom 中的 unicorn 以及相关的 unidbg依赖 全部更至最新

authors: kevinsir killercc


text:
🛑 腾讯云 COS 节点 is down

In e6d0c79, 腾讯云 COS 节点 (https://lisz.ink) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 腾讯云 COS 节点 is back up in dd2107b.

repo: zhonger/upptime


text:
🛑 腾讯云 COS 节点 is down

In f2db18c, 腾讯云 COS 节点 (https://lisz.ink) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 腾讯云 COS 节点 is back up in ce15689.


text:
🛑 腾讯云 COS 节点 is down

In fbcf944, 腾讯云 COS 节点 (https://lisz.ink) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 腾讯云 COS 节点 is back up in 88671f4.


text:
#1 Feature - Initial Setup

[x] Setup package.json
[x] Test out progromatic pr ish
[x] Resolve merge conflicts via gh api

body content

GH programmatic comment on issue #2 https://github.com/zhorton34/scripts/issues/2#issuecomment-1175802127


text:
decord compiled with ffmpeg 4 failed to load videos processed by ffmpeg 2

Hi zhreshold,
I compiled the latest decord(0.3.1) with ffmpeg 4.2(libavcodec 58.* ), and when I read video (processed with ffmpeg2, libavcodec 56.* ) with the compiled decord, it throws out the error:
avcodec_send_packet(def ctx.get(), pkt.get()) >= 0 (-11 vs. 0) thread worker: error sending packet

Would you please check if it also happends on your system?

Would you mind share the video and the reproduciable script?

authors: kennymckormick zhreshold

repo: zhreshold/decord


text:
宥马运动无法使用

显示断网，且无法定位

我的号没法做学生认证，请提供复现方法

authors: Miao-XiaoXin zhufucdev

repo: zhufucdev/MotionEmulator


text:
文件夹右键显示不全

I didn't understand your problem

老问题了，暂时还没有解决方案

Old problem, there is no solution for the time being

Can't you fix it? We are all facing this problem! Please, try to fix this problem!

将于下一个版本修复此问题

将于下一个版本修复此问题

Thank you very very much!


text:
Wanna see my hot pics?💋💋💋

Hi!😻😻😻 Wanna see my hot pics?💋💋💋 Go to this site and find me here. ❤❤❤ My nick is sexygirl662 👇👇👇
https://tinyurl.com/ulpu2gz

This is a spam. Please close it.
Wrote a small script to automate the reporting, Just like the spammer did.
Script here: https://gist.github.com/VISWESWARAN1998/cf74dd0890534ad3e72f326e46460cd3
Regards,
Visweswaran N

repo: ziadoz/awesome-php

license: WTFPL


text:
Cannot add download mission

I cannot add a magnet link download or a torrent download by the webpage.
However, I can add download with other tools and do other operation with webui-aria2 except adding download mission.

your environment and console error, please?

Tried with Chrome (win10) and edge.
arai2c v1.33.1 ssl disable
log
11/19 14:26:47 [WARN] Unknown option: #config file for aria2c
11/19 14:26:47 [NOTICE] IPv4 RPC: listening on TCP port 6800
11/19 14:26:47 [NOTICE] IPv6 RPC: listening on TCP port 6800
11/1914:27:47[NOTICE]Serializedsessionto'C:\Aria2\aria2.session'successfully.

I mean errors logged in browsers' console: that will be more helpful.

After i comment line 228-231 of modal.js
i can add download mission

But you will not be able to make changes to settings of download task ... I think.
I have no idea about where does the problem come from, since I haven't read through all the codes. ( and not familiar with angular.js)
I will try to help with that after I am idle from my final year project.

Well, after I check aging my configuration.js and I remove 'optimize-concurrent-downloads' from downloadProps everything works fine.
Maybe add a simple guide to tell what cannot add to dowloadProps

That is really simple: see entries in your Global Settings; an equivalent is entries in your file settings (after creating a task, the entries in its settings)

Here I also got an "No URI to download." error after I tried to input a magnet URI to download.
The console shows:
{…}cb: noop()"$inject": Array []length: 0name: "noop"prototype: Object { … }__proto__: function ()name: "aria2.addUri"once: 2params: […]0: Array [ "magnet:?xt=urn:btih:4c9d18e1cde6dacd39f6443d76ddba8e7e82a06b&dn=Blade+Runner+2049.HDRip.XviD.AC3-EVO&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fexodus.desync.com%3A6969" ]1: Object {  }length: 2__proto__: Array []__proto__: {…}__defineGetter__: function __defineGetter__()__defineSetter__: function __defineSetter__()__lookupGetter__: function __lookupGetter__()__lookupSetter__: function __lookupSetter__()constructor: function Object()hasOwnProperty: function hasOwnProperty()isPrototypeOf: function isPrototypeOf()propertyIsEnumerable: function propertyIsEnumerable()toLocaleString: function toLocaleString()toSource: function toSource()toString: function toString()valueOf: function valueOf() Object { code: 1, message: "No URI to download." } rpc.js:148:15


text:
Compiling with lld<5?

I'm trying to make a package for Void Linux, which only has lld 4. Even after specifying DZIG_FORCE_EXTERNAL_LLD=ON it used the embedded lld and I get an error (the error can be found here) when trying to build Zig.
Does it use lld 5+ specific functions, and is there a way to build it on systems with lld<5?

The only supported LLD in Zig right now is the LLD embedded in this git repository. It has some patches on top of official LLD 5.

Void only has llvm and clang 4. Does that mean I can't build Zig until Void gets llvm and clang 5?

You can also build llvm and clang from source: https://github.com/zig-lang/zig/wiki/How-to-build-LLVM%2C-libclang%2C-and-liblld-from-source#posix

oh, and we also have a docker image: https://github.com/zig-lang/docker-zig

repo: zig-lang/zig


text:
Bump version to 1.0.1

/cc @zwd1208

/lgtm

repo: zilliztech/milvus-operator


text:
Module build fails after updating to 0.5.0

After updating to 0.5.0 module builds fail with the following message:
    Module build failed (from ./node_modules/twig-loader/index.js):
    TypeError: Cannot read property 'context' of undefined
        at Object.module.exports (/app/user/node_modules/twig-loader/lib/loader.js:25:63)

I'm guessing this is related to and fixed by #49 ?

I guess, since I'm using webpack 4 indeed :-) Let me verify

I released #49 as 0.5.1. If you still encounter issues, feel free to re-open!

It worked, thanks!

authors: boboldehampsink webberig

repo: zimmo-be/twig-loader


text:
Update aws-java-sdk-core to 1.12.595

About this PR
📦 Updates com.amazonaws:aws-java-sdk-core from 1.12.459 to 1.12.595
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.amazonaws", artifactId = "aws-java-sdk-core" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.amazonaws", artifactId = "aws-java-sdk-core" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #668.

repo: zio/zio-flow


text:
Update h2 to 2.0.202

Updates com.h2database:h2 from 1.4.200 to 2.0.202.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (1.4.200).
You might want to review and update them manually.
README.md
quill-sql-portable/src/main/scala/io/getquill/H2Dialect.scala

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.h2database", artifactId = "h2" } ]

labels: test-library-update, early-semver-major, semver-spec-major, old-version-remains

Superseded by #2354.

Superseded by #2354.

repo: zio/zio-quill


text:
Add optional "Description" field to Mission page

DMDB included a mission description field that could be filled out by the uploader. This was just free-form text as far as I recall.
It would make sense to only show this field if it is not empty.

This is already a feature

authors: SiriusTR ziplantil

repo: ziplantil/DescentMissionArchive


text:
Request command line instructions

I need some help here on how to build, run, and test the project

closed as preparing for publisizing

authors: annienobear shibo-chen

repo: zipper-bus-optimizations/hardposit-fpga


text:
feat: Add Twilio Verify API Integration for OTP and 2FA (POC, DNM)

Which Problems Are Solved
Twilio supports a robust, multi-channel verification service that notably supports multi-region SMS sender numbers required for our use case. Currently, Zitadel does much of the work of the Twilio Verify (eg. localization, code generation, messaging) but doesn't support the pool of sender numbers that Twilio Verify does.
How the Problems Are Solved
To support this API, we need to be able to store the Twilio Service ID and send that in a verification request where appropriate: phone number verification and SMS 2FA code paths.
This PR does the following:

Adds the ability to use Twilio Verify of standard messaging through Twilio

Adds support for international numbers and more reliable verification messages sent from multiple numbers

Adds a new Twilio configuration option to support Twilio Verify in the admin console

Sends verification SMS messages through Twilio Verify

Provides guide for how to implement Twilio Verification Checks

[ ] Call Twilio Verify endpoint to confirm verification code in human_user_otp.go where we use VerifyTOTP

Additional Changes
Additional Context
This is a POC and not necessarily how we expect to ship this feature. Notably, we highjacked the current SMS-entity persistence and API patterns, but it might make more sense to split this into a new notification integration entirely that stands alone from the existing Twilio integration. There are a variety of other settings that could be configured by the end user that we may want to support in the future (like custom message and code generation preferences), but not required for MVP.

closing this as it is implemented in #8678

authors: livio-a zhirschtritt

repo: zitadel/zitadel


text:
feat: Add Twilio Verification Service

Which Problems Are Solved
Twilio supports a robust, multi-channel verification service that notably supports multi-region SMS sender numbers required for our use case. Currently, Zitadel does much of the work of the Twilio Verify (eg. localization, code generation, messaging) but doesn't support the pool of sender numbers that Twilio Verify does.
How the Problems Are Solved
To support this API, we need to be able to store the Twilio Service ID and send that in a verification request where appropriate: phone number verification and SMS 2FA code paths.
This PR does the following:

Adds the ability to use Twilio Verify of standard messaging through Twilio
Adds support for international numbers and more reliable verification messages sent from multiple numbers
Adds a new Twilio configuration option to support Twilio Verify in the admin console
Sends verification SMS messages through Twilio Verify
Implements Twilio Verification Checks for codes generated through the same

Additional Changes
Additional Context

base was implemented by @zhirschtritt in https://github.com/zitadel/zitadel/pull/8268 ❤
closes https://github.com/zitadel/zitadel/issues/8581

added i18n for console and update the corresponding small docs section


text:
加个搜索框吧

手机上几十个应用，有搜索框就可以立即定位了

是应该加一个，wait moment :)

手机上几十个应用，有搜索框就可以立即定位了

是应该加一个, wait a moment

authors: paradiseduo zjkhiyori

repo: zjkhiyori/ApkExtractorMD


text:
Some discussions

I try to match the image pairs in issue #7.
I don't agree with your answers in there.

JiamingSuen: I would like to point out that LoFTR (and SuperGlue) learns the matching priors (i.e., the distribution of matches between the image pair) from the training data, which means that it can only handle rotations exhibited in the training set.

SuperGlue gives a so-so result, while LoFTR cannot find any matches.
Result from LoFTR

Result from SuperGlue

I believe the reason is that the descriptors of SuperPoint have the ability to handle the most extreme rotations, benefiting from the large coverage of rotation range during its training with synthetic homography data. Even though SuperGlue and LoFTR are both trained on ScanNet with a smaller rotation range compared to synthetic homography, SuperGlue has better descriptors (in handling extreme rotations) from the very beginning of training.
We would like to point out that we never claimed that LoFTR is capable of handling extreme rotations and we recommend you check out other works (as suggested before, GIFT and LISRD) for this purpose.

authors: JiamingSuen noone-code


text:
bert-base-chinese

Describe the question

A clear and concise description of what the question is.
本地如何加载

Environment (please complete the following information):

OS: [e.g. mac / window]
Python Version [e.g. 3.6]

Screenshots

If applicable, add screenshots to help explain your problem.

Additional context

Add any other context about the problem here.

您好，本地加载模型需要把huggingface上的模型文件下载到本地，并将代码中from_pretrained中的路径更改为本地模型文件夹的路径

authors: GoooDte longcheng-wangxj

repo: zjunlp/DeepKE


text:
Implement Plutus script for the smart wallet

Implement this script. The script is a variation of the "Symbolic verifier". It hashes the transaction data, just like the Symbolic verifier, then either checks the ZKP or the signature on the resulting hash.

We want a script that checks a payment of Value to a particular Address.

The Value produced at the owner's address must be greater or equal to the value that was consumed minus the value that was sent minus the fee.
If the purpose of the script is Spending, it forwards the validation to the same script but with the rewarding purpose. That way, we avoid repeating the same check for different transaction inputs.
One of two verifications must pass: a regular Ed25519 signature check or a Plonkup verification for a particular computation (a script parameter).

Note: The script's type signature (parameter structure and redeemer) has to be modified.

I edited the original description and removed the now irrelevant comment.

repo: zkFold/zkfold-cardano


text:
batchsize > 1时，loss、grad_norm异常问题

您好，之前开了一个issue请教您loss、grad_norm异常的问题  #6 ，我排除了自己数据集的问题，确保dataloader及数据增强是和culane逻辑完全一致了，最后发现当batchsize=1时，在自己数据集上loss收敛正常，但batchsize>1时，grad_norm很容易就好几万、loss下降到一定程度就不降了。
我注意到原始代码中 https://github.com/zkyseu/O2SFormer/blob/main/dnlane/models/detection_headv2.py#L245 这行的注释 “计算单个batch的损失, 因为直接计算整个batchsize会导致loss异常”，感觉这里还是有一些问题，可能culane数据集相对简单，batchsize>1也正常收敛了，但对于城市自动驾驶场景车道线数据，这个问题看起来还是存在

@guvcolie 您好，这个问题可能是代码实现的方式存在问题。因为我当时实现代码的时候也参考了CLRNet的loss部分，但是发现如果直接计算整个batchsize就一定会导致loss异常，我当时也没有发现为何导致的，但是如果一个一个地计算loss，这个时候loss就正常了，所以就加了这行注释。如果您有解决这个问题方法可以PR一下，我可以将您地方法merge进项目中，谢谢！

@guvcolie 如果您有其他问题可以重新打开issue，我先暂时关闭该issue哈。

@guvcolie 您好，这个问题可能是代码实现的方式存在问题。因为我当时实现代码的时候也参考了CLRNet的loss部分，但是发现如果直接计算整个batchsize就一定会导致loss异常，我当时也没有发现为何导致的，但是如果一个一个地计算loss，这个时候loss就正常了，所以就加了这行注释。如果您有解决这个问题方法可以PR一下，我可以将您地方法merge进项目中，谢谢！

您上面说的“直接计算整个batchsize就一定会导致loss异常”，这个“异常”具体是指什么？ loss数值很大？还是nan？还是其他现象呢

异常是指loss很大，同时grad norm也很大，这个应该是和程序实现有关。

异常是指loss很大，同时grad norm也很大，这个应该是和程序实现有关。

您描述的这个现象和我这边的现象完全一样😭 我这边又详细测试了一下，batchsize在[1,6]之间都正常，batchsize=7有一定比例的iter出现grad_norm暴涨，batchsize=8必出loss、grad-norm问题。感觉很奇怪，我也再排查下

嗯嗯，我最近在忙于其他项目，如果您找到了合适的解决方法可以直接PR，我将您的改进融合进项目，谢谢！

authors: guvcolie zkyseu


text:
Update SBGR with changes done by @MaicomMR

Fix #234

Thanks @MaicomMR!

:+1:

authors: MaicomMR glangford zlsa

repo: zlsa/atc


text:
Crash if open Gas tank at Unmanned vehicle.

After "Gas collection" mission if you try to open unmanned vehicle with full tanks, and click tank, your game will crash.

Could you append the crash report please, makes fixing much faster/easier.  Can't run MC on mobile but I can still write code.

Wasn`t able to replicate bug. Probably one time crash...

Unless you deleted it, the crash report should be in the "crash-reports" folder somewhere.  The way inventories on rockets work is kinda jenky, because it's essentially trying to use blocks stored in a different world,  So it is possible there are some race conditions that exist.

Will close unless it comes up again i guess


text:
onError callback doesn't provide props

According to the documentation the onError callback has a props parameter in case of succes, but this is never set in sound.js. Is somebody working on this? If not, I'll submit a pull request.

Not that I know of. If you don't mind, a PR would be great.

authors: gvenk trepidity

repo: zmxv/react-native-sound


text:
Docker support

Hey, thanks for picking up this repo! haste-server is really cool and I'm glad it's being revitalized.
I was wondering how you felt about adding Docker support? I have a semi-decent image locally and there's a couple of PRs for it in the old repo. I could try and clean it up and make a PR

Hello Niek, I'm also glad people appreciate what I am doing!
When I was browsing issues on upstream repo, I saw numerous Docker-related ones. I would gladly add them and even wanted to, however while I have no experience with docker at all, there were other things that needed work that I prioritized more.
If you have such knowledge and you want to contribute, I will be more than happy to merge a PR with some good code! Just remember to follow rules in .eslintrc.json.
Also, since my fork got some attention around it (which is btw crazy and I never expected it to happen ;p), I will try to add some general contribution guidelines and workflows to make it more comfortable for you and other contributors to follow my specific style.
Thanks in advance!

What about those of us running unRAID? Would you ever consider merging this into Community Apps for a simple docker container install?

What about those of us running unRAID? Would you ever consider merging this into Community Apps for a simple docker container install?

authors: eightysixed niekcandaele zneix

repo: zneix/haste-server


text:
ODBC的set_attribute方法调用SQLSetConnectAttr的参数传递错误

SQLSetConnectAttr的第三个参数是直接将整型枚举值转换为空类型指针（reinterpret_cast<void*>(value)），而不是取整型变量地址（&value）

Thanks. Fix it ok.

Thanks. Fix it ok.

authors: bitter-bean kumoki znone

repo: znone/qtl


text:
Display LFT Prompt

Description
https://www.notion.so/joinzoe/LFT-Prompt-Modal-for-newly-sick-d46770dabc144f2fb318094b4362b3b8
https://www.figma.com/file/7TEcX7f6rw3Z0WYR4TpX3R/ZOE-COVID-Study-(App)---MASTER?node-id=18701%3A168826
How the feature works:

Backend sends through 2 flags (one of the initial modal and one for the reminder modal) on app start up that checks, based on historical COVID tests and assessments logged, whether a patient should be shown the LFT prompt.
The frontend (on the ThankYou screen) goes through additional checks to see whether the patient has logged a test today and logged COVID symptoms, before showing the modal.
We store a record of how many times we've shown the modal and date it was seen in Redux. This allows us to display the reminder modal at the appropriate time (assuming the backend flag returns true).

On what platform have you tested the change?

[ ] Android - Emulator
[ ] Android - Physical device
[x] iOS - Emulator
[ ] iOS - Physical device

Out of scope and potential follow-up
Screenshots

Checklist (for submission)

[ ] Analytics/tracking events have been added (if relevant)
[ ] Added new screen(s) to src/features/screens.ts and new Redux slice(s) to mocks/mockedInitialState.ts (if relevant)

Checklist (for reviewers)

[x] Checked against Figma designs (if relevant)
[ ] Checked that data has been successfully saved to the backend (if relevant)

Checklist (for merger)

[ ] Make sure the right merge strategy is chosen, commit merge into master and squash merge into develop.

some really minor comments, otherwise, nicely done!
❓ not related but just in general, we don't use type hints for the simple / obvious ones but I was wondering why, like for loggedLFCPCRTestToday
Is it just a style thing?

Do you mean why we don't explicitly type the return value? If so, I generally prefer to have Typescript infer the types where it can (since it makes it more flexible e.g. in cases of refactoring). It's only if Typescript complains about a value potentially being any that I then explicitly type it.

repo: zoe/covid-tracker-react-native


text:
Dropdown won't close after click on option on IE11

Hi, great plugin!
But I noticed that it has a bug in IE11: the dropdown won't close after click on an option!
Is that possible to fix?

Hey @caneta,
you need to include a Polyfill for CustomEvent in order for it to work in IE11.

authors: caneta usame-algan

repo: zoltantothcom/vanilla-js-dropdown

license: Unlicense


text:
cannot docker build

Hello.
I completed cmake -B build and I run docker build, but I got an error.
❯ docker build --no-cache -t msdk-6.0.2-on-centos8-compact -f Dockerfile-Centos8/Dockerfile .
[+] Building 146.6s (15/18)                                                                                docker:default
 => [internal] load build definition from Dockerfile                                                                    0.0s
 => => transferring dockerfile: 1.66kB                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for quay.io/centos/centos:8                                                                2.9s
 => [ 1/14] FROM quay.io/centos/centos:8@sha256:ec16f510e8cd1cceeddc6888fcb37c6d6b7c6863fbc70bdbe660a8ccad4bab6a        0.0s
 => [internal] load build context                                                                                0.1s
 => => transferring context: 278.10kB                                                                                0.1s
 => CACHED [ 2/14] WORKDIR /etc/yum.repos.d/                                                                            0.0s
 => [ 3/14] RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*                                           0.3s
 => [ 4/14] RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS  0.4s
 => [ 5/14] RUN yum update -y                                                                                33.1s
 => [ 6/14] RUN yum install -y dnf-plugins-core     && dnf install -y cmake gcc gcc-c++     && dnf config-manager --s  58.3s
 => [ 7/14] RUN yum install -y glib2-devel                                                                             41.0s
 => [ 8/14] RUN yum install -y pulseaudio pulseaudio-utils                                                              5.2s
 => [ 9/14] WORKDIR /app                                                                                0.0s
 => [10/14] COPY demo/ /app/demo/                                                                                1.8s
 => ERROR [11/14] RUN cd /app/demo && rm -rf bin && rm -rf build && cmake -B build && cd build && make                  3.6s
------
 > [11/14] RUN cd /app/demo && rm -rf bin && rm -rf build && cmake -B build && cd build && make:
0.890 -- The CXX compiler identification is GNU 8.5.0
0.908 -- Detecting CXX compiler ABI info
1.019 -- Detecting CXX compiler ABI info - done
1.025 -- Check for working CXX compiler: /usr/bin/c++ - skipped
1.025 -- Detecting CXX compile features
1.026 -- Detecting CXX compile features - done
1.030 -- Found PkgConfig: /usr/bin/pkg-config (found version "1.4.2")
1.049 -- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")
1.049 -- Checking for module 'glib-2.0'
1.059 --   Found glib-2.0, version 2.56.4
1.073 -- Checking for module 'gio-2.0'
1.080 --   Found gio-2.0, version 2.56.4
1.396 -- Configuring done
1.403 -- Generating done
1.404 -- Build files have been written to: /app/demo/build
1.438 [  8%] Building CXX object CMakeFiles/meetingSDKDemo.dir/meeting_sdk_demo.cpp.o
1.934 [ 16%] Building CXX object CMakeFiles/meetingSDKDemo.dir/MeetingReminderEventListener.cpp.o
2.054 [ 25%] Building CXX object CMakeFiles/meetingSDKDemo.dir/MeetingServiceEventListener.cpp.o
2.175 [ 33%] Building CXX object CMakeFiles/meetingSDKDemo.dir/NetworkConnectionHandler.cpp.o
2.292 [ 41%] Building CXX object CMakeFiles/meetingSDKDemo.dir/AuthServiceEventListener.cpp.o
2.409 [ 50%] Building CXX object CMakeFiles/meetingSDKDemo.dir/MeetingParticipantsCtrlEventListener.cpp.o
2.444 [ 58%] Building CXX object CMakeFiles/meetingSDKDemo.dir/MeetingRecordingCtrlEventListener.cpp.o
2.476 [ 66%] Building CXX object CMakeFiles/meetingSDKDemo.dir/ZoomSDKRenderer.cpp.o
2.609 [ 75%] Building CXX object CMakeFiles/meetingSDKDemo.dir/ZoomSDKAudioRawData.cpp.o
2.737 [ 83%] Building CXX object CMakeFiles/meetingSDKDemo.dir/ZoomSDKVideoSource.cpp.o
2.932 [ 91%] Building CXX object CMakeFiles/meetingSDKDemo.dir/ZoomSDKVirtualAudioMicEvent.cpp.o
3.168 [100%] Linking CXX executable ../bin/meetingSDKDemo
3.199 /usr/bin/ld: skipping incompatible /app/demo/lib/zoom_meeting_sdk/libmeetingsdk.so when searching for -lmeetingsdk
3.199 /usr/bin/ld: cannot find -lmeetingsdk
3.199 /usr/bin/ld: skipping incompatible /app/demo/lib/zoom_meeting_sdk/libmeetingsdk.so when searching for -lmeetingsdk
3.199 /usr/bin/ld: cannot find -lmeetingsdk
3.200 collect2: error: ld returned 1 exit status
3.201 make[2]: *** [CMakeFiles/meetingSDKDemo.dir/build.make:257: ../bin/meetingSDKDemo] Error 1
3.201 make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/meetingSDKDemo.dir/all] Error 2
3.201 make: *** [Makefile:91: all] Error 2
------
Dockerfile:33
--------------------
  31 |
  32 |     # Execute additional commands
  33 | >>>  RUN cd /app/demo && rm -rf bin && rm -rf build && cmake -B build && cd build && make
  34 |
  35 |      # Set the working directory to the binary folder
--------------------
ERROR: failed to solve: process "/bin/sh -c cd /app/demo && rm -rf bin && rm -rf build && cmake -B build && cd build && make" did not complete successfully: exit code: 2

how to solve this problem :( ?

did you copy the SDK files into this sample code?
3.199 /usr/bin/ld: skipping incompatible /app/demo/lib/zoom_meeting_sdk/libmeetingsdk.so when searching for -lmeetingsdk
3.199 /usr/bin/ld: cannot find -lmeetingsdk
3.199 /usr/bin/ld: skipping incompatible /app/demo/lib/zoom_meeting_sdk/libmeetingsdk.so when searching for -lmeetingsdk
3.199 /usr/bin/ld: cannot find -lmeetingsdk

Yes. I copied the .so files.
❯ ls -al
total 720600
drwxrwxr-x@ 9 jasper  staff        288  8 21 16:11 .
drwxrwxr-x@ 4 jasper  staff        128  8 20 14:45 ..
-rw-r--r--@ 1 jasper  staff       6148  8 21 16:11 .DS_Store
drwxr-xr-x@ 3 jasper  staff         96  8 20 13:43 json
-rwxr-xr-x@ 1 jasper  staff  183860952  8 20 13:42 libmeetingsdk.so
-rwxr-xr-x@ 1 jasper  staff  183860952  8 20 13:42 libmeetingsdk.so.1
-rwxr-xr-x@ 1 jasper  staff    1214824  8 20 13:42 libmpg123.so
drwxr-xr-x@ 4 jasper  staff        128  8 20 14:45 qt_libs
-rw-rw-r--@ 1 jasper  staff          0  6 21 17:36 readme.md
❯ pwd
/Users/jasper/Desktop/Workspaces/orelo-zoom-be/demo/lib/zoom_meeting_sdk

I solved the problem.
I use a MacBook M1 chip. This MacBook uses arm64 architecture.
But Zoom SDK supports x86_64(amd, intel chip).
Depending on the OS of the execution environment, if it is ARM64, install centos using ARM64 architecture, and download gcc and the version corresponding to ARM64.
In Dockerfile, FROM quay.io/centos/centos:8 is  install ARM64 centOS in m1 macbook.
I change the line to FROM --platform=linux/amd64 centos:8.
It installs centOS using AMD64 architecture.
And change the zoom SDK version to 6.0.2.
Build success!
This causes competition issues.


text:
simplify the recents schema for query optimization

move the has_one :through :classifications associations to belongs_to relations with indexes. Adds the belongs_to fkeys to recent schema and provides a rake task to backfill the missing information.
Once this is done we can remove the Recent has_one associations and modify the costly / complex recents query here to just use local indexes without the joins.
Review checklist

[ ] First, the most important one: is this PR small enough that you can actually review it? Feel free to just reject a branch if the changes are hard to review due to the length of the diff.
[ ] If there are any migrations, will they the previous version of the app work correctly after they've been run (e.g. the don't remove columns still known about by ActiveRecord).
[ ] If anything changed with regards to the public API, are those changes also documented in the apiary.apib file?
[ ] Are all the changes covered by tests? Think about any possible edge cases that might be left untested.

Yep - i've got PR #2127 to modify the recent scope selector to the belongs_to fk columns.

repo: zooniverse/Panoptes


text:
About page

Add Components for the about page.
Closes #63

Hey, good review! Turns out I was missing the whole "allow guest user to view docs" thing. Anonymous users should be able to visit the about page by clicking the "Link to Documentation" link on the home page.
In adding this, I noticed a bug in the code with sign out. Users are currently able to sign out via the client, but their user resource is still retained in the app. I'll a separate PR to fix this bug.

repo: zooniverse/text-editor


text:
Permission to write system settings

Why it is needed?
To set system screen timeout, to set volume, brightness, etc.
Possible implementation
No response
Code sample
No response

Please respect the feature request template.

repo: zoontek/react-native-permissions


text:
🛑 AI For Students is down

In 7df31b2, AI For Students (https://www.armyignited.army.mil/student/public/welcome) was down:

HTTP code: 0
Response time: 0 ms

Resolved: AI For Students is back up in 2d493ad.

repo: zootsewt/aistatus


text:
关于auth_code的疑问

您好，请问auth_code是固定的吗，还是说每个人的auth_code是不一样的呀。

不是固定的,用了两天发现 auth_code的有效期大概也就24小时,所以没用,无解.

不是固定的,用了两天发现 auth_code的有效期大概也就24小时,所以没用,无解.

哎，这个token真难搞...

不是固定的,用了两天发现 auth_code的有效期大概也就24小时,所以没用,无解.

那话说auth_code不是固定的  那这个是怎么得到的...有没有啥方法 大佬

不是固定的,用了两天发现 auth_code的有效期大概也就24小时,所以没用,无解.

那话说auth_code不是固定的 那这个是怎么得到的 除了每次抓包这种.......有没有啥方法 大佬

抓包 打卡那个小程序 第一个请求就是发送auth_code给服务器拿到第一个token

呜呜呜，我电脑抓包就断网....电脑抓包其他的有网，支付宝没网进不去。。手机抓包好不容易可以了，但就是进小程序这一步没网，进去了才有网再抓包....但已经过了那一步。

呜呜呜，我电脑抓包就断网....电脑抓包其他的有网，支付宝没网进不去。。手机抓包好不容易可以了，但就是进小程序这一步没网，进去了才有网再抓包....但已经过了那一步。

安装信任证书CA

呜呜呜，我电脑抓包就断网....电脑抓包其他的有网，支付宝没网进不去。。手机抓包好不容易可以了，但就是进小程序这一步没网，进去了才有网再抓包....但已经过了那一步。

安装信任证书CA

装了，但是装到用户证书里面，手机没root。模拟器root了 但也是进去的那一步没网，进去后在可以抓包，才有网。。。。不知道啥原因.....哎

不是固定的,用了两天发现 auth_code的有效期大概也就24小时,所以没用,无解.

话说 按理来auth_code是动态变化的话，是不是有别的方法可以动态获取auth_code，就不用抓包来获取了？是不是大佬？就是不知道它是怎么加密和获取的。哎，如果每次要抓包来获取就太难顶了...

不是固定的,用了两天发现 auth_code的有效期大概也就24小时,所以没用,无解.

话说 按理来auth_code是动态变化的话，是不是有别的方法可以动态获取auth_code，就不用抓包来获取了？是不是大佬？就是不知道它是怎么加密和获取的。哎，如果每次要抓包来获取就太难顶了...

auth_code是在支付宝小程序本地生成的 但不知道生成算法

3、授权码(auth_code)已被使用
auth_code为1次有效，不可重复使用，请确定传入的auth_code是否已经被使用过。
4、授权码(auth_code) 过期
auth_code有效期最久24小时，请确定传入的auth_code是否因为长时间未使用，已经过期。

根据支付宝文档，基本上是寄了

这个鸟样不知道是不是

不是固定的,用了两天发现 auth_code的有效期大概也就24小时,所以没用,无解.

话说 按理来auth_code是动态变化的话，是不是有别的方法可以动态获取auth_code，就不用抓包来获取了？是不是大佬？就是不知道它是怎么加密和获取的。哎，如果每次要抓包来获取就太难顶了...

auth_code是在支付宝小程序本地生成的 但不知道生成算法

要不逆向破解小程序？不知道校园防疫是不是加密了，在那个江西省终身电子卡首页，里面不是集成了很多小程序嘛。其他的小程序如“计算机成绩”等找到了小程序源码，唯独校园防疫源码不完整打不开...

这个鸟样不知道是不是过期了

拿得到token1就没过期 是他服务器经常抽风,就像平时要多次打开一样,有时候打开加载不出来就是这种情况

这个鸟样不知道是不是过期了

咦，你这auth_code是自己抓的嘛，我就抓不到...唉唉唉。不过这个有过期时间...抓到也没用....难受

这个鸟样不知道是不是过期了

咦，你这auth_code是自己抓的嘛，我就抓不到...唉唉唉。不过这个有过期时间...抓到也没用....难受

yes，苹果抓包挺方便的。安卓就蛋疼了

这个鸟样不知道是不是过期了

咦，你这auth_code是自己抓的嘛，我就抓不到...唉唉唉。不过这个有过期时间...抓到也没用....难受

yes，苹果抓包挺方便的。安卓就蛋疼了

请问 苹果你是用什么抓包的呀，手机连电脑然后fiddler吗 ，还是手机上用啥软件直接抓包？

我似乎发现一个可行的，对于请求到的token2数据：
{'code': 0, 'message': 'Success', 'timestamp': 165*****418626, 'info': {'status': 0, 'card_id': '12*****65390594', 'name': '*****', 'id_card_md5': '*****ae6b1*****445b0604616bdd4', 'school_list': [{'school_number': '4*****1', 'school_name': '江西*****'}], 'epidemic_situation': {'last_update_time': '202*****0:54', 'confirm': 935, 'dead': 1, 'heal': 934}, 'token': 'elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg=='}}
card_id id_card_md5似乎是不变的。获取到token2后拼凑的login url：
https://fxgl.jx.edu.cn/4136010406/third/alipayLogin?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4&token=elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg==
会跳转到一个信息验证界面：https://xycr.jx.edu.cn/public/register?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4，也就是去除了token参数

输入对应的信息后，显示绑定成功，然后跳转到了
https://fxgl.jx.edu.cn/4136010421/index;jsessionid=C750FF9CAE4E34D67C18AC7920A6CF09，包含我们提交需要用到的jsessionid，不知道是否有用

这个鸟样不知道是不是过期了

咦，你这auth_code是自己抓的嘛，我就抓不到...唉唉唉。不过这个有过期时间...抓到也没用....难受

yes，苹果抓包挺方便的。安卓就蛋疼了

请问 苹果你是用什么抓包的呀，手机连电脑然后fiddler吗 ，还是手机上用啥软件直接抓包？

苹果手机抓包的软件很多而且很方便，我一开始用的是thor，能改包能重放包非常方便。可是我现在升级了beta系统，现在thor用不了，appstore随便下了个抓包软件，叫storm sniffer

我似乎发现一个可行的，对于请求到的token2数据： {'code': 0, 'message': 'Success', 'timestamp': 165*****418626, 'info': {'status': 0, 'card_id': '12*****65390594', 'name': '*****', 'id_card_md5': '*****ae6b1*****445b0604616bdd4', 'school_list': [{'school_number': '4*****1', 'school_name': '江西*****'}], 'epidemic_situation': {'last_update_time': '202*****0:54', 'confirm': 935, 'dead': 1, 'heal': 934}, 'token': 'elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg=='}} card_id id_card_md5似乎是不变的。获取到token2后拼凑的login url： https://fxgl.jx.edu.cn/4136010406/third/alipayLogin?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4&token=elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg== 会跳转到一个信息验证界面：https://xycr.jx.edu.cn/public/register?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4，也就是去除了token参数  输入对应的信息后，显示绑定成功，然后跳转到了 https://fxgl.jx.edu.cn/4136010421/index;jsessionid=C750FF9CAE4E34D67C18AC7920A6CF09，包含我们提交需要用到的jsessionid，不知道是否有用

因为我手机上没发请求重放了，挨个copy请求参数太麻烦了，老哥你可以试一下这个jsessionid是否是有用的

用圈x啊😋去广告fq 还能抓包 执行定时任务

哦对了老哥注意隐匿自己的信息，我做的脚本之前有人威胁我，逗乐我了，不过还是防一下（此消息阅后即焚😊）

用圈x啊😋去广告fq 还能抓包 执行定时任务

买不起啊

我似乎发现一个可行的，对于请求到的token2数据： {'code': 0, 'message': 'Success', 'timestamp': 165*****418626, 'info': {'status': 0, 'card_id': '12*****65390594', 'name': '*****', 'id_card_md5': '*****ae6b1*****445b0604616bdd4', 'school_list': [{'school_number': '4*****1', 'school_name': '江西*****'}], 'epidemic_situation': {'last_update_time': '202*****0:54', 'confirm': 935, 'dead': 1, 'heal': 934}, 'token': 'elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg=='}} card_id id_card_md5似乎是不变的。获取到token2后拼凑的login url： https://fxgl.jx.edu.cn/4136010406/third/alipayLogin?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4&token=elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg== 会跳转到一个信息验证界面：https://xycr.jx.edu.cn/public/register?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4，也就是去除了token参数  输入对应的信息后，显示绑定成功，然后跳转到了 https://fxgl.jx.edu.cn/4136010421/index;jsessionid=C750FF9CAE4E34D67C18AC79****09，包含我们提交需要用到的jsessionid，不知道是否有用

因为我手机上没发请求重放了，挨个copy请求参数太麻烦了，老哥你可以试一下这个jsessionid是否是有用的

那两个固定的  一个是江西省学生卡的id（非卡号），一个md5加密的是身份证号通过md5加密

我似乎发现一个可行的，对于请求到的token2数据： {'code': 0, 'message': 'Success', 'timestamp': 165*****418626, 'info': {'status': 0, 'card_id': '12*****65390594', 'name': '*****', 'id_card_md5': '*****ae6b1*****445b0604616bdd4', 'school_list': [{'school_number': '4*****1', 'school_name': '江西*****'}], 'epidemic_situation': {'last_update_time': '202*****0:54', 'confirm': 935, 'dead': 1, 'heal': 934}, 'token': 'elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg=='}} card_id id_card_md5似乎是不变的。获取到token2后拼凑的login url： https://fxgl.jx.edu.cn/4136010406/third/alipayLogin?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4&token=elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg== 会跳转到一个信息验证界面：https://xycr.jx.edu.cn/public/register?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4，也就是去除了token参数  输入对应的信息后，显示绑定成功，然后跳转到了 https://fxgl.jx.edu.cn/4136010421/index;jsessionid=C750FF9CAE4E34D67C18AC79****09，包含我们提交需要用到的jsessionid，不知道是否有用

因为我手机上没发请求重放了，挨个copy请求参数太麻烦了，老哥你可以试一下这个jsessionid是否是有用的

那两个固定的 一个是江西省学生卡的id（非卡号），一个md5加密的是身份证号通过md5加密

我去试试老哥说的这个方法

用圈x啊😋去广告fq 还能抓包 执行定时任务

买不起啊

抓包软件我有了thor真的很好用，翻墙软件。。。我用白嫖的圈，圈x贵了而且还有设备验证

我似乎发现一个可行的，对于请求到的token2数据： {'code': 0, 'message': 'Success', 'timestamp': 165*****418626, 'info': {'status': 0, 'card_id': '12*****65390594', 'name': '*****', 'id_card_md5': '*****ae6b1*****445b0604616bdd4', 'school_list': [{'school_number': '4*****1', 'school_name': '江西*****'}], 'epidemic_situation': {'last_update_time': '202*****0:54', 'confirm': 935, 'dead': 1, 'heal': 934}, 'token': 'elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg=='}} card_id id_card_md5似乎是不变的。获取到token2后拼凑的login url： https://fxgl.jx.edu.cn/4136010406/third/alipayLogin?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4&token=elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg== 会跳转到一个信息验证界面：https://xycr.jx.edu.cn/public/register?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4，也就是去除了token参数  输入对应的信息后，显示绑定成功，然后跳转到了 https://fxgl.jx.edu.cn/4136010421/index;jsessionid=C750FF9CAE4E34D67C18AC79****09，包含我们提交需要用到的jsessionid，不知道是否有用

因为我手机上没发请求重放了，挨个copy请求参数太麻烦了，老哥你可以试一下这个jsessionid是否是有用的

那两个固定的 一个是江西省学生卡的id（非卡号），一个md5加密的是身份证号通过md5加密

我去试试老哥说的这个方法

靠你了，无意中试了下，我懒哈哈哈

我学校早就不用这个破小程序了，太烦了。。。。。

我似乎发现一个可行的，对于请求到的token2数据： {'code': 0, 'message': 'Success', 'timestamp': 165*****418626, 'info': {'status': 0, 'card_id': '12*****65390594', 'name': '*****', 'id_card_md5': '*****ae6b1*****445b0604616bdd4', 'school_list': [{'school_number': '4*****1', 'school_name': '江西*****'}], 'epidemic_situation': {'last_update_time': '202*****0:54', 'confirm': 935, 'dead': 1, 'heal': 934}, 'token': 'elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg=='}} card_id id_card_md5似乎是不变的。获取到token2后拼凑的login url： https://fxgl.jx.edu.cn/4136010406/third/alipayLogin?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4&token=elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg== 会跳转到一个信息验证界面：https://xycr.jx.edu.cn/public/register?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4，也就是去除了token参数  输入对应的信息后，显示绑定成功，然后跳转到了 https://fxgl.jx.edu.cn/4136010421/index;jsessionid=C750FF9CAE4E34D67C18AC79****09，包含我们提交需要用到的jsessionid，不知道是否有用

因为我手机上没发请求重放了，挨个copy请求参数太麻烦了，老哥你可以试一下这个jsessionid是否是有用的

那两个固定的 一个是江西省学生卡的id（非卡号），一个md5加密的是身份证号通过md5加密

我去试试老哥说的这个方法

靠你了，无意中试了下，我懒哈哈哈

这个注册的我好像遇到弄过，但当时不知道传的参数啥意思，随便填的 也说注册成功，不知道信息正确的话 有没有用

我似乎发现一个可行的，对于请求到的token2数据： {'code': 0, 'message': 'Success', 'timestamp': 165*****418626, 'info': {'status': 0, 'card_id': '12*****65390594', 'name': '*****', 'id_card_md5': '*****ae6b1*****445b0604616bdd4', 'school_list': [{'school_number': '4*****1', 'school_name': '江西*****'}], 'epidemic_situation': {'last_update_time': '202*****0:54', 'confirm': 935, 'dead': 1, 'heal': 934}, 'token': 'elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg=='}} card_id id_card_md5似乎是不变的。获取到token2后拼凑的login url： https://fxgl.jx.edu.cn/4136010406/third/alipayLogin?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4&token=elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg== 会跳转到一个信息验证界面：https://xycr.jx.edu.cn/public/register?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4，也就是去除了token参数  输入对应的信息后，显示绑定成功，然后跳转到了 https://fxgl.jx.edu.cn/4136010421/index;jsessionid=C750FF9CAE4E34D67C18AC79****09，包含我们提交需要用到的jsessionid，不知道是否有用

因为我手机上没发请求重放了，挨个copy请求参数太麻烦了，老哥你可以试一下这个jsessionid是否是有用的

最后这个带jsessionid的url电脑上开是404，应该要设好UA，估计是识别到不是支付宝，就直接404了，之前他们就这么干的

我似乎发现一个可行的，对于请求到的token2数据： {'code': 0, 'message': 'Success', 'timestamp': 165*****418626, 'info': {'status': 0, 'card_id': '12*****65390594', 'name': '*****', 'id_card_md5': '*****ae6b1*****445b0604616bdd4', 'school_list': [{'school_number': '4*****1', 'school_name': '江西*****'}], 'epidemic_situation': {'last_update_time': '202*****0:54', 'confirm': 935, 'dead': 1, 'heal': 934}, 'token': 'elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg=='}} card_id id_card_md5似乎是不变的。获取到token2后拼凑的login url： https://fxgl.jx.edu.cn/4136010406/third/alipayLogin?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4&token=elNKVUhESjBIVEdr********************2NmQmtBc3c0bDlXYUMxWTFqNg== 会跳转到一个信息验证界面：https://xycr.jx.edu.cn/public/register?cardId=12*****65390594&sfzMd5=*****ae6b1*****445b0604616bdd4，也就是去除了token参数  输入对应的信息后，显示绑定成功，然后跳转到了 https://fxgl.jx.edu.cn/4136010421/index;jsessionid=C750FF9CAE4E34D67C18AC79****09，包含我们提交需要用到的jsessionid，不知道是否有用

因为我手机上没发请求重放了，挨个copy请求参数太麻烦了，老哥你可以试一下这个jsessionid是否是有用的

那两个固定的 一个是江西省学生卡的id（非卡号），一个md5加密的是身份证号通过md5加密

我去试试老哥说的这个方法

靠你了，无意中试了下，我懒哈哈哈

这个注册的我好像遇到弄过，但当时不知道传的参数啥意思，随便填的 也说注册成功，不知道信息正确的话 有没有用

我试了随便填，显示了错误。正确填就跳到了index还附带jsessionid

我试了随便填，显示了错误。正确填就跳到了index还附带jsessionid

这个思路就是这个脚本的思路呀

最根本的还是要知道怎么生成auth_code 拿jsessionid就是直接get拼凑出的login_url

哦对了老哥注意隐匿自己的信息，我做的脚本之前有人威胁我，逗乐我了，不过还是防一下（此消息阅后即焚😊）

知道为什么你失败了 login_url学校代码没换.

直接g了,除非抓支付宝小程序登录接口但也不是没办法,frida hook 或者xped 做hook 定时签到还是可以的,太麻烦了所以没必要,按时签到吧

直接g了,除非抓支付宝小程序登录接口但也不是没办法,frida hook 或者xped 做hook 定时签到还是可以的,太麻烦了所以没必要,按时签到吧

确实，不过我学校很早就不用签了哈哈哈

直接g了,除非抓支付宝小程序登录接口但也不是没办法,frida hook 或者xped 做hook 定时签到还是可以的,太麻烦了所以没必要,按时签到吧

确实，不过我学校很早就不用签了哈哈哈

真好,我那破学校天天签到


text:
Publish Zowe v1.14 doc

Your checklist for this pull request
🚨Please review the guidelines for contributing to this repository.

[x] If the changes in this PR is part of the next future release, make this pull request against the docs-staging branch which will be published at the next release boundary. If the changes in this PR are part of the current release, use the default base branch, master. For more information about branches, see https://github.com/zowe/docs-site/tree/master#understanding-the-doc-branches.

[x] If this PR relates to GitHub issues in docs-site or other repositories, please list in Description, prefixed with close, fix or resolve keywords.

Description (including links to related git issues)

[x] 1.14.x LTS site configuration

[x] Bump release version in docs-staging branch
[x] Archive the master branch to be v1.13.x [Instructions]
[x] Update Algolia search [Instructions]

[x] Release Notes set up
[ ] TPSRs [Instructions]
[ ] BoM update (manual)
[x] Archive PDF

:heart:Thank you!

Broken link in this branch -

http://zowe-docs-test-links/stable/getting-started/summaryofchanges.html https://docs.zowe.org/stable/user-guide/scripted-configure-server.html "75" "404 Not Found" "-"

repo: zowe/docs-site


text:
Fail to install zplug: No command 'zplug' found

Type:

[ ] Bug
[ ] Enhancement
[ ] Feature Request
[x] Question

zplug --version:

fails "No command 'zplug' found, did you mean:
 Command 'plug' from package 'mustang-plug' (universe)
zplug: command not found

zsh --version: zsh 5.1.1 (x86_64-ubuntu-linux-gnu)
uname -a: Linux mango 4.4.0-38-generic #57-Ubuntu SMP Tue Sep 6 15:42:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Minimal zshrc (with less than 30 lines)
I copied the example zshrc like in the README
Step to reproduce

sudo adduser foo
sudo usermod -aG sudo foo
su - foo
curl -sL --proto-redir -all,https https://zplug.sh/installer | zsh
copy example .zshrc to ~/.zshrc
zplug install

No command 'zplug' found, did you mean:
 Command 'plug' from package 'mustang-plug' (universe)
zplug: command not found

I wanted to create a new user on my system to not mess with my current zsh+prezto setup, but fail to use the zplug command after installing via curl. It cannot find the zplug command. Sorry, it's not obvious to me why it's not working.

I'm also on the same problem. Clearly what I know is the installation command, curl -sL --proto-redir -all,https https://zplug.sh/installer | zsh, cannot download any contents. So I think the empty .zplug causes this problem.

Maybe https://zplug.sh is not valid anymore. See #403.

Closing as a duplicate of #403

repo: zplug/zplug


text:
Student Sign Up

Student sign up should generate a unique username for the students to go and sign in. Users must provide an email and a password that satisifies certain criteria. users will be emailed a username that  will be uniquely generated by the system

Student will enter their first name, last name, email, password, password confirmation. The system will validate all field to ensure that they meet the criteria and provide an accurate error message if not. Once user has successfully signed up they will be stored in the database and they will receive a confirmation email.

authors: joshuaduke zthaver

repo: zthaver/Enrollment-System


text:
Change left sidebar stream background coloring to something more subtle.

The current scheme for coloring which involves the background color of the streams becoming the color of the stream does not feel like the right approach to me, and is visually heavy. Perhaps take the strategy in the second tab where there is a white/black hash inside of a colored square with rounded edges, or just color the hash?

I agree. I did the background mostly because the stream being a section header had to have some background (so the other items don't show behind them)

authors: borisyankov brockwhittaker

repo: zulip/zulip-mobile


text:
Fix status bar color and hide when drawers open.

Status bar text color now matches the navigation bar color for a particular narrow. In addition, the status bar animates out of the way as drawers open.

Better status bar behavior (#300) contains other improvements and should not just be reverted.
Also, in Android the behavior is different. StatusBar should never hide.

I copied over the pieces of #300 that I thought still applied. Let me know if there's anything specific I missed.
For Android it seems like a more common pattern is an overlay drawer (which overs up the status bar). This is also what the Zulip Android app has.

authors: borisyankov neerajwahi


text:
[WIP]Add a test commit for docs.

issue #3451
Had done changes in 2 file from connectFlowfixme to connect and fixed the error given by yarn flow

Thanks @keshav234156, and welcome !
The change to ActivityText looks good, modulo some style things you can fix:

There are lint errors. See our testing doc for more.
I recommend setting up VS Code so that the code you edit gets formatted automatically whenever you save.

See our guide on clear and coherent commits, especially the section on commit messages.
This change would also be helpful to split up into two commits -- one for ActivityText and one for TopicListScreen, since those are basically independent to explain and understand.

Then in the other changes:

In TopicListScreen you change the actual runtime behavior of the code. Is that change correct? Why? Does the code work correctly after the change, and did it work correctly already?
(I think the answer is that this change breaks this code.)


text:
settings: Add option to mark read on scroll only in conversation views

Thanks to the handy new InputRowRadioButtons component we added in edf53220f, this is now a quick user-visible feature we can check off the list.
Screenshots below.
Fixes: #5241
Replaces: #5294

Before:

After:

Ah, looking at the settings screen there, the right-facing arrows aren't lined up. Let's check back in after #5446 is merged; I expect that to go in the right direction towards fixing that (see screenshots there), and may even fix it entirely. Marking as blocked on #5446.

#5446 has been merged, so I think the next step is to rebase atop that and see how that alignment looks.

#5446 has been merged, so I think the next step is to rebase atop that and see how that alignment looks.

Yep, I agree. I haven't done that yet in this latest revision—for now, this just resolves rebase conflicts, and adds two commits on top that convert to using Flow enums now that #5444 has landed. We can see how we like that for this use case. 🙂 For now I have to run, though.

Thanks for the revision! Will take a look at the code momentarily.
@alya, do you have any thoughts on the text in the new screen? See the lower-right screenshot in the first comment above.

Thanks for the review! Revision pushed.

Thanks! Looks good -- merging.
@alya, if you have any thoughts on the settings text, happy to make a change.

Sorry I missed the question earlier! I started a thread about tweaking the hint on CZO: https://chat.zulip.org/#narrow/stream/243-mobile-team/topic/mark.20as.20read.20setting.20.23M5469/near/1433721

authors: alya chrisbobbe gnprice


text:
Make to_non_negative_int support a maximum argument

Our to_non_negative_int REQ converter (read our "developer tutorials" if you don't know what this is) should validate the maximum for the integer, and return a user error in the case that it's too large.
Probably should change it to a nested decorator to_non_negative_int(max: int=None).  See api_key_only_webhook_view for an example similar decorator.  The error message can be e.g. "'%s' is too large (max %s)".
I think it makes sense to have a default maximum of 2^32-1 (for the use cases that are e.g. a message ID), but probably some call points will want something more like 10000.
As a reproducer, here's the exception if you e.g. put a bunch of 9s as your message edit time limit.
Traceback (most recent call last):
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "./zerver/lib/rest.py", line 143, in rest_dispatch
    return target_function(request, **kwargs)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "./zerver/decorator.py", line 707, in _wrapped_view_func
    return authenticate_log_and_execute_json(request, view_func, *args, **kwargs)
  File "./zerver/decorator.py", line 686, in authenticate_log_and_execute_json
    return limited_view_func(request, user_profile, *args, **kwargs)
  File "./zerver/decorator.py", line 853, in wrapped_func
    return func(request, *args, **kwargs)
  File "./zerver/decorator.py", line 136, in wrapper
    return func(request, user_profile, *args, **kwargs)
  File "./zerver/lib/request.py", line 220, in _wrapped_view_func
    return view_func(request, *args, **kwargs)
  File "./zerver/views/realm.py", line 150, in update_realm
    allow_community_topic_editing)
  File "./zerver/lib/actions.py", line 592, in do_set_realm_message_editing
    'message_content_edit_limit_seconds',
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/models/base.py", line 808, in save
    force_update=force_update, update_fields=update_fields)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/models/base.py", line 838, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/models/base.py", line 905, in _save_table
    forced_update)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/models/base.py", line 955, in _do_update
    return filtered._update(values) > 0
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/models/query.py", line 667, in _update
    return query.get_compiler(self.db).execute_sql(CURSOR)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 1204, in execute_sql
    cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 899, in execute_sql
    raise original_exception
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 889, in execute_sql
    cursor.execute(sql, params)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/home/zulip/deployments/2019-02-03-06-56-36/zulip-py3-venv/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "./zerver/lib/db.py", line 32, in execute
    return wrapper_execute(self, super().execute, query, vars)
  File "./zerver/lib/db.py", line 19, in wrapper_execute
    return action(sql, params)
django.db.utils.DataError: integer out of range

@zulipbot claim

authors: refeed timabbott

repo: zulip/zulip


text:
Fix redirect to "undefined" page when users attempt to access owner/admin only settings.

During testing in #23144, I noticed that if a non owner/admin user goes to http://localhost:9991/#organization/profile-field-settings, it will redirect to http://localhost:9991/#organization/undefined with the following message:

Instead, we might want to redirect somewhere else e.g. http://localhost:9991/#organization/, and/or show an appropriate message if possible.

@zulipbot add "bug" "release goal"

@sahil839 could you please look into this one? Thanks!

authors: alya drrosa


text:
Replace run-dev.py check on Zulip user to determine default ports with something file based

From 92d1b6d6da3a2e523ca8b1e30f7827b10b5f652f:
Ideally, we'd replace the vagrant/zulipdev user check with something
that just checks whether a special file that is created by the
Vagrant/remote-dev-vm creation process exists; that would be more
robust.

We could create the file in the little script section in Vagrantfile that calls provision.

Little help : what is this file and its name? Knowing that is possible to check the file existence.

@zulipbot claim

I think this is probably not a priority worth investing in right now, since it carries some bugs/transition cost and isn't likely to add much benefit.  So I'd only encourage someone who has already significant expertise editing our provisioning system (And thus can be confident they'll do this correctly) to work on it.

I'm closing this as wontfix for now, since it was only ever a theoretical development environment tooling problem, and is unlikely to be worth spending time on until someone actually runs into a problem here.

authors: RCSM aayushagra timabbott


text:
Remove bots from typeahead in the person picker fields

Currently, bot names are also displayed in the typeahead of person picker custom profile fields in Personal Settings or in Manage Users modal. Selecting a bot results in a Save failed error message as we cannot add bots as mentors.

Mentor field in Personal settings -

Mentor field in Manage user modal -

Ideally, bots shouldn't be displayed in the typeahead to avoid errors and confusion.
As discussed on CZO, We should do the following -

[ ] Remove bots from the typeahead in person picker custom profile fields (Personal settings and Manage user)

@zulipbot claim

I had to attend a personal issue but I will be back on it this week, thanks

@zulipbot claim

Currently it is waiting for a pull request review https://github.com/zulip/zulip/pull/25309.
Can this get an update? Thanks!
@alya @SameepAher @timabbott

@zulipbot There is an ongoing PR
typeahead: Remove bots in person picker custom profile fields. #25309


text:
Leave room for placeholder text at larger font sizes

We should make sure that placeholder text in settings filter boxes fits in the box at a 16px font size, at least in English. It would be fine for the text box to be a bit wider. These are the only two I saw that don't work at 16px.
We could figure out a robust solution here, or just fix for 16px for now if that's hard.

At 16px font size, it's fitting properly for me in firefox and chrome. It starts to cut off at 17px.

I'm testing at 16/140 in Chrome. Not sure why it's not replicating for you.

Did you turn off the "Dense mode" setting?

I also tested at 16/140 in Chrome and I cannot reproduce.

I dunno, it's still reliably reproducing for me. Should we just make these fields a touch wider?

@zulipbot claim

@zulipbot  claim


text:
Add supporting docs for installing zulip on debian 10

I had faced some issues while installing Zulip in the my system which runs Debian 10-buster. I have successfully completed installation with help of Zulip project admins. I wished to contribute to the documentation part for supporting Debian 10.
I wish to contribute to this issue and please help me in navigation where docs for this page is
Vagrant setup

@kurianbenoy great!  Are you using Zulip for development for production or development?  I assume development, right?  @YagoGG has done some work on our Debian 9 support and is probably a good person to consult with.

authors: kurianbenoy timabbott


text:
color-picker: Update the UI of color-picker.

This commit updates the design of the buttons present
in the color picker. Also, improved the overall UI
of the container.

Testing Plan:
GIFs or Screenshots:
Before

After

Before:

After:

This seems like a reasonable change.  I like that it seems to eliminate a lot of CSS.
My only minor nit is that we have to further modify the spectrum.js code.  I assume this is kind of unavoidable, though.

Yeah, I think it's okayish to modify the code in spectrum.js according to our requirements. For an example, the cancel link should be a button which we should change -

Also, the UI wise the PR is okay, I just wanted to get feedback if the code I have added/removed is in the right place or not. The styling for the color picker is basically divided in -

popovers.scss
subscriptions.scss
spectrum.css

We could just put the code in one file i.e. spectrum.css but putting it in the file where it belongs also makes sense.

The CSS file situation is a bit messy in any case; I think we might be happier moving all of our custom spectrum-override CSS into e.g. static/styles/app_components.scss.

The structural issue is that ideally we don't want to be patching the third-party spectrum module extensively if we can avoid it; it'd be much better to do the overrides in our own code so that we can safely upgrade the spectrum module with third-party improvements.

Closing since this is superceded by other changes.

authors: akashnimare showell timabbott


text:
settings: Disable auto-hide on right pane scrollbar

Closes #11694.
Personally I’m not sure I agree with this change. #11694 describes a bug where the scrollbar would fail to appear, and that bug has now been fixed by #11792. So I’m not convinced it should be necessary to make the scrollbar even more persistent.
But, if we decide this is a change we want, here it is.
(The first commit, replacing imperative ui.set_up_scrollbar() calls with the declarative <div data-simplebar> syntax, seems like a nicer way to create SimpleBars either way.)
Testing Plan: Ran test-js-with-node, test-js-with-casper, manual tests.

I merged the first commit, since indeed that seems like a great improvement.
@rishig for revisiting whether we want the always-on behavior on that scrollbar (also note it's a 1-line change to enable that if there are other scrollbars that we think need it).

I see Anders' point, though I think my inclination is to still have it always-on, and ideally even a bit darker/more contrasty than we have now. I think given that admins only rarely visit the settings pages, it's more important for them to realize that there is stuff under the fold, than for the page to look nice.
I saw another product do: scrollbar is on if the mouse is anywhere over the right pane, and off otherwise, which I think also works well, if we wanted to hide the scrollbar in some cases. In their case the scrollbar has very high contrast with the underlying background.

I saw another product do: scrollbar is on if the mouse is anywhere over the right pane, and off otherwise, which I think also works well, if we wanted to hide the scrollbar in some cases.

SimpleBar doesn’t have that particular behavior as an option.
On #10544 you said:

If it's in a modal .. we should consider using the browser scrollbar, but if we can't, we should use a high-contrast, always-on scrollbar.

I don’t think there’s a reason not to use the browser scrollbar here, and I think I’d prefer it too—should we just do that?
(Meanwhile, I’ll see what we can do about the SimpleBar contrast; I set it to gray to avoid needing separate colors for night mode, but we should probably just have separate colors.)

Merged, thanks @andersk!  @rishig can you open a follow-up issue with additional widgets that should have this?  (Or possibly a PR that changes them -- it's 1 line-change to the HTML, so probably pretty easy to just do)

Opened as #12434 and #12435

authors: andersk rishig timabbott


text:
message_fetch: Use user IDs for supported operators.

The approach taken here is basically use user IDs in operator that
support it when sending the request for fetching the messages
(see comments in code for more details).
Testing Plan:

Confirm in devtools that user IDs are sent for pm-with operator.
Make sure PM, Group PM, and stream narrow work.
Search with invalid emails for pm-with operator to make sure no error is thrown (in people.js code).

Cool.  I think we'll probably be able to simplify this when we migrate the webapp search system to use input fills, in that we should be able to just store the user IDs on the pill objects and not need to parse from email addresses.

(Can we easily also do this for sender: and friends?)

Yes, we can do similar migration for others easily and I am almost done with group-pm-with, sender, and stream,

authors: priyank-p timabbott


text:
Added installation guide link and fix broken links

Added link of Desktop installation guides for the ease of the user. Fix the following links on page

Connect through a proxy
Add a custom certificate

Screenshots after changes:

@adityamudgil2505  Don't hard code the link "https://zulipchat.com/help/desktop-app-install-guide" . Use relative links to load the template. This is why your tests are failing.
Also, a single commit will be good enough for this PR. No need to make mutiple commits. You can change  a previous commit by using git commit --amend .

@vsvipul Sure, I will use relative links and will squash all the commits.

Closing as this seems to have this page link to itself.

authors: adityamudgil2505 timabbott vsvipul


text:
nginx: Listen for ACME challenges on port 80 too

This should make Certbot renewals more reliable.
Testing Plan: http://andersk.zulipdev.org/.well-known/acme-challenge/ no longer redirects to HTTPS.

Hmm, yeah, good idea.

authors: andersk timabbott


text:
api docs: Document POST /users/{user_id}/reactivate endpoint.

This documents the POST /users/{user_id}/reactivate endpoint.

@timabbott Can you have a look ?

Looks great, merged, thanks @akashaviator!  Thought I think we may want to move the {!api-admin-only.md!} into the openapi description rather than leaving it in the main .md files?
@orientor was there a reason you didn't do this before?

@timabbott I think the markdown wasn't parsing !{api-admin-only.md} but I will edit the markdown extension.

So, before you do that, I wonder if there's a recommended way we're supposed to write that an endpoint is admin-only in the OpenAPI format -- if there is, we can potentially replace this macro with just having the openapi tooling write out that element rather than having it appear in the description text.

Sure, I will look about it online.

authors: akashaviator orientor timabbott


text:
Rename production test suite option of the provision script

Work towards https://github.com/zulip/docker-zulip/issues/256
@timabbott Should I also make a PR to 2.1.x branch?

This looks great; though we should wait for CI to finish and @amanagr can you verify that the build log doesn't do the extra work we're trying to avoid?
And then @arpit551 can you confirm that pointing docker-zulip at this branch, it actually fixes the issue to switch docker-zulip to use this option?

@timabbott yes I tested it is working. Opened https://github.com/zulip/docker-zulip/pull/257

Merged, thanks @arpit551!

Can you also submit a PR for the 2.1.x branch for the option name change?


text:
stream-settings: Add support for subscribing all members of a user groups to stream.

Fixes: #15186.
It adds support for user group pills to subscribe user groups to stream.
This completes and extends work done by @ryanreh99 in pr #16517
Testing plan:
Manually in dev server.
Adding/modifying node tests to cover new changes.
GIFs or screenshots:

Checking the working of copy paste

@timabbott
Thanks for merging this.
I went through the points about cleanup you suggested, but I am not clear about the third point. does that mean that on pasting a comma separated email addresses, input field should not automatically create pills for valid addresses but show them in typeahead?
I'll start working on other two points for now.


text:
help_docs: Update invite users for setting invitation expirations.

Updates documentation on sending invitations to new users to include adding an expiration time period to the invitation as part of the instructions. Also, clarifies the instructions for adding domains in the enable email signup section.
Finally, simplifies some descriptive / instructional text to follow current help center documentation styles (simplifying text when possible, removing default if possible, using shared save-changes doc, etc.).
Fixes #21520.
Screenshot of updated Send invite instructions block:

Screenshot of updated Enable email signup instructions block:

This makes me realize that the whole "Enable email signups" section is really confusing. We should split out the instructions for restricting the domain from general instructions for setting your org to have email signups. I think tabs are not a good mechanism for communicating this.
Could you take a pass at that bit of restructuring?

Yeah I'll second that thought -- the precise tabs structure we had here made it feel really hard for us to link to this feature in our recent blog post about a security issue involving this code path.

Let's remove the explicit list of roles under "send invitations".

Let's move the shared "You will only see Invite users in the gear menu if you have permission to invite users." note out of the tabs. I would put something like this just under the "Send invitations" heading:

You will only see an Invite users option if you have permission to invite users to the organization.

So, I've made the updates to the 3 review comments above related to sending invitations.
As far as restructuring the Enable email signup section:

I've removed the tabbed sections that were in the Enable email signup section and created two sections instead.
I've updated the instruction for choosing between the Restrict email domains of new users? so that we can add some explanatory text for those options.
I've also added a second commit that updates the help center documentation related to inviting users for all the updates we've made to the invite-new-users article.

See this CZO chat for more details.
@alya - Would you be up for updating this current, in-progress version for the explanatory text that's missing from the instruction for the Restrict email domains of new users dropdown options (which is in both invite-new-users and allow-anyone-to-join-without-an-invitation)?

Replaced by #21566.

authors: alya laurynmm timabbott


text:
Add --rotate-api-keys option to logout_all_users command

Fixes #19397
https://chat.zulip.org/#narrow/stream/3-backend/topic/Adding.20--rotate-api-keys.20option.20to.20logout_all_users

I merged the 3 prep commits as the series ending with 4e1befa209f3eaf21e69396bb4eab9b4aec40812.

This works but is a bit messy. We could probably deduplicate a bit better by having the different blocks each just set a regenerate_api_key_queryset parameter, and then having a single if rotate_api_keys block at the end.

This works but is a bit messy. We could probably deduplicate a bit better by having the different blocks each just set a regenerate_api_key_queryset parameter, and then having a single if rotate_api_keys block at the end.

Yeah, that's a good idea - I refactored to make it that way

Merged, thanks @mateuszmandera!

authors: mateuszmandera timabbott


text:
js: Break cyclic dependency between admin.js and settings.js.

There was a direct dependency between admin.js and settings.js which was due to the fact that we needed to call build_page of both modules in each other's launch function.
This is solved by lifting those build_page calls up from both modules to hashchange.js which is the module which calls the launch function of both modules.

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@timabbott Moved both the build_page calls to hashchange as per your suggestion, ready for a quick review!

Merged, thanks @Lalit3716!


text:
message_grid: Properly align elements in media-only messages.

This PR corrects a problem with media-only messages, or messages that open with media, where the EDITED/MOVED markers and timestamps appear at the bottom of the message box.
In those cases, there is no text element for the message to participate in the baseline group established on the messagebox-content grid, which uses align-items: baseline to ensure correct alignment of the EDITED/MOVED markers and timestamps.
Here, when a browser supports the :has() pseudo-class, the .rendered_markdown area is pulled out of the baseline group, by setting it to align-self: start (images just sit at the start of the box).
When a browser doesn't support :has(), we instead prepare a different inline presentation of inline media, as an inline grid. It's a grid with a single track (one column and row), into which both the media and a piece of invisible rendered text content (a single .) are placed.
We can't use the usual trick of something like position: absolute on the generated content, because absolute positioning not only pulls the element out of the document flow (necessary, so the . doesn't push the media down in the thumbnail box)--but out of the baseline group as well.
Because the media comes after the generated ::before element in the DOM, the media will always appear to be stacked on top of the generated . in this little inline-grid. But to ensure the . doesn't shine through, in light or dark mode, when the media is smaller than the thumbnail area, we set its color to transparent.
CZO discussion
Screenshots and screen captures:

Before
After, with :has() support
After, with fallback (no :has())

TODOs

[ ] Make sure the structures expressed here match the embedded video structure as planned in @amanagr's #20449

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Merged, thanks @karlstolley!

authors: karlstolley timabbott


text:
docs: Add warning about failed provisioning on macOS.

This PR adds a warning targeted to macOS users who may experience provisioning failures.
CZO discussion
Fixes: #28370

Merged, thanks @karlstolley!


text:
message_list: Don't always cache "All messages" view.

Improved version of #29259
Discussion: https://chat.zulip.org/#narrow/stream/6-frontend/topic/fetching.20message.20history
TODO: Fix node tests.
Important changes in this commit:

We only cache message list for "All messages" if it is the default view.

We modify existing handling of home message list code so that it can be used to for any message list that we want to cache using a new preserve_rendered_state variable.

narrow_state.filter() is return the filter for all messages list instead of undefined.

We start fetching messages from the latest message on app load.

Messages in all messages view and Recent view are always synced.

If all messages view list is not cached, we don't track it's last pointer, effectively sending user to the latest unread message always .

This looks like a great direction! I posted a few dozen comments, including identifying a few small prep PRs that could shrink this a bit. But I think https://github.com/zulip/zulip/pull/29740#discussion_r1566592303 is the main complex issue that might require significant reworking that I've noted in reading this.

This reduces rendering of all messages view from 7s to 3s when it is the default view on 6x CPU slowdown.

Looks like we will have to rewrite the tests for the message_fetch code path.

I think https://github.com/zulip/zulip/pull/29740#discussion_r1579778375 is the only blocker for merging this. Follow-ups would be:

Figuring out a new message_fetch.test.ts suite, if we think there's a test suite that would be useful and reasonably cheap to restore there. It might also be that we can't write a good test suite for this code; I'm not sure, but if you feel that way, we shouldn't waste a lot of time writing tests that we don't think will find bugs. I'll leave it up to you.
https://github.com/zulip/zulip/issues/29841
I don't understand the code path here: https://github.com/zulip/zulip/pull/29740#discussion_r1579784395; maybe it's just some badly named functions, but we should figure that out.

authors: amanagr timabbott


text:
message_scroll: Mark message as read after blue box moves past it.

Fixes #31833
Quoting from the issue:
Some of the reasoning behind that proposal was:
We want the first unread message to be what gets highlighted by the blue box, since that's what you should read first. It's bad to eat one unread message when entering a message feed via N or otherwise.
A consistent algorithm would be that messages get marked as read when you move the blue box past them ... except that there'd be no way to mark the last message that way.
Because the bottom being visible marks things as read, it should be fine to make this change now, even though there wouldn't currently be a way to use the location of the blue box to mark the last message in the current view as read.

Works for me in manual testing! This will definitely require some CZO burn-in -- there's less of a visual confirmation that messages are successfully getting marked as read this way. We might decide to adjust the timing for when the blue box jumps to the next message when you scroll the message it's on out of view.

Implementation looks as designed, but I think this definitely needs to bake on chat.zulip.org before we can merge it. Including it in a deploy today.

Merged, thanks @amanagr!

authors: alya amanagr timabbott


text:
Controller shorthand and namespaces

Controllers are modified to use namespaces
Bramus router allows you to use Class@method calls in the router (https://github.com/bramus/router#classmethod-calls), since the controllers are using namespaces it can be used.

Damn, looks like i still missed that one even after a double check.

All good! Thanks for contributing as well :)

repo: zulujive/fiddle


text:
For sites with ads (or long window.onload delay), util.triggers init happens far too late

How to reproduce this bug:

Place a garden-variety modal (and accompanying button) components on a page that can have a  delayed window.load event.  In our particular situation, this delay is caused by the presence of standard display ads (served from Google DFP) on the page, but any delay in window.load will yield the same result.
View the page
Note that the button to trigger the modal won't be respond to user interaction until that delayed window.load event finally fires.

What should happen:
Button should be able to trigger the modal as soon as DOM is ready.
What happened instead:
Buttons aren't reactive to input until window.load fires, giving the appearance of broken UI
Browser(s) and Device(s) tested on:
Any typical browser
Foundation Version(s) you are using:
6.4.3
Test case link:
https://jsfiddle.net/q7ged6so/4/
Questions

Is there a particular reason window.load is waited for?
Could this be changed to DOM ready instead without interfering with other behaviors?
a. Or perhaps made configurable to be one or the other?

Related to https://github.com/zurb/foundation-sites/issues/11348

authors: kentontaylor ncoden

repo: zurb/foundation-sites


text:
[Foundation for Sites] Custom download didn't work

How can we reproduce this bug?

Downloading a custom-build of foundation 6 has no css-files included. It seems that it doesn't matter wich features are choosen.

What did you expect to happen?
Getting a custom-build of foundation 6
What happened instead?
After extracting the zip i've only got the index.html and some .js-files
Test case
Give us a link to a CodePen or JSFiddle that recreates the issue.

It happened the same to me!

Paging @erikmellum.
We had some issues with blank files but they may have been resolved last week.

Custom downloads won't have missing files anymore. If you encounter any other issues, let us know. Thanks! :)

authors: MadMantis gakimball martinoroma88


text:
Foundation 6 inline buttons broken for when using  or  tag

Foundation 6.0.3 Inline Labels and Buttons break when one uses a <button> or an <input> tag instead of an <a> tag.

Can confirm. This is pretty big; the standard button for performing an action in a form is an <input> or <button> tag, NOT an <a> tag.

It's also a best practice to use <button> anytime you make something look like a button (outside of forms). So an inline list of <button> elements should be fairly common.

See #7278. The HTML example has been updated, and a fix for <button> (and <input>) will land in the next patch.

authors: andycochran gakimball proimage rushmorem


text:
fix: transform temporary source file when formatting docs

Instead of transforming the original program in memory, which messes up subsequent transform attempts, we now copy the relevant source code to a temporary project and transform that.
Using emit transformers would be the cleaner option, but this approach needs less change to the code and works.
fixes: #3617

@zwave-js-bot automerge

repo: zwave-js/node-zwave-js


text:
.Net wrapper issue

I am unable to start the .Net wrapper due to the following issue:

Did I miss any configurations?

I suggest you install the ZXingCpp nuget package, which comes with the native DLL included:
dotnet add package ZXingCpp

authors: axxel husam-ebish

repo: zxing-cpp/zxing-cpp


text:
Child split pane is "lost" as a result of resizing its parent split pane

Steps:
Open a vertical split pane, then a horizontal split pane in it, and then a vertical split pane in it, i.e. run the following sequence of commands:
vsplit
hsplit
vsplit

Then begin dragging the initial vertical divider (the one that is in the middle of the screen), to resize the initial split pane. As a result, one of the child split panes gets narrower and narrower, and eventually its width becomes zero, so that this pane becomes completely invisible and inaccessible by the user. And there is no way to make it accessible again (no way to make its width non-zero again).
Commit hash: d8e9d61a
OS: any
Terminal: any

And there is no way to make it accessible again (no way to make its width non-zero again).

I understand what you mean but technically I found that user can access it again and even make it visible

It is still in the nodes tree so I tried to apply Ctrl+w several times and I cycled to the invisible split. It is invisible but you can still write there and perform actions: save file, set buffer local options... but I won't make it visible

Close the fourth split and you will the the third

Init layout

After bug layout

After closing fourth split layout

Yes, that's exactly the issue.

When you try to move split it will

We need to ensure (recursively) that when resizing a pane, not only the width of this pane never goes below zero, but also widths of any its child panes never go below zero. E.g. if a vertical split pane has 3 child vertical split panes, then if we resize the parent pane and its width narrows down to 3 characters, we should not allow resizing it further.

Maybe it can be done by returning from child maximum available space before 0 and if it is smaller that available space to neighbor/screen border...?

authors: dmaluka dustdfg

repo: zyedidia/micro


text:
🛑 MIX2 at FRP is down

In 2d5685f, MIX2 at FRP (origin.$DOMAIN_CN) was down:

HTTP code: 0
Response time: 0 ms

Resolved: MIX2 at FRP is back up in 6b3e1ac after 2 hours, 17 minutes.

repo: zzc-tongji/upptime


text:
如何获取图片缓存好的drawable对象

在imageClicked的回调中，我想点击图片后放大查看。跳转到另一个activity用glide加载会重新从网络上获取图片。请问有什么好的办法解决吗？谢谢。

还是自己再下载遍吧，或者你设置个自定义ImageDownloader，在图片下载完成后自己做缓存

authors: AnJiuZhe zzhoujay

repo: zzhoujay/RichText


text:
RecyclerView中使用scrollToPosition滑动到底部时，位置错误

布局：RecyclerView中每个item都是LinearLayout加TextView，使用RichText填写，高度可变化。
情景：在底部新添加一个item，然后使用smoothScrollToPosition(count - 1)滑动到底部，滑动结束后item的位置有一定随机性，部分时候显示不全。
是不是因为异步解析html，调用RichText的into方法后item高度没有立即变化，而是在滑动过程中才发生？可以增加一个同步解析的方法吗？这样调用的时候可以自己在异步任务中控制执行顺序。

应该就是异步导致的，同步的话也许会阻塞主线程，你可以设置一个解析完成后的回调，在哪里面再调用滚动
RichText.from(xx).done(yourCallback).into(textView)

刚刚试了，因为新增的item不在显示范围内，RecyclerView不会渲染这个view，导致回调函数在一开始不会被调用。
而且，RecyclerView中一个item滑出屏幕后又重新回来时，会重新渲染，导致重复解析。

我的代码中需要解析在线数据，获取数据是在异步任务中处理的。如果可以提供：
// 调用generateRichText()
RichText.from(xx).generate()

就可以在同一个异步任务中获取数据和调用generate()，然后保存解析得到的Spanned类型。这样避免了重复解析，也可以保证RecyclerView开始渲染时解析已经完成。
不知道有没有更好的方法？

如果你的富文本是纯文本，可以走这样的方式，但是一旦有图片，就不可避免的需要异步，因为需要先下载图片获取图片的高度进而改变TextView的高度
重复解析的情况确实是存在的，虽然做了一些缓存处理，但也没法做得很完美，所以我一直都不推荐在recyclerview和listview中使用富文本，特别是recyclerview还有自己的缓存机制，更加容易出问题

不知道有没有理解错，看了一下源码，图片应该是在另一个异步任务中加载的，这样确实是有点问题。
一个思路：使用Spanned s = RichText.from(xx).done(callback).generate()这种形式，在异步任务中下载图片并缓存到本地，同时给Html.fromHtml()传递一个从本地加载图片的ImageGetter（同步方法，本地找不到图片时加载一张空白图片），callback被调用表明图片下载完成，使用者可以选择：1. 在callback之前不使用生成的s；2. 直接使用，并且在callback中刷新TextView（等效于现在的方法）。

问题就在于，在图片未下载之前，并不知道图片的高度，无法准备一张和将要下载下来的图片同高度的空白图片，所以必然会导致TextView高度跳跃，还是会出现你最开始遇到的问题
所以现在如果可以预先知道图片的高度，一切就好说了

两种方法里面，第一种在图片下载完之前不显示，第二种会出现高度跳跃，可以自己选择一种

可以，不过最近一段时间应该没有时间做新特性的开发，得过一阵子了

authors: archie-yu zzhoujay