Done this so I can run test Codeship...


This generates an effectively constant entropy. Tinos constant across machines and independent of the current time. I suppose the randoms are completely predictable and reproducible.


Successfully deployed to following URLs:

* https://calendario-a2tji2lbx.now.sh
* https://calendario.now.sh
* https://calendario.danielnava901.now.sh
* https://calendario-git-master.danielnava901.now.sh


Probably better to name this `IsStatic`


@JohannesHoppe Hier ist auch das „dabei haben“ mit verschwunden — bitte addier das doch wieder.

🥳


А тут разве не багуется?


--> "Make sure that the message has been sent"


Successfully deployed to following URLs:

* https://hooks-qjcp4p3z6.now.sh
* https://hooks-git-master.umijs.now.sh


thanks for keeping me safe...


Successfully deployed to following URLs:

* https://fengqijunblog-fcsm2ftc2.now.sh
* https://fengqijun-blog.now.sh
* https://fengqijun.me
* https://blog.fengqijun.me
* https://fengqijun-blog.fengqijun.now.sh
* https://fengqijun-blog-git-master.fengqijun.now.sh


Successfully deployed to following URLs:

* https://postmanh-jg3ecffql.now.sh
* https://postmanh.now.sh
* https://postmanh.hihu.dev
* https://postmanh.manh16nd.now.sh
* https://postmanh-git-master.manh16nd.now.sh


А разве newpos(pos) и p_figures[j] у нас по дефолту не равны?


Can i run it in netbeans windows?


根据所有返回值，可以计算出用户余额为：

用户余额 = 110000000/10⁸ NEO = 1.1 GAS, 3NEO


Successfully deployed to following URLs:

* https://typespecimensheet-9ohnwuad0.now.sh
* https://typespecimensheet.now.sh
* https://typespecimensheet.com
* https://typespecimensheet.chanhdesign.now.sh
* https://typespecimensheet-git-master.chanhdesign.now.sh


(../assets/sysfee.png), (../assets/feecomparewith2x.png)图片缺失


Successfully deployed to following URLs:

* https://burger-builder-rbo8l2y8z.now.sh
* https://burger-builder-kappa-tan.now.sh
* https://burger-builder.hocsinhtrung.now.sh
* https://burger-builder-git-master.hocsinhtrung.now.sh


get the idea


Successfully deployed to following URLs:

* https://react-in-20-minutes-iqc3ocwjh.now.sh
* https://react-in-20-minutes.now.sh
* https://react-in-20-minutes.yhl234.now.sh
* https://react-in-20-minutes-git-master.yhl234.now.sh


Lines 12-14 shouldn't have been a part of your initial push. These are sensitive bits. There are malicious individuals online that scrape github for this kind of data. Make sure in the future you don't do this and also make sure to create new keys in your braintree account.


ZEIT Now cannot deploy this project to production due to following domain related issues:

 * `www.trapteamnz.tk`(for alias `www.trapteamnz.tk`) is not found inside your account. [Add it](https://zeit.co/dashboard/domains?action=add&domain=www.trapteamnz.tk).


Deployment failed with the following error:

~~~
Your `package.json` file is missing a `build` property inside the `script` property.
~~~


No, that doesn't have to do with transforming, either.

I already worked out a new system with @monsanto that doesn't involve hardcoding.


Successfully deployed to following URLs:

* https://artloop-website-iebwphu04.now.sh
* https://artloop.now.sh
* https://artloop-website.zachkrall.now.sh
* https://artloop-website-git-master.zachkrall.now.sh


@JuliaRegistrator register()


Registration pull request created: [JuliaRegistries/General/6126](https://github.com/JuliaRegistries/General/pull/6126)

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if [Julia TagBot](https://github.com/apps/julia-tagbot) is installed, or can be done manually through the github interface, or via:
```
git tag -a v1.3.0 -m "<description of version>" 33f06ca9006387e983343fb2b57ffbe9adaaf55b
git push origin v1.3.0
```


Successfully deployed to following URLs:

* https://wedding-l62l3kp1e.now.sh
* https://dylanandspencer.wedding
* https://www.dylanandspencer.wedding
* https://wedding.spencer.now.sh
* https://wedding-git-master.spencer.now.sh


good morning


Successfully deployed to following URLs:

* https://artloop-website-hshyj6hxo.now.sh
* https://artloop.now.sh
* https://artloop-website.zachkrall.now.sh
* https://artloop-website-git-master.zachkrall.now.sh


Remove the « p » character.


hbsycvchgc


Support! And here is a question: What‘s the hash value of the full-coded wallet code of  IPFS or where can I find it？


die() is required or they can just ignore the header and continue loading the page. Fixed in c5f930c6f6c4b3b31342ba4e5c03f55f18f4e840


Successfully deployed to following URLs:

* https://potionstudio-fdmcxaf43.now.sh
* https://potion.studio
* https://potion-studio.now.sh
* https://potionstudio.potion-studio.now.sh
* https://potionstudio-git-master.potion-studio.now.sh


aa


Successfully deployed to following URLs:

* https://webfuel-8ex7jqpe4.now.sh
* https://webfuel.now.sh
* https://webfuel.cfbender.now.sh
* https://webfuel-git-master.cfbender.now.sh


Test:

step 1. Made foo.html with links to `example.com/foo` and `example.com/bar` and a canonical URL of `foo.html`

```
windowlick:Pushl master$ pipenv run pushl -c cache -vvvve https://beesbuzz.biz/static/temp/foo.html
DEBUG:asyncio:Using selector: KqueueSelector
DEBUG:pushl:++WAIT: get entry https://beesbuzz.biz/static/temp/foo.html
DEBUG:pushl:++DONE: get entry https://beesbuzz.biz/static/temp/foo.html entry=True previous=False updated=True
DEBUG:pushl:--- starting process_entry https://beesbuzz.biz/static/temp/foo.html
INFO:pushl:Processing entry: https://beesbuzz.biz/static/temp/foo.html send_mentions=True
DEBUG:pushl:--- finish process_entry https://beesbuzz.biz/static/temp/foo.html
DEBUG:pushl:+++WAIT: process_entry(https://beesbuzz.biz/static/temp/foo.html): 1 subtasks
DEBUG:pushl:['process entry mentions https://beesbuzz.biz/static/temp/foo.html']
INFO:pushl:https://beesbuzz.biz/static/temp/foo.html: Mention targets: https://example.com/foo https://example.com/bar
DEBUG:pushl:+++WAIT: process_entry_mentions(https://beesbuzz.biz/static/temp/foo.html): 2 subtasks
DEBUG:pushl:['send webmention https://beesbuzz.biz/static/temp/foo.html -> https://example.com/foo (https://example.com/foo)', 'send webmention https://beesbuzz.biz/static/temp/foo.html -> https://example.com/bar (https://example.com/bar)']
DEBUG:pushl:++WAIT: webmentions.get_target https://example.com/bar
DEBUG:pushl:++WAIT: webmentions.get_target https://example.com/foo
DEBUG:pushl:++DONE: webmentions.get_target https://example.com/foo
WARNING:pushl:https://beesbuzz.biz/static/temp/foo.html: link to https://example.com/foo generated client error 404
DEBUG:pushl:++DONE: webmentions.get_target https://example.com/bar
WARNING:pushl:https://beesbuzz.biz/static/temp/foo.html: link to https://example.com/bar generated client error 404
DEBUG:pushl:+++DONE: process_entry_mentions(https://beesbuzz.biz/static/temp/foo.html): 2 subtasks
DEBUG:pushl:+++DONE: process_entry(https://beesbuzz.biz/static/temp/foo.html): 1 subtasks
INFO:pushl.main:Completed all tasks
```

> `DEBUG:pushl:['send webmention https://beesbuzz.biz/static/temp/foo.html -> https://example.com/foo (https://example.com/foo)', 'send webmention https://beesbuzz.biz/static/temp/foo.html -> https://example.com/bar (https://example.com/bar)']`

Step 2. Removed the link to `example.com/foo`, added `example.com/baz`, changed canonical link to add `?foo=poiu` to the end

```
windowlick:Pushl master$ pipenv run pushl -c cache -vvvve https://beesbuzz.biz/static/temp/foo.html
DEBUG:asyncio:Using selector: KqueueSelector
DEBUG:pushl:++WAIT: get entry https://beesbuzz.biz/static/temp/foo.html
DEBUG:pushl:++DONE: get entry https://beesbuzz.biz/static/temp/foo.html entry=True previous=True updated=True
DEBUG:pushl:--- starting process_entry https://beesbuzz.biz/static/temp/foo.html
INFO:pushl:Processing entry: https://beesbuzz.biz/static/temp/foo.html send_mentions=True
DEBUG:pushl:--- finish process_entry https://beesbuzz.biz/static/temp/foo.html
DEBUG:pushl:+++WAIT: process_entry(https://beesbuzz.biz/static/temp/foo.html): 1 subtasks
DEBUG:pushl:['process entry mentions https://beesbuzz.biz/static/temp/foo.html']
DEBUG:pushl:targets before: {('https://example.com/baz', 'https://example.com/baz'), ('https://example.com/bar', 'https://example.com/bar')}
DEBUG:pushl:https://beesbuzz.biz/static/temp/foo.html: Entry changed URLs from https://beesbuzz.biz/static/temp/foo.html to https://beesbuzz.biz/static/temp/foo.html?foo=poiu; re-sending old pings to {('https://example.com/bar', 'https://example.com/bar'), ('https://example.com/foo', 'https://example.com/foo')}
INFO:pushl:https://beesbuzz.biz/static/temp/foo.html: Mention targets: https://example.com/baz https://example.com/bar
DEBUG:pushl:+++WAIT: process_entry_mentions(https://beesbuzz.biz/static/temp/foo.html): 4 subtasks
DEBUG:pushl:['send webmention https://beesbuzz.biz/static/temp/foo.html -> https://example.com/bar (https://example.com/bar)', 'send webmention https://beesbuzz.biz/static/temp/foo.html -> https://example.com/foo (https://example.com/foo)', 'send webmention https://beesbuzz.biz/static/temp/foo.html?foo=poiu -> https://example.com/baz (https://example.com/baz)', 'send webmention https://beesbuzz.biz/static/temp/foo.html?foo=poiu -> https://example.com/bar (https://example.com/bar)']
DEBUG:pushl:++WAIT: webmentions.get_target https://example.com/foo
DEBUG:pushl:++WAIT: webmentions.get_target https://example.com/baz
DEBUG:pushl:++WAIT: webmentions.get_target https://example.com/bar
DEBUG:pushl:++WAIT: webmentions.get_target https://example.com/bar
DEBUG:pushl:++DONE: webmentions.get_target https://example.com/foo
WARNING:pushl:https://beesbuzz.biz/static/temp/foo.html: link to https://example.com/foo generated client error 404
DEBUG:pushl:++DONE: webmentions.get_target https://example.com/baz
WARNING:pushl:https://beesbuzz.biz/static/temp/foo.html?foo=poiu: link to https://example.com/baz generated client error 404
DEBUG:pushl:++DONE: webmentions.get_target https://example.com/bar
WARNING:pushl:https://beesbuzz.biz/static/temp/foo.html: link to https://example.com/bar generated client error 404
DEBUG:pushl:++DONE: webmentions.get_target https://example.com/bar
WARNING:pushl:https://beesbuzz.biz/static/temp/foo.html?foo=poiu: link to https://example.com/bar generated client error 404
DEBUG:pushl:+++DONE: process_entry_mentions(https://beesbuzz.biz/static/temp/foo.html): 4 subtasks
DEBUG:pushl:+++DONE: process_entry(https://beesbuzz.biz/static/temp/foo.html): 1 subtasks
INFO:pushl.main:Completed all tasks
```

> `DEBUG:pushl:['send webmention https://beesbuzz.biz/static/temp/foo.html -> https://example.com/bar (https://example.com/bar)', 'send webmention https://beesbuzz.biz/static/temp/foo.html -> https://example.com/foo (https://example.com/foo)', 'send webmention https://beesbuzz.biz/static/temp/foo.html?foo=poiu -> https://example.com/baz (https://example.com/baz)', 'send webmention https://beesbuzz.biz/static/temp/foo.html?foo=poiu -> https://example.com/bar (https://example.com/bar)']`


Successfully deployed to following URLs:

* https://artloop-website-kwej8ve3n.now.sh
* https://artloop.now.sh
* https://artloop-website.zachkrall.now.sh
* https://artloop-website-git-master.zachkrall.now.sh


Modifications made


OpenCL™ API Version
1.2


Successfully deployed to following URLs:

* https://convitic-owvvlw7r6.now.sh
* https://convitic.now.sh
* https://convitic.mooksy3.now.sh
* https://convitic-git-master.mooksy3.now.sh


Successfully deployed to following URLs:

* https://valde-65aek1lwe.now.sh
* https://valde.caurea.org
* https://valde.werehamster.now.sh
* https://valde-git-master.werehamster.now.sh


Successfully deployed to following URLs:

* https://now-github-starter-9k5kya2a3.now.sh
* https://now-github-starter-beta-taupe.now.sh
* https://now-github-starter.xtidt126.now.sh
* https://now-github-starter-git-master.xtidt126.now.sh


Successfully deployed to following URLs:

* https://james-lyons-design-g8yv47yx1.now.sh
* https://jameslyons.design
* https://www.jameslyons.design
* https://james-lyons-design.jamesjlyons.now.sh
* https://james-lyons-design-git-master.jamesjlyons.now.sh


Heads up, I think this might have broken my kernel build:

```
/root/build/tmp/work-shared/rockchip-rockpi-4a/kernel-source/drivers/net/wireless/rockchip_wlan/rtl8723du/Makefile:225: /root/build/tmp/work/rockchip_rockpi_4a-poky-linux/linux-rockchip/4.4+gitAUTOINC+5b699a4854-r0/linux-rockchip_rockpi_4a-standard-build/drivers/net/wireless/rockchip_wlan/rtl8723du/hal/phydm/phydm.mk: No such file or directory
make[7]: *** No rule to make target '/root/build/tmp/work/rockchip_rockpi_4a-poky-linux/linux-rockchip/4.4+gitAUTOINC+5b699a4854-r0/linux-rockchip_rockpi_4a-standard-build/drivers/net/wireless/rockchip_wlan/rtl8723du/hal/phydm/phydm.mk'.  Stop.
make[6]: *** [/root/build/tmp/work-shared/rockchip-rockpi-4a/kernel-source/scripts/Makefile.build:484: drivers/net/wireless/rockchip_wlan/rtl8723du] Error 2
make[5]: *** [/root/build/tmp/work-shared/rockchip-rockpi-4a/kernel-source/scripts/Makefile.build:484: drivers/net/wireless/rockchip_wlan] Error 2
make[4]: *** [/root/build/tmp/work-shared/rockchip-rockpi-4a/kernel-source/scripts/Makefile.build:484: drivers/net/wireless] Error 2
make[3]: *** [/root/build/tmp/work-shared/rockchip-rockpi-4a/kernel-source/scripts/Makefile.build:484: drivers/net] Error 2
make[2]: *** [/root/build/tmp/work-shared/rockchip-rockpi-4a/kernel-source/Makefile:1031: drivers] Error 2
```

Which is odd, since the makefile in question appears to be [right here](https://github.com/radxa/kernel/blob/56860bc3105920133cdcf5f7684067cf8a532fd9/drivers/net/wireless/rockchip_wlan/rtl8723du/hal/phydm/phydm.mk).

I've pinned my build scripts to https://github.com/radxa/kernel/commit/d8c58eeaa912903a23d8b5a049e6ce5f0a4759b8 for now. I'll investigate this, and I accept the possibility that the fault is on my end, but I wanted to see if anyone else had reported this.


haha 20191202nojob....


Fixed my code! Thanks!


ZEIT Now cannot deploy this project to production due to following domain related issues:

 * `www.trapteamnz.tk`(for alias `www.trapteamnz.tk`) is not found inside your account. [Add it](https://zeit.co/dashboard/domains?action=add&domain=www.trapteamnz.tk).


I was testing performance with Ofast Vs O2 with the demo Arte and I noticed it didn't boot with the latest Amiberry. I bisected to this commit.

Seems as though it fails to load the configured kickstart after this change and falls back to the AROS one which it doesn't work with - the "k" is missing from my configured kick13 in the gui - some odd buffer issue?

I can't obviously see anything in this commit which would cause this and haven't had time to debug further.

Can open a proper issue in next day or two if needed.


Deployment failed with the following error:

~~~
Your `package.json` file is missing a `build` property inside the `script` property.
~~~


Successfully deployed to following URLs:

* https://artloop-website-jgrm12v24.now.sh
* https://artloop.now.sh
* https://artloop-website.zachkrall.now.sh
* https://artloop-website-git-master.zachkrall.now.sh


Could it be that this change causes an error? I get this error after updating: `custom-initialize-reset: Symbol’s function definition is void: battery-update`


@scossar can you please review this commit. I hope we didn't have any specific reason to use year value as constant.


@davidkarlsen


naive solution (division approach)


> You can see it in action here: https://developers.whatismybrowser.com/useragents/parse/#parse-useragent

Ah, thanks for sharing the link.  One note, we do not know how the peer is interpreting .. for developers.whatismybrowser.com it seems to be ok to miss the space, but you already said ..

> Anyway in the end it's my fault, I don't often deal with python so that's why I made this mistake when I tried to write the patch as pep8 compliant.

Ah, OK .. no problem. I recommend an editor with a good python support. I do prefer emacs, other prefer [pycharm](https://www.jetbrains.com/pycharm).  Such editors can help with auto-indent and more:

```python

params['headers']['User-Agent'] = (
    "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_4)"
    " AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.2 Safari/525.20.1"
)
```

Another hint, did you know [The Hitchhiker’s Guide to Python!](https://docs.python-guide.org/), a really good starting point  .. and reference .. for me and other .. all the time :)

If I can help you any more in python, don't hesitate to contact me directly markus.heiser@darmarit.de


Hi,

yes, we will fix this. The question is about urgency :wink:


@embeddedt
As lvgl supports only horizontal subpixel rendering, I think a checkbox is enough here.


Successfully deployed to following URLs:

* https://react-in-20-minutes-nksgbrqpy.now.sh
* https://react-in-20-minutes.now.sh
* https://react-in-20-minutes.yhl234.now.sh
* https://react-in-20-minutes-git-master.yhl234.now.sh


Looks good to me.


remove commented line


reverting back


汉奸走狗


Computer will be ignore all your new code (e.g. can't use that).


Successfully deployed to following URLs:

* https://react-in-20-minutes-j1xkf6fnd.now.sh
* https://react-in-20-minutes.now.sh
* https://react-in-20-minutes.yhl234.now.sh
* https://react-in-20-minutes-git-master.yhl234.now.sh


DL: EarlyStopping


Successfully deployed to following URLs:

* https://react-in-20-minutes-mxkls7ecn.now.sh
* https://react-in-20-minutes.now.sh
* https://react-in-20-minutes.yhl234.now.sh
* https://react-in-20-minutes-git-master.yhl234.now.sh


Deployment failed with the following error:

~~~
ENOENT: no such file or directory, stat '/tmp/RXKkoikHLzjgU9qXbq1tJKuJ/repo/examples/official-storybook/built-storybooks/angular-cli'
~~~


test commit


It looks like `error_handling_drop_uncached:` is performing the same freeing. So, this would be a double-free.


Successfully deployed to following URLs:

* https://yodatareal-estate-6v1sgjh9u.now.sh
* https://realestate.yodata.me
* https://yodata-real-estate.yodata.now.sh
* https://yodata-real-estate-git-master.yodata.now.sh


Deployment failed with the following error:

~~~
ENOENT: no such file or directory, stat '/tmp/j422nPbSxAldEjCwosA13EnK/repo/examples/official-storybook/built-storybooks/angular-cli'
~~~


Instead of adding the code, could we just change the `goto` to `error_handling_drop_uncached`?
There is one more occurrence of the freeing-loop at line 5544. Perhaps also that one could be replaced with a different `goto`?


:white_check_mark: All Rules (5 / 5) Passed

      :crown: Good job! this pull request is aligned with your organization's best practices!

      :point_right: You can review your rules settings at smart policy management :point_left:

:point_right: click here to view a full list of the events :point_left:


:white_check_mark: All Rules (10 / 10) Passed

      :crown: Good job! this pull request is aligned with your organization's best practices!

      :point_right: You can review your rules settings at smart policy management :point_left:

:point_right: click here to view a full list of the events :point_left:


You can extract this list to a constant


Provide unit test for this


Deployment failed with the following error:

~~~
ENOENT: no such file or directory, stat '/tmp/gIyxqWvybrfJFgVo4quZhLXz/repo/examples/official-storybook/built-storybooks/angular-cli'
~~~


URL в константы. Имя функции переводится как "Получить токен пользователя", она принимает внезапно токен пользователя и возвращает ссылку. Тебе не кажется, что здесь что-то вообще не логично?


Successfully deployed to following URLs:

* https://conflux-bounty-3now24g3b.now.sh
* https://conflux-bounty-git-master.conflux-chain.now.sh


.catch? Или ситуации, когда что-то может пойти не так быть не может?


И это называется следователь правилу "Делай проще"? Ты запускаешь функцию генератор для того, чтобы склеить строку?


Successfully deployed to following URLs:

* https://now-go-jiq6bbrej.now.sh
* https://go.now.sh
* https://now-go.amio1.now.sh
* https://now-go-git-master.amio1.now.sh


Функция называется "Получить список". Как мне человеку, который случайно в нее попал понять что она делает по ее имени? Список кого? Чего? Для кого? Зачем?


Теперь вообще не понимаю, я же просил сделать функцию маппер, которая будет преобразовывать этот мусор в нормальный массив объектов. Вместо этого в проп тайпах вижу описание всего этого мусора


目前这种改动太大，不是特别好的解决方案，我这边自行修复了。感谢贡献


Successfully deployed to following URLs:

* https://wipro-weather-1x5lgn6x5.now.sh
* https://wipro-weather.jmclerck.now.sh
* https://wipro-weather-git-master.jmclerck.now.sh


Ты же уже его описывал, зачем это делать еще раз? Если еще 20 компонентов будут принимать такой тип, ты будешь все копировать и вставлять? Если после этого что-то в API поменяется, ты все 22 файла будешь руками исправлять?


Successfully deployed to following URLs:

* https://wedding-b0qrtbkwv.now.sh
* https://dylanandspencer.wedding
* https://www.dylanandspencer.wedding
* https://wedding.spencer.now.sh
* https://wedding-git-master.spencer.now.sh


Successfully deployed to following URLs:

* https://jakartasehat-271s5jqkw.now.sh
* https://jakartasehat.now.sh
* https://jakartasehat.dwiilhamm026.now.sh
* https://jakartasehat-git-master.dwiilhamm026.now.sh


cool 👍


@socialskyo 최신 `develop`에 패치 해두었습니다. 리펙토링 하는과정에서 발생한 문제입니다.


Зачем здесь асинхронная функция?

requestUserInfo
  .then(info => {
    requestUserContacts.then(contacts => setState({ info, contacts }))
  )

Да и вроде я про Waterfall говорил


Это здесь зачем?


Successfully deployed to following URLs:

* https://react-in-20-minutes-5lodjgchy.now.sh
* https://react-in-20-minutes.now.sh
* https://react-in-20-minutes.yhl234.now.sh
* https://react-in-20-minutes-git-master.yhl234.now.sh


Это опасный метод, try-catch


In my testing on Snapdragon 845 (4x Cortex-A55, 4x Cortex-A75), the SIMD version is a win on small copies but often a regression on larger copies in bionic benchmarks:
```
SIMD Little Cluster:
BM_string_memcpy/8/0/0            8.01 ns         7.94 ns     88025112 bytes_per_second=960.731M/s
BM_string_memcpy/64/0/0           13.7 ns         13.6 ns     51357556 bytes_per_second=4.37933G/s
BM_string_memcpy/512/0/0          64.0 ns         63.6 ns     11021552 bytes_per_second=7.50209G/s
BM_string_memcpy/1024/0/0          119 ns          118 ns      5926365 bytes_per_second=8.0615G/s
BM_string_memcpy/8192/0/0          890 ns          884 ns       792194 bytes_per_second=8.63332G/s
BM_string_memcpy/16384/0/0        1766 ns         1756 ns       398510 bytes_per_second=8.68814G/s
BM_string_memcpy/32768/0/0        3672 ns         3645 ns       192184 bytes_per_second=8.37333G/s
BM_string_memcpy/65536/0/0        9034 ns         8956 ns        78158 bytes_per_second=6.81509G/s
BM_string_memcpy/131072/0/0      18982 ns        18878 ns        37080 bytes_per_second=6.46635G/s

Non-SIMD Little Cluster:
BM_string_memcpy/8/0/0            10.3 ns         10.2 ns     68577799 bytes_per_second=746.98M/s
BM_string_memcpy/64/0/0           17.1 ns         17.0 ns     41144164 bytes_per_second=3.50367G/s
BM_string_memcpy/512/0/0          62.0 ns         61.6 ns     11362925 bytes_per_second=7.73603G/s
BM_string_memcpy/1024/0/0          112 ns          112 ns      6361016 bytes_per_second=8.54236G/s
BM_string_memcpy/8192/0/0          698 ns          694 ns      1003991 bytes_per_second=10.9986G/s
BM_string_memcpy/16384/0/0        1494 ns         1485 ns       483734 bytes_per_second=10.2737G/s
BM_string_memcpy/32768/0/0        2862 ns         2839 ns       246749 bytes_per_second=10.7483G/s
BM_string_memcpy/65536/0/0        8314 ns         8212 ns        85346 bytes_per_second=7.43208G/s
BM_string_memcpy/131072/0/0      17336 ns        17195 ns        40612 bytes_per_second=7.09936G/s

SIMD Big Cluster:
BM_string_memcpy/8/0/0            2.75 ns         2.74 ns    255588244 bytes_per_second=2.72037G/s
BM_string_memcpy/64/0/0           3.70 ns         3.69 ns    189628553 bytes_per_second=16.1453G/s
BM_string_memcpy/512/0/0          24.2 ns         24.1 ns     29093833 bytes_per_second=19.7904G/s
BM_string_memcpy/1024/0/0         46.3 ns         46.2 ns     15160288 bytes_per_second=20.6453G/s
BM_string_memcpy/8192/0/0          388 ns          387 ns      1809114 bytes_per_second=19.7011G/s
BM_string_memcpy/16384/0/0         770 ns          768 ns       919988 bytes_per_second=19.8699G/s
BM_string_memcpy/32768/0/0        1383 ns         1380 ns       533579 bytes_per_second=22.1168G/s
BM_string_memcpy/65536/0/0        2602 ns         2596 ns       279273 bytes_per_second=23.5102G/s
BM_string_memcpy/131072/0/0       7643 ns         7618 ns        84403 bytes_per_second=16.0231G/s

Non-SIMD Big Cluster:
BM_string_memcpy/8/0/0            3.82 ns         3.81 ns    183682237 bytes_per_second=1.95522G/s
BM_string_memcpy/64/0/0           4.06 ns         4.05 ns    172893463 bytes_per_second=14.7213G/s
BM_string_memcpy/512/0/0          24.1 ns         24.0 ns     29084878 bytes_per_second=19.8417G/s
BM_string_memcpy/1024/0/0         46.0 ns         45.9 ns     15284300 bytes_per_second=20.7673G/s
BM_string_memcpy/8192/0/0          365 ns          364 ns      1930997 bytes_per_second=20.9711G/s
BM_string_memcpy/16384/0/0         720 ns          719 ns       979918 bytes_per_second=21.2335G/s
BM_string_memcpy/32768/0/0        1402 ns         1399 ns       519216 bytes_per_second=21.8107G/s
BM_string_memcpy/65536/0/0        2558 ns         2551 ns       283414 bytes_per_second=23.922G/s
BM_string_memcpy/131072/0/0       7648 ns         7622 ns        87408 bytes_per_second=16.016G/s
```

If I use copy_long from the non-SIMD version, the results on large copies improve.

Little:
BM_string_memcpy/8/0/0            7.99 ns         7.94 ns     88180067 bytes_per_second=960.841M/s
BM_string_memcpy/64/0/0           13.7 ns         13.6 ns     51430014 bytes_per_second=4.37837G/s
BM_string_memcpy/512/0/0          59.7 ns         59.4 ns     11817836 bytes_per_second=8.03192G/s
BM_string_memcpy/1024/0/0          110 ns          109 ns      6410211 bytes_per_second=8.75748G/s
BM_string_memcpy/8192/0/0          708 ns          703 ns       990173 bytes_per_second=10.8576G/s
BM_string_memcpy/16384/0/0        1489 ns         1479 ns       478735 bytes_per_second=10.3178G/s
BM_string_memcpy/32768/0/0        2848 ns         2828 ns       247772 bytes_per_second=10.7916G/s
BM_string_memcpy/65536/0/0        8283 ns         8219 ns        85146 bytes_per_second=7.42596G/s
BM_string_memcpy/131072/0/0      17342 ns        17249 ns        40517 bytes_per_second=7.07703G/s

Big:
BM_string_memcpy/8/0/0            2.75 ns         2.74 ns    255579972 bytes_per_second=2.72036G/s
BM_string_memcpy/64/0/0           3.70 ns         3.69 ns    189624546 bytes_per_second=16.1467G/s
BM_string_memcpy/512/0/0          24.3 ns         24.2 ns     29342491 bytes_per_second=19.7026G/s
BM_string_memcpy/1024/0/0         46.2 ns         46.0 ns     15149992 bytes_per_second=20.7192G/s
BM_string_memcpy/8192/0/0          359 ns          358 ns      1936679 bytes_per_second=21.3094G/s
BM_string_memcpy/16384/0/0         722 ns          719 ns       970272 bytes_per_second=21.2084G/s
BM_string_memcpy/32768/0/0        1351 ns         1348 ns       519853 bytes_per_second=22.6471G/s
BM_string_memcpy/65536/0/0        2405 ns         2398 ns       294388 bytes_per_second=25.4539G/s
BM_string_memcpy/131072/0/0       7886 ns         7859 ns        87441 bytes_per_second=15.5329G/s


fixed at https://github.com/Servir-Mekong/Drought-And-Crop-Yield/commit/e5fd83ffae21104d0fa5b39de9c681814eed6d2c


> mode라는 전역 변수를 쓰지말고
> /news?mode=0 이런 식으로 url뒤에 query string을 이용해 구별하도록 해주세요
>
> 이렇게 하면 밑에있는 filter_mode 메소드가 필요 없겠죠

> mode라는 전역 변수를 쓰지말고
> /news?mode=0 이런 식으로 url뒤에 query string을 이용해 구별하도록 해주세요
>
> 이렇게 하면 밑에있는 filter_mode 메소드가 필요 없겠죠

현재 filter_mode 설정값은 사용자가 모드 설정 버튼을 클릭할때 생성되는데요, mode에 따른 필터링은 다음 페이지, 댓글 입력시 댓글을 새로 로드할때 등등 다른 경우에도 써야해서  그때그때 url로 보내기도 그렇고, 댓글은 ajax로 url 변경 없이 로드되고 있는 상태입니다


Deployment failed with the following error:

~~~
ENOENT: no such file or directory, stat '/tmp/COjKtN3UM3S4ggUPAgzl11kK/repo/examples/official-storybook/built-storybooks/angular-cli'
~~~


Yes

Den mån 2 dec. 2019 06:37blasreiter12 <notifications@github.com> skrev:

> Can i run it in netbeans windows?
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/rterp/GMapsFX/commit/d23071c30d42604ea3c7fd0225f5398b7a67f56e?email_source=notifications&email_token=AABFNYVS5JEJ7GO6Y3SISIDQWSNINA5CNFSM4JTQQHF2YY3PNVWWK3TUL52HS4DFVVBW63LNNF2EG33NNVSW45FKMNXW23LFNZ2F62LEZYBCRGYP#commitcomment-36215567>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AABFNYSXRHK6LZ7ABJKYPPDQWSNINANCNFSM4JTQQHFQ>
> .
>


quem le eh guei


please do the client in lower case for mat .. usually uppercase variable are for constants


I pushed to master by mistake @fatihalp


ve se fica algo q eu fiz ai


preprocess 需要保留


sss


> 굳이 methods가 두개인 이유가 있나요?
> 제가 봤을 때는 기사랑 해당 댓글을 가져오는 글 같은데 GET 메소드만 있어도 되지 않나요?

아 맞아요 댓글은 개인 정보이기 때문에 POST 만 씁니다. 그런데 저렇게 2가지도 쓸 수도 있다는 걸 기억하기 위해서 남겨둔거지 나중엔 지울거에요


Successfully deployed to following URLs:

* https://tic-tac-toe-rexwouk4u.now.sh
* https://tic-tac-toe-chi-one.now.sh
* https://tic-tac-toe.rohitninawe1020.now.sh
* https://tic-tac-toe-git-master.rohitninawe1020.now.sh


hi


ctype.h


Just a query isn't this related to Virtual Machine?

And VMID_MSS_MSA is a secure vmid
Is this even necessary ?

Thanks


Siulau sukurti dvi funkcijas tokias kaip `toogleNextPageButton()`, bet geriausia butu naudoti `showNextPageButton`
nes dabar tai keistai atrodo tas `displayMode`


We need cJSON driver too

But this change was for crux as I remember


I'll drop this anyway


jeigu metodas vadintusi `clearButtons` nereiktu komentaru, kaip ir kitur nereikia nes is pavadinimo ganetinai aisku ka funkcija daro.


请问你怎么获得TerraSAR-X卫星的数据的，必须购买吗，做insar想下载一些


--> Test for sending a message


cia nera butina bet butu gerai jei ({ image, label })


Test for sending an attached file in an email


no need for adding `under /tmp` .. any normal user will not need to read this


ignore this, issue was elsewhere


Successfully deployed to following URLs:

* https://jakartasehat-5xk1g4opz.now.sh
* https://jakartasehat.now.sh
* https://jakartasehat.dwiilhamm026.now.sh
* https://jakartasehat-git-master.dwiilhamm026.now.sh


* 왼쪽 클릭 후 오른쪽 클릭 방지
* 오른쪽  클릭 후 왼쪽 클릭 방지


ok


dabar tu paverti error i stringa reiktu `console.log('Error', e)`


I have two review comments:

1. Pulse shaper 2 does not say very much (what does 2 stand for?). Especially for libraries I would strongly recommend using descriptive names. In this case the name could be "pulse_shaper_conf" (for "configurable") for example.

2. If a runtime configurable version of the pulse-shaper is implemented, I would suggest making both parameters (Pulse-Width and Hold-Off time) configurable to avoid having many very similar components in the library that only differ in the configurability of parmeters.


# 建链脚本

```eval_rst
.. important::
    build_chain脚本目标是让用户最快的使用FISCO BCOS，对于企业级应用部署FISCO BCOS请参考 `企业级部署工具 <../enterprise_tools/index.html>`_ 。
```

FISCO BCOS提供了`build_chain.sh`脚本帮助用户快速搭建FISCO BCOS联盟链，该脚本默认从[GitHub](https://github.com/FISCO-BCOS/FISCO-BCOS)下载`master`分支最新版本预编译可执行程序进行相关环境的搭建。

## 脚本功能简介

- `build_chain.sh`脚本用于快速生成一条链中节点的配置文件，脚本依赖于`openssl`请根据自己的操作系统安装`openssl 1.0.2`以上版本。脚本的源码位于[FISCO-BCOS/tools/build_chain.sh][build_chain]。
- 快速体验可以使用`-l`选项指定节点IP和数目。`-f`选项通过使用一个指定格式的配置文件，支持创建各种复杂业务场景FISCO BCOS链。**`-l`和`-f`选项必须指定一个且不可共存**。
- 建议测试时使用`-T`和`-i`选项，`-T`开启log级别到DEBUG，`-i`设置RPC和channel监听`0.0.0.0`，p2p模块默认监听`0.0.0.0`。

## 帮助

```bash
Usage:
    -l <IP list>                        [Required] "ip1:nodeNum1,ip2:nodeNum2" e.g:"192.168.0.1:2,192.168.0.2:3"
    -f <IP list file>                   [Optional] split by line, every line should be "ip:nodeNum agencyName groupList". eg "127.0.0.1:4 agency1 1,2"
    -e <FISCO-BCOS binary path>         Default download fisco-bcos from GitHub. If set -e, use the binary at the specified location
    -o <Output Dir>                     Default ./nodes/
    -p <Start Port>                     Default 30300,20200,8545 means p2p_port start from 30300, channel_port from 20200, jsonrpc_port from 8545
    -i <Host ip>                        Default 127.0.0.1. If set -i, listen 0.0.0.0
    -v <FISCO-BCOS binary version>      Default get version from https://github.com/FISCO-BCOS/FISCO-BCOS/releases. If set, use specificd version binary
    -s <DB type>                        Default rocksdb. Options can be rocksdb / mysql / external, rocksdb is recommended
    -d <docker mode>                    Default off. If set -d, build with docker
    -c <Consensus Algorithm>            Default PBFT. If set -c, use Raft
    -m <MPT State type>                 Default storageState. if set -m, use mpt state
    -C <Chain id>                       Default 1. Can set uint.
    -g <Generate guomi nodes>           Default no
    -z <Generate tar packet>            Default no
    -t <Cert config file>               Default auto generate
    -T <Enable debug log>               Default off. If set -T, enable debug log
    -F <Disable log auto flush>         Default on. If set -F, disable log auto flush
    -h Help
e.g
    ./tools/build_chain.sh -l "127.0.0.1:4"
```

## 选项介绍

- **`l`选项:**
用于指定要生成的链的IP列表以及每个IP下的节点数，以逗号分隔。脚本根据输入的参数生成对应的节点配置文件，其中每个节点的端口号默认从30300开始递增，所有节点属于同一个机构和群组。

- **`f`选项**
    + 用于根据配置文件生成节点，相比于`l`选项支持更多的定制。
    + 按行分割，每一行表示一个服务器，格式为`IP:NUM AgencyName GroupList`，每行内的项使用空格分割，**不可有空行**。
    + `IP:NUM`表示机器的IP地址以及该机器上的节点数。`AgencyName`表示机构名，用于指定使用的机构证书。`GroupList`表示该行生成的节点所属的组，以`,`分割。例如`192.168.0.1:2 agency1 1,2`表示`ip`为`192.168.0.1`的机器上有两个节点，这两个节点属于机构`agency1`，属于group1和group2。

下面是一个配置文件的例子，每个配置项以空格分隔。

```bash
192.168.0.1:2 agency1 1,2
192.168.0.1:2 agency1 1,3
192.168.0.2:3 agency2 1
192.168.0.3:5 agency3 2,3
192.168.0.4:2 agency2 3
```

**假设上述文件名为`ipconf`**，则使用下列命令建链，表示使用配置文件，设置日志级别为`DEBUG`，监听`0.0.0.0`。

```bash
$ bash build_chain.sh -f ipconf -T -i
```

- **`e`选项[**Optional**]**
用于指定`fisco-bcos`二进制所在的**完整路径**，脚本会将`fisco-bcos`拷贝以IP为名的目录下。不指定时，默认从GitHub下载`master`分支最新的二进制程序。

```bash
# 从GitHub下载下载最新release二进制，生成本机4节点
$ bash build_chain.sh -l "127.0.0.1:4"
# 使用 bin/fisco-bcos 二进制，生成本机4节点
$ bash build_chain.sh -l "127.0.0.1:4" -e bin/fisco-bcos
```

- **`o`选项[**Optional**]**
指定生成的配置所在的目录。

- **`p`选项[**Optional**]**
指定节点的起始端口，每个节点占用三个端口，分别是p2p,channel,jsonrpc使用`,`分割端口，必须指定三个端口。同一个IP下的不同节点所使用端口从起始端口递增。

```bash
# 两个节点分别占用`30300,20200,8545`和`30301,20201,8546`。
$ bash build_chain.sh -l 127.0.0.1:2 -p 30300,20200,8545
```

- **`i`选项[**Optional**]**
无参数选项，设置该选项时，设置节点的RPC和channel监听`0.0.0.0`

- **`v`选项[**Optional**]**
用于指定搭建FISCO BCOS时使用的二进制版本。build_chain默认下载[Release页面](https://github.com/FISCO-BCOS/FISCO-BCOS/releases)最新版本，设置该选项时下载参数指定`version`版本并设置`config.ini`配置文件中的`[compatibility].supported_version=${version}`。如果同时使用`-e`选项指定二进制，则使用该二进制，配置`[compatibility].supported_version=${version}`为[Release页面](https://github.com/FISCO-BCOS/FISCO-BCOS/releases)最新版本号。

- **`d`选项[**Optional**]**
使用docker模式搭建FISCO BCOS，使用该选项时不再拉取二进制，但要求用户启动节点机器安装docker且账户有docker权限，即用户加入docker群组。
在节点目录下执行如下命令启动节点
```bash
$ ./start.sh
```

该模式下 start.sh 脚本启动节点的命令如下
```bash
$ docker run -d --rm --name ${nodePath} -v ${nodePath}:/data --network=host -w=/data fiscoorg/fiscobcos:latest -c config.ini
```

- **`m`选项[**Optional**]**
无参数选项，设置该选项时，节点使用[mptstate](../design/storage/mpt.md)存储合约局部变量，默认使用[storagestate](../design/storage/storage.md)存储合约局部变量。

- **`s`选项[**Optional**]**
有参数选项，参数为db名，目前支持rocksdb、mysql、external三种模式。默认使用RocksDB。其中mysql需要在群组ini文件中配置mysql相关信息，external需要配置topic信息并启动amdb-proxy。

- **`c`选项[**Optional**]**
无参数选项，设置该选项时，设置节点的共识算法为[Raft](../design/consensus/raft.md)，默认设置为[PBFT](../design/consensus/pbft.md)。

- **`C`选项[**Optional**]**
用于指定搭建FISCO BCOS时的链标识。设置该选项时将使用参数设置`config.ini`配置文件中的`[chain].id`，参数范围为正整数，默认设置为1。

```bash
# 该链标识为2。
$ bash build_chain.sh -l 127.0.0.1:2 -C 2
```

- **`g`选项[**Optional**]**
无参数选项，设置该选项时，搭建国密版本的FISCO BCOS。**使用`g`选项时要求二进制fisoc-bcos为国密版本**。

- **`z`选项[**Optional**]**
无参数选项，设置该选项时，生成节点的tar包。

- **`t`选项[**Optional**]**
该选项用于指定生成证书时的证书配置文件。

- **`T`选项[**Optional**]**
无参数选项，设置该选项时，设置节点的log级别为DEBUG。log相关配置[参考这里](./configuration.html#id6)。

## 节点文件组织结构

- cert文件夹下存放链的根证书和机构证书。
- 以IP命名的文件夹下存储该服务器所有节点相关配置、`fisco-bcos`可执行程序、SDK所需的证书文件。
- 每个IP文件夹下的`node*`文件夹下存储节点所需的配置文件。其中`config.ini`为节点的主配置，`conf`目录下存储证书文件和群组相关配置。配置文件详情，请[参考这里](configuration.md)。每个节点中还提供`start.sh`和`stop.sh`脚本，用于启动和停止节点。
- 每个IP文件夹下的提供`start_all.sh`和`stop_all.sh`两个脚本用于启动和停止所有节点。

```bash
nodes/
├── 127.0.0.1
│   ├── fisco-bcos # 二进制程序
│   ├── node0 # 节点0文件夹
│   │   ├── conf # 配置文件夹
│   │   │   ├── ca.crt # 链根证书
│   │   │   ├── group.1.genesis # 群组1初始化配置，该文件不可更改
│   │   │   ├── group.1.ini # 群组1配置文件
│   │   │   ├── node.crt # 节点证书
│   │   │   ├── node.key # 节点私钥
│   │   │   ├── node.nodeid # 节点id，公钥的16进制表示
│   │   ├── config.ini # 节点主配置文件，配置监听IP、端口等
│   │   ├── start.sh # 启动脚本，用于启动节点
│   │   └── stop.sh # 停止脚本，用于停止节点
│   ├── node1 # 节点1文件夹
│   │.....
│   ├── node2 # 节点2文件夹
│   │.....
│   ├── node3 # 节点3文件夹
│   │.....
│   ├── sdk # SDK需要用到的
│   │   ├── ca.crt # 链根证书
│   │   ├── sdk.crt # SKD所需的证书文件，建立连接时使用
│   │   └── sdk.key # SDK所需的私钥文件，建立连接时使用
├── cert # 证书文件夹
│   ├── agency # 机构证书文件夹
│   │   ├── agency.crt # 机构证书
│   │   ├── agency.key # 机构私钥
│   │   ├── agency.srl
│   │   ├── ca-agency.crt
│   │   ├── ca.crt
│   │   └── cert.cnf
│   ├── ca.crt # 链证书
│   ├── ca.key # 链私钥
│   ├── ca.srl
│   └── cert.cnf
```

## 使用举例

### 单服务器单群组

构建本机上4节点的FISCO BCOS联盟链，使用默认起始端口`30300,20200,8545`（4个节点会占用`30300-30303`,`20200-20203`,`8545-8548`），监听外网`Channel`和`jsonrpc`端口，允许外网通过SDK或API与节点交互。

```bash
# 构建FISCO BCOS联盟链
$ bash build_chain.sh -l "127.0.0.1:4" -i
# 生成成功后，输出`All completed`提示
Generating CA key...
==============================================================
Generating keys ...
Processing IP:127.0.0.1 Total:4 Agency:agency Groups:1
==============================================================
Generating configurations...
Processing IP:127.0.0.1 Total:4 Agency:agency Groups:1
==============================================================
[INFO] FISCO-BCOS Path   : bin/fisco-bcos
[INFO] Start Port        : 30300 20200 8545
[INFO] Server IP         : 127.0.0.1:4
[INFO] State Type        : storage
[INFO] RPC listen IP     : 0.0.0.0
[INFO] Output Dir        : /Users/fisco/WorkSpace/FISCO-BCOS/tools/nodes
[INFO] CA Key Path       : /Users/fisco/WorkSpace/FISCO-BCOS/tools/nodes/cert/ca.key
==============================================================
[INFO] All completed. Files in /Users/fisco/WorkSpace/FISCO-BCOS/tools/nodes
```

### 群组新增节点

本节以为上一小节生成的群组1新增一个共识节点为例操作。

#### 为新节点生成私钥证书

接下来的操作，都在上一节生成的`nodes/127.0.0.1`目录下进行

1. 获取证书生成脚本

```bash
curl -LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/gen_node_cert.sh
```

2. 生成新节点私钥证书

```bash
# -c指定机构证书及私钥所在路径
# -o输出到指定文件夹，其中newNode/conf中会存在机构agency新签发的证书和私钥
bash gen_node_cert.sh -c nodes/cert/agency -o newNode
```

#### 准备配置文件

1. 拷贝群组1中节点node0配置文件与工具脚本

```bash
cp node0/config.ini newNode/config.ini
cp node0/conf/group.1.genesis newNode/conf/group.1.genesis
cp node0/conf/group.1.ini newNode/conf/group.1.ini
cp node0/*.sh newNode/
cp -r node0/scripts newNode/
```

2. 更新`newNode/config.ini`中监听的IP和端口
3. 通过console将新节点加入群组1，请参考[这里](./console.html#addsealer)和[这里](./node_management.html#id7)
4. 将新节点的P2P配置中的IP和Port加入原有节点的config.ini中的[p2p]字段。假设新节点IP:Port为127.0.0.1:30304则，修改后的[P2P]配置为

    ```bash
    [p2p]
        listen_ip=0.0.0.0
        listen_port=30300
        ;enable_compress=true
        ; nodes to connect
        node.0=127.0.0.1:30300
        node.1=127.0.0.1:30301
        node.2=127.0.0.1:30302
        node.3=127.0.0.1:30303
        node.4=127.0.0.1:30304
    ```

#### 启动新节点，检查链接和共识

### 多服务器多群组

使用build_chain脚本构建多服务器多群组的FISCO BCOS联盟链需要借助脚本配置文件，详细使用方式可以[参考这里](../manual/group_use_cases.md)。

[build_chain]:https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/tools/build_chain.sh


net nezinau ka tu cia megini padaryti :cactus:


Successfully deployed to following URLs:

* https://theprojectalpha-r05zr031m.now.sh
* https://project-alpha.now.sh
* https://theprojectalpha.now.sh
* https://theprojectalpha.hugos29dev.now.sh
* https://theprojectalpha-git-master.hugos29dev.now.sh


commit the changes


That's a good start!


Successfully deployed to following URLs:

* https://gamerclubweb-7b0b0rg25.now.sh
* https://gamer.epicdata.net
* https://gamerclubweb.openepicdata.now.sh
* https://gamerclubweb-git-master.openepicdata.now.sh


kodel cia objektas ka dar be responce i ji dedi ?


Yes, this was reverted back in ba8e22337b532e72eff26887c174863e561e51fa


Reikia dar padirbeti


@donovaly Same as in #2748, you should use spaces instead of tabs for indentation.


Hi @seisman, I must have hit the wrong button.  I was trying to make a pull request from this branch (apiencodefix) but somehow I cannot do it.  Could you help make this a pull request WIP and then I can remove the WIP and comment on what it is (it is all about the external interfaces - Mex and Julia in particular) for modern mode.


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-66um72utj.now.sh


Changed to method's local constant variable. Added suggested code comment.


Added unit tests.


is attachment... in the message subject ? have more questions in check_inbox?


Successfully deployed to following URLs:

* https://boar-map-51eds8gmi.now.sh
* https://boar-map.nit-gifu-gis.now.sh
* https://boar-map-git-master.nit-gifu-gis.now.sh


<details>

<summary>Submitting the task to Taskcluster failed. Details</summary>

Taskcluster-GitHub attempted to create a task for this event with the following scopes:

```
[
  "assume:repo:github.com/servo/servo:pull-request",
  "queue:route:statuses",
  "queue:scheduler-id:taskcluster-github"
]
```

The expansion of these scopes is not sufficient to create the task, leading to the following:

Client ID static/taskcluster/github does not have sufficient scopes and is missing the following scopes:

```
{
  "AnyOf": [
    {
      "AnyOf": [
        "queue:create-task:highest:aws-provisioner-v1/servo-docker-untrusted",
        "queue:create-task:very-high:aws-provisioner-v1/servo-docker-untrusted",
        "queue:create-task:high:aws-provisioner-v1/servo-docker-untrusted",
        "queue:create-task:medium:aws-provisioner-v1/servo-docker-untrusted",
        "queue:create-task:low:aws-provisioner-v1/servo-docker-untrusted",
        "queue:create-task:very-low:aws-provisioner-v1/servo-docker-untrusted",
        "queue:create-task:lowest:aws-provisioner-v1/servo-docker-untrusted"
      ]
    },
    {
      "AnyOf": [
        "queue:create-task:aws-provisioner-v1/servo-docker-untrusted",
        {
          "AllOf": [
            "queue:define-task:aws-provisioner-v1/servo-docker-untrusted",
            "queue:task-group-id:taskcluster-github/cE5AkGWeTSOW_CO_kFL5Ww",
            "queue:schedule-task:taskcluster-github/cE5AkGWeTSOW_CO_kFL5Ww/cE5AkGWeTSOW_CO_kFL5Ww"
          ]
        }
      ]
    }
  ]
}
```

This request requires the client to satisfy the following scope expression:

```
{
  "AllOf": [
    "assume:repo:github.com/servo/servo:pull-request",
    "queue:route:tc-treeherder.v2._/servo-prs.052e161f0dde68ad4fd658dfbce390516498ffa1",
    "queue:route:tc-treeherder-staging.v2._/servo-prs.052e161f0dde68ad4fd658dfbce390516498ffa1",
    "queue:route:statuses",
    {
      "AnyOf": [
        {
          "AllOf": [
            "queue:scheduler-id:taskcluster-github",
            {
              "AnyOf": [
                "queue:create-task:highest:aws-provisioner-v1/servo-docker-untrusted",
                "queue:create-task:very-high:aws-provisioner-v1/servo-docker-untrusted",
                "queue:create-task:high:aws-provisioner-v1/servo-docker-untrusted",
                "queue:create-task:medium:aws-provisioner-v1/servo-docker-untrusted",
                "queue:create-task:low:aws-provisioner-v1/servo-docker-untrusted",
                "queue:create-task:very-low:aws-provisioner-v1/servo-docker-untrusted",
                "queue:create-task:lowest:aws-provisioner-v1/servo-docker-untrusted"
              ]
            }
          ]
        },
        {
          "AnyOf": [
            "queue:create-task:aws-provisioner-v1/servo-docker-untrusted",
            {
              "AllOf": [
                "queue:define-task:aws-provisioner-v1/servo-docker-untrusted",
                "queue:task-group-id:taskcluster-github/cE5AkGWeTSOW_CO_kFL5Ww",
                "queue:schedule-task:taskcluster-github/cE5AkGWeTSOW_CO_kFL5Ww/cE5AkGWeTSOW_CO_kFL5Ww"
              ]
            }
          ]
        }
      ]
    }
  ]
}
```

---

* method:     createTask
* errorCode:  InsufficientScopes
* statusCode: 403
* time:       2019-12-02T06:59:22.260Z

</details>


Successfully deployed to following URLs:

* https://theprojectalpha-1d4aovl5p.now.sh
* https://project-alpha.now.sh
* https://theprojectalpha.now.sh
* https://theprojectalpha.hugos29dev.now.sh
* https://theprojectalpha-git-master.hugos29dev.now.sh


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-h2rjmfycv.now.sh


That's code is broken. You must return only on True, not non null value. If card was set to `CastFromExileEnabled` -- it's will be set all the time in GameState (true/false) -- e.g. `spellCanBeActivatedRegularlyNow` will not work for exiled card all the game.


news() 메소드는 기사글이랑 댓글을 가져오는 역할을 하고 있는 거죠? 그렇다면 굳이 POST를 사용할 필요 없이 GET을 사용하면 된고 GET, POST같은 메소드는 간단하게 설명하자면 GET은 단순 요청, POST는 insert관련 요청, PUT은 update관련 요청 DELETE는 삭제 관련 요청을 보낼 때 사용합니다.

말씀하신 것처럼 개인 정보도 고려되야 하는 부분인데 그것은 Client에서 Server로 데이터를 보낼 때  고려되야 하는 것이니 news() 메소드 에서는 단순히 기사글과 댓글을 가져오기 때문에 GET 메서드를 사용하는 것이 더 적합하다고 생각됩니다.


smtp.gmail.com?


Bad commit message - actually made ENDLOOP a good thing to use, by removing a full instruction from the stack with every pop(). 😀


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-h30zqrg4c.now.sh


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-6c1tochdt.now.sh


Successfully deployed to following URLs:

* https://circleback-design-system-cyalg9v6y.now.sh
* https://circleback-design-system.amalv.now.sh
* https://circleback-design-system-git-master.amalv.now.sh


Deployment failed with the following error:

~~~
The property `type` is not allowed in now.json when using Now 2.0 – please remove it.
~~~


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-ghb382le2.now.sh


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-ar88i4dr7.now.sh


Successfully deployed to following URLs:

* https://theprojectalpha-js9ac3bjg.now.sh
* https://project-alpha.now.sh
* https://theprojectalpha.now.sh
* https://theprojectalpha.hugos29dev.now.sh
* https://theprojectalpha-git-master.hugos29dev.now.sh


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit 1ea3f7162e4d6e1a3a915c8b252729570630fca7.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-mimba2vtx.now.sh


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-1eg6craj0.now.sh


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-euzqsx84s.now.sh


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit 86e97a1443b32a6cd6897bddc2c1eaba7a7ceb98.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit 4ec3820b2f170ab7004023b2ef6939febc4c35ec.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


Successfully deployed to following URLs:

* https://theprojectalpha-r2nkhkwfh.now.sh
* https://project-alpha.now.sh
* https://theprojectalpha.now.sh
* https://theprojectalpha.hugos29dev.now.sh
* https://theprojectalpha-git-master.hugos29dev.now.sh


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-n1eu2zwd9.now.sh


Successfully deployed to following URLs:

* https://circleback-design-system-97typptsa.now.sh
* https://circleback-design-system.amalv.now.sh
* https://circleback-design-system-git-master.amalv.now.sh


Successfully deployed to following URLs:

* https://exp-dvlusx88y.now.sh
* https://exp-sigma-two.now.sh
* https://exp.ashishtakyar.now.sh
* https://exp-git-master.ashishtakyar.now.sh


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit b444be5ed5dbce3e5e6aa6b061069663fdd4a89f.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


re


❌ [Build was (probably) aborted](https://jenkins.internalx.com/job/macios/job/issue-7441-d16-3-vsmac/1/display/redirect)

🔥 [Jenkins job](https://jenkins.internalx.com/job/macios/job/issue-7441-d16-3-vsmac/1/display/redirect) (on internal Jenkins) failed in stage(s) 'Provisioning' 🔥 : hudson.AbortException: script returned exit code 1

🔥 [Provisioning failed](https://jenkins.internalx.com/job/macios/job/issue-7441-d16-3-vsmac/1//console) 🔥


Creating a new Blog using Django


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit 968f6eaa915fed22d07698b1c3f1e7f95edf0e4a.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


补充：
离散数学_C7_05F.jpg：
1. 关于树的“权”这一指标，除了C(T)外还有W(T)可以表示。
2. 生成最优二叉树的算法根据其提出者的名字被命名为哈夫曼算法，最优二叉树也称哈夫曼树，前缀码则也称哈夫曼码。
修正：
离散数学_C7_05F.jpg：
关于克鲁斯卡尔(Kruskal)算法求最小生成树的伪码应在while后第一行添加如下语句。
if _return_tank_ in target + SortedEdges[0]:
    SortedEdges.remove[0]


Deploy preview for _website_ ready!

Built with commit undefined

https://circleback-design-system-l4qywayxe.now.sh


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit b5e0f62ea6d5f5d977db1e11fda9c0dfd4561daa.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


Thank you @jeroen!


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit 203cdf8d31d456a12882c4549bb98669dd95402e.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


[Circle has built](https://circleci.com/gh/cypress-io/cypress/202892) the `linux x64` version of the Test Runner.

You can install this pre-release platform-specific build using instructions at [https://on.cypress.io/installing-cypress#Install-pre-release-version](https://on.cypress.io/installing-cypress#Install-pre-release-version).

You will need to use custom `CYPRESS_INSTALL_BINARY` url and install Cypress using an url instead of the version.

    export CYPRESS_INSTALL_BINARY=https://cdn.cypress.io/beta/binary/3.7.1/linux-x64/circle-develop-1cbf22a0bb2142bf9f172db5b92a6d3af1a2d395-202890/cypress.zip
    npm install https://cdn.cypress.io/beta/npm/3.7.1/circle-develop-1cbf22a0bb2142bf9f172db5b92a6d3af1a2d395-202765/cypress.tgz


[AppVeyor has built](https://ci.appveyor.com/project/cypress-io/cypress/builds/29243875/job/07g6b6pwm9pnigb7) the `win32 ia32` version of the Test Runner.

You can install this pre-release platform-specific build using instructions at [https://on.cypress.io/installing-cypress#Install-pre-release-version](https://on.cypress.io/installing-cypress#Install-pre-release-version).

You will need to use custom `CYPRESS_INSTALL_BINARY` url and install Cypress using an url instead of the version.

    set CYPRESS_INSTALL_BINARY=https://cdn.cypress.io/beta/binary/3.7.1/win32-ia32/appveyor-develop-1cbf22a0bb2142bf9f172db5b92a6d3af1a2d395-29243875/cypress.zip
    npm install https://cdn.cypress.io/beta/binary/3.7.1/win32-ia32/appveyor-develop-1cbf22a0bb2142bf9f172db5b92a6d3af1a2d395-29243875/cypress.zip


[AppVeyor has built](https://ci.appveyor.com/project/cypress-io/cypress/builds/29243875/job/lxbpnpnt2md4jmly) the `win32 x64` version of the Test Runner.

You can install this pre-release platform-specific build using instructions at [https://on.cypress.io/installing-cypress#Install-pre-release-version](https://on.cypress.io/installing-cypress#Install-pre-release-version).

You will need to use custom `CYPRESS_INSTALL_BINARY` url and install Cypress using an url instead of the version.

    set CYPRESS_INSTALL_BINARY=https://cdn.cypress.io/beta/binary/3.7.1/win32-x64/appveyor-develop-1cbf22a0bb2142bf9f172db5b92a6d3af1a2d395-29243875/cypress.zip
    npm install https://cdn.cypress.io/beta/binary/3.7.1/win32-x64/appveyor-develop-1cbf22a0bb2142bf9f172db5b92a6d3af1a2d395-29243875/cypress.zip


@shuma1020 気持ちはわからなくないですが、インデントなど構造を意識してコードを書く癖をつけましょう。乱雑になったコードは勘違いしやすくて、バグを産みやすくなります。


Successfully deployed to following URLs:

* https://e-port-mzfx38nhe.now.sh
* https://e-port-orpin-kappa.now.sh
* https://e-port.evansibok.now.sh
* https://e-port-git-master.evansibok.now.sh


1.안드로이드는 소켓 연결 등을 시도하거나 응답을 받아 처리할 때 스레드를 사용한다.


Successfully deployed to following URLs:

* https://theprojectalpha-5p9lcodtd.now.sh
* https://project-alpha.now.sh
* https://theprojectalpha.now.sh
* https://theprojectalpha.hugos29dev.now.sh
* https://theprojectalpha-git-master.hugos29dev.now.sh


これも消す対象？


Successfully deployed to following URLs:

* https://exp-zu0fdl45i.now.sh
* https://exp-sigma-two.now.sh
* https://exp.ashishtakyar.now.sh
* https://exp-git-master.ashishtakyar.now.sh


@shuma1020 あと、このコミット全体を見るとわかると思いますが、無駄な改行が結構入ってきています。意味のない改行は入れないようにしていきましょう。「


changed @copyrights to &copy


@rrmistry from memory whilst the API accepts Upper and lower case - the API only returns lower-case; as such to not show a perpetual diff this is why this is limited to lower-case here (since in practice the API converts it to lower-case).

That said - if you can add an acceptance test for the resources using MetaData showing this works in Upper Case too then we're more than happy to accept a PR to enable upper-case here :)


That's perfect, thanks for letting me know! I'll probably even try to give a hand as I also plan to support more platforms (which requires windows) so I'd be happy to join forces here.


thank you solved my big problem I was working with a project of health ask4heal [questions and answer](https://www.healserv.com/ask4heal) and I am facing the same problem but this your contribution helped me a lot.


Build failed with make px4_raspberrypi_cross
`
[2/348] Building CXX object src/modules/camera_feedback/CMakeFiles/modules__camera_feedback.dir/CameraFeedback.cpp.o
FAILED: src/modules/camera_feedback/CMakeFiles/modules__camera_feedback.dir/CameraFeedback.cpp.o
/usr/bin/ccache /opt/rpi_toolchain/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++  -DCONFIG_ARCH_BOARD_PX4_RASPBERRYPI -DMODULE_NAME=\"camera_feedback\" -DPX4_MAIN=camera_feedback_app_main -D__CUSTOM_FILE_IO__ -D__DF_LINUX -D__DF_RPI -D__PX4_LINUX -D__PX4_POSIX -D__STDC_FORMAT_MACROS -Dnoreturn_function="__attribute__((noreturn))" -I../../boards/px4/raspberrypi/src -I../../platforms/posix/src/px4/common/include -I. -Isrc/lib -I../../platforms/posix/src/px4/generic/generic/include -I../../platforms/common/include -I../../src -I../../src/include -I../../src/lib -I../../src/lib/DriverFramework/framework/include -I../../src/lib/matrix -I../../src/modules -I../../platforms/posix/include -Iexternal/Install/include -O2 -g -DNDEBUG -fPIC   -g -fdata-sections -ffunction-sections -fomit-frame-pointer -fmerge-all-constants -fno-signed-zeros -fno-trapping-math -freciprocal-math -fno-math-errno -fno-strict-aliasing -fvisibility=hidden -include visibility.h -Wall -Wextra -Werror -Warray-bounds -Wcast-align -Wdisabled-optimization -Wdouble-promotion -Wfatal-errors -Wfloat-equal -Wformat-security -Winit-self -Wlogical-op -Wpointer-arith -Wshadow -Wuninitialized -Wunknown-pragmas -Wunused-variable -Wno-missing-field-initializers -Wno-missing-include-dirs -Wno-unused-parameter -fno-builtin-printf -fno-strength-reduce -Wformat=1 -Wunused-but-set-variable -Wno-format-truncation -fcheck-new -fno-exceptions -fno-rtti -fno-threadsafe-statics -Wreorder -Wno-overloaded-virtual -std=gnu++11 -MD -MT src/modules/camera_feedback/CMakeFiles/modules__camera_feedback.dir/CameraFeedback.cpp.o -MF src/modules/camera_feedback/CMakeFiles/modules__camera_feedback.dir/CameraFeedback.cpp.o.d -o src/modules/camera_feedback/CMakeFiles/modules__camera_feedback.dir/CameraFeedback.cpp.o -c ../../src/modules/camera_feedback/CameraFeedback.cpp
In file included from ../../platforms/common/include/px4_platform_common/param.h:42:0,
                 from ../../platforms/common/include/px4_platform_common/module_params.h:44,
                 from ../../src/modules/camera_feedback/CameraFeedback.hpp:48,
                 from ../../src/modules/camera_feedback/CameraFeedback.cpp:34:
../../src/modules/camera_feedback/CameraFeedback.hpp:88:14: error: ‘CAM_CAP_FBACK’ is not a member of ‘px4::params’
   (ParamBool<px4::params::CAM_CAP_FBACK>) _param_camera_capture_feedback
              ^
../../platforms/common/include/px4_platform_common/param_macros.h:239:18: note: in definition of macro ‘REM’
 #define REM(...) __VA_ARGS__
                  ^
../../platforms/common/include/px4_platform_common/param.h:58:40: note: in expansion of macro ‘PAIR’
  do_not_explicitly_use_this_namespace::PAIR(x);
                                        ^
../../platforms/common/include/px4_platform_common/param_macros.h:44:24: note: in expansion of macro ‘_DEFINE_SINGLE_PARAMETER’
 #define APPLY1(t, aaa) t(aaa)
                        ^
../../platforms/common/include/px4_platform_common/param_macros.h:197:33: note: in expansion of macro ‘APPLY1’
 #define APPLY_ALL_H3(t, n, ...) APPLY##n(t, __VA_ARGS__)
                                 ^
../../platforms/common/include/px4_platform_common/param_macros.h:198:33: note: in expansion of macro ‘APPLY_ALL_H3’
 #define APPLY_ALL_H2(t, n, ...) APPLY_ALL_H3(t, n, __VA_ARGS__)
                                 ^
../../platforms/common/include/px4_platform_common/param_macros.h:199:27: note: in expansion of macro ‘APPLY_ALL_H2’
 #define APPLY_ALL(t, ...) APPLY_ALL_H2(t, NUM_ARGS(__VA_ARGS__), __VA_ARGS__)
                           ^
../../platforms/common/include/px4_platform_common/param.h:79:2: note: in expansion of macro ‘APPLY_ALL’
  APPLY_ALL(_DEFINE_SINGLE_PARAMETER, __VA_ARGS__) \
  ^
../../src/modules/camera_feedback/CameraFeedback.hpp:87:2: note: in expansion of macro ‘DEFINE_PARAMETERS’
  DEFINE_PARAMETERS(
  ^
compilation terminated due to -Wfatal-errors.
[15/348] Building CXX object src/modules/commander/Arming/PreFlightCheck/CMakeFiles/PreFlightCheck.dir/checks/imuConsistencyCheck.cpp.o
ninja: build stopped: subcommand failed.
Makefile:193: recipe for target 'px4_raspberrypi_cross' failed
make: *** [px4_raspberrypi_cross] Error 1
`


nothing


"Too many bugs", not "too much bug"


how to get the full data


Check out this https://docs.microsoft.com/en-us/azure/cognitive-services/face/quickstarts/node


[Circle has built](https://circleci.com/gh/cypress-io/cypress/202905) the `darwin x64` version of the Test Runner.

You can install this pre-release platform-specific build using instructions at [https://on.cypress.io/installing-cypress#Install-pre-release-version](https://on.cypress.io/installing-cypress#Install-pre-release-version).

You will need to use custom `CYPRESS_INSTALL_BINARY` url and install Cypress using an url instead of the version.

    export CYPRESS_INSTALL_BINARY=https://cdn.cypress.io/beta/binary/3.7.1/darwin-x64/circle-develop-1cbf22a0bb2142bf9f172db5b92a6d3af1a2d395-202904/cypress.zip
    npm install https://cdn.cypress.io/beta/npm/3.7.1/circle-develop-1cbf22a0bb2142bf9f172db5b92a6d3af1a2d395-202893/cypress.tgz


Change the number up to 100 to Korean.


Successfully deployed to following URLs:

* https://gesture-password-4hn7vu2yx.now.sh
* https://gesture-password.now.sh
* https://gesture-password.alita.now.sh
* https://gesture-password-git-master.alita.now.sh


ok sir ._.


Successfully deployed to following URLs:

* https://hysequa-offline-17ry06dlr.now.sh
* https://hysequa-offline.now.sh
* https://hysequa.info53.now.sh
* https://hysequa-offline.info53.now.sh
* https://hysequa-offline-git-master.info53.now.sh


Tracey,

To answer your questions:

* I think that the escape character in RegEx is \\ and not \ (at least that’s what re.escape() gives)

* if we can skip the Jianpu 2 western conversion that’s way better

*I have just read that in Jianpu the silence is 0.
So... we should/could use 0 for silence and not '.'
However, we still have to use + and - for octave modification, as the '.' is ambiguous (it is not clear whether a dot before the note would mean it is above or below).

* clearly, Jianpu uses a movable do system. If the key signature is 1=C, then the notes are C, D, E...
So in E major, 1=E == E4
But ++++ means “go up by 4 octaves”, so 1++++ = E8
Or am I missing something?

>> Le 2 déc. 2019 à 02:08, Tracey <notifications@github.com> a écrit :
>
> wait I need to ask:
>
> in E major, would 3++++ be E? Or would it be G♯?
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub, or unsubscribe.


Add to the ASPI section, SSDT-PLUG.aml for SpeedStep to work, it will also work correctly sleep.


check


Yes, @Mistreated can you please fix this by creating a new VM on our server and make the deployment of this website and webui there? (Within docker containers)

This should not replace the current webpage but it is very good to have a backup. (The webui, however, would be productive. If we have it on our server and on a7 it would be a plus.)


Tracey,

To answer your questions:

- I think that the escape character in RegEx is \\ and not \ (at least that’s what re.escape() gives)

- if we can skip the Jianpu 2 western conversion that’s way better

- I have just read that in Jianpu the silence is 0. So... we should/could use 0 for silence and not '.' However, we still have to use + and - for octave modification, as the '.' is ambiguous (it is not clear whether a dot before the note would mean it is above or below).

- clearly, Jianpu uses a movable do system. If the key signature is 1=C, then the notes are C, D, E...So in E major, 1=E == E4. But ++++ means “go up by 4 octaves”, so 1++++ = E8 Or am I missing something?


OK


🤣 Why so offically commit un-official WANN.


❌ [Build was (probably) aborted](https://jenkins.internalx.com/job/macios/job/issue-7441-d16-3-vsmac/2/display/redirect)

🔥 [Jenkins job](https://jenkins.internalx.com/job/macios/job/issue-7441-d16-3-vsmac/2/display/redirect) (on internal Jenkins) failed in stage(s) 'Provisioning' 🔥 : hudson.AbortException: script returned exit code 64

🔥 [Provisioning failed](https://jenkins.internalx.com/job/macios/job/issue-7441-d16-3-vsmac/2//console) 🔥


Let's do this server-side


Добавь файл process.txt в .gitignore


It was very hard to write unit tests without validations, so I began writing/pondering the validation code. This will need to be integrated into the React and potentially Django code. I will be asking several questions this week. For the scope of the project, manual testing may be faster.


Congratulations!


#!/usr/bin/env python

# Copyright 2019 Google LLC. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""This application demonstrates speech transcription using the
Google Cloud API.
Usage Examples:
    python beta_snippets.py transcription \
        gs://python-docs-samples-tests/video/googlework_short.mp4
    python beta_snippets.py video-text-gcs \
        gs://python-docs-samples-tests/video/googlework_short.mp4
    python beta_snippets.py track-objects resources/cat.mp4
    python beta_snippets.py streaming-labels resources/cat.mp4
    python beta_snippets.py streaming-shot-change resources/cat.mp4
    python beta_snippets.py streaming-objects resources/cat.mp4
    python beta_snippets.py streaming-explicit-content resources/cat.mp4
    python beta_snippets.py streaming-annotation-storage resources/cat.mp4 \
    gs://mybucket/myfolder
    python beta_snippets.py streaming-automl-classification resources/cat.mp4 \
    $PROJECT_ID $MODEL_ID
"""

import argparse
import io

def speech_transcription(input_uri):
    # [START video_speech_transcription_gcs_beta]
    """Transcribe speech from a video stored on GCS."""
    from google.cloud import videointelligence_v1p1beta1 as videointelligence

    video_client = videointelligence.VideoIntelligenceServiceClient()

    features = [videointelligence.enums.Feature.SPEECH_TRANSCRIPTION]

    config = videointelligence.types.SpeechTranscriptionConfig(
        language_code='en-US',
        enable_automatic_punctuation=True)
    video_context = videointelligence.types.VideoContext(
        speech_transcription_config=config)

    operation = video_client.annotate_video(
        input_uri, features=features,
        video_context=video_context)

    print('\nProcessing video for speech transcription.')

    result = operation.result(timeout=180)

    # There is only one annotation_result since only
    # one video is processed.
    annotation_results = result.annotation_results[0]
    for speech_transcription in annotation_results.speech_transcriptions:

        # The number of alternatives for each transcription is limited by
        # SpeechTranscriptionConfig.max_alternatives.
        # Each alternative is a different possible transcription
        # and has its own confidence score.
        for alternative in speech_transcription.alternatives:
            print('Alternative level information:')

            print('Transcript: {}'.format(alternative.transcript))
            print('Confidence: {}\n'.format(alternative.confidence))

            print('Word level information:')
            for word_info in alternative.words:
                word = word_info.word
                start_time = word_info.start_time
                end_time = word_info.end_time
                print('\t{}s - {}s: {}'.format(
                    start_time.seconds + start_time.nanos * 1e-9,
                    end_time.seconds + end_time.nanos * 1e-9,
                    word))
    # [END video_speech_transcription_gcs_beta]

def video_detect_text_gcs(input_uri):
    # [START video_detect_text_gcs_beta]
    """Detect text in a video stored on GCS."""
    from google.cloud import videointelligence_v1p2beta1 as videointelligence

    video_client = videointelligence.VideoIntelligenceServiceClient()
    features = [videointelligence.enums.Feature.TEXT_DETECTION]

    operation = video_client.annotate_video(
        input_uri=input_uri,
        features=features)

    print('\nProcessing video for text detection.')
    result = operation.result(timeout=300)

    # The first result is retrieved because a single video was processed.
    annotation_result = result.annotation_results[0]

    # Get only the first result
    text_annotation = annotation_result.text_annotations[0]
    print('\nText: {}'.format(text_annotation.text))

    # Get the first text segment
    text_segment = text_annotation.segments[0]
    start_time = text_segment.segment.start_time_offset
    end_time = text_segment.segment.end_time_offset
    print('start_time: {}, end_time: {}'.format(
        start_time.seconds + start_time.nanos * 1e-9,
        end_time.seconds + end_time.nanos * 1e-9))

    print('Confidence: {}'.format(text_segment.confidence))

    # Show the result for the first frame in this segment.
    frame = text_segment.frames[0]
    time_offset = frame.time_offset
    print('Time offset for the first frame: {}'.format(
        time_offset.seconds + time_offset.nanos * 1e-9))
    print('Rotated Bounding Box Vertices:')
    for vertex in frame.rotated_bounding_box.vertices:
        print('\tVertex.x: {}, Vertex.y: {}'.format(vertex.x, vertex.y))
    # [END video_detect_text_gcs_beta]
    return annotation_result.text_annotations

def video_detect_text(path):
    # [START video_detect_text_beta]
    """Detect text in a local video."""
    from google.cloud import videointelligence_v1p2beta1 as videointelligence

    video_client = videointelligence.VideoIntelligenceServiceClient()
    features = [videointelligence.enums.Feature.TEXT_DETECTION]
    video_context = videointelligence.types.VideoContext()

    with io.open(path, 'rb') as file:
        input_content = file.read()

    operation = video_client.annotate_video(
        input_content=input_content,  # the bytes of the video file
        features=features,
        video_context=video_context)

    print('\nProcessing video for text detection.')
    result = operation.result(timeout=300)

    # The first result is retrieved because a single video was processed.
    annotation_result = result.annotation_results[0]

    # Get only the first result
    text_annotation = annotation_result.text_annotations[0]
    print('\nText: {}'.format(text_annotation.text))

    # Get the first text segment
    text_segment = text_annotation.segments[0]
    start_time = text_segment.segment.start_time_offset
    end_time = text_segment.segment.end_time_offset
    print('start_time: {}, end_time: {}'.format(
        start_time.seconds + start_time.nanos * 1e-9,
        end_time.seconds + end_time.nanos * 1e-9))

    print('Confidence: {}'.format(text_segment.confidence))

    # Show the result for the first frame in this segment.
    frame = text_segment.frames[0]
    time_offset = frame.time_offset
    print('Time offset for the first frame: {}'.format(
        time_offset.seconds + time_offset.nanos * 1e-9))
    print('Rotated Bounding Box Vertices:')
    for vertex in frame.rotated_bounding_box.vertices:
        print('\tVertex.x: {}, Vertex.y: {}'.format(vertex.x, vertex.y))
    # [END video_detect_text_beta]
    return annotation_result.text_annotations

def track_objects_gcs(gcs_uri):
    # [START video_object_tracking_gcs_beta]
    """Object Tracking."""
    from google.cloud import videointelligence_v1p2beta1 as videointelligence

    # It is recommended to use location_id as 'us-east1' for the best latency
    # due to different types of processors used in this region and others.
    video_client = videointelligence.VideoIntelligenceServiceClient()
    features = [videointelligence.enums.Feature.OBJECT_TRACKING]
    operation = video_client.annotate_video(
        input_uri=gcs_uri, features=features, location_id='us-east1')
    print('\nProcessing video for object annotations.')

    result = operation.result(timeout=300)
    print('\nFinished processing.\n')

    # The first result is retrieved because a single video was processed.
    object_annotations = result.annotation_results[0].object_annotations

    # Get only the first annotation for demo purposes.
    object_annotation = object_annotations[0]
    # description is in Unicode
    print(u'Entity description: {}'.format(
        object_annotation.entity.description))
    if object_annotation.entity.entity_id:
        print('Entity id: {}'.format(object_annotation.entity.entity_id))

    print('Segment: {}s to {}s'.format(
        object_annotation.segment.start_time_offset.seconds +
        object_annotation.segment.start_time_offset.nanos / 1e9,
        object_annotation.segment.end_time_offset.seconds +
        object_annotation.segment.end_time_offset.nanos / 1e9))

    print('Confidence: {}'.format(object_annotation.confidence))

    # Here we print only the bounding box of the first frame in this segment
    frame = object_annotation.frames[0]
    box = frame.normalized_bounding_box
    print('Time offset of the first frame: {}s'.format(
        frame.time_offset.seconds + frame.time_offset.nanos / 1e9))
    print('Bounding box position:')
    print('\tleft  : {}'.format(box.left))
    print('\ttop   : {}'.format(box.top))
    print('\tright : {}'.format(box.right))
    print('\tbottom: {}'.format(box.bottom))
    print('\n')
    # [END video_object_tracking_gcs_beta]
    return object_annotations

def track_objects(path):
    # [START video_object_tracking_beta]
    """Object Tracking."""
    from google.cloud import videointelligence_v1p2beta1 as videointelligence

    video_client = videointelligence.VideoIntelligenceServiceClient()
    features = [videointelligence.enums.Feature.OBJECT_TRACKING]

    with io.open(path, 'rb') as file:
        input_content = file.read()

    # It is recommended to use location_id as 'us-east1' for the best latency
    # due to different types of processors used in this region and others.
    operation = video_client.annotate_video(
        input_content=input_content, features=features, location_id='us-east1')
    print('\nProcessing video for object annotations.')

    result = operation.result(timeout=300)
    print('\nFinished processing.\n')

    # The first result is retrieved because a single video was processed.
    object_annotations = result.annotation_results[0].object_annotations

    # Get only the first annotation for demo purposes.
    object_annotation = object_annotations[0]
    # description is in Unicode
    print(u'Entity description: {}'.format(
        object_annotation.entity.description))
    if object_annotation.entity.entity_id:
        print('Entity id: {}'.format(object_annotation.entity.entity_id))

    print('Segment: {}s to {}s'.format(
        object_annotation.segment.start_time_offset.seconds +
        object_annotation.segment.start_time_offset.nanos / 1e9,
        object_annotation.segment.end_time_offset.seconds +
        object_annotation.segment.end_time_offset.nanos / 1e9))

    print('Confidence: {}'.format(object_annotation.confidence))

    # Here we print only the bounding box of the first frame in this segment
    frame = object_annotation.frames[0]
    box = frame.normalized_bounding_box
    print('Time offset of the first frame: {}s'.format(
        frame.time_offset.seconds + frame.time_offset.nanos / 1e9))
    print('Bounding box position:')
    print('\tleft  : {}'.format(box.left))
    print('\ttop   : {}'.format(box.top))
    print('\tright : {}'.format(box.right))
    print('\tbottom: {}'.format(box.bottom))
    print('\n')
    # [END video_object_tracking_beta]
    return object_annotations

def detect_labels_streaming(path):
    # [START video_streaming_label_detection_beta]
    from google.cloud import videointelligence_v1p3beta1 as videointelligence

    # path = 'path_to_file'

    client = videointelligence.StreamingVideoIntelligenceServiceClient()

    # Set streaming config.
    config = videointelligence.types.StreamingVideoConfig(
        feature=(videointelligence.enums.
                 StreamingFeature.STREAMING_LABEL_DETECTION))

    # config_request should be the first in the stream of requests.
    config_request = videointelligence.types.StreamingAnnotateVideoRequest(
        video_config=config)

    # Set the chunk size to 5MB (recommended less than 10MB).
    chunk_size = 5 * 1024 * 1024

    # Load file content.
    stream = []
    with io.open(path, 'rb') as video_file:
        while True:
            data = video_file.read(chunk_size)
            if not data:
                break
            stream.append(data)

    def stream_generator():
        yield config_request
        for chunk in stream:
            yield videointelligence.types.StreamingAnnotateVideoRequest(
                input_content=chunk)

    requests = stream_generator()

    # streaming_annotate_video returns a generator.
    # The default timeout is about 300 seconds.
    # To process longer videos it should be set to
    # larger than the length (in seconds) of the stream.
    responses = client.streaming_annotate_video(requests, timeout=600)

    # Each response corresponds to about 1 second of video.
    for response in responses:
        # Check for errors.
        if response.error.message:
            print(response.error.message)
            break

        label_annotations = response.annotation_results.label_annotations

        # label_annotations could be empty
        if not label_annotations:
            continue

        for annotation in label_annotations:
            # Each annotation has one frame, which has a timeoffset.
            frame = annotation.frames[0]
            time_offset = frame.time_offset.seconds + \
                frame.time_offset.nanos / 1e9

            description = annotation.entity.description
            confidence = annotation.frames[0].confidence
            # description is in Unicode
            print(u'{}s: {} (confidence: {})'.format(
                time_offset, description, confidence))
    # [END video_streaming_label_detection_beta]

def detect_shot_change_streaming(path):
    # [START video_streaming_shot_change_detection_beta]
    from google.cloud import videointelligence_v1p3beta1 as videointelligence

    # path = 'path_to_file'

    client = videointelligence.StreamingVideoIntelligenceServiceClient()

    # Set streaming config.
    config = videointelligence.types.StreamingVideoConfig(
        feature=(videointelligence.enums.StreamingFeature.
                 STREAMING_SHOT_CHANGE_DETECTION))

    # config_request should be the first in the stream of requests.
    config_request = videointelligence.types.StreamingAnnotateVideoRequest(
        video_config=config)

    # Set the chunk size to 5MB (recommended less than 10MB).
    chunk_size = 5 * 1024 * 1024

    # Load file content.
    stream = []
    with io.open(path, 'rb') as video_file:
        while True:
            data = video_file.read(chunk_size)
            if not data:
                break
            stream.append(data)

    def stream_generator():
        yield config_request
        for chunk in stream:
            yield videointelligence.types.StreamingAnnotateVideoRequest(
                input_content=chunk)

    requests = stream_generator()

    # streaming_annotate_video returns a generator.
    # The default timeout is about 300 seconds.
    # To process longer videos it should be set to
    # larger than the length (in seconds) of the stream.
    responses = client.streaming_annotate_video(requests, timeout=600)

    # Each response corresponds to about 1 second of video.
    for response in responses:
        # Check for errors.
        if response.error.message:
            print(response.error.message)
            break

        for annotation in response.annotation_results.shot_annotations:
            start = (annotation.start_time_offset.seconds +
                     annotation.start_time_offset.nanos / 1e9)
            end = (annotation.end_time_offset.seconds +
                   annotation.end_time_offset.nanos / 1e9)

            print('Shot: {}s to {}s'.format(start, end))
    # [END video_streaming_shot_change_detection_beta]

def track_objects_streaming(path):
    # [START video_streaming_object_tracking_beta]
    from google.cloud import videointelligence_v1p3beta1 as videointelligence

    # path = 'path_to_file'

    client = videointelligence.StreamingVideoIntelligenceServiceClient()

    # Set streaming config.
    config = videointelligence.types.StreamingVideoConfig(
        feature=(videointelligence.enums.
                 StreamingFeature.STREAMING_OBJECT_TRACKING))

    # config_request should be the first in the stream of requests.
    config_request = videointelligence.types.StreamingAnnotateVideoRequest(
        video_config=config)

    # Set the chunk size to 5MB (recommended less than 10MB).
    chunk_size = 5 * 1024 * 1024

    # Load file content.
    stream = []
    with io.open(path, 'rb') as video_file:
        while True:
            data = video_file.read(chunk_size)
            if not data:
                break
            stream.append(data)

    def stream_generator():
        yield config_request
        for chunk in stream:
            yield videointelligence.types.StreamingAnnotateVideoRequest(
                input_content=chunk)

    requests = stream_generator()

    # streaming_annotate_video returns a generator.
    # The default timeout is about 300 seconds.
    # To process longer videos it should be set to
    # larger than the length (in seconds) of the stream.
    responses = client.streaming_annotate_video(requests, timeout=600)

    # Each response corresponds to about 1 second of video.
    for response in responses:
        # Check for errors.
        if response.error.message:
            print(response.error.message)
            break

        object_annotations = response.annotation_results.object_annotations

        # object_annotations could be empty
        if not object_annotations:
            continue

        for annotation in object_annotations:
            # Each annotation has one frame, which has a timeoffset.
            frame = annotation.frames[0]
            time_offset = frame.time_offset.seconds + \
                frame.time_offset.nanos / 1e9

            description = annotation.entity.description
            confidence = annotation.confidence

            # track_id tracks the same object in the video.
            track_id = annotation.track_id

            # description is in Unicode
            print('{}s'.format(time_offset))
            print(u'\tEntity description: {}'.format(description))
            print('\tTrack Id: {}'.format(track_id))
            if annotation.entity.entity_id:
                print('\tEntity id: {}'.format(annotation.entity.entity_id))

            print('\tConfidence: {}'.format(confidence))

            # Every annotation has only one frame
            frame = annotation.frames[0]
            box = frame.normalized_bounding_box
            print('\tBounding box position:')
            print('\tleft  : {}'.format(box.left))
            print('\ttop   : {}'.format(box.top))
            print('\tright : {}'.format(box.right))
            print('\tbottom: {}\n'.format(box.bottom))
    # [END video_streaming_object_tracking_beta]

def detect_explicit_content_streaming(path):
    # [START video_streaming_explicit_content_detection_beta]
    from google.cloud import videointelligence_v1p3beta1 as videointelligence

    # path = 'path_to_file'

    client = videointelligence.StreamingVideoIntelligenceServiceClient()

    # Set streaming config.
    config = videointelligence.types.StreamingVideoConfig(
        feature=(videointelligence.enums.StreamingFeature.
                 STREAMING_EXPLICIT_CONTENT_DETECTION))

    # config_request should be the first in the stream of requests.
    config_request = videointelligence.types.StreamingAnnotateVideoRequest(
        video_config=config)

    # Set the chunk size to 5MB (recommended less than 10MB).
    chunk_size = 5 * 1024 * 1024

    # Load file content.
    stream = []
    with io.open(path, 'rb') as video_file:
        while True:
            data = video_file.read(chunk_size)
            if not data:
                break
            stream.append(data)

    def stream_generator():
        yield config_request
        for chunk in stream:
            yield videointelligence.types.StreamingAnnotateVideoRequest(
                input_content=chunk)

    requests = stream_generator()

    # streaming_annotate_video returns a generator.
    # The default timeout is about 300 seconds.
    # To process longer videos it should be set to
    # larger than the length (in seconds) of the stream.
    responses = client.streaming_annotate_video(requests, timeout=600)

    # Each response corresponds to about 1 second of video.
    for response in responses:
        # Check for errors.
        if response.error.message:
            print(response.error.message)
            break

        for frame in response.annotation_results.explicit_annotation.frames:
            time_offset = (frame.time_offset.seconds +
                           frame.time_offset.nanos / 1e9)
            pornography_likelihood = videointelligence.enums.Likelihood(
                frame.pornography_likelihood)

            print('Time: {}s'.format(time_offset))
            print('\tpornogaphy: {}'.format(pornography_likelihood.name))
    # [END video_streaming_explicit_content_detection_beta]

def annotation_to_storage_streaming(path, output_uri):
    # [START video_streaming_annotation_to_storage_beta]
    from google.cloud import videointelligence_v1p3beta1 as videointelligence

    # path = 'path_to_file'
    # output_uri = 'gs://path_to_output'

    client = videointelligence.StreamingVideoIntelligenceServiceClient()

    # Set streaming config specifying the output_uri.
    # The output_uri is the prefix of the actual output files.
    storage_config = videointelligence.types.StreamingStorageConfig(
        enable_storage_annotation_result=True,
        annotation_result_storage_directory=output_uri)
    # Here we use label detection as an example.
    # All features support output to GCS.
    config = videointelligence.types.StreamingVideoConfig(
        feature=(videointelligence.enums.
                 StreamingFeature.STREAMING_LABEL_DETECTION),
        storage_config=storage_config)

    # config_request should be the first in the stream of requests.
    config_request = videointelligence.types.StreamingAnnotateVideoRequest(
        video_config=config)

    # Set the chunk size to 5MB (recommended less than 10MB).
    chunk_size = 5 * 1024 * 1024

    # Load file content.
    stream = []
    with io.open(path, 'rb') as video_file:
        while True:
            data = video_file.read(chunk_size)
            if not data:
                break
            stream.append(data)

    def stream_generator():
        yield config_request
        for chunk in stream:
            yield videointelligence.types.StreamingAnnotateVideoRequest(
                input_content=chunk)

    requests = stream_generator()

    # streaming_annotate_video returns a generator.
    # The default timeout is about 300 seconds.
    # To process longer videos it should be set to
    # larger than the length (in seconds) of the stream.
    responses = client.streaming_annotate_video(requests, timeout=600)

    for response in responses:
        # Check for errors.
        if response.error.message:
            print(response.error.message)
            break

        print('Storage URI: {}'.format(response.annotation_results_uri))
    # [END video_streaming_annotation_to_storage_beta]

def streaming_automl_classification(path, project_id, model_id):
    # [START video_streaming_automl_classification_beta]
    import io

    from google.cloud import videointelligence_v1p3beta1 as videointelligence
    from google.cloud.videointelligence_v1p3beta1 import enums

    # path = 'path_to_file'
    # project_id = 'gcp_project_id'
    # model_id = 'automl_classification_model_id'

    client = videointelligence.StreamingVideoIntelligenceServiceClient()

    model_path = 'projects/{}/locations/us-central1/models/{}'.format(
        project_id, model_id)

    # Here we use classification as an example.
    automl_config = (videointelligence.types
                     .StreamingAutomlClassificationConfig(
                         model_name=model_path))

    video_config = videointelligence.types.StreamingVideoConfig(
        feature=enums.StreamingFeature.STREAMING_AUTOML_CLASSIFICATION,
        automl_classification_config=automl_config)

    # config_request should be the first in the stream of requests.
    config_request = videointelligence.types.StreamingAnnotateVideoRequest(
        video_config=video_config)

    # Set the chunk size to 5MB (recommended less than 10MB).
    chunk_size = 5 * 1024 * 1024

    # Load file content.
    # Note: Input videos must have supported video codecs. See
    # https://cloud.google.com/video-intelligence/docs/streaming/streaming#supported_video_codecs
    # for more details.
    stream = []
    with io.open(path, 'rb') as video_file:
        while True:
            data = video_file.read(chunk_size)
            if not data:
                break
            stream.append(data)

    def stream_generator():
        yield config_request
        for chunk in stream:
            yield videointelligence.types.StreamingAnnotateVideoRequest(
                input_content=chunk)

    requests = stream_generator()

    # streaming_annotate_video returns a generator.
    # The default timeout is about 300 seconds.
    # To process longer videos it should be set to
    # larger than the length (in seconds) of the stream.
    responses = client.streaming_annotate_video(requests, timeout=600)

    for response in responses:
        # Check for errors.
        if response.error.message:
            print(response.error.message)
            break

        for label in response.annotation_results.label_annotations:
            for frame in label.frames:
                print("At {:3d}s segment, {:5.1%} {}".format(
                    frame.time_offset.seconds,
                    frame.confidence,
                    label.entity.entity_id))
    # [END video_streaming_automl_classification_beta]

if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        description=__doc__,
        formatter_class=argparse.RawDescriptionHelpFormatter)
    subparsers = parser.add_subparsers(dest='command')

    speech_transcription_parser = subparsers.add_parser(
        'transcription', help=speech_transcription.__doc__)
    speech_transcription_parser.add_argument('gcs_uri')

    video_text_gcs_parser = subparsers.add_parser(
        'video-text-gcs', help=video_detect_text_gcs.__doc__)
    video_text_gcs_parser.add_argument('gcs_uri')

    video_text_parser = subparsers.add_parser(
        'video-text', help=video_detect_text.__doc__)
    video_text_parser.add_argument('path')

    video_object_tracking_gcs_parser = subparsers.add_parser(
        'track-objects-gcs', help=track_objects_gcs.__doc__)
    video_object_tracking_gcs_parser.add_argument('gcs_uri')

    video_object_tracking_parser = subparsers.add_parser(
        'track-objects', help=track_objects.__doc__)
    video_object_tracking_parser.add_argument('path')

    video_streaming_labels_parser = subparsers.add_parser(
        'streaming-labels', help=detect_labels_streaming.__doc__)
    video_streaming_labels_parser.add_argument('path')

    video_streaming_shot_change_parser = subparsers.add_parser(
        'streaming-shot-change', help=detect_shot_change_streaming.__doc__)
    video_streaming_shot_change_parser.add_argument('path')

    video_streaming_objects_parser = subparsers.add_parser(
        'streaming-objects', help=track_objects_streaming.__doc__)
    video_streaming_objects_parser.add_argument('path')

    video_streaming_explicit_content_parser = subparsers.add_parser(
        'streaming-explicit-content',
        help=detect_explicit_content_streaming.__doc__)
    video_streaming_explicit_content_parser.add_argument('path')

    video_streaming_annotation_to_storage_parser = subparsers.add_parser(
        'streaming-annotation-storage',
        help=annotation_to_storage_streaming.__doc__)
    video_streaming_annotation_to_storage_parser.add_argument('path')
    video_streaming_annotation_to_storage_parser.add_argument('output_uri')

    video_streaming_automl_classification_parser = subparsers.add_parser(
        'streaming-automl-classification',
        help=streaming_automl_classification.__doc__)
    video_streaming_automl_classification_parser.add_argument('path')
    video_streaming_automl_classification_parser.add_argument('project_id')
    video_streaming_automl_classification_parser.add_argument('model_id')

    args = parser.parse_args()

    if args.command == 'transcription':
        speech_transcription(args.gcs_uri)
    elif args.command == 'video-text-gcs':
        video_detect_text_gcs(args.gcs_uri)
    elif args.command == 'video-text':
        video_detect_text(args.path)
    elif args.command == 'track-objects-gcs':
        track_objects_gcs(args.gcs_uri)
    elif args.command == 'track-objects':
        track_objects(args.path)
    elif args.command == 'streaming-labels':
        detect_labels_streaming(args.path)
    elif args.command == 'streaming-shot-change':
        detect_shot_change_streaming(args.path)
    elif args.command == 'streaming-objects':
        track_objects_streaming(args.path)
    elif args.command == 'streaming-explicit-content':
        detect_explicit_content_streaming(args.path)
    elif args.command == 'streaming-annotation-storage':
        annotation_to_storage_streaming(args.path, args.output_uri)
    elif args.command == 'streaming-automl-classification':
        streaming_automl_classification(
            args.path, args.project_id, args.model_id)


Successfully deployed to following URLs:

* https://with-typescript-m1w7bvd7e.now.sh
* https://with-typescript-kohl-nu.now.sh
* https://with-typescript.yule.now.sh
* https://with-typescript-git-master.yule.now.sh


I want to develop this code


wtf


Successfully deployed to following URLs:

* https://james-lyons-design-n5178k0e7.now.sh
* https://jameslyons.design
* https://www.jameslyons.design
* https://james-lyons-design.jamesjlyons.now.sh
* https://james-lyons-design-git-master.jamesjlyons.now.sh


메모장 프로젝트, 깃허브 팀플 공유법
ModelAttribute, SessionAttributes 설명,

---------------------퍼블릭일 때

1. 깃허브 리파지토리 들어가서 TestTeam누르고

2. Fork누르기

3. clone or download누르고 url 복사

4. 프로젝트 관리할 폴더에서 git bash here 누르고 다운로드받기

5. git clone 주소입력

6. 서브라임텍스트에서 내 이메일 입력하고

7. save as누르면서 프로젝트폴더(ex:TestTeam)에 저장

8. 다시 폴더에서 git bash here

9. git branch 깃아이디

10. git checkout 깃아이디(bjmin17)

11. git add .

12. git config --local(global로 하면 이 아이디로 모든 프로젝트로 접속가능) user.name bjmin17

13. git config --local user.email bjmin17@naver.com

14. git commit -m "새로운브랜치생성

15. git push -u origin bjmin17         !!!!!!! master가 아님 !!!!

(config 오류 나면 윈도우10,, 윈도우 설정에서 검색
자격 증명 관리자 - windows 자격 증명에서 깃허브 삭제)

============팀플에 합치기

1. branch눌러서 내 아이디 누르고

2. 우측에 compare&pull request

3. 제목, 내용 작성

4. -- 팀장 아이디로 들어가서 merge하기 위해 위의 탭에 pull requeest 누르고

5. 팀원이 올린거 누른 다음에 merge해주기

==============git checkout -b bjmin17은 작업공간을 옮기라는 명령

=========================================== 같은 내용
1. 자신의 git hub에서 팀프로젝트 fork 하기
2. git url 복사하여 내 컴퓨터 로컬 폴더에서 clone
	git clone https://github.com/bjmin17/TestTeam.git

3. 프로젝트 폴더에서 git bash 열기
4. 문서 작성
5. git add 문서이름 : 특정한 파일만 올리기
	git add . 모든걸 올리고 싶을 때
6. git config --local user.name bjmin17
	git config --local user.email bjmin17@naver.com
7. git commit -m comment

브랜치 분기하기 : 새로운 복제본 작업 공간 만들기
git branch bjmin17 : bjmin17 이라는 이름으로 브랜치 생성
git checkout callor88 : 작업공간 변경하기

두번째 방법
git checkout -b bjmin17 : bjmin17 이라는 이름으로 브랜치를 만들고 작업공간을 bjmin17로 변경하라
git checkout master : 다시 master로 돌아간다.
=========================================


元素路径更新


@mmlr  it seems the readline8 isn't found after this change:
https://build.haiku-os.org/buildmaster/master/x86_64/logviewer.html?buildruns/3839/builds/14718.log
I suppose it's a bootstrap package?


[Circle has built](https://circleci.com/gh/cypress-io/cypress/203108) the `linux x64` version of the Test Runner.

You can install this pre-release platform-specific build using instructions at [https://on.cypress.io/installing-cypress#Install-pre-release-version](https://on.cypress.io/installing-cypress#Install-pre-release-version).

You will need to use custom `CYPRESS_INSTALL_BINARY` url and install Cypress using an url instead of the version.

    export CYPRESS_INSTALL_BINARY=https://cdn.cypress.io/beta/binary/3.7.1/linux-x64/circle-develop-483823c31378acba557100619a5f9ae6d73ce2f9-203099/cypress.zip
    npm install https://cdn.cypress.io/beta/npm/3.7.1/circle-develop-483823c31378acba557100619a5f9ae6d73ce2f9-202944/cypress.tgz


The issue seems to be tracked here: void function battery-update #274


aaaa


aaa


✅ Device tests passed on iOS32b on [Azure DevOps](https://dev.azure.com/devdiv/DevDiv/_build/index?buildId=3285814)(iOS32b): [Html Report](http://xamarin-storage/jenkins/xamarin-macios/master/bc6735374b1bb31d58e228304ea89815c57004a1/3285814/device-tests/jenkins-results/tests/index.html) ✅

# No tests selected.


Deployment failed with the following error:

~~~
Your `package.json` file is missing a `build` property inside the `script` property.
~~~


@aakashvermaee  Implement Auto Increment  candidateId


Y lmao?😂


If no commit for practical work 4-8 by midnight, you will not have attendance.


@aakashvermaee  please Have a look at this . I a having some troubles reading emails of Selected Candidates.


> @cjl0701
> news() 메소드는 기사글이랑 댓글을 가져오는 역할을 하고 있는 거죠? 그렇다면 굳이 POST를 사용할 필요 없이 GET을 사용하면 된고 GET, POST같은 메소드는 간단하게 설명하자면 GET은 단순 요청, POST는 insert관련 요청, PUT은 update관련 요청 DELETE는 삭제 관련 요청을 보낼 때 사용합니다.
>
> 말씀하신 것처럼 개인 정보도 고려되야 하는 부분인데 그것은 Client에서 Server로 데이터를 보낼 때 고려되야 하는 것이니 news() 메소드 에서는 단순히 기사글과 댓글을 가져오기 때문에 GET 메서드를 사용하는 것이 더 적합하다고 생각됩니다.

네 의견 감사합니다.
get 방식으로 보내면 url에 댓글과 키워드의 내용이 드러날 뿐더러,
http://localhost:5000/update_comment/?id=최재량&comment=댓글 내용
이런식으로 url 링크를 다른사람에게 카톡등으로 보낼 경우 저 url을 클릭하는 것만으로 해당함수가 실행되고 댓글이 입력되어 DB에 2중으로 저장되게 됩니다.
제 의견이 아니라 꽤나 저명한 강사의 강의 내용이므로 믿으셔도 될 거에요.


> At this point is `yarn version` even necessary?

Since `yarn publish` prompts for a new version, I can't think of any reason why'd need this. (Perhaps it's related to publishing with `lerna`?)

Is there something we're still using this for @ethanbennett, or is it safe to remove it?


네. 이걸로 조금 더 테스트 해봐야 할 것 같습니다. 저녁에 테스트 결과 남겨 놓겠습니다.


Deploy preview for _website_ ready!

Built with commit undefined

https://twiso-qgtyz3oqi.now.sh


backported lib changes: #74823


:white_check_mark: All Rules (3 / 3) Passed

      :crown: Good job! this pull request is aligned with your organization's best practices!

      :point_right: You can review your rules settings at smart policy management :point_left:

:point_right: click here to view a full list of the events :point_left:


great commit bro!


- oh for the regex, I used your regex once I saw it, that works 👍

- yep, calculate_coordinate_for_note in JianpuNoteParser works without converting to western 😃

- ah ok I agree with using 0 for silence, in the case of Jianpu notation

- Oh ok, so the calculate_coordinate_for_note method of the JianpuNoteParser is working correctly then 😊 yep 3++++ would be G ♯. I ask because the Jianpu2Western method is converting 1++++ to C4 in E major, and it was out of range, that’s why there was an error. I thought I misunderstood the notation, it’s ok now. 🤗


Makes sense.
@meteorcloudy : What do you think?