teleren/devto huggingface dataset:
Amazon Lumberyard: A Scream of Anguish
Tags: gamedev, amazonlumberyard, cpp, programming
Published: 2018-07-09 14:33:17

---
title: Amazon Lumberyard: A Scream of Anguish
published: true
description: 
tags: gamedev, Amazon Lumberyard, cpp, programming
---

Video games are among the most popular software products. Now a new game engine, Amazon Lumberyard, has joined this huge industry. The project is currently in the beta phase and still has time to get rid of the bugs and improve. Its authors have a lot of work to do to make sure they don't disappoint millions of gamers and game developers in the nearest future.

![Amazon Lumberyard copy-past bugs](https://thepracticaldev.s3.amazonaws.com/i/lt0lpyqa05bgr6jo9fzi.png)

[Amazon Lumberyard](https://aws.amazon.com/lumberyard/) is a free cross-platform triple-A game engine developed by Amazon and based on the architecture of [CryEngine](https://www.cryengine.com/), which was licensed from Crytek in 2015. I already checked CryEngine twice, in [august 2016](https://www.viva64.com/en/b/0417/) and [april 2017](https://www.viva64.com/en/b/0495/), and I'm sorry to say it, but the code quality had decreased since the first check. I was wondering the other day how Amazon had used the engine and took a look at the new product. I must admit they did make a great environment. The user documentation and environment deployment software are really awesome too. But the code is messed up again! I hope Amazon can afford to allocate much more resources for that project and will start caring about code quality at last. By writing this review I hope to draw their attention to this problem and persuade them to take a new approach to the development process. 

The source files under analysis refer to the latest Amazon Lumberyard version, 1.14.0.1, and were downloaded from the [Github](https://github.com/aws/lumberyard/) repository. [Star Citizen](https://robertsspaceindustries.com/) is one of the first games to be built on the Lumberyard engine. If you are looking to play it, then welcome to take a peek under the hood with me.


Read more - https://www.viva64.com/en/b/0574/
We tried to write a brief introduction to accessibility and ended up with 6,000+ words.
Tags: a11y
Published: 2018-07-09 13:44:25

---
title: We tried to write a brief introduction to accessibility and ended up with 6,000+ words.
published: true
description: The "Designing for accessibility" chocolate chip cookie analogy is my favorite part.
tags: accessibility
---

At Clique, one of our 3 values is “make somebody’s job easier.” Every time we build something, we challenge ourselves to keep this value at the forefront. Why build, if not to make things easier, simpler, and more accessible? Maybe you—like us—want to build accessible stuff too. That’s awesome.


<h2>WHAT IS ACCESSIBILITY?</h2>

Accessibility is the practice of designing products, devices, services, or environments for people who experience disabilities. It’s about removing barriers that might prevent people with disabilities from accessing something. It’s about creating opportunity for everyone to participate in x, y, or z.

<b>It’s about inclusion.</b>

Our intention with this guide is to help a beginning devs and non-devs begin their accessibility initiative. It’s a great place to start, but—to be clear—it’s just that: a start. It outlines important stuff they need to know, from why they should care (hint: many, many reasons) to how they can have the biggest impact on web accessibility efforts in your role.

Since we started sharing this article with a few friends last week, two of the coolest things we've noticed are:
* There are multiple interpretations of various parts of WCAG 2.0 and we've had some really healthy discussions about how our site fits with those.
* Our own site's accessibility is getting better and better from more devs eyes on it, something we hadn't considered.

*One Ask: What's missing from this guide? What else should we include that was left out? (We hope the answer is "nothing," but if there's an overlooked aspect, I know this is the place to find it!)*

<h2>Continue Reading:</h2>

If you're interested in checking out the guide, I'd love your thoughts: https://cliquestudios.com/accessibility/
The 7 Most Popular DEV Posts from the Past Week
Tags: top7
Published: 2018-07-09 13:20:45

---
title: The 7 Most Popular DEV Posts from the Past Week
published: true
description: A round up of the most-read and most-loved contributions from the community this past week.
tags: icymi
cover_image: https://thepracticaldev.s3.amazonaws.com/i/sfwcvweirpf2qka2lg2b.png
---

#1. A true horror story

Why credentials should always be stored in secrets!

{% link https://dev.to/juanmanuelramallo/i-was-billed-for-14k-usd-on-amazon-web-services-17fn %}

#2. The Headphone Interruption™

>The sounds of someone saying, "excuse me?," "excuse me?" starts to filter into your consciousness. Then it escalates and the tap on the shoulder is next. If none of those elicit a reaction, your headphones are lifted off your head.

A fun read. 

{% link https://dev.to/benhayehudi/the-new-golden-rule-of-programmers-32p3 %}

#3. Don't step on any toes!

...and you'll get rewarded with a shiny OAuthToken ✨

This is a wonderful guide to understanding OAuth -- fun drawings included!

{% link https://dev.to/anabella/dancing-with-oauth-emp %}

#4. RAM or CPU or both?

A command to figure out which process is bringing your linux box to a screeching halt. 

{% link https://dev.to/agrim/monitor-the-performance-of-any-command-line-program-with-this-single-command-46je %}

#5. Just drag n' drop!

>You can now arrange 🆚Code's editors both vertically and horizontally and have more than 3 editors side by side layout.

{% link https://dev.to/mrahmadawais/-vscode-grid-editor-layout-is-here-b6a %}

#6. How is this convenient?

>Imagine you wake up and get up to brush your teeth. You go to the "brooms and brushes" room to get your tooth brush. Then, you go to the "cleaning products" room to get toothpaste. You continue to the "containers" room to get a cup, and finally, you head into the "inputs and outputs" room, where you have a tap through which water enters your house, and a sink with a drain through which fluids can leave your house. You now have everything to go brush your teeth.

Read on to see how this actually relates to coding 😋

{% link https://dev.to/_bigblind/lay-out-your-code-like-youd-lay-out-your-house-hco %}

#7. Examine, introspect, and modify

What you need to know about reflection, when to use it & why. Plus a real world example! 

{% link https://dev.to/designpuddle/coding-concepts---reflection-4d2c %}

_That's it for our weekly wrap up! Keep an eye on dev.to this week for daily content and discussions...and if you miss anything, we'll be sure to recap it next Monday!_
86 Days of code
Tags: java, discuss
Published: 2018-07-09 13:10:10

---
title: 86 Days of code
published: true
description: Suggestions needed for my 86 days of code challenge.
tags: Java, discuss
---

Hello Dev.to Community! 

Recently I read about the #100DaysOfCode Challenge and it excited me. Lately I have lost touch of coding due to several reasons (busy getting AWS certified). Now, I wish to get back on the coding horse. I have been developing back-end server applications for a financial company for the past couple of years(in Java). No other experience apart from it. 2.5 years experience in the industry, still a junior ~.~ .

I have taken up core java topics and will be coding them apart from a few classics(sudoku solver,etc). But that's the end of my creativity.

Can the great Dev.to community help me with topics for my 86 days Of Code challenge(Java topics only, an AWS idea will be fine too).

PS. 86 Days of Code + 14 days rest in between. Honoring the Sabbath :D
💔 It breaks all by itself
Tags: softwareprocess, webdev, code, programming
Published: 2020-07-27 20:06:48

---
title: 💔 It breaks all by itself
published: true
date: 2018-07-09 12:05:00 UTC
tags: softwareprocess, webdev, code, programming
canonical_url: https://shaun.church/words/it-breaks-all-by-itself
---

As so often happens with code left unattended, my static generated website inexplicably stopped generating with the current release of the generator. 404s now reigned where out of date content pages used to be king. Reverse chronological posts became chronological. Bad writing resurfaced from the depths of a forgotten history.

It sometimes feels inevitable that code over time will eventually break itself, but this isn't quite true. Things change around it, until eventually something responds unexpectedly--or not at all. The messages miss, or say the wrong thing.

_I'm sorry, who are you?_

It was a bug fix, or an improvement that missed consideration of your use case. Maybe you were using it wrong all along.

If change is the only constant your website will eventually break, too. The old build that used to run is no longer compatible with this machine. Essential security updates cut the tether to the functional past. The eternal braid of dependencies has tangled to the point it cuts off it's own oxygen supply.

I suppose I'm growing accustomed to obsolescence. It breaks even if you don't do anything, so don't be afraid to change it. You can hear the cries that _"it wasn't supposed to be like this!"_ echoing into a backwards compatible abyss.

After this brief existential overreaction and a cursory search that led _nowhere fun_, it looks like I'm going to give Gatsby a try. Hugo's esoteric template language was never my cup of tea, so I won't drink it now it's cold. Lots of folks hate JSX too, but better the devil you know. Ask Kylie.

Maybe _this_ time I'll actually use it to write a bit, too.

_This time will be different._

Of course it will.
How Did Slack Become Slack? 10 Growth Hacks You Must Know.
Tags: devops, slack, growthhacking
Published: 2018-07-09 08:25:38

---
title: How Did Slack Become Slack? 10 Growth Hacks You Must Know.
published: true
description: 
tags: devops, slack, growth hacking
---

The article was originally published by me on [TechinAsia](https://www.techinasia.com/talk/slack-4b-10-hacks)


Do you think Slack is one of the actively used tools in the DevOps industry?



I think so. Let's talk about how Slack became so BIG in such a less time. 

I have 10 growth hacks listed below,



**1. Personal branding**

Butterfield has been a well-known figure in the industry. He was the co-founder of Flickr, and he become even more famous after its acquisition by Yahoo.



**2. Perfect timing**

Slack found a perfect opportunity to help people reduce their email load and to find a better medium to communicate and manage projects.



**3. UI/UX**

The makers of the app have been focused on ensuring smooth communications through the look and feel of its website and apps.



**4. Freemium model**

Slack’s freemium model makes it easy and ideal for people to try it without any initial payments. Their pricing policy is simple and straightforward and their free plan is also feature-rich.



**5. Minimal features**

Since the beginning, Slack didn’t focus on too many features. They just wanted to be the best in what they were building, wth just one or two main benefits.



**6. Word-of-mouth marketing**

Butterfield himself used to share a lot of articles and news about Slack on social media channels and with his immediate friends to get their feedback.



**7. User feedback**

Slack did a lot of A/B testing and focus group surveys. This helped Slack build what people wanted.



**8. Twitter**

The company depends heavily on Twitter to interact with its customers and fans (you can see this in the number of tweets and replies the company dishes out).



**9. Referral loop**

One thing that differentiates the company is its referral loop. Anybody can create their own community around any interest and invite people around the world to join.



**10. Integrations**

Slack can easily integrate with any app and, in particular, with apps that startups use most. This is why many startups find the app useful.



The categories of apps you can integrate with Slack include analytics, sales, customer service, developer tools, HR, marketing, social media, and others.


Want to add something more? Feel free to add your comments.
xConnect config files can be confusing
Tags: analytics, configuration, sitecore, xconnect
Published: 2018-09-07 15:01:57

---
title: xConnect config files can be confusing
published: true
tags: Analytics,Configuration,Sitecore,xConnect
canonical_url: https://blog.jermdavis.dev/posts/2018/xconnect-config-files-can-be-confusing
---

I’m working on my first proper Sitecore 9 project at the moment, and got bitten by an annoying bit of confusion while doing some configuration work. If you’re tweaking how xConnect works take note, and hopefully you can avoid making the same mistake I did…

xConnect introduces the idea that some fields in the analytics model are “private” by default and out-of-the-box they’re not indexed by Solr. Hence if you want to be able to search for a contact by name or email you need to change the configuration so these fields are added to the index. (Of course that means you now have an extra GDPR-related headache if the user wants to be forgotten, but that’s a topic for another day)

This is a scenario that xConnect anticipated, and there’s [a helpful documentation page to explain how to do it](https://doc.sitecore.net/developers/xp/xconnect/xconnect-search-indexer/enable-pii-indexing.html). All you have to do is open a config file, edit a line, and rebuild your index. Sounds simple, right?

But there’s a trap for the unwary here, [which I fell into head first…](https://media.giphy.com/media/ZVqIU1UUkk57q/giphy.gif) The docs mention two paths to the config file you need to change:

[![](https://jermdavis.files.wordpress.com/2018/07/indexingconfig.png?w=800&h=381)](https://jermdavis.files.wordpress.com/2018/07/indexingconfig.png)

The phrasing of the docs is important, and I missed the significance when I read it originally. Where it says “`c:\path\to\indexer\App_data\...`” that does not actually mean your install’s equivalent of the “config” folder under “`c:\inetpub\wwwroot\yoursite.xConnect\App_data\...`“. That folder exists, and my mind whent into autopilot when I saw it, because the config file in question is there too:

[![](https://jermdavis.files.wordpress.com/2018/07/wronglocation.png?w=800)](https://jermdavis.files.wordpress.com/2018/07/wronglocation.png)

I spent some time editing this one, and getting increasingly confused about why my changes were having no effect, until the ever-helpful [Martina Welander](https://twitter.com/mhwelander) put on her [psychic debugging hat](https://vignette.wikia.nocookie.net/bttf/images/7/7c/Doc-mindreader.jpg/revision/latest?cb=20080916000813) and pointed out that it’s actually the second location described for this file that’s the important one.

While the exact paths may vary in your install, you need to change the one that’s under the “ **`App_Data\jobs\continuous`** ” folder in your xConnect website folder.

Once you do that it’ll all work…
Ajax Search Box in PHP, MySQL and JQuery.
Tags: php, ajax, searchbox, webdev
Published: 2018-07-09 05:13:38

---
title: Ajax Search Box in PHP, MySQL and JQuery.
published: true
description: 
tags: #php #ajax #searchBox #webdev
---

# Ajax Search Box in PHP, MySQL and JQuery

Post Link : https://www.skptricks.com/2017/11/ajax-search-box-in-php-mysql-and-jquery.html


In this tutorial we are going to build AJAX search box using PHP. Now a days every website has integrated this kind of search feature. This search box populate the results in real time from MySQL database based on entered text in search box.

This Search box of HTML is completely controlled by JQuery function. On key-up event of input field (e.g. Search Box), This JQuery function send the request to "controller.php" page via. AJAX technique. This request find the best match from MySQL database and display the result in "search.php" page.

<a href="https://www.skptricks.com/2017/11/ajax-search-box-in-php-mysql-and-jquery.html"> Ajax Search Box in PHP, MySQL and JQuery </a>

<img src="https://3.bp.blogspot.com/--Ah2DJf733k/WgaEnVtUezI/AAAAAAAABBA/23V9uC3mfoY_yFbFcADr3REflM60P_uqACLcBGAs/s400/output_3R0ERu.gif" />
Is it normal that devs get stuck to figure out a solution while using external libraries?
Tags: discuss, productivity, advice
Published: 2018-07-09 05:07:41

---
title: Is it normal that devs get stuck to figure out a solution while using external libraries?
published: true
description: 
tags: discuss, productivity, advice
---

I had this lingering doubt from so long. 

Whenever a problem comes up while developing, I could design a solution or at least a starting point to solve the problem. Many times I get stuck in figuring out a solution with a library which we use in the project.

The whole thing of figuring out a solution with a library takes much more time than using my solution. The cons of using  my solution is, I had to write a whole method for getting the solution for which the libraries already have an existing functionality. 

I wonder many times does it mean I am slow at adopting the solution using an external library. This affects my pridcutivity a lot as I tend to get stuck on trivial issues for hours.

Please share your advice and experiences regarding this.
Interactive Katacoda Course for Heptio Ark
Tags: showdev, heptio, kubernetes, katacoda
Published: 2018-07-09 04:29:32

---
title: Interactive Katacoda Course for Heptio Ark
published: true
description: Learn how to manage disaster recovery for your Kubernetes cluster resources and persistent volumes
tags: showdev, heptio, kubernetes, katacoda
---

They say the best way to learn is to teach... So, I built an interactive Katacoda course for [Heptio Ark](https://github.com/heptio/ark).

Heptio Ark helps you backup and restore Kubernetes resources (e.g. applications, services) and persistent volumes.

Hope you enjoy the course!

https://www.katacoda.com/petermbenjamin/scenarios/heptio-ark
Better HTTP Polling with RxJS 5
Tags: javascript, reactiveprogramming, rxjs, webdev
Published: 2018-07-09 14:24:51

---
title: Better HTTP Polling with RxJS 5
published: true
tags: javascript, reactive programming, rxjs, webdev
canonical_url: https://codewithhugo.com/better-http-polling-with-rxjs-5/
---
Here is the implementation for a function that takes a Promise-based fetch function and a function that decides if a response has been successful (from a polling perspective) and polls the fetch function until the `isSuccess` function returns `true`:

```js
import { Observable, from, interval } from 'rxjs';
import { switchMap, takeWhile } from 'rxjs/operators';

const POLLING_INTERVAL = 600; // in milliseconds

function poll(fetchFn, isSuccessFn, pollInterval = POLLING_INTERVAL) {
  return interval(POLLING_INTERVAL).pipe(
      switchMap(() => from(fetchFn())),
      takeWhile((response) => isSuccessFn(response))
  );
}
```

  
The above leverages RxJS 5 and uses its new `pipe` syntax. If we walk through it:

1. create an Observable that emits every 600ms (by default) using `interval`
2. pipe that into `switchMap`, this operator essentially replaces the Observable’s value to another one, in this instance, replace the emitted interval count with an Observable created from the Promise returned by `fetchFn`
3. `takeWhile` the `isSuccessFn` returns true

To go into a bit more detail about `switchMap`, it’s a bit like doing this in a Promise chain:

```js
const promiseChain = Promise
  .resolve()
  .then(
    () => someFunctionThatReturnsAPromise()
  );
```

Anything that is now `.then`-ed onto `promiseChain` would now have the output of `someFunctionThatReturnsAPromise` passed in.

Back to the poll function, this is an example of how it would be used:

```js
import axios from 'axios;
poll(
  axios.get('https://changing-status.com/status'),
  (response) => response.data.status === 'success'
).subscribe((response) => {
  // response is HTTP response
  console.log(response.data.status);
});
```

> This was sent out on the [Code with Hugo newsletter](https://buttondown.email/hugo) last Monday.
> [Subscribe](https://buttondown.email/hugo) to get the latest posts right in your inbox (before anyone else).

The advantage of this Observable-based approach is that we have access to each HTTP response. That’s nice if we need to display the status somewhere.
Observables are also pretty composable, so to turn what we’ve got into something that just emits once when the poll completes we can also do that:

```js
import { skipWhile } from 'rxjs/operators';
const emitOnPollComplete = poll(
  axios.get('https://changing-status.com/status'),
  (response) => response.data.status === 'success'
).pipe(
  skipWhile((response) => response.data.status !== 'success')
).subscribe((response) => {
  console.log('Poll complete');
});
```

Cover photo by <a href="https://unsplash.com/@jpvalery?utm_medium=referral&amp;utm_campaign=photographer-credit&amp;utm_content=creditBadge" target="_blank" rel="noopener noreferrer" title="Download free do whatever you want high-resolution photos from Jp Valery">Jp Valery</a>
SlackはPHPっぽいもので作られているらしい
Tags: php, slack, hack, hhvm
Published: 2018-07-08 22:16:31

---
title: SlackはPHPっぽいもので作られているらしい
published: true
description: 現在業務用としても一般のコミュニティとしてもよく使われているチャットサービスのSlack。サーバーサイドはどのプログラミング言語で作られていると思いますか？実はPHPで作られています。
tags: php,slack,hack,hhvm
canonical_url: https://crieit.net/posts/Slack-PHP
---

現在業務用としても一般のコミュニティとしてもよく使われているチャットサービスのSlack。サーバーサイドはどのプログラミング言語で作られていると思いますか？

実はPHPで作られています。

詳しくはSlackのチーフアーキテクト職の方が書かれた下記の記事に書かれています。(2016年に書かれたものです）

[Taking PHP Seriously – Several People Are Coding](https://slack.engineering/taking-php-seriously-cf7a60065329)

ちょっと驚きですよね。今の時代だと日本だとスタートアップ界隈ではRailsが人気ですし、そもそもチャットシステムを作るのであればWebSocketを使うためにGo, Elixir, Node.jsで実装するのが普通のような気がします。

## なぜPHPを選んだのか？

まず最初に語られているのは、大勢の人がPHPに抱く気持ちとしては悪いイメージなのではないか、ということです。日本でもよく聞く印象です。しかし、Facebook, Wikipedia, Wordpress, Etsy, Baidu, Box, そしてSlackがPHPを使って成功しています。更にSlack社内ではPHPによる新しいプロジェクトもスタートしたとのことです。

他の言語を使っていればもっと成功していたのか？　と言われると決してそうではありません。PHPには多くの欠陥がありますが、それを十分に補えるような良い所も多くあるということです。

## PHPの良い所とは

### 独立したステート

PHPはリクエスト毎に完全に挙動やステートが独立しています。あるリクエストがその次のリクエストに影響を与える、ということはありません。（開発者が生み出してしまうDB等との連携によって生まれる不具合等の話ではなく、言語自体の話になると思います）

他の言語の様に他のリクエストに影響を与えてしまう可能性がある場合、DB、memcache、ファイルシステム等を混乱させる可能性が有ります。そのためリクエスト毎にヒープを分離してくれていることがプログラム上の問題の削減に役立っています。

例えばNodeとかだと下記のようにすればリクエスト毎に出力を変えてしまう事が容易ですよね。しかも内部の値ですのでしっかりとログを出力などしないと問題が出た時の原因の把握すら困難です。

```javascript
var globalValue = 1;

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end(globalValue++);
}).listen(8000, '127.0.0.1');
```

自分で作ったプログラムならまだしも、何かのライブラリの不具合だった場合、しかもサービスの本番環境に著しい問題が出てしまった場合など、確かに考えるだけでも恐ろしいですね…。

### 並行性

PHPにおいて、各リクエストは単一のPHPスレッドで実行されます。この制限はデメリットのように見えますが、Webサーバーのコンテキストでいい感じに処理してくれるため、他の言語に比べエラーに対しての復元力が強いです。

たしかにWebサーバー自体が落ちなければ絶対動きますしね。

### プログラマのワークフローが高速かつ効率的

プログラムを修正したらブラウザ上でリロードすればすぐ確認できます。

たしかに他の言語の場合、修正したファイルによってはサーバーリロードしたりしないといけなかったりしますよね。あとDockerイメージ内にgemをインストールしていると、Gemfile書き換えた場合にイメージをビルドし直さないとエラーで動かなくなったりしますよね。非常に面倒…。

## PHPの問題点とそれについての考え方

PHP自体はよく言われているように色々と問題点があります。元の記事にも色々書かれていますが、日本でもよく見かける話なのでとりあえず割愛します。

これは他の言語でも同様かもしれませんが、大切なことは問題点をしっかり理解して抑えながら良い部分を活かしていくことです。

## Hack、HHVMの存在

HackというのはFacebookが開発した、PHPを拡張したPHPと同じ構文を使ったプログラミング言語です。HHVMはPHPやHackを動作させる仮想マシンです。Hackは下記のような特徴があります。

* PHPで書かれたスクリプトはHackでも動く
* 型を使うことができる（一部は現在PHPにも取り入れられている）
* 非同期処理（async, await）などもできる

つまり、PHPのプロジェクトは必要に応じてHack & HHVMに移行することができる、というメリットがあるということです。

FacebookではPHPインタープリタより11.6倍、Wikipediaは6倍のCPU効率の改善を報告しているとのことです。Slackでは既にWeb環境をHHVMに移行し、レイテンシを大幅に改善しているとのことです。

[PHPカンファレンス関西 2017 に行ってきたぞ - 大学生からの Web 開発](http://karur4n.hatenablog.com/entry/2017/07/17/211508)

にも書かれていますが、恐らくどんどん必要に応じてHackにも移行しているようです。

（ちなみにHack, HHVMは実際に僕は使ったことがないので、どれだけ良いものか、今後も期待できるか、というのは不明です）

## まとめ

PHPの利点はPHPの欠点を超える価値がある、という結論のようです。

> 翻訳しつつじっくり読んでいってるけど面白い。なんかPHP以外使うの怖くなってきた。

僕が翻訳中にツイートした内容ですが、じっくり読んでいるとほんとに肌寒くなってきます。とはいえ他の言語も好きなので今後も色々使っていくと思いますが。

あとWebSocketについての話がなかったので気になるところです。

※当記事は元記事の筆者の許可を得て翻訳を行い取り入れています