text:
---
layout: post
title: Hacknews2019-04-25新闻
category: Hacknews
tags: hacknews
keywords: hacknews
coverage: hacknews-banner.jpg
---

Hacker News 是一家关于计算机黑客和创业公司的社会化新闻网站，由保罗·格雷厄姆的创业孵化器 Y Combinator 创建。
与其它社会化新闻网站不同的是 Hacker News 没有踩或反对一条提交新闻的选项（不过评论还是可以被有足够 Karma 的用户投反对票）；只可以赞或是完全不投票。简而言之，Hacker News 允许提交任何可以被理解为“任何满足人们求知欲”的新闻。

## HackNews Hack新闻

- [Brain signals translated into speech using AI](https://www.nature.com/articles/d41586-019-01328-x)
- `使用人工智能将大脑信号转换成语言`
- [Ford to put $500M into electric vehicle startup Rivian](https://www.reuters.com/article/us-rivian-ford-motor/ford-motor-puts-500-million-into-electric-pickup-producer-rivian-idUSKCN1S01LD)
- `福特将向电动汽车初创公司Rivian注资5亿美元`
- [An anatomy of a modern hit job](https://www.spectator.co.uk/2019/04/the-scruton-tapes-an-anatomy-of-a-modern-hit-job/)
- `现代热门工作的剖析`
- [Antarctica: Thousands of emperor penguin chicks were wiped out in 2016](https://www.bbc.com/news/science-environment-48041487)
- `南极洲:2016年，数千只帝企鹅幼崽被消灭`
- [China’s Pig Pandemic Should Worry Everyone](https://www.bloomberg.com/opinion/articles/2019-04-24/china-s-handling-of-swine-fever-outbreak-similar-to-sars)
- `中国的猪流感应该引起所有人的担忧`
- [Running WebAssembly and WASI with .Net](https://ericsink.com/entries/wasm_wasi_dotnet.html)
- `使用。net运行WebAssembly和WASI`
- [Scientists Develop Perpetual Self-Propelling Phoenix Aircraft That Inhales Air](https://www.bbc.com/news/uk-scotland-48013519)
- `科学家们开发了一种可以吸入空气的永久自驱动凤凰号飞机`
- [Enterpriseification](https://blog.licensezero.com/2019/04/24/enterpriseification.html)
- `Enterpriseification`
- [Speech synthesis from neural decoding of spoken sentences](https://www.nature.com/articles/s41586-019-1119-1)
- `语音合成从语音句子的神经解码`
- [Android updates are getting slower and slower, despite Google's best efforts](https://unlikekinds.com/article/android-updates-are-getting-slower-and-slower-despite-googles-best-efforts)
- `尽管谷歌尽了最大努力，但Android的更新速度越来越慢`
- [New version of Stripe Checkout](https://stripe.com/docs/payments/checkout)
- `条纹检验的新版本`
- [Reasons not to reveal your DNA](https://internethealthreport.org/2019/23-reasons-not-to-reveal-your-dna/)
- `不透露你的DNA的理由`
- [IPFS Camp 2019](https://camp.ipfs.io/)
- `ipf营2019`
- [How to hide from the AI surveillance state with a color printout](https://www.technologyreview.com/f/613409/how-to-hide-from-the-ai-surveillance-state-with-a-color-printout/)
- `如何用彩色打印来躲避人工智能监视状态`
- [Why Do People with Depression Like Listening to Sad Music?](https://digest.bps.org.uk/2019/04/24/why-do-people-with-depression-like-listening-to-sad-music/)
- `为什么抑郁症患者喜欢听悲伤的音乐?`
- [Vim.wasm](https://rhysd.github.io/vim.wasm/)
- `Vim.wasm`
- [Massachusetts Court Blocks Warrantless Access to Real-Time Location Data](https://www.eff.org/deeplinks/2019/04/massachusetts-court-blocks-warrantless-access-real-time-cell-phone-location-data)
- `马萨诸塞州法院禁止在没有授权的情况下访问实时位置数据`
- [Private Key Extraction from Qualcomm Hardware-Backed Keystores](https://www.nccgroup.trust/us/our-research/private-key-extraction-qualcomm-keystore/?research=Technical+advisories)
- `从高通硬件支持的密钥库中提取私钥`
- [Nemu – Modern Hypervisor for the Cloud by Intel](https://github.com/intel/nemu)
- `现代管理程序的云英特尔`
- [Thinking on Your Feet](https://aeon.co/essays/dont-just-do-it-think-it-too-on-learning-with-gilbert-ryle)
- `站起来思考`
- [The Unknowable Artist: Stéphane Mandelbaum](https://www.theparisreview.org/blog/2019/04/22/the-unknowable-artist-stephane-mandelbaum/)
- `不知名的艺术家:史蒂芬·曼德尔鲍姆`
- [SoftBank to invest over 1 bln USD in German payment company Wirecard](https://world-news-monitor.com/top-news/2019/04/24/softbank-to-invest-over-1-bln-usd-in-german-payment-company-wirecard/)
- `软银将向德国支付公司Wirecard投资超过10亿美元`
- [Smoke and Mirrors: How Snap and Pinterest Hide User Attrition](https://beth.technology/how-snap-and-pinterest-hide-user-attrition/)
- `烟雾和镜子:如何Snap和Pinterest隐藏用户磨损`
- [Chinese Number Websites: The Secret Meaning of URLs](https://newrepublic.com/article/117608/chinese-number-websites-secret-meaning-urls)
- `中文数字网站:url的秘密含义`
- [WebAssembly Troubles Part 4: Microwasm](http://troubles.md/posts/microwasm/)
- `WebAssembly故障第4部分:Microwasm`
- [Es: A shell with higher-order functions (1993)](https://wryun.github.io/es-shell/paper.html)
- `Es:具有高阶函数的shell (1993)`
- [Show HN: Equilibrium in Cryptoeconomic Networks](https://solmaz.io/2019/04/20/equilibrium-cryptoeconomic-networks/)
- `Show HN:加密经济网络中的均衡`
- [IAM Is the Real Lock-In](https://forrestbrazeal.com/2019/02/18/cloud-irregular-iam-is-the-real-cloud-lock-in/)
- `我是真正的锁`
- [Some Were Meant for C (2017) [pdf]](https://www.cs.kent.ac.uk/people/staff/srk21//research/papers/kell17some-preprint.pdf)
- `有些是为C(2017)设计的[pdf]`
- [Show HN: Build Your Side Project Challenge + SideProject eBook](item?id=19739665)
- `Show HN: Build Your SideProject Challenge + SideProject电子书`
- [They worked in sweltering heat for Exxon, Shell, Walmart. They didn’t get paid](https://www.revealnews.org/article/they-worked-in-sweltering-heat-for-exxon-shell-and-walmart-they-didnt-get-paid-a-dime/)
- `他们在酷暑中为埃克森、壳牌和沃尔玛工作。他们没有得到报酬`
- [Body as a Map](https://www.sapiens.org/column/machinations/body-modification/)
- `身体作为地图`
- [Caddy 1.0, Caddy 2, and Caddy Enterprise](https://caddyserver.com/blog/announcing-caddy-1_0-caddy-2-caddy-enterprise)
- `Caddy 1.0、Caddy 2和Caddy Enterprise`
- [An emerging black market offers Amazon sellers ways to cheat the marketplace](https://www.buzzfeednews.com/article/leticiamiranda/amazon-marketplace-sellers-black-hat-scams-search-rankings)
- `一个新兴的黑市为亚马逊卖家提供了欺骗市场的方法`
- [ProtonMail now offers elliptic curve cryptography](https://protonmail.com/blog/elliptic-curve-cryptography/)
- `ProtonMail现在提供椭圆曲线密码术`
- [Ask HN: Has there been any academic research into software interviewing?](item?id=19747821)
- `问HN:关于软件面试有什么学术研究吗?`
- [Implementing Tile Encoding in Rav1e](https://blog.rom1v.com/2019/04/implementing-tile-encoding-in-rav1e/)
- `在Rav1e中实现平铺编码`
- [The Edward A. Feigenbaum Papers](https://exhibits.stanford.edu/feigenbaum/)
- `爱德华·a·费根鲍姆的论文`
- [Nasa’s InSight Lander Captures Audio of First Likely ‘Quake’ on Mars](https://www.nasa.gov/press-release/nasa-s-insight-lander-captures-audio-of-first-likely-quake-on-mars)
- `美国宇航局的洞察号着陆器捕捉到火星上可能发生的第一次“地震”的声音`
- [In England, rhubarb is grown by candlelight](http://www.bbc.com/travel/story/20190424-the-english-vegetable-picked-by-candlelight)
- `在英国，大黄是在烛光下生长的`
- [The 'Dark Ages' Weren't as Dark as We Thought](https://lithub.com/the-dark-ages-werent-as-dark-as-we-thought/)
- `“黑暗时代”并不像我们想象的那么黑暗`
- [The Brave Browser Will Pay You to Surf the Web](https://www.wired.com/story/brave-browser-will-pay-surf-web/)
- `勇敢的浏览器会付钱让你上网`
- [Why the Flow of Time Is an Illusion](http://nautil.us/issue/71/flow/why-the-flow-of-time-is-an-illusion)
- `为什么时间的流逝是一种幻觉`
- [Notes on AI Bias](https://www.ben-evans.com/benedictevans/2019/4/15/notes-on-ai-bias)
- `人工智能偏差说明`
- [Gold worth billions smuggled out of Africa](https://www.reuters.com/article/us-gold-africa-smuggling-exclusive/exclusive-gold-worth-billions-smuggled-out-of-africa-idUSKCN1S00IT)
- `价值数十亿美元的黄金从非洲走私而出`
- [Lewis Carroll Puzzles](http://www.math.hawaii.edu/~hile/math100/logice.htm)
- `刘易斯·卡罗尔谜题`
- [How healthy is the internet?](https://internethealthreport.org/2019/)
- `互联网有多健康?`
- [NoScript extension officially released for Google Chrome](https://www.zdnet.com/article/noscript-extension-officially-released-for-google-chrome/)
- `NoScript扩展正式发布为谷歌Chrome`
- [Apple now repairing MacBook keyboards in store, promising next day turnaround](https://www.macrumors.com/2019/04/23/apple-stores-prioritizing-mac-keyboard-repairs/)
- `苹果公司目前正在修复MacBook键盘，并承诺将在明天扭转乾坤`
- [Bad Habits Creeping into Your Writing?](https://lithub.com/are-these-bad-habits-creeping-into-your-writing/)
- `坏习惯在你的写作中蔓延?`
- [Checkr (YC S14) is hiring engineers to build the future of online trust](http://grnh.se/gxdah31)
- `Checkr (YC S14)正在招聘工程师来构建在线信任的未来`
- [Delta Lake](https://delta.io/)
- `三角洲湖`
- [Show HN: Test HTTP Requests without Mock Server](https://github.com/Vatavuk/verano-http)
- `Show HN:测试没有模拟服务器的HTTP请求`
- [Show HN: Applying the Unix philosophy to neural networks](https://github.com/cloudkj/layer)
- `Show HN:将Unix哲学应用于神经网络`
- [Why Markdown Sucks (2016)](https://joearms.github.io/#2016-03-21%20Why%20Markdown%20Sucks)
- `为什么降价如此糟糕(2016)`
- [NSA Recommends Dropping Phone-Surveillance Program](https://www.wsj.com/articles/nsa-recommends-dropping-phone-surveillance-program-11556138247)
- `美国国家安全局建议停止电话监控项目`
- [The wave of unicorn IPOs](https://www.economist.com/briefing/2019/04/17/the-wave-of-unicorn-ipos-reveals-silicon-valleys-groupthink)
- `独角兽ipo浪潮`
- [The flame of conviction: Anthony Burgess on writing about D. H. Lawrence](https://www.the-tls.co.uk/articles/public/dh-lawrence-anthony-burgess/)
- `《信念的火焰:安东尼·伯吉斯关于d·h·劳伦斯的写作》`
- [The Q-BAL programming language](https://mirrors.talideon.com/articles/qbal/)
- `Q-BAL编程语言`
- [AI-powered laundry-folding robot company has filed for bankruptcy](https://www.theverge.com/2019/4/23/18512529/laundroid-laundry-folding-robot-seven-dreamers-bankrupt-ces)
- `以人工智能为动力的折叠洗衣机器人公司已申请破产`
- [An Introduction to C and GUI Programming](https://www.raspberrypi.org/blog/an-introduction-to-c-gui-programming-the-new-book-from-raspberry-pi-press/)
- `介绍C语言和GUI编程`
- [Assessing Unikernel Security [pdf]](https://www.nccgroup.trust/globalassets/our-research/us/whitepapers/2019/ncc_group-assessing_unikernel_security.pdf)
- `评估Unikernel安全性[pdf]`
- [Immediate Mode GUI](http://behindthepixels.io/IMGUI/)
- `立即模式GUI`
- [Ask HN: How to Teach Coding?](item?id=19741408)
- `问HN:如何教授编程?`
- [Laboratory Notebook Skills [pdf]](https://www.dur.ac.uk/resources/physics/students/labs/skills/notebookskills.pdf)
- `实验笔记技巧[pdf]`
- [Tibetan musical notation](http://www.openculture.com/2019/04/tibetan-musical-notation-is-beautiful.html)
- `藏族音乐符号`
- [Cross-Platform GUI Toolkit Trainwreck (2016)](https://blog.johnnovak.net/2016/05/29/cross-platform-gui-trainwreck-2016-edition/)
- `跨平台GUI工具包Trainwreck (2016)`
- [The End of Being a Duke Professor and What It Means for the Future of Higher Ed](https://www.jamesgmartin.center/2019/04/the-end-of-being-a-duke-professor-and-what-it-means-for-the-future-of-higher-education/)
- `作为杜克大学教授的终结以及这对高等教育的未来意味着什么`
- [Translating Astrophysics into Blackfoot](https://www.atlasobscura.com/articles/translating-astrophysics-into-blackfoot)
- `把天体物理学翻译成黑脚`
- [NSA Recommends Dropping Phone-Surveillance Program](https://bgr.com/2019/04/24/nsa-phone-surveillance-spying-program/)
- `美国国家安全局建议停止电话监控项目`
- [Tesorio (YC S15) Is Hiring Engineering Managers, Designers, Program Managers](https://www.tesorio.com/careers)
- `Tesorio (YC S15)正在招聘工程经理、设计师和项目经理`
- [Flutter will officially support desktop applications](https://github.com/flutter/flutter/wiki/Desktop-shells)
- `Flutter将正式支持桌面应用程序`
- [Revisting the gui.cs framework – Miguel de Icaza](https://tirania.org/blog/archive/2019/Apr-22.html)
- `恢复gui.cs框架- Miguel de Icaza`
- [Nim – The first natively compiled language with hot code-reloading at runtime](https://www.youtube.com/watch?v=7WgCt0Wooeo)
- `Nim——第一个在运行时使用热代码重载的本地编译语言`
- [Airline bans peanuts on all flights](https://edition.cnn.com/travel/article/easyjet-nut-ban/index.html)
- `航空公司禁止所有航班携带花生`
- [Show HN: My first open-source project release – RandomJson](https://github.com/mangatmodi/RandomJson)
- `Show HN:我的第一个开源项目发行版——RandomJson`
- [Bicycle Day Revisited (2018)](https://mikejay.net/bicycle-day-revisited/)
- `自行车日重访(2018)`
- [AWS Opens in Hong Kong](https://www.allthingsdistributed.com/2019/04/aws-region-asia-pacific-hong-kong.html)
- `AWS在香港开业`
- [Amazon's Alexa Reviewers Can Access Customers's Home Addresses](https://www.bloomberg.com/news/articles/2019-04-24/amazon-s-alexa-reviewers-can-access-customers-home-addresses)
- `亚马逊的Alexa评论者可以访问客户的家庭地址`
- [Tolkien's First Words](https://www.newstatesman.com/jrr-tolkien-early-years-language-friendship-war-film-biopic-lord-rings)
- `托尔金的第一句话`
- [Is Life Expectancy Finally Topping Out?](https://spectrum.ieee.org/biomedical/ethics/is-life-expectancy-finally-topping-out)
- `预期寿命终于见顶了吗?`
- [A Linguistic Introduction to D3](https://medium.freecodecamp.org/a-linguistic-introduction-to-d3-js-7a40a980bf97?source=friends_link&sk=9de00ebcc6ceffcb0570982ce1799660)
- `D3的语言学介绍`
- [OpenBSD 6.5 Is Out](http://openbsd.org/65.html)
- `OpenBSD 6.5已经过时`
- [Databricks open-sources Delta Lake to make data lakes more reliable](https://techcrunch.com/2019/04/24/databricks-open-sources-delta-lake-to-make-data-lakes-more-reliable/)
- `Databricks开放源三角洲湖，使数据湖更可靠`
- [3M to cut 2k jobs globally, lowers 2019 profit outlook](https://www.reuters.com/article/us-3m-results/3m-to-cut-2000-jobs-globally-lowers-2019-profit-outlook-idUSKCN1S11EI)
- `全球裁员300万人至2000人，降低2019年利润预期`
- [Scientists Create Speech From Brain Signals](https://www.nytimes.com/2019/04/24/health/artificial-speech-brain-injury.html)
- `科学家利用大脑信号创造语言`
- [Is cyberwarfare war? Insurers balk at paying for some cyberattacks](https://thebulletin.org/2019/04/is-cyberwarfare-war-insurers-balk-at-paying-for-some-cyberattacks/)
- `网络战是战争吗?保险公司不愿为一些网络攻击买单`
- [Revolut is at risk of losing its European banking licenses](https://www.siliconrepublic.com/companies/revolut-kremlin-lithuania-banking-license)
- `t面临着失去欧洲银行业执照的风险`
- [QEMU Version 4.0.0 Released](https://www.qemu.org/2019/04/24/qemu-4-0-0/)
- `QEMU版本4.0.0发布`
- [Rein in the Four Horsemen of Irreproducibility](https://www.nature.com/articles/d41586-019-01307-2)
- `控制那四个无可救药的骑士`
- [AWS Asia Pacific – Hong Kong Region](https://aws.amazon.com/blogs/aws/now-open-aws-asia-pacific-hong-kong-region/)
- `AWS亚太-香港地区`
- [Using Wittgenstein for Understanding and Evaluating Technology (2017)](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6209041/)
- `使用维特根斯坦来理解和评估技术(2017)`
- [The San Francisco plague epidemic of 1900](https://www.nature.com/articles/d41586-019-01239-x)
- `1900年的旧金山瘟疫`
- [The Craft of the Adventure (1995) [pdf]](https://ifarchive.org/if-archive/info/Craft.Of.Adventure.pdf)
- `《冒险之道》(1995)[pdf]`
- [Mappa Mundi – A map that survived 700 years [video]](https://www.bbc.com/reel/video/p074n6qg/the-curious-map-that-survived-700-years)
- `Mappa Mundi——保存了700年的地图[视频]`
- [Show HN: My first open-source project release – RandomJson](https://github.com/mangatmodi/RandomJson#Parallel-creation-of-random-strings)
- `Show HN:我的第一个开源项目发行版——RandomJson`
- [US Uber drivers plan 12-hour shutdown over pay and conditions](https://www.bbc.co.uk/news/technology-48051646)
- `美国优步司机计划因薪酬和工作条件问题停工12小时`
- [Pachyderm Raised $10M and Is Looking for a Enterprise UI/UX Designer](https://jobs.lever.co/pachyderm/)
- `Pachyderm筹集了1000万美元，正在寻找一位企业UI/UX设计师`
- [Beating round-trip latency with Redis pipelining](https://kn100.me/redis-pipelining/)
- `使用Redis流水线克服往返延迟`
- [The Library Catalogue of Christopher Columbus' Son](https://www.npr.org/2019/04/24/716600905/christopher-columbus-son-had-an-enormous-library-its-catalog-was-just-found)
- `克里斯托弗·哥伦布儿子的图书馆目录`
- [Xilinx to Acquire Solarflare](https://www.xilinx.com/news/press/2019/xilinx-to-acquire-solarflare.html)
- `Xilinx获得Solarflare`
- [Facebook Reports First Quarter 2019 Results](https://investor.fb.com/investor-news/press-release-details/2019/Facebook-Reports-First-Quarter-2019-Results/default.aspx)
- `脸书公布2019年第一季度业绩`
- [Xdpcap: XDP Packet Capture](https://blog.cloudflare.com/xdpcap/)
- `Xdpcap: XDP包捕获`
- [Bombay Nights](https://aeon.co/essays/night-school-and-the-dreams-of-bombays-factory-workers)
- `孟买的夜晚`
- [A Regulatory Framework for the Internet](https://stratechery.com/2019/a-regulatory-framework-for-the-internet/)
- `互联网监管框架`
- [Inflammation might be the root of preventable disease](https://harvardmagazine.com/2019/05/inflammation-disease-diet)
- `炎症可能是可预防疾病的根源`
- [NYC scientist fired after raising questions about a DNA test gets $1M settlement](https://www.nytimes.com/2019/04/23/nyregion/dna-testing-nyc-medical-examiner.html)
- `一名纽约科学家因对DNA测试提出质疑而被解雇，并获得100万美元的和解金`
- [Tesla Quarterly Loss Is Bigger Than Foreseen: $702M](https://www.nytimes.com/2019/04/24/business/tesla-earnings-elon-musk.html)
- `特斯拉季度亏损超过预期:7.02亿美元`
- [Facebook Expects to Be Fined Up to $5B by FTC Over Privacy Issues](https://www.nytimes.com/2019/04/24/technology/facebook-ftc-fine-earnings.html)
- `Facebook预计将因隐私问题被FTC罚款50亿美元`
- [I Sell Onions on the Internet](https://www.deepsouthventures.com/i-sell-onions-on-the-internet/)
- `我在网上卖洋葱`
- [Brains of blind people adapt to sharpen sense of hearing: study](https://medicalxpress.com/news/2019-04-brains-people-sharpen.html)
- `盲人的大脑适应敏锐的听觉:学习`
- [Foundations of Databases](http://webdam.inria.fr/Alice/)
- `基础数据库`
- [Two Cathay Pacific captains lose eyesight during flights](https://www.scmp.com/news/hong-kong/transport/article/3007392/two-cathay-pacific-captains-lose-eyesight-during-flights)
- `两名国泰航空机长在飞行中失明`

## HackShows Hacks展示

- [ Applying the Unix philosophy to neural networks](https://github.com/cloudkj/layer)
- `将Unix哲学应用于神经网络`
- [ Fast Self-Resizing Bloom Filter Alternative](https://github.com/AMDComputeLibraries/morton_filter)
- `快速自调整布鲁姆过滤器的选择`
- [ Flexbox Builder, a tool for visualizing responsive flexbox](https://www.flexboxbuilder.com)
- `Flexbox Builder，一个可视化响应Flexbox的工具`
- [ X-Ray Debugging for HTTP](https://httptoolkit.tech/blog/xray-debugging-for-http/)
- `HTTP的x射线调试`
- [ Procedural Character Animation with Machine Learning in Three.js](https://github.com/sneha-belkhale/AI4Animation-js)
- `程序字符动画与机器学习在3 .js`
- [ Distro.tools - Scripts for lazy Linux users](https://distro.tools/)
- `发行版。工具——为懒惰的Linux用户编写的脚本`
- [ Python library for fetching currently-supported Python versions](https://pypi.org/project/pyversion-info/)
- `用于获取当前支持的Python版本的Python库`
- [ Made an AI to Write News Headlines Like Fox News, CNN, Breitbart etc.](http://headline.adymatic.com/)
- `让人工智能写新闻标题，如福克斯新闻，CNN, Breitbart等。`
- [ Context-Aware-Auto-Brightness](https://github.com/timonoko/Context-Aware-Auto-Brightness)
- `Context-Aware-Auto-Brightness`
- [ This Meme Does Not Exist](https://imgflip.com/ai-meme)
- `这种模因并不存在`
- [ High Schoolers start video series on how to write data structures in C](https://news.ycombinator.com/item?id=19744253)
- `高中生开始学习如何用C语言编写数据结构`
- [ My first open-source project release – RandomJson](https://github.com/mangatmodi/RandomJson)
- `我的第一个开源项目发布——RandomJson`
- [ Geomancer – Automated feature engineering for geospatial data](https://github.com/thinkingmachines/geomancer)
- `地理空间数据的自动特征工程`
- [ Tradugo.com a clutter-free, translation app in the cloud, for humans](https://www.tradugo.com/)
- `Tradugo.com是一款针对人类的云计算翻译应用程序，没有杂乱`
- [ Chrome extension to control video speed on Netflix, Prime, Twitch, etc.](https://chrome.google.com/webstore/detail/speedify-video-speed-cont/pldkddbkbcedophgedaeofceedjcaehl?authuser=1)
- `Chrome扩展控制Netflix, Prime, Twitch等视频速度。`
- [ Docsumo – Automate invoice data capture and validation](https://docsumo.com/)
- `Docsumo -自动捕获和验证发票数据`
- [ WAPM – Package Manager for WebAssembly](https://wapm.io/?hn)
- `WAPM -用于WebAssembly的包管理器`
- [ Relief – Physical Therapy Programs to Fix Back Pain and Posture](http://userelief.com)
- `缓解-物理治疗方案，以修复背部疼痛和姿势`
- [ Sidedoor – Find your next engineering job through a trusted referral](https://www.sidedoor.jobs)
- `侧门-通过可靠的推荐找到你的下一份工程工作`
- [ Find out who removed your JS from their website](https://churnkit.com)
- `找出谁从他们的网站删除了你的JS`
- [ Mindfulness for Skeptics – Issue #3 of the MindfulDevMag](https://mindfuldevmag.com)
- `为怀疑论者提供正念——MindfulDevMag的第三个问题`
- [ Open-Registry – JavaScript Registry Funded+developed by the Community](https://open-registry.dev/)
- `开放注册表- JavaScript注册表资助+由社区开发`
- [ Caged Brain – Can Computer Predict Your Next Move? 🧠 Vs](https://towardsdatascience.com/caged-brain-can-computer-predict-your-next-move-vs-aa96b360fe47)
- `关在笼子里的大脑——电脑能预测你的下一步行动吗?🧠Vs`
- [ Unicode Strikethrough Generator](https://beautifuldingbats.com/strikethrough-generator)
- `Unicode删除线发生器`
- [ zhaodaoAI – Chinese Version Product Hunt,with AI-Powered Recommendation](https://zhaodao.ai/)
- `zhaodaoAI -中文版产品搜索，带有ai功能的推荐`
- [ An Automatic Drawing AI in Python](https://github.com/hzwer/LearningToPaint)
- `Python中的一个自动绘图AI`
- [ My first open-source project release – RandomJson](https://github.com/mangatmodi/RandomJson#Parallel-creation-of-random-strings)
- `我的第一个开源项目发布——RandomJson`
- [ Equilibrium in Cryptoeconomic Networks](https://solmaz.io/2019/04/20/equilibrium-cryptoeconomic-networks/)
- `加密经济网络中的均衡`
- [ Dhole, a developer-friendly cryptography interface built on libsodium](https://dholecrypto.com)
- `Dhole，一个基于libna的开发人员友好的密码接口`
- [ Letter from You – Handwritten letter, mailed for you](https://letterfromyou.com/)
- `来自你的信-手写的信，为你邮寄`
- [ 2048 – Solving 2048 with AI](https://towardsdatascience.com/2048-solving-2048-with-monte-carlo-tree-search-ai-2dbe76894bab)
- `2048 -用人工智能解决2048`
- [ Readsmart, organize and review your notes and highlights](https://readsmart.co/?ref=hackernews)
- `阅读，整理和回顾你的笔记和要点`
- [ Made an AI app to read you the news you care about](https://www.producthunt.com/upcoming/robo-3)
- `制作一个人工智能应用程序，为你阅读你关心的新闻`
- [ Advisely – Get Answers from Experts at Top Tech Companies](https://www.advisely.co/)
- `明智地——从顶级科技公司的专家那里得到答案`
- [ Lifetime SaaS Deals (tired of paying monthly for biz tools?)](https://vumiu.com/dashboard/)
- `终生SaaS协议(厌倦了每月为商业工具付费?)`
- [ FireQL – A Handy GraphQL Playground](https://www.producthunt.com/posts/fireql)
- `FireQL——一个方便的GraphQL游乐场`
- [ PwnedPasswords as a (Micro)Service](https://news.ycombinator.com/item?id=19743685)
- `作为(微)服务输入密码`
- [ Send Whatsapp messages without creating a new contact](https://huchen.dev/whatsapp/)
- `在不创建新联系人的情况下发送Whatsapp消息`
- [ A Starter Kit for Technical Blogs in Gatsby](https://github.com/rwieruch/gatsby-mdx-blog-starter-project)
- `盖茨比的技术博客入门工具包`
- [ Build Your Side Project Challenge + SideProject eBook](https://news.ycombinator.com/item?id=19739665)
- `建立你的侧项目挑战+侧项目电子书`
- [ Proxay, a language-agnostic record/replay proxy server for faster tests](https://github.com/airtasker/proxay)
- `一个语言无关的记录/回放代理服务器，用于更快的测试`
- [ Vim gf-command improved](https://news.ycombinator.com/item?id=19718488)
- `Vim gf-command改进`
- [ OverBoard, Like TensorBoard but with Native Python GUI, for PyTorch](https://github.com/jotaf98/overboard)
- `舷外，像TensorBoard，但与本机Python GUI，为PyTorch`
- [ FlexMasonry – A lightweight masonry library powered by flexbox](https://flexmasonry.now.sh)
- `flex圬工-一个轻量级的由flexbox提供动力的砌体库`
- [ Embed full-resolution web galleries on WordPress with Gutenberg Blocks](https://mag.prodibi.com/2019/04/17/prodibi-feature-spotlight-new-plugin-for-wordpress-5/)
- `使用Gutenberg Blocks在WordPress上嵌入全分辨率的web图库`
- [ Weekly Talks from Profitable SaaS Founders](https://www.opsimath.co/?saas)
- `盈利的SaaS创始人每周的谈话`
- [ Test HTTP Requests without Mock Server](https://github.com/Vatavuk/verano-http)
- `测试没有模拟服务器的HTTP请求`


text:
# Dory
A cache utilising spare/unused memory.

# Background
Dory was inspired by looking at resource utilisation within clusters.
Generally, when tasks are launched in a cluster (i.e. on Kubernetes), they are
provisioned with more memory than will be used on a regular basis. A HTTP
server might be provisioned for 128MiB of memory, but only uses 32MiB 99% of
the time, increasing and decreasing as load varies. The provisioned memory
amount is usually the peak that the server is expected to use.

In a desktop or traditional server, that unused memory will be used by the page
cache to keep pages from disk in memory. This improves performance by avoiding
slow disk accesses (even for SSDs). However, in a distributed system, the page
cache is significantly less effective due to the use of remote/distributed
storage systems instead of local disk.

So the idea is to try and use that unused memory for a cache, but with the
ability to rapidly return that memory to the OS when needed.

# Design
Before discussing design, it's important to talk about non-goals for Dory.
Specifically:
- NOT designed for ultra high performance
- NOT designed for consistency
- NOT designed to be memory efficient

Although these are non-goals, it's important to be reasonable. Memory overhead
is on the order of ~100 bytes/key-value pair. Currently, ~50% of CPU usage is
in the protocol stack, which is a very minimal implementation of the redis
protocol.

That said, the single primary design goal is to be able to rapidly return
memory to the OS. This is mainly achieved by avoid the heap as much as
possible. Although Go has an excellent garbage collector, factors such as heap
fragmentation, a problem which exists in every language and runtime, prevent
memory from being returned to the OS in a deterministic manner.

Instead, anonymous mmap'd areas are created, and managed using a structure
called PackedTable (naming is hard). PackedTable implements a key-value table
while keeping the key/value data in a single \[\]byte buffer, backed by the
mmap. The structure is similar to an SSTable, where the key/values are stored
contiguously, with an index stored in a Go map. When memory needs to be
returned to the OS, the mmap'd area is simply unmapped.

At a higher level, the Memcache holds a list of PackedTables and a map of keys
to PackedTables. The indirection in Memcache allows for any number of
PackedTables to disappear at any point in time. The Memcache also monitors the
level of free memory by polling /proc/meminfo and adjusting the number of
PackedTables as necessary.

# Usage

The `dory` directory contains the server. By default, dory listens on port
6379, since it implements a small subset of the redis protocol.

Dory only implements the following redis commands:
- SET
- GET
- DEL
- EXISTS

The protocol has been tested with `redis-benchmark`, `redis-cli` and
the [go-redis](https://github.com/redis/go-redis) client library.

The ideal way to deploy dory would be as a DaemonSet on kubernetes. A single
instance on every node will use up any available unused memory on the node.
However, work needs to be done on a client library to make this feasible.

# Licence

Dory is released under the Apache 2.0 license

repository: akmistry/dory

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: akmistry/dory


text:
---
layout: default
gamename: bandit
level: 0
---
Level Goal
----------
The goal of this level is for you to log into the game using SSH.
The host to which you need to connect is
**bandit.labs.overthewire.org**, on port 2220.
The username is **bandit0** and the password is **bandit0**. Once
logged in, go to the [Level 1][] page to find out how to beat Level
1.

Commands you may need to solve this level
-----------------------------------------
[ssh](https://man7.org/linux/man-pages/man1/ssh.1.html)

Helpful Reading Material
------------------------
- [Secure Shell (SSH) on Wikipedia][]
- [How to use SSH on wikiHow][]

[Level 1]: /wargames/bandit/bandit1.html
[Secure Shell (SSH) on Wikipedia]: http://en.wikipedia.org/wiki/Secure_Shell
[How to use SSH on wikiHow]: http://www.wikihow.com/Use-SSH

license: MIT

repository: OverTheWireOrg/OverTheWire-website

branch_name: refs/heads/gh-pages

gha_language: C

gha_license_id: MIT

repo_name: OverTheWireOrg/OverTheWire-website


text:
# ImageProcessing

Provides higher-level helper methods for image processing in Ruby using
ImageMagick.

These methods were extracted from [refile-mini_magick], and were made generic so
that they can be used in any project. The goal of image_processing is to have a
centralized place where helper methods for image processing are maintained,
instead of CarrierWave, Dragonfly and Refile each implementing their own.

It's been tested with MRI 2.x, JRuby and Rubinius.

## Installation

```ruby
gem 'image_processing'
gem 'mini_magick', '>= 4.3.5'
```

## Usage

Typically you will include the module in your class:

```rb
require "image_processing/mini_magick"

include ImageProcessing::MiniMagick

original = File.open("path/to/image.jpg")

converted = convert(original, "png") # makes a converted copy
converted #=> #<Tempfile:/var/folders/k7/6zx6dx6x7ys3rv3srh0nyfj00000gn/T/mini_magick20151003-23030-9e1vjz.png (closed)>
File.exist?(original.path) #=> true

converted = convert!(original, "png") # converts the file in-place
converted #=> #<Tempfile:/var/folders/k7/6zx6dx6x7ys3rv3srh0nyfj00000gn/T/mini_magick20151003-23030-9e1vjz.png (closed)>
File.exist?(original.path) #=> false
```

If you would rather not pollute your namespace, you can also call the methods
directly on the module:

```rb
image = File.open("path/to/image.jpg")

ImageProcessing::MiniMagick.resize_to_fit(image, 400, 400)
```

### Methods

The following is the list of helper methods that ImageProcessing provides (each
one has both a destructive and a nondestructive version):

```rb
# Adjust an image so that its orientation is suitable for viewing.
auto_orient[!](file)

# Converts file to the specified format.
convert[!](file, format)

# Crop image to the defined area.
crop[!](file, width, height, x_offset, y_offset, gravity: "NorthWest")

# Resizes image to fit the specified dimensions (shrinks if larger, enlarges if
# smaller, but keeps the aspect ratio).
resize_to_fit[!](file, width, height)

# Resizes image in limit of the specified dimensions (shrinks if larger, keeps
# if smaller, but keeps the aspect ratio).
resize_to_limit[!](file, width, height)

# Resizes image to fill the specified dimensions (shrinks if larger,
# enlarges if smaller, crops the longer side).
resize_to_fill[!](file, width, height, gravity: "Center")

# Resizes image to the specified dimensions and pads missing space (shrinks if
# larger, enlarges if smaller, fills the shorter side with specified color).
resize_and_pad[!](file, width, height, background: "transparent", gravity: "Center")

# Resamples the image to a different resolution
resample[!](file, horizontal, vertical)

# Returns true if the given image is corrupted
currupted?(file)
```

For `#resize_to_limit[!]` and `#resize_to_fit[!]` you can don't have to specify
both dimensions:

```rb
resize_to_limit(image, 300, nil)
resize_to_fit(image, nil, 500)
```

### Dropping to MiniMagick

If you want to do custom MiniMagick processing, each of the above optionally
yields an instance of `MiniMagick::Tool`, so you can use it for additional
processing:

```rb
convert(file, "png") do |cmd|
  cmd.background("none")
end
```

There is also a helper method for doing MiniMagick processing directly (though
note that this will process the image in-place!):

```rb
processed = with_minimagick(file) do |image|
  image #=> #<MiniMagick::Image ...>
  image.combine_options do |cmd|
    # ...
  end
end

processed #=> #<File ...>
```

## Contributing

ImageMagick and GraphicsMagick are both required to be installed, on Mac this is

```
$ brew install imagemagick
$ brew install graphicsmagick
```

Run tests with

```
$ rake test
```

## License

[MIT](LICENSE.txt)

[refile-mini_magick]: https://github.com/refile/refile-mini_magick


text:
# About

Targeted minimum loss-based estimation (TMLE) (sometimes targeted maximum likelihood estimation) is a general framework for constructing regular, asymptotically linear estimators for pathwise differentiable parameters with additional properties such as [asymptotic efficiency](https://en.wikipedia.org/wiki/Efficiency_%28statistics%29#Asymptotic_efficiency) and double robustness. For background and details, see [Targeted Learning](https://www.springer.com/statistics/statistical+theory+and+methods/book/978-1-4419-9781-4) by van der Laan and Rose, or [articles](http://scholar.google.com/scholar?q=targeted+estimation+tmle) on TMLE.

TargetedLearing.jl is a package for [Julia](julialang.org) v0.3.x that implements a TMLE and collaborative TMLE (CTMLE) to estimate a handful of statistical parameters. In particular, we can currently estimate the (statistical parameter corresponding to the) [counterfactual](https://en.wikipedia.org/wiki/Rubin_causal_model) mean of some outcome under a static or dynamic single time point treatment with baseline covariates or the difference in counterfactual means. Additionally, arbitrary transformations of these parameters can be estimated, and inference is performed [automatically](user-guide/influencecurves.md).  With a little massaging, the functionality of this package can also be used to estimate the mean of an outcome subject to missingness.

### Contents

* If you're new to Julia, go [here](user-guide/julia.md) to learn why this package is implemented in Julia and enough about it to get you started.
* For details on the estimation problem and causal assumptions, go [here](user-guide/estimation.md).
* For an overview about how the CTMLE procedure works, go [here](user-guide/ctmle.md).
* For information on how we perform inference on arbitrary transformations of estimates, go [here](user-guide/influencecurves.md).
* To obtain a special [dialing wand](https://www.youtube.com/watch?v=OqjF7HKSaaI) please mash the keypad with your palm now.

# Installing

If Julia is already installed, just
```jlcon
julia> Pkg.clone("https://github.com/lendle/TargetedLearning.jl.git")
```

If not, [download](http://julialang.org/downloads/) the latest version of Julia v0.3.x.

If you're on OSX and use homebrew, there's a [tap](https://github.com/staticfloat/homebrew-julia#homebrew-julia) for that.

Many linux distributions can install Julia via the package manager, but may be out of date. If you wind up with v0.2.x, you're definitely out of date.

If you [build from source](https://github.com/julialang/julia#source-download-and-compilation), make sure you `git checkout release-0.3` so you don't wind up with the development version.

# Bugs? Questions?

Chances are someone else has the same issue, so don't email me. Instead, look at the [issues page](https://github.com/lendle/TargetedLearning.jl/issues) to see if you can find anyone else talking about it, or open a new issue.

# Want to contribute?

There's a link to the [github repository](https://github.com/lendle/TargetedLearning.jl/) in the top right of every page of the documentation. Pull requests welcome!


text:
# Trees
The trees of the Content Store web UI is a way of adding some structure to the flat list of content elements in a given container.

The Content Store web UI will include several types of trees, common for all is that they use one or more fields of the contained content elements to create a tree structure.

It is not required to have a tree for each container.

A container can hold content elements that will never show up in a tree. If one or more of the fields used to create the tree structure is missing from a content element (or the content type of an element), it might never be visible.

Planned tree types for the Content Store web UI are:

- "File system", a structure with "folder" types and "file" types, where "folder" and "file" types hold the id of their parent "folder". The sort order between tree node on the same level will be alphabetical.
- "Site structure", a structure with "page" types that holds the id of a parent "page" type. The sort order between tree node on the same level will be dictated by a field on the content types used for the "page" elements.
- "Taxanomy", a structure where one or more fields are used to create the structure. For more details on this, look at the definition of taxanomy.

The configuration of the tree contains a definition for the structure, based on the content types, so you can define, and enforce, which content types are allowed as "children" of which content types.

Common for all trees is that contained content types can be shown or hidden. This allows for hiding certain content types that might count in the thousands or millions.

Let's say you need to have a news archive, and you have thousands of news items in a flat structure below the page node that is your news archive page on your website. It would probably not make a lot of sense scrolling through thousands of nodes in your tree to locate a certain news item anyway. So we hide them. Instead you can get a search/filter view in the web UI instead, helping you locate the element you need.

## Examples

### File system type

At the root level you can create content elements with the content type "userFolder", and below content with the "userFolder" type you can create "user" or "userFolder" content elements.

```
{
  "name": "users",
  "sorting": {
    "type": "alphabetical",
    "fieldName": "csName"
  },
  "contentTypes": [
    {
      "name": "user",
      "allowedChildren": [ ],
      "visibleInTree": true
    },
    {
      "name": "userFolder",
      "allowedChildren": [ "user", "userFolder" ],
      "visibleInTree": true
    }
  ],
  "root": "userFolder"
}
```

### Site structure type

At the root level you can create content elements with the "page" content type, and below content with the "page"  type you can create "page" or "listItem" content elements.

Content with the "listItem" content type is not visible in the tree.

Nodes on the same level are sorted using the "csSortOrder" field of the content elements.

```
{
  "name": "pages",
  "sorting": {
    "type": "sortOrder",
    "fieldName": "csSortOrder"
  },
  "templates": [
    {
      "name": "page",
      "allowedChildren": [ "page", "listItem" ],
      "visibleInTree": true
    },
    {
      "name": "listItem",
      "allowedChildren": [ ],
      "visibleInTree": false
    }
  ],
  "root": "page"
}
```

repository: steentottrup/Content-Store

repo_name: steentottrup/Content-Store


text:
---
title: "How to upgrade your Azure Event Hub to use Availability Zones"
date: 2019-07-02
image: "/assets/images/cover-images/event-hub-az.jpg"
header:
  og_image: "/assets/images/cover-images/event-hub-az.jpg"
  teaser: "/assets/images/cover-images/event-hub-az.jpg"
  thumbnail: "/assets/images/cover-images/event-hub-az-thumbnail.jpg"
categories:
  - Azure
tags:
  - Azure Event Hub
  - High Availability
  - Migration
excerpt: "Azure Event Hubs support availability zones.Availability Zones will not work with existing Event Hubs and you will need to provision new ones to use this feature. This blog posts shows you a simple strategy to upgrade / migrate to a new event hub when you want to change partition count and / or utilize availability zones using the blue / green deployment strategy."
---

[Azure Event Hub](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about) is a **scalable** event processing service that ingests and processes large volumes of events and data, with low latency and **high reliability**. After you collect data into Event Hubs, you can store the data or [transform it using a real-time analytics provider](https://docs.microsoft.com/en-us/azure/data-explorer/ingest-data-event-hub). This large-scale event collection and processing capability is a key part of modern applications.

## Key Concepts

- The Event Publisher sends events to event hub. This could be telemetry data / IoT data etc.
- The Event Hub ingests the data and makes it available for the consumer.
- The Event Consumer processes the data and sends it to downstream systems.
- **Event Publisher :arrow_right: Event Hub :arrow_right: Event Consumer**

**Throughput units (TU)** define the amount of data that an Event Hub can ingest. A single throughput allows

- Ingress of up to 1 MB per second or 1000 events per second (whichever comes first) and
- Egress of Up to 2 MB per second or 4096 events per second.

Throughput units can be scaled up / down manually or you can use the **Auto-inflate** feature of Event Hubs to automatically scale up the number of throughput units.

**Partition** is an ordered sequence of events that is held in an event hub and determines your downstream parallelism. While the number of partitions does not affect your cost, it is not possible to change this configuration after creation. Here is detailed docs explaining the [scalability concepts of Event Hubs](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-scalability).

[**Availability Zones** are generally available in Event Hubs](https://azure.microsoft.com/en-us/blog/azure-service-bus-and-azure-event-hubs-expand-availability/) as of Jan 2019. It is a simple case of specifying `"properties": { "zoneRedundant": true }` in your ARM Templates. While it does not cost you extra, there is one big catch. **Availability Zones will not work with existing Event Hubs and you will need to provision new ones to use this feature.** Hmm.....

## Migrating to new Event Hub

I was looking at options to migrate to a new Event Hub with Availability Zones and/or different partition count and decided to do something along the lines of a [Blue / Green Deployment](https://docs.cloudfoundry.org/devguide/deploy-apps/blue-green.html).

Migrating to a new Event Hub with Availability Zone

### Steps

1. Create a new Event Hub with Availability Zones and desired partition count.

2. Point the Event Producer(s) to the new Event Hub.
   - This could mean something like updating settings in Key Vault and Restarting Web Apps / Functions / Service Fabric Code Packages depending on what the event producer is.

3. Monitor the metrics for the old Event Hub. Ensure incoming messages are drained and that all messages have been processed by the consumer.

4. The new Event Hub should now have messages and you can verify that again using Event Hub's metrics.

5. Update the consumer to process messages from the new Event Hub.

### Metrics is Key

Grafana is quickly becoming [my default choice of visualization platform](https://www.gurucharan.in/azure/up-your-azure-monitoring-game-with-azure-data-source-for-grafana/) over Azure Dashboards and the beautiful charts like below shows why.

Incoming & Outgoing Messages in Event Hub

The blue bars represent the old event hub and the green bars represent the new ones. The red box around 07:15 is when the migration started and it went very smooth.

gha_language: HTML


text:
---
layout: post
category : lessons
tagline: "A simple button showing an underlined title"
tags : [UIButton, Open Source, Objective-C]
---
{% include JB/setup %}

## SFUnderLinedButton

`SFUnderlinedButton` is a `UIButton` subclass that draws only the title set for the button along with a line under the words. The button also respects assigned shadows to the button.


text:
### Preparations

 Due to the very thin walled diaphragm injection gate, preheating the lightswitch frame’s mould makes the process of injecting easier. The amount of plastic needed for all parts is about half a barrel, but rather work with a full barrel to ensure enough pressure.

As the mould is quite intricate and detailed, a plastic with good flow characteristics is required.

e injected PP on 270/280°C (barrel/nozzle), but a few tests might be necessary to calibrate your machine.


text:
# ODP.NET Client Initiated Continuous Query Notification and JSON Data Type Code Sample
This C# sample console app uses ODP.NET Core 21c to demonstrate two new Oracle Database 21c features:
* Client Initiated Continuous Query Notification (CICQN)
* Native JSON binary data type (OSON)

Learn more about [ODP.NET CICQN and JSON data type in this blog post](https://medium.com/@alex.keh/introducing-odp-net-21c-ef-core-5-json-and-more-ea0843e89dea).

These features require Oracle Database 21c and ODP.NET 21c or higher. You can download
[ODP.NET 21c from NuGet Gallery](https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core/3.21.1).
Oracle Database 21c can be deployed in minutes using a [free Oracle Autonomous Database](https://www.oracle.com/cloud/free/).

Setup instructions:
1. The database administrator executes "GRANT CHANGE NOTIFICATION TO <USER>" so that the app can use CICQN.
2. Run the setup.sql file scripts to create the J_PURCHASEORDER table and insert a JSON document into the user's schema.
3. Populate the Constants class in the C# app with your app-specific values.

The sample code retrieves the JSON data and shows the results on the console. While the app is idle,
another user can update the JSON data by running the following update statement in SQL Developer or Oracle
Developer Tools for Visual Studio.

```
UPDATE j_purchaseorder SET po_document = json_transform(po_document, SET '$.LastUpdated' = SYSDATE);
```

CICQN will then notify the application an update to the result occurred. The event handler will then re-query the database
for the new results. It will then display the results with the new LastUpdated JSON value.

The update statement can be run repeatedly with the new JSON update returned every time.

repository: oracle/dotnet-db-samples

gha_language: C#

repo_name: oracle/dotnet-db-samples


text:
# pygreensens
python package for the GreenSens Plant Sensor API

Usage:

```
from pygreensens import GreensensApi

gs = GreensensApi("username", "password")
gs.return_data() -> returns the data from all connected sensors
gs.return_sensors() -> returns a list of all connected sensors

```
Feel free to suggest improvements or fix issues

repository: pijiulaoshi/pygreensens

branch_name: refs/heads/main

gha_language: Python

repo_name: pijiulaoshi/pygreensens


text:
Pattern: Malformed quotes around string

Issue: -

## Description

Specify single or double quotes around strings. Quotes within comments are ignored.

```css
/* "This is fine" */
/* 'And this is also fine' */
```

Single quotes in a charset @-rule are ignored as using single quotes in this context is incorrect according the [CSS specification](https://www.w3.org/TR/CSS2/syndata.html#x57).

```css
@charset "utf-8"
/* fine regardless of configuration */
```

## Examples

### `"single"`

Strings *must always* be wrapped with single quotes.

The following patterns are considered violations:

```css
a { content: "x"; }
```

```css
a[id="foo"] {}
```

The following patterns are *not* considered violations:

```css
a { content: 'x'; }
```

```css
a[id='foo'] {}
```

### `"double"`

Strings *must always* be wrapped with double quotes.

The following patterns are considered violations:

```css
a { content: 'x'; }
```

```css
a[id='foo'] {}
```

The following patterns are *not* considered violations:

```css
a { content: "x"; }
```

```css
a[id="foo"] {}
```

## Further Reading

* [stylelint - string-quotes](https://stylelint.io/user-guide/rules/string-quotes)

repository: Adroiti/docs-for-code-review-tools

repo_name: Adroiti/docs-for-code-review-tools


text:
# SipHash CFFI

[SipHash](https://131002.net/siphash/) is a family of pseudorandom functions (i.e. keyed hash functions) optimized for speed on short messages, designed by [Jean-Philippe Aumasson](https://131002.net/) and [Daniel J. Bernstein](https://cr.yp.to/).

This package provides tested, performant **Python 3** CFFI bindings to the [SipHash 2-4 reference implementation](https://github.com/veorq/SipHash) by [Jean-Philippe Aumasson](https://github.com/veorq) (including support for double-output-size and half-word variants) along with extensions to support tweakable numbers of compression and finalization rounds.

# Installation

You can install this package using `pip` or the included `setup.py` script:

    # Using pip
    pip install siphash-cffi

    # Using setup.py
    python setup.py install

# Usage

```python
from siphash import *

# Demonstration key and data
key = b"\0" * 16
data = b"\0" * 64

# SipHash-2-4 working with 64-bit words and a 64-bit output length
output = siphash_64(key, data)

# SipHash-2-4 working with 64-bit words and a 128-bit output length
output = siphash_128(key, data)

# SipHash-2-4 working with 32-bit words and a 32-bit output length
output = half_siphash_32(key, data)

# SipHash-2-4 working with 32-bit words and a 64-bit output length
output = half_siphash_64(key, data)

# SipHash-4-8 working with 64-bit words and a 64-bit output length
output = siphash_64(key, data, 4, 8)

# SipHash-4-8 working with 64-bit words and a 128-bit output length
output = siphash_128(key, data, 4, 8)

# SipHash-4-8 working with 32-bit words and a 32-bit output length
output = half_siphash_32(key, data, 4, 8)

# SipHash-4-8 working with 32-bit words and a 64-bit output length
output = half_siphash_64(key, data, 4, 8)
```

# License
```text
BSD 3-Clause License

Copyright (c) 2018, Phil Demetriou
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

repository: kpdemetriou/siphash-cffi

repo_name: kpdemetriou/siphash-cffi


text:
# emf2016-sign-lightshow
Electromagnetic Field badge app to interact with the lights in the '1' of the EMF16 sign on the hill above the camp.

For reference, the badge API is at: https://badge.emfcamp.org/wiki/TiLDA_MK3#Badge_API

See also: https://github.com/davidcarboni/emf2016-sign for the Python code that runs the sign.


text:
# sheldon
#

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Build Status](https://travis-ci.org/shinselrobots/sheldon.svg?branch=master)](https://travis-ci.org/shinselrobots/sheldon)

Sheldon Robot, ROS based humanoid robot.  See www.dshinsel.com for info.

## Installation

For convenience, an installation script is provided at https://github.com/shinselrobots/sheldon_setup that will automate the installation process for the Sheldon robot and ROS Kinetic Kame runtime, on Ubuntu 16.04 LTS.  If you wish to install manually, please follow these steps:

```bash
# Install the ROS Kinetic Kame environment
sudo sh -c "echo \"deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main\" > /etc/apt/sources.list.d/ros-latest.list"
sudo wget http://packages.ros.org/ros.key -O - | apt-key add -
sudo apt-get update && apt-get install -y -q python-catkin-pkg python-rosdep python-wstool ros-kinetic-full-desktop build-essential
source /opt/ros/kinetic/setup.bash
sudo rosdep init
rosdep update

# Install the Sheldon robot ROS source code
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/shinselrobots/sheldon.git
git clone https://github.com/shinselrobots/body_tracker_msgs.git
git clone https://github.com/shinselrobots/safety_control.git
git clone https://github.com/shinselrobots/robot_speech.git
git clone https://github.com/shinselrobots/robot_behavior.git
git clone -b master_shinselrobots https://github.com/shinselrobots/rplidar_ros.git
git clone -b kinetic-devel-shinselrobots https://github.com/shinselrobots/realsense_samples_ros.git
cd ..
rosdep install -q -y -r --from-paths src --ignore-src --rosdistro kinetic
cd ..
catkin_make
source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
```

repository: shinselrobots/sheldon

repo_name: shinselrobots/sheldon


text:
# Audio Recorder

Component to record audio files

{{"demo": "containers/views/audioRecorder/AudioRecorder.js", "hideHeader": false, "bg": true, "bgColor": "gray" }}

| prop                       | type    | description                  |
| -------------------------- |---------| ----------------------------:|
| classNameCanvas               | string   | class to change style from canvas container    |
| spectroActiveColor               | string   | hexadecimal to change style from spectro audio    |
| spectroPassiveColor               | string   | hexadecimal to change style from spectro audio    |
| classes                    | object    |   Modify styles       |
| delete                      | node  | Icon Component (is required) |
| pause                      | node  | Icon Component (is required) |
| play                      | node  | Icon Component (is required) |
| record                      | node  | Icon Component (is required) |
| stop                      | node  | Icon Component (is required) |
| onBlobUrl           | function   |   send blob url      |
| onStatus               | function    |  send status like play / pause / record / stop      |

repository: grovertb/krowdy-ui

gha_language: JavaScript

repo_name: grovertb/krowdy-ui


text:
# Introduction

**Creation:** 2023-02-08

This page is prepared for listing and planning possible migration of `npm packages` and `PowerShell script modules` under **Tasks/Common** folder.

Another [migration progress](../../common-npm-packages/MIGRATION_OF_COMMON_PACKAGES.md) is being tracked for **common-npm-packages** folder.

# NPM Packages

1. [ ] AzureRmDeploy-common
2. [ ] coveragepublisher
3. [ ] packaging-common
4. [X] utility-common
5. [X] utility-common-v2
6. [ ] webdeployment-common-v2

# PowerShell Script Modules

These modules can be moved into [PowerShell Gallery](https://www.powershellgallery.com/) central repository.
It is a necessary action to remove direct file references to Tasks/Common folder.
In addition to that, central repository usage will help us to maintain versioning properly.

1. [ ] Deployment\TelemetryHelper
2. [ ] PowershellHelpers
3. [ ] RemoteDeployer
4. [ ] ServiceFabricHelpers
5. [ ] TlsHelper_
6. [ ] VstsAzureHelpers_
7. [ ] VstsAzureRestHelpers_

# Related PRs

| Package                 | Remove package folder                                               | Replace package in tasks                                            |
| ----------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
| utility-common-v2       | [PR](https://github.com/microsoft/azure-pipelines-tasks/pull/17730) | [PR](https://github.com/microsoft/azure-pipelines-tasks/pull/16997) |
| utility-common          | [PR](https://github.com/microsoft/azure-pipelines-tasks/pull/17737) | [PR](https://github.com/microsoft/azure-pipelines-tasks/pull/17729) |

repository: jessehouwing/azure-pipelines-tasks

gha_language: TypeScript

repo_name: jessehouwing/azure-pipelines-tasks


text:
# pap :microphone: :speaker:

[![Build Status](https://travis-ci.com/tomyl/pap.svg?branch=master)](https://travis-ci.org/tomyl/pap)
[![Go Report Card](https://goreportcard.com/badge/github.com/tomyl/pap)](https://goreportcard.com/report/github.com/tomyl/pap)

A simple pulseaudio profile manager. Makes it easy to switch between pairs of sources/sinks.

# Usage

Use `pap -next-sink` to cycle between sinks. The chosen sink will be marked as
default and active playback streams will switch to it. If the card providing the sink
has a source, that will become the default source. Use `pap -list-sinks` to
show available sinks.

```bash
$ pap -next-sink
Activated NuForce µDAC 2 Analog Stereo.
$ pap -list-sinks
Built-in Audio Digital Stereo (HDMI)
Built-in Audio Analog Stereo
ClearChat Pro USB Analog Stereo
NuForce µDAC 2 Analog Stereo [current]
```

You can also save custom source/sink pairs as a profile:

```bash
$ pavucontrol # choose default source and sink
$ pap -add headset
Added profile headset.
$ pap -list
headset [current]
laptop
nuforce
$ pap -next
Activated laptop.
```

Tip: use e.g. `pap -next -notify` to show messages in desktop notifcations instead of standard output.

# Installation

```bash
$ apt-get install libpulse-dev
$ go get github.com/tomyl/pap
$ ~/go/bin/pap -help
```

repository: tomyl/pap

repo_name: tomyl/pap


text:
Symfony bundle to add basic support for DataTables

If mapping is required add the following file:
config/packages/data_tables_compatibility.yaml

```yaml
data_tables_compatibility:
  mapping:
    - from: username
      to: name
```
It is based on regex, so if you change "pie" and you have the values "apple pie" and "cherry pie" both will be replaced.


text:
+++
# Experience widget.
widget = "experience"  # Do not modify this line!
active = true  # Activate this widget? true/false

title = "Experience"
subtitle = ""

# Order that this section will appear in.
weight = 8

# Date format for experience
#   Refer to https://sourcethemes.com/academic/docs/customization/#date-format
date_format = "January 2006"

# Experiences.
#   Add/remove as many `[[experience]]` blocks below as you like.
#   Required fields are `title`, `company`, and `date_start`.
#   Leave `date_end` empty if it's your current employer.
#   Begin/end multi-line descriptions with 3 quotes `"""`.

#[[experience]]
#  title = "Expert Research Scientist"
#  company = "United Imaging Intelligence"
#  company_url = ""
#  location = "Boston, USA"
#  date_start = "2019-01-01"
#  date_end = ""
#  description = """"""

[[experience]]
  title = "Data Scientist"
  company = "Dana-Farber Cancer Institute"
  company_url = ""
  location = "Boston, USA"
  date_start = "2018-05-21"
  date_end = "2019-01-31"
  description = """"""

[[experience]]
  title = "Data Scientist"
  company = "Thomas Jefferson Hospital"
  company_url = ""
  location = "Philadelphia, USA"
  date_start = "2016-07-21"
  date_end = "2018-05-20"
  description = """"""

#[[experience]]
#  title = "Research Assistant"
#  company = "Department of Biostatistics, University of Pennsylvania"
#  company_url = ""
#  location = "Philadelphia, USA"
#  date_start = "2011-09-01"
#  date_end = "2016-06-01"
#  description = """"""

#[[experience]]
#  title = "Research Assistant"
#  company = "Li Ka Shing Institute of Health Science, The Chinese University of Hong Kong"
#  company_url = ""
#  location = "Hong Kong"
#  date_start = "2009-09-01"
#  date_end = "2011-07-01"
#  description = """"""

#[[experience]]
#  title = "Intern"
#  company = "Chinese Academy of Sciences"
#  company_url = ""
#  location = "Beijing, China"
#  date_start = "2007-07-01"
#  date_end = "2009-09-01"
#  description = """"""

+++

repository: chvlyl/academic-kickstart-netlify

repo_name: chvlyl/academic-kickstart-netlify


text:
# Star Wars - The Programming Saga

The Star Wars history told in Python - not actually functional code.

**PRs are welcome! :)**

## As for contributors and supporters:

![image](https://github.com/vltr/star-wars-saga/raw/master/static/such_nerd.jpg)

license: Unlicense

repository: vltr/star-wars-saga

repo_name: vltr/star-wars-saga


text:
## SQL Database
Restores an Azure SQL Database to a point in time.

Azure SQL Database is a relational database-as-a service using the Microsoft SQL Server Engine. SQL Database is a high-performance, reliable, and secure database you can use to build data-driven applications and websites in the programming language of your choice, without needing to manage infrastructure.

### Example
```hcl
module "sql_database" {
  source                           = "github.com/mobilabsolutions/terraform-modules.git?ref=1.1.0//modules/azurerm/sql/database"
  name                             = "${var.name}"
  resource_group_name              = "${var.resource_group_name}"
  location                         = "${var.location}"
  server_name                      = "${var.server_name}"
  tags                             = "${var.tags}"
}
```

#### Input Reference
The following input variables are supported:

Name | Description | Type
----------------- | --------- | --------
name  | (Required) The name of the SQL Database. | string
resource_group_name | (Required) The name of the resource group in which to create the sql database. | string
location | (Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. | string
server_name | (Required) The name of the SQL Server on which to create the database. | string
source_database_id | (Required) The URI of the source database. | string
restore_point_in_time | (Required) The point in time for the restore e.g. 2013-11-08T22:00:40Z | string
tags | (Optional) A mapping of tags to assign to the resource. | map

Default values will be overriden if they are provided as input variables. Usually variables marked as (Required) does not have default values. Check variables.tf file for more information.

#### Output Reference
The following output variables are supported:

Name | Description | Type
----------------- | --------- | --------
id | The SQL Database ID. | string
creation_date | The creation date of the SQL Database. | string

repository: tropnikovvl/terraform-modules

repo_name: tropnikovvl/terraform-modules


text:
---
title:  Dependencies
summary: ""
sidebar: suite_sidebar
permalink: suite-dependencies.html
---

We established that bots produce products for others to consume. _Others_ include other algorithms, meaning that bots usually depend on the datasets produced by other bots. We call these _data dependencies_.

Bots consume their own status report and they might as well consume status reports from other algorithms. We call these _status dependencies_.

There are three types of *status dependencies*:

* *Self Reference* is the status dependency a process establishes with its own status report so as to learn what was done in the previous run.

* *Market Starting Point* is the status dependency a process may establish with another bot's status report to learn what is the date time of the begining of the market.

* *Market Ending Point* is a similar concept as the *market starting point* only that the goal is to learn how far the bot producing the input dataset (the data dependency) has processed so far.

The declaration of such dependencies is what allows bots to add value over the product of other bots, generating new, more elaborate products by further processing datasets that other bots have created.

As you may figure, the possibilities are endless when you have the power to combine information from different sources, produce an analysis on top of that information, and store the new information separately to be consumed by other bots, including the trading bot, through the trading logic behind strategies.

Let's go through the dependencies existing among the current set of bots shipped with the system...

## Charly

Charly is a _sensor bot_. He gets both historic and live trades data from exchanges and assures consistency using recursive processes before storing it in a highly fragmented and usable dataset.

Charly has three different processes: Live-Trades, Historic-Trades, and Hole-Fixing. These three processes combined create the one Charly product: Trades, stored in a single dataset.

The dataset is stored under the _minutes_ file structure. This structure is very efficient to store large amounts of data the is to be consumed in one-minute chunks by another bot, as you will soon learn.

The process *Historic-Trades* provides the information about the starting point of the market to all other bots. It's logical, as Charly is the only bot in contact with the exchange.

## Bruce

Now, let's see what Bruce, an *indicator bot*, does with Charly's product. Bruce offers two products, *Candles* and *Volumes*, stored in two datasets: candles at 1-minute resolution and volumes at 1-minute resolution. The datasets are stored under the _daily file_ type of dataset.

Can you guess what is Bruce's data dependency? That's right! Bruce depends on Charly's product.

Bruce takes the trades data that Charly extracted from the exchange in intervals of one minute, and processes it as follows:

* finds the first and last trades to come up with the open and close values,

* goes over all trades to extract minimum and maximum values,

* agregates buy and sell trades volume,

With that information Bruce builds a dataset of 1-minute candles and 1-minute volumes, each of them stored under the _daily file_ structure.

Notice how Charly storing 1-minute files makes Bruce's work straightforward. Bruce needs to load a single file that contains all the data it needs to build each 1-minute candle and 1-minute volume.

In other words, Bruce is adding value to Charly's product and offering a new value-added product of his own. But the value-adding chain does not stop there...

## Olivia

Let's take a look at another indicator, Olivia. She offers four different products: candles at sub-hour resolutions, candles in resolutions above one hour, volumes in sub-hour resolutions and volumes in resolutions above one hour.

And guess what? Indeed, Olivia uses Bruce's 1-minute candles and 1-minute volumes to produce complementary candles and volumes at different resolutions.

As a result, Olivia stores data in two different types of datasets: *daily files* for resolutions below one hour and *market files* for resolutions of one hour and above.

From this point and onwards, all bots processing Olivia's products and subsequent derivatives will likely store data in the same two types of datasets, so as to maintain the most efficient possible data structures to serve the intended purposes.

## Tom

Tom uses candles from Bruce and Olivia to produce the candle-stairs pattern indicator.

## Chris

Chris uses Olivia's candles to produce the Bollinger Bands indicator.

## Paula

Paula uses Chris' Bollinger Bands dataset to build the Bollinger Channel and Bollinger SubChannel indicators.

## Jason

The last link in the chain usually comes in the form of user strategies handled by the trading bot, Jason—consuming data from indicators to make trading decisions.

Of course, the main goal of a strategy is to perform profitable trading. However, notice that Jason has outputs too: Simulations, Formulas & Conditions, Trades, Strategies and Live are products that Jason exposes so that the Trading Simulation Plotter may create a visual representation of strategies' actions over the charts.

repository: Alex-Mishin/Superalgos

repo_name: Alex-Mishin/Superalgos


text:
---
layout: page
title: About
permalink: /about/
---

This blog is maintained by members of HaCS@BCU, for its members and visitors. Therefore, it is covered by the society's code of conduct, which can be found [here](https://github.com/HaCSBCU/conduct/blob/master/README.md).

### Want to post?
In order to post you must create a pull request on the GitHub repository. To do this, go [here](https://github.com/hacsbcu/hacsbcu.github.io/) and fork the repository to your own GitHub account by clicking the 'Fork' button in the top right corner.

Once forked, you need to clone your copy of the blog to your own computer.

### Contact me
[web<EMAIL_ADDRESS>


text:
A javascript library function for use in SAP Design Studio plugin components, transforming the single JSON result set into a list of tuples.  If you are working on an SAP Design Studio SDK plugin and pulling data into your component, you might notice that the result set JSON is very complex.  tuplesformatTransform.js contains the reformatIntoSimpleTuples() function.  reformatIntoSimpleTuples() transforms the single JSON result set into a list of tuples for easier consumption in some cases.

reformatIntoSimpleTuples() takes two parameters:
zenResultSetJSON = the result set that you wish to transform.  It must be of the single JSON result set type as described in the Design Studio developers’ Guide.
displayType = the display type (‘key’ or ‘text’) that you wish to use.  You fill your result set tuple list with either key or text values.

reformatIntoSimpleTuples() holds most of its variables in the local scope.  It creates two in the global scope for use in other places:
headerTuple compresses the (potentially) multi-leveled header into a single header line, with the stacked text concatenated into each cell.
rowTuples contains each row with the following format:
[row measure members1,
row measure members2,
...,
row measure membersN,
row dimension members1,
row dimension members2,
...,
row dimension membersN,
data1,
data2,
...,
dataN]

Also included are two sample files to demonstrate the function in action.
entureResultset.js contains an example result set; what resultset being fed to a Design Studio SDK component might look like.

Html5.html is an example html file, with an SAP UI5 table.  The html file’s script calls reformatIntoSimpleTuples(), using the sample data from entureResultset.js and puts that data into the UI5 table.

repository: davidhstocker/SAPDSResultSetTransformer

repo_name: davidhstocker/SAPDSResultSetTransformer


text:
---
layout: default
---

# 1997-06-18 - Recipient Anonymity

## Header Data

From<EMAIL_ADDRESS>(Matthew Ghio)

To<EMAIL_ADDRESS>Message Hash: 88c900a48d85e07314edc453bcdb5c6dd801e141deddd47507b8cd9b959bf374

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1997-06-18 08:37:08 UTC

Raw Date: Wed, 18 Jun 1997 16:37:08 +0800

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>(Matthew Ghio)
Date: Wed, 18 Jun 1997 16:37:08 +0800
To<EMAIL_ADDRESS>Subject: Recipient Anonymity
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

A group of servers collects messages of equal length for anonymous
recipients.  All servers exchange messages so that each has copies of all
messages.

A recipient wishes to retrieve a message from the servers without any
server knowing which message he is receiving.  The recipient selects a
group of n servers.  From each server, S_1...S_n-1, he requests a random
selection of messages, with a 50% probability that any particular message
will be selected.  The server returns the xor of all messages requested.
He sends the final server a request which is the xor of all the previous
requests and the one single message that he wants.

The xor of all the responses is the desired message.  It is impossible to
determine which message was received unless all servers collude.

A variant of this scheme where there is only one server and a number of
anonymizing proxies will also work, however in this case there must be
sufficient delay to obscure the time correlations or the server will know
which message was received, and collusion with any one of the proxies
could reveal the recipient.

It is also possible to eliminate the need for real-time communication and
operate the system on a store-and-forward network.  The recipient
generates a one time pad and sends it to a remailer/messageserver along
with a reply-block which is a nested series of encrypted message requests
and next-hop addresses.  Each remailer along the way xors the requested
messages onto the existing message data before forwarding it to the next
hop.  When the recipient gets his message back, he decrypts it using the
one time pad.  To account for the situation where first and last remailer
collude, it is desireable to have some of the intervening remailers apply
a stream cipher to the message using a supplied key.

The server-to-server broadcast eliminates the need for cover traffic, but
the anonymizing proxy system does not.  However, there is no reason that
both schemes could not be used concurrently in the same network, and in
fact they would look the same to the end-user.

Except for the additional server-to-server communications necessary to
broadcast new messages into the system, the bandwidth utilization is
comparable to sender-anonymous remailers; it scales linearly as the
number of parties involved in the delivery of a particular message.  The
failure rate is also the product of the failure rate for each server; if
one server delivers corrupt data, the message is unreadable, and the
recipient must identify the bad server and eliminate it from future
requests.

{% endraw %}
```

## Thread

+ Return to [June 1997](/archive/1997/06)

+ Return to<EMAIL_ADDRESS>(Ulf =?iso-8859-1?Q?M=F6ller?=)](/authors/3umoelle_at_informatik_unihamburg_de_ulf_iso88591qmf6ller_)"
+ Return to<EMAIL_ADDRESS>(Matthew Ghio)](/authors/ghio_at_temp0097_myriad_ml_org_matthew_ghio_)"
+ Return to<EMAIL_ADDRESS>(Matthew Ghio)](/authors/ghio_at_temp0099_myriad_ml_org_matthew_ghio_)"
+ Return to<EMAIL_ADDRESS>(Anonymous)](/authors/nobody_at_replay_com_anonymous_)"

+ 1997-06-18 (Wed, 18 Jun 1997 16:37:08 +0800) - Recipient Anonymity -<EMAIL_ADDRESS>(Matthew Ghio)_
  + 1997-06-19 (Fri, 20 Jun 1997 04:59:44 +0800) - [Re: Recipient Anonymity](/archive/1997/06/e032f8e499e122e5ffff1c57e1fb860575208af8b62464dd4565df369838f6fd) -<EMAIL_ADDRESS>(Ulf =?iso-8859-1?Q?M=F6ller?=)_
  + 1997-06-20 (Fri, 20 Jun 1997 09:25:47 +0800) - [Re: Recipient Anonymity](/archive/1997/06/6f48ecaf6c59ef4dd2d40e223e974955b64f8b401100070a6f179e2ea61a97fb) -<EMAIL_ADDRESS>(Matthew Ghio)_
  + 1997-06-20 (Fri, 20 Jun 1997 10:27:48 +0800) - [Re: Recipient Anonymity](/archive/1997/06/d8d7611dd543c73154817c4530ac0c866a91140fe3e8e8afbf3b7616e15fc123) -<EMAIL_ADDRESS>(Anonymous)_
    + 1997-06-20 (Sat, 21 Jun 1997 06:07:03 +0800) - [Re: Recipient Anonymity](/archive/1997/06/ef34d99494473352117a5ca98cb5857568e8ad0b311b20c02c5874592e5fa9c5) -<EMAIL_ADDRESS>(Ulf =?iso-8859-1?Q?M=F6ller?=)_


text:
---
title: "brew usage"
date: "2018-12-31"
category: "dev"
description: "common command"
emoji: "🍴"
---

## search

```bash
$ brew search httpie
$ brew search cask
```

## install

```bash
$ brew install httpie # if just a command
$ brew cask wewechat # if is an app
```

## list outdated package

```bash
$ brew outdated
```

## upgrade

```bash
$ brew upgrade # upgrade all packages
$ brew upgrade httpie # update specific package
```

## update

```bash
$ brew update # update brew local mirror
```

## tap

```bash
$ brew tap
homebrew/cask
homebrew/core
homebrew/services
nonchalant/appicon
$ brew tap FaiChou/test # add https://github.com/FaiChou/homebrew-test to formula repository
```

If you install any formula, brew will search by the order:

1. custom repo
2. homebrew/core

## pin

Preventing formula from being upgraded when issuing the brew upgrade formula command.

## clean

```bash
$ brew cleanup # delete old and cache files
$ brew cleanup -n # list what will be cleaned up
```

## homepage

```bash
$ brew home httpie # visit httpie's homepage
```

## list

This will list all formulae including auto installed dependencies.

```bash
$ brew list
```

## leaves

> Show installed formulae that are not dependencies of another installed formula.

```bash
$ brew leaves
```

## check info

```bash
$ brew info httpie
```

## if you occurs

#### Error: formula: /usr/local/Homebrew/.../xxx.rb:6 syntax error, unexpected <<

Fetch and reset Homebrew and all tap repositories to their latest origin/master.

```bash
$ brew update-reset
```

## also

As we can see on the info page, packages are installed to `/usr/local/Cellar/` folder.

The normal flow is: `update` -> `upgrade` -> `cleanup`.

repository: FaiChou/blog

gha_license_id: NOASSERTION

repo_name: FaiChou/blog


text:
# Docker volume plugin for Ceph RBD

This plugin allows you to mount Ceph RBD volumes in your container easily.

[![Go Report Card](https://goreportcard.com/badge/github.com/djmaze/docker-volume-ceph-rbd)](https://goreportcard.com/report/github.com/djmaze/docker-volume-ceph-rbd)

Note: The code base is still very rough around the edges. It uses the kernel RBD interface directly and shells out where it is not needed.

Also, it does not yet support volume locking. That means it does not prevent attaching one RBD volume to multiple containers at the same time. There be dragons!

## Usage

1 - Install the plugin

```
$ docker plugin install mazzolino/ceph-rbd  # or docker plugin install mazzolino/ceph-rbd DEBUG=1
```

2 - Create a volume

```
$ docker volume create -d mazzolino/ceph-rbd -o hosts=<ip1,ip2,..> -o pool=<poolname> -o rbd=<rbdname> -o username=<username> -o secret=<secret> rbdvolume
rbdvolume
$ docker volume ls
DRIVER              VOLUME NAME
local               2d75de358a70ba469ac968ee852efd4234b9118b7722ee26a1c5a90dcaea6751
local               842a765a9bb11e234642c933b3dfc702dee32b73e0cf7305239436a145b89017
local               9d72c664cbd20512d4e3d5bb9b39ed11e4a632c386447461d48ed84731e44034
local               be9632386a2d396d438c9707e261f86fd9f5e72a7319417901d84041c8f14a4d
local               e1496dfe4fa27b39121e4383d1b16a0a7510f0de89f05b336aab3c0deb4dda0e
mazzolino/ceph-rbd     rbdvolume
```

3 - Use the volume

```
$ docker run -it -v rbdvolume:<path> busybox ls <path>
```

## THANKS

This project is a fork of [vieux/docker-volume-sshfs](https://github.com/vieux/docker-volume-sshfs), an excellent example on how to write a Docker volume driver.

https://github.com/vieux/docker-volume-sshfs
https://github.com/docker/go-plugins-helpers

## LICENSE

MIT

repository: djmaze/docker-volume-ceph-rbd

repo_name: djmaze/docker-volume-ceph-rbd


text:
# MOB-2.2 - Game Development

## Course Description

An introduction to gaming on mobile devices. Students will learn SpriteKit and important core concepts like Sprites, Sprite Sheets, physics, and software patterns important to games like State Machine.

## Course Specifics

Weeks to Completion:  7

Total Seat Hours:  37.5 hours

Total Out-of-Class Hours: 75 hours

Total Hours: 112.5 hours

Units:  3 units

Delivery Method:  Residential

Class Sessions:  14 classes, 7 labs

## Prerequisites:

MOB 2.1

## Learning Objectives or Competencies

Students by the end of the course will be able to ...

- Build games using Xcode, SpriteKit and Swift.
- Design levels for games that they conceive.
- Identify various tradeoffs of each architecture and select best fit for game.
- Design games with interesting and engaging game play through careful game balance.

## Lessons

Should be ~13 planned lessons (7 weeks x 2 meetings per week -~1 holiday)

1. Introduction
    - What is SpriteKit
        - Navigating a SpriteKit project
        - Nodes, Scenes, Sprites, Actions
    - **In Class Activities**
    - **After Class**
        - Tutorial - Sushi Neko

1. Actions and Motion
    - Making things move and interact with actions
        - Using SKAction
        - Using SKTexture

1. Physics
    - Working With Physics
    - Using physics to simulate real world collisions and gravity
        - Working With Physics
    - **After Class**
        - Tutorial - Hoppy Bunny

1. Game Mechanics
    - Balancing Game play, UX in games
    - Brainstorm mechanic
    - Define Custom Project
    - Pair & Exchange & Test

## Tutorials & Projects

Class will cover two (2) tutorials and one custom game project. Each of the two tutorials should be completed each week for the first two weeks of class.

Students present their completed tutorials each week in class.

The custom project will be presented in stages across the three final weeks of class.

**Tutorials**
- [Sushi Neko](https://www.makeschool.com/online-courses/tutorials/learn-to-clone-timberman-with-spritekit-and-swift-3/getting-started)
- [Hoppy Bunny](https://www.makeschool.com/online-courses/tutorials/build-hoppy-bunny-with-spritekit-in-swift/)

**Projects**
- [Custom iOS Game](project-specifications)

## Evaluation

To pass this course you must meet the following requirements:

- No more than two no call no shows
- No more than four excused absences
- Make up all classwork from all absences
- Finish all required tutorials and projects
- Pass the final exam (summative assessment) with >=80%

## Make School Course Policies

[Academic Honesty](https://github.com/Product-College-Courses/Common-Syllabus-Sections/blob/master/Academic-Honesty-and-Plagiarism.md)

[Accomodation Policy](https://github.com/Product-College-Courses/Common-Syllabus-Sections/blob/master/Accommodation-Policy.md)

[Diversity Statement](https://github.com/Product-College-Courses/Common-Syllabus-Sections/blob/master/Diversity-Statement.md)

[Evaluation Methods](https://github.com/Product-College-Courses/Common-Syllabus-Sections/blob/master/Evaluation-Methods.md)

[Title IX Disclaimer](https://github.com/Product-College-Courses/Common-Syllabus-Sections/blob/master/Evaluations-Title-X-Disclaimer.md)

[Program Learning Outcomes](https://github.com/Product-College-Courses/Common-Syllabus-Sections/blob/master/Program-Learning-Outcomes.md)

repository: KitsuneNoctus/makeschool

repo_name: KitsuneNoctus/makeschool


text:
Features
========

`KSSelectionBorder` is a fairly small class for drawing the outline & handles Apple uses to represent selections in many of their apps (e.g. iWork and Interface Builder)

Contact
=======

I'm Mike Abdullah, of [Karelia Software](http://karelia.com). [@mikeabdullah](http://twitter.com/mikeabdullah) on Twitter.

Questions about the code should be left as issues at https://github.com/karelia/KSSelectionBorder or message me on Twitter.

Dependencies
============

* [ESCursors](https://github.com/ssp/ESCursors), included as a submodule
* Quartz
* AppKit

Definitely works as far back as OS X v10.5, maybe further

License
=======

### ESCursors ###

[ESCursors](https://github.com/ssp/ESCursors) carries its own license:

You may use this code in your own projects at your own risk.
Please notify us of problems you discover. You are required
to give reasonable credit when using the code in your projects.

### KSSelectionBorder ###

Copyright © 2009 Karelia Software

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Usage
=====

Add `KSSelectionBorder.h`, `KSSelectionBorder.m`, `ESCursors.h`, and `ESCursors.m` to your project. Ideally, make this repo a submodule, which in turn includes ESCursors as a submodule. But hey, it's your codebase, do whatever you feel like.

In your code, instantiate `KSSelectionBorder`s as needed and ask them to draw. A variety of instance methods are also provided to figure out precisely where and how to draw, and the cursor for resize handles.

repository: karelia/KSSelectionBorder

extension: markdown

repo_name: karelia/KSSelectionBorder


text:
# Changelog

Changelog for K8ssandra, new PRs should update the `unreleased` section below with entries sorted by type, in the
following order:

```markdown
* [CHANGE]
* [FEATURE]
* [ENHANCEMENT]
* [BUGFIX]
```

If two entries have the same type, they should be sorted from newest to oldest (the newest comes first, the oldest comes
last).

When cutting a new release of the parent `k8ssandra` chart update the `unreleased` heading to the tag being generated
and date `## vX.Y.Z - YYYY-MM-DD` and create a new placeholder section for  `unreleased` entries.

## unreleased

## v1.2.0 - 2021-06-02

* [CHANGE] #726 Upgrade to Cassandra 4.0-rc1
* [FEATURE] #673, #698 Make tolerations configurable
* [ENHANCEMENT] #654 Reduce initial delay of Stargate readiness probe
* [ENHANCEMENT] #560 Add the ability to attach additional PVs for medusa backups
* [ENHANCEMENT] #693 Update cass-operator to v1.7.0
* [ENHANCEMENT] #732 Make allocate_tokens_for_replication_factor configurable
* [BUGFIX] #678 Upgrade to Medusa 0.10.1 fixing failed backups after a restore
* [FEATURE] #224 Allow defining additional settings for autoscheduling in Reaper, update reaper-operator to v0.3.1

gha_language: YAML


text:
# MinecraftSharp

A Hobby Project to Bring Minecraft to C#

Please Check [SM2](https://github.com/SharpenedMinecraft/SM2) the successor of this Project

With lots of help by #mcdevs on freenode (IRC)
and [SharpMC](https://github.com/SharpMC/SharpMC)

Wiki for Minecraft Related things: [WIKI](http://wiki.vg/)

Currently this is mainly used to Organize Tasks.


text:
# Generative Model with Coordinate Metric Learning for Object Recognition Based on 3D Models
  One of the bottlenecks in acquiring a perfect database for deep learning is the tedious process of collecting and labeling data.
  In this paper, we propose a generative model trained with synthetic images rendered from 3D models which can reduce the burden on collecting real training data and make the bac  kground conditions more realistic.
  Our architecture is composed of two sub-networks: a semantic foreground object reconstruction network based on Bayesian inference, and a classification network based on multi-t  riplet cost training for avoiding over-fitting on monotone synthetic object surface and utilizing accurate information of synthetic images like object poses and lightning condi  tions which are helpful for recognizing regular photos.
  Firstly, our generative model with metric learning utilizes additional foreground object channels generated from semantic foreground object reconstruction sub-network for recog  nizing the original input images.
  Multi-triplet cost function based on poses is used for metric learning which makes it possible to train an effective categorical classifier purely based on synthetic data.
  Secondly, we design a coordinate training strategy with the help of adaptive noise applied on the inputs of both of the concatenated sub-networks to make them benefit from each   other and avoid inharmonious parameter tuning due to different convergence speed of two sub-networks.
  Our architecture achieves the state of the art accuracy of 50.5% on the ShapeNet database with data migration obstacle from synthetic images to real photos.
  This pipeline makes it applicable to do recognition on real images only based on 3D models.

Copyright (c) 2017, Yida Wang
All rights reserved.

Please see our [paper](https://arxiv.org/abs/1705.08590) for more details about the method and data.

## Author info
Yida Wang, Ph.D candidate in Technischen Universität München (TUM), München, Deutschland.
[read more](https://wangyida.github.io/)

## Figures in the paper
### Pipeline
This is the basic pipeline for Generative Model with Coordinate Metric Learning

![Pipeline](images/pipeline_tip.png)

Our GM-CML is a concatenated architecture which is shown as reconstruction sub-network and classification sub-network in below:

![reconstruction sub-network](images/network_rec.png)
![classification sub-network](images/network_cls.png)

### Samples for the triplet training

![Nearest Neighbor Classification results](images/nn_triplet.png)

## Codes Explanation

### Training and Testing Strategies
network input / placeholders for train (bn) and dropout
```python
    x_img = tf.placeholder(tf.float32, input_shape, 'x_img')
    x_obj = tf.placeholder(tf.float32, input_shape, 'x_obj')
```

Input of the reconstruction network
```python
    current_input1 = utils.corrupt(x_img)*corrupt_rec + x_img*(1-corrupt_rec) \
                if (denoising and phase_train is not None) else x_img
    current_input1.set_shape(x_img.get_shape())
    # 2d -> 4d if convolution
    current_input1 = utils.to_tensor(current_input1) \
                if convolutional else current_input1
```

Encoder
```python
    for layer_i, n_output in enumerate(n_filters):
        with tf.variable_scope('encoder/{}'.format(layer_i)):
            shapes.append(current_input1.get_shape().as_list())
            if convolutional:

    with tf.variable_scope('variational'):
        if variational:
```

Decoder
```python
    for layer_i, n_output in enumerate(n_filters[1:]):
        with tf.variable_scope('decoder/{}'.format(layer_i)):
            shape = shapes[layer_i + 1]
            if convolutional:
```

Loss finctions of VAE and softmax
```python
    # l2 loss
    loss_x = tf.reduce_mean(
        tf.reduce_sum(tf.squared_difference(x_obj_flat, y_flat), 1))
    loss_z = 0

    if variational:
        # Variational lower bound, kl-divergence
        loss_z = tf.reduce_mean(-0.5 * tf.reduce_sum(
            1.0 + 2.0 * z_log_sigma -
            tf.square(z_mu) - tf.exp(2.0 * z_log_sigma), 1))

        # Add l2 loss
        cost_vae = tf.reduce_mean(loss_x + loss_z)

    # Alexnet for clasification based on softmax using TensorFlow slim
    if softmax:
```

There are several optional choices for classification network. Just modify the parameter ```classifier```.
```python

        # The following are optional networks for classification network
        if classifier == 'squeezenet':
            predictions, net = squeezenet.squeezenet(
                        y_concat, num_classes=13)
        if classifier == 'zigzagnet':
            predictions, net = squeezenet.zigzagnet(
                        y_concat, num_classes=13)
        elif classifier == 'alexnet_v2':
            predictions, end_points = alexnet.alexnet_v2(
                        y_concat, num_classes=13)
        elif classifier == 'inception_v1':
            predictions, end_points = inception.inception_v1(
                        y_concat, num_classes=13)
        elif classifier == 'inception_v2':
            predictions, end_points = inception.inception_v2(
                        y_concat, num_classes=13)
        elif classifier == 'inception_v3':
            predictions, end_points = inception.inception_v3(
                        y_concat, num_classes=13)
```

Here we must set corrupt_rec and corrupt_cls as 0 to find a proper ratio of variance to feed for variable var_prob. We use tanh as non-linear function for ratio of Vars from the reconstructed channels and original channels.
```python
var_prob = sess.run(ae['var_prob'],
            feed_dict={
                ae['x_img']: test_xs_img,
                ae['x_label']: test_xs_label,
                ae['train']: True,
                ae['keep_prob']: 1.0,
                ae['corrupt_rec']: 0,
                ae['corrupt_cls']: 0})

# Here is a fast training process
corrupt_rec = np.tanh(0.25*var_prob)
corrupt_cls = np.tanh(1-np.tanh(2*var_prob))
```

Main API for training and testing. General purpose training of a (Variational) (Convolutional) Autoencoder.
```python
def train_vae(files_img, files_obj, input_shape):
    """
    Parameters
    ----------
    files : list of strings
        List of paths to images.
    input_shape : list
        Must define what the input image's shape is.
    use_csv = bool, optional
        Use csv files to train conditional VAE or just VAE.
    learning_rate : float, optional
        Learning rate.
    batch_size : int, optional
        Batch size.
    n_epochs : int, optional
        Number of epochs.
    n_examples : int, optional
        Number of example to use while demonstrating the current training
        iteration's reconstruction.  Creates a square montage, so make
        sure int(sqrt(n_examples))**2 = n_examples, e.g. 16, 25, 36, ... 100.
    crop_shape : list, optional
        Size to centrally crop the image to.
    crop_factor : float, optional
        Resize factor to apply before cropping.
    n_filters : list, optional
        Same as VAE's n_filters.
    n_hidden : int, optional
        Same as VAE's n_hidden.
    n_code : int, optional
        Same as VAE's n_code.
    convolutional : bool, optional
        Use convolution or not.
    variational : bool, optional
        Use variational layer or not.
    softmax : bool, optional
        Use the classification network or not.
    classifier : str, optional
        Network for classification.
    filter_sizes : list, optional
        Same as VAE's filter_sizes.
    dropout : bool, optional
        Use dropout or not
    keep_prob : float, optional
        Percent of keep for dropout.
    activation : function, optional
        Which activation function to use.
    img_step : int, optional
        How often to save training images showing the manifold and
        reconstruction.
    save_step : int, optional
        How often to save checkpoints.
    ckpt_name : str, optional
        Checkpoints will be named as this, e.g. 'model.ckpt'
    """
```

### Visualization for Outputs and Parameters

We can visualize filters, reconstruction channels and also outputs according to latent variables.

Plot example reconstructions
```python
recon = sess.run(
    ae['y'], feed_dict={
                ae['x_img']: test_xs_img,
                ae['train']: False,
                ae['keep_prob']: 1.0,
                ae['corrupt_rec']: 0,
                ae['corrupt_cls']: 0})
utils.montage(recon.reshape([-1] + crop_shape),
              'recon_%08d.png' % t_i)
```

Plot filters
```python
filters = sess.run(
  ae['Ws'], feed_dict={
              ae['x_img']: test_xs_img,
              ae['train']: False,
              ae['keep_prob']: 1.0,
              ae['corrupt_rec']: 0,
              ae['corrupt_cls']: 0})
#for filter_element in filters:
utils.montage_filters(filters[-1],
            'filter_%08d.png' % t_i)
```

repository: wangyida/gm-cml

repo_name: wangyida/gm-cml


text:
# KDL Specification

| Item | Information |
| --- | --- |
| Authors | Tom Hancocks |
| Revision | 1 |
| Last Edit Date | December 4th, 2019 |

## About
The _Kestrel Definition Language_, or _KDL_, is a Domain Specific Language created and designed to allow content developers a convenient way of representing Kestrel resources in a plain text format.

This document is intended to outline and specify the structure, concepts and philosophies behind KDL. Furthermore, this document should not be considered final, and proposals to change, ammend or extend this specification will be reviewed.

## Philosophy
KDL is intended to be an expressive, but basic language with the sole purpose of representing resources for use in Kestrel. The language should be expressive enough to making reading and understanding intent straightforward and not require consulting documentation in order to decipher meaning.

An example of what this means is in representing flags. Kestrel uses flags in a number of resources. Flags are simply a bit of information (on or off) that tells the game engine that it should or shouldn't do something. Typically they are grouped together into a single number. A 16-bit number may contain upto 16 individual flags. These are typically represented in the following way:

```
flags = 0x003A
```

Which can expanded out and shown in binary as

```
flags = 0000 0000 0011 1010
```

Here each digit (0 or 1) represents a single bit or flag. If the digit is 1 then the flag is turned on, otherwise it is off.

This representation is compact but it is not friendly to the person reading, or writing the code.

KDL solves this by assigning a name to each flag, such as `food`, `metal`, `medical`, etc. If you provide the name of the flag, then it infers that the flag should be set.

```
cargo = food medical;
```

This way it is easier for the reading and developer to infer the meaning. This same approach is taken throughout KDL.

## Structure
KDL follows a very simple structure. The structure is taken to mean the method by which code is written and how it is laid out. This structure can very roughly be represented as:

- KDL Document (Order of children does not matter)
	- Directive (Multiple)
	- Declaration (Multiple, order of children does not matter)
		- Instance (Multiple attributes, multiple fields)
			- Attribute
			- Field

This fixed structure gives a consistant look and feeling to all KDL documents. Represented as code, this might look something like

```kdl
@out {
	"Hello, World"
	"The @out directive allows printing messages to the standard output"
}

declare ResourceType {

	` Create a new instance of ResourceType
	new (attributes...) {
		fields...
	}

}

declare AnotherType {

	` Create a new instance of AnotherType
	new (attributes...) {
		fields...
	}

}
```

## Basic Syntax
It is purposefully intended that there are very few syntactic elements to KDL. It is a definition language, not a programming language. It is possible that compiler directives can be added to perform more complex and dynamic tasks. This section will detail some of the basic syntactic elements.

### Comments
KDL does include comments. They are single line and purposefully awkward to use. The intention is for the language to be expressive, and thus shouldn't need to lean on comments heavily. Any shortcomings should be raised as an issue so the issue can be reviewed.

```kdl
` Comments begin with a backtick, and run to the end of the line.
```

### Integers
Integers are represented in a standard decimal format such as

```kdl
42
1337
```

### Resource ID
Resource ID's are seperate entities to integers, and whilst they are technically an integer internally, they are still distinctly represented in KDL.

```kdl
#128
```

### Strings
String literals are represented using the double-quote syntax

```kdl
"This is a string"
```

### Identifier
Identifiers are used to represent the names of entities, flags, types, etc. They have limitations on what characters can be used (`A-Za-z0-9_`).

```kdl
cargo
SpriteAnimation
declare
```

### Directive
Assembler Directives are instructions to the assembler that are executed in place. They always begin with an `@` and typically have an associated body.

```kdl
@import { "missions.kdl" }
```

### Resource Type Declaration
A declaration tells the assembler that the user is about to start defining instances of a given type.

```kdl
declare ResourceType { ... }
```

### Resource Definition
A definition tells the assembler to create a new instance of a given resource type, along with any attributes and fields for it. Definitions are supplied through the `new` keyword.

The structure of a definition looks like

```kdl
new (attributes) { fields }
```

### Resource Attributes
Resource attributes are used to define either the ID or the Name attributes of a resource. They look like either of these.

```kdl
id = #128
name = "Test Resource"
```

The order of attributes does not matter and they are seperated by a comma. Additional attributes may be defined in the future.

- `id` - The value for this can be either a resource id or `auto`. `auto` should instruct the assembler to find the next available resource id.
- `name` - The value for this must be a string.

### Resource Fields
Resource fields assign name value sets to a resource instance, and will be ultimately used by the assembler to construct the actual final binary representation of the resource.

They look like, with each field being allowed to define 1 or more values.

```kdl
field = value1 "value2";
```

Which fields are valid for a given resource type and what values are acceptable is down to the individual resource types and beyond the remit of the KDL specification.

repository: tjhancocks/kestrel-development-kit

repo_name: tjhancocks/kestrel-development-kit