teleren/devto huggingface dataset:
What would be the beast approach to analyze video content?
Tags: discuss, machinelearning
Published: 2017-11-17 13:19:14

---
title: What would be the beast approach to analyze video content?
published: true
description: Wanna start personal project to detect humans in video data
tags: #discussion #machinelearning
---

Hi All!

I would like to learn more about Machine Learning and video analyzis - what would be the best approach to do it? At first I would like just to cut out videos when a human is detected and later on maybe try to identify them.

Seeking for advice for where to start!
5 Tips for interviewers
Tags: interview, beginners
Published: 2017-11-17 12:50:00

---
title: 5 Tips for interviewers
published: true
description: 
tags: interviews, beginners
---

Interviewing someone for your company is not an easy job. Sometimes you have to do it without any training. If you're lucky, in the first few interviews you will join someone experienced who will lead the interview. If you take your job seriously, you might want to read some tips and guidelines on how to conduct a great interview.
After conducting hundreds of interviews, for various positions (Researchers, Developers, Team leaders and QA engineers), I collected the 5 most important tips, in my opinion, which might help you for any kind of interview.

#1. Ask "Can you give me an example?"
When the interviewee is saying something like "I was in charge of testing feature X", or "I developed many features", always ask him to give concrete examples. You will be amazed how people can talk with extreme confidence about things they did in a very general way, but once you ask them to give examples - you'll find out they don't really understand what they did.
#2. Ask "What was your role in that project"? 
This is quite similar to the previous tip. Candidates sometimes describe really big projects, which seem impressive. In those cases, it's important to check what they actually did on that project. More often than not, you'll find out that the role the candidate had in the project is smaller than it seemed at first.
#3. Try to make the candidate talk while he is thinking
The number 1 tip that I give to candidates is to always talk while you think. In this way, the interviewer can understand better your thinking processes and might help you if you are not in the correct direction. From the interviewer perspective, many candidates don't follow that tip, and it is hard to know what they think. Simply ask them to talk and explain what they are thinking about. Even if they have ideas that they think are "bad", ask them to explain them. Sometimes they hit the correct solution to the question, but just don't say it to you since they think that there's some mistake in it. As an interviewer, you want to know that they found the solution, even if they didn't think it is correct.
#4. Ask "Can you explain me an interesting bug that you encountered?"
This is my favorite interview question. It gives you an opportunity to see how good the candidate can explain something technical, and how deep he understands technical issues. It also helps you to see if the candidate can identify what was important and what wasn't.
#5. Don't have small-talks with your co-interviewer
The interviewee is under a lot of stress and is trying to think. Yes, you might be bored, and yes, it is much more interesting to talk about what to eat for lunch than look at someone you don't know trying to solve a question you know. But you should respect the candidate, and you shouldn't disturb him

What do you think about the tips in this article? Do you have any other tips for someone who begins to interview? Let me know if the article was useful to someone.
CodeCraft – Architecting Teams
Tags: code, leadership, agile, codecraft
Published: 2018-03-29 20:07:18

---
title: CodeCraft – Architecting Teams
published: true 
tags: code,leadership,agile,codecraft
series: codecraftconf
canonical_url: https://craignicol.wordpress.com/2017/11/17/codecraft-architecting-teams/
---

Thanks to everyone who came to the CodeCraft guided conversation yesterday. If you want to reconsider any of the questions yourself, you’ll find them below.

* * *

As a general point, I’m thinking of a team as “the people you work regularly with, usually daily”.

1. How do you keep track of your team and the company goals?
2. How does your team manage risk to and changes to those goals?
3. What makes a great team?
4. What would you change about your current team?
5. What makes you feel unsafe in a team?
6. How well would your current team survive a conflict?
7. Should teams change when projects change?
8. How does the culture of a team change as it grows?
9. What kinds of diversity should we seek in the teams we work in?
10. Should we recruit to enforce the current culture or diversify it?
11. What one thing can a leader do to make a team great?
12. Are effective teams a democracy or a dictatorship?

[codecraftuk-sessions/architecting-teams.md at master · craignicol/codecraftuk-sessions · GitHub](https://github.com/craignicol/codecraftuk-sessions/blob/master/architecting-teams.md)
Do you use security key?
Tags: security, discuss, fido
Published: 2017-11-17 11:31:25

---
title: Do you use security key?
published: true
description: I want know how much do people use FIDO device in world.
tags: security, discussion, FIDO
---

You know FIDO? and know U2F?
You use those?

About how much do people use the security hardware keys in the world?
I couldn't see someone use those device in my familiar. 🤔
Is it because of Japan?

Do you think that FIDO devices are popular?
I want know how much do people use FIDO device in world.

![Security Key](https://thepracticaldev.s3.amazonaws.com/i/j9rq1qz0fhsmalv46vl4.png)

Thanks.
Security Sprint: week 1 - My project and first studies
Tags: security, sniffing, infosec, project
Published: 2017-11-17 10:54:59

---
title: "Security Sprint: week 1 - My project and first studies"
published: true
description: I'm doing a sprint in security research and I'm going to keep a public journal of it.
tags: security, sniffing, infosec, project
---

I'm very interested in **cybersecurity** and I'm studying it on my own alongside computer engineering. In order to improve this research, I decided to organize an intense _studying sprint_ in cybersec, and jumping into "semi professional" projects, using  Zerodium and similar. Before presenting a formal vulnerability to these pages, I want to prepare myself. I'm used to work with Network System Monitoring and similar, but I want to reach a wider action zone. 

This week I started looking for resources, books, pages and inspiration. I read a couple of books, but they seemed quite for begginners (as they firstly speak about programming in C and such, or not adecuate for my projects as they use Windows, which I totally discarted. Also I'd like to avoid Kali (it's a nice tool but I rather make my own curated apps list for debian) that fits with my goals. For now my tools are basic privacy tools (such as TOR, GPG, openssl and similar), Bro for network monitoring, Metasploit, ghex, and linux basics, also I'm into investigating DEFT, Lorg, LiME, Cuckoo (and Malwr) ...

Through next weeks I'll be publishing my investigation and tutorials about these tools. I'm very excited with this project and I hope you guys enjoy it too. I will also create a repository if needed with scripts and code. 

Wish me luck!
Use reaction emoji to trigger Google Translation
Tags: slack, language, japanese
Published: 2017-11-17 10:14:09

---
title: Use reaction emoji to trigger Google Translation
published: true
description: 
tags: slack, language, japanese
---

tl;dr

![](https://thepracticaldev.s3.amazonaws.com/i/1sd4x4wtc74cu5q849ij.gif)


---

APIs:
https://api.slack.com/events/reaction_added
https://cloud.google.com/translate/docs/

Sample code:
https://github.com/masakichi/doubanista_slack/blob/master/app/rtm.py
Hayatı Kodla
Tags: php, python, node, web
Published: 2017-11-17 09:14:57

---
title: Hayatı Kodla
published: True
description: Hello Words
tags: php,python,nodejs,web
---
<img src="https://thepracticaldev.s3.amazonaws.com/i/qy4q8ogsh1ul4x0nkxe2.gif">
My approach to teach programming
Tags: learning
Published: 2017-11-17 09:09:44

---
title: My approach to teach programming
published: true
description: Learning programming test driven
tags: learning
---

Recently I got a new responsibility at my work place. I am now officially responsible for the training of our apprentice and intern. 

In case of the apprentice there is a lot of stuff he has to learn because he has little to no programming experience when he started. This is perfectly fine because he got the job so he can learn. 

I came up with a plan, which from my point of view is somewhat unconventional but i hope it'll work out. 

In the first few weeks he learned about html/css. Basic stuff because we do a lot of web development and this is a field where he can quickly contribute.

To get him started learning programming i created him a small project. Just a README and some configuration files for the test framework we use. In the README there are some programming challenges. And i hope these challenges are not overkill to begin with. But i do really want to manifest the habit of writing test directly from the start. (I have to add that he had some time to familiarize himself with the syntax of the language we use)

The first one is pretty easy. Run the test suite and fix the failed test. There is a little program that calculates the sum of two numbers and the difference. The subtraction method has just mixed up the parameters in the wrong order. This is just to get to know the basic on how to run the test and how to make 'em green again ;) After that he should add multiply and division methods to the "calculator" and write test cases for that as well. 

The next challenge is to write a program that calculates values of the fibonacci sequence. He should use a for loop in the algorithm and write some test cases to verify that the algorithms work. After that he should rewrite the for loop for a while loop and try to not touch the test cases. After that he should rewrite the while loop for a recursive solution. And also trying not to touch the test cases. 

The third challenge is the roman literal challenge. Convert a roman number to an integer. And write the test cases as well. 

I am planning to add more challenges even some for functional and acceptance testing over time. 

What do you think? Is this doable? Do you have some ideas for challenges? What would you change?
Print to console with Chez Scheme and Windows console API.
Tags: scheme
Published: 2017-11-17 09:00:31

---
title: Print to console with Chez Scheme and Windows console API.
published: true
description: 
tags: scheme
---

On Windows, when print character to console via standard output, the character is interpret in current codepage. If encoding of a inner character string is different with current codepage, [mojibake](https://en.wikipedia.org/wiki/Mojibake) will happen. Encoding conversion is necessary.

And, it is impossible to print character that be not contained current codepage via standard output.

For print all unicode characters, we can use console API rather than standard output.

I made console output library with [Chez Scheme's foreign interface](https://cisco.github.io/ChezScheme/csug9.4/foreign.html) and console API on Windows.

```scheme
(library (console-port)
  (export open-console-output-port)
  (import (chezscheme))

  (define dummy (begin (load-shared-object "kernel32.dll") 1))

  (define-ftype handle void*)

  (define open-existing 3)

  (define create-file
    (foreign-procedure __stdcall "CreateFileW"
      (wstring unsigned-32 unsigned-32 void* unsigned-32 unsigned-32 void*)
      void*))

  (define file-share-write 2)

  (define generic-write #x40000000)
  
  (define (get-active-console-buffer)
    (create-file "CONOUT$" generic-write file-share-write 0 open-existing 0 0))

  (define write-console
    (foreign-procedure __stdcall "WriteConsoleW"
      (void* wstring unsigned-32 u32* void*)
      boolean))

  (define (open-console-output-port)
    (let ((output-handle (get-active-console-buffer))
          (vsize (make-bytevector 4)))
      (define (write-to-console string start count)
        (let ((str (substring string start (+ start count))))
          (write-console output-handle str count vsize 0)
          count))
      (make-custom-textual-output-port "console" write-to-console #f #f #f)))
  )
```

```scheme
(import (rnrs)
        (console-port))

(let ((port (open-console-output-port)))
  (display "あいうえお\nかきくけこ\n" port)
  (display "♘♞♙♕♟♝♜♗♛♚♖♔" port)
  (flush-output-port port)) ;; Do not forget the flash!!
```

My windows computer is setted [CP932](https://en.wikipedia.org/wiki/Code_page_932_(Microsoft_Windows)). CP932 do not contain chess characters. But, it is printable by console API.

![Unicode character printable](https://thepracticaldev.s3.amazonaws.com/i/9w1k6qeestjqepvzs7il.png)
How to style footer semantically correct?
Tags: semantics, footer, discuss
Published: 2017-11-17 07:40:18

---
title: How to style footer semantically correct?
published: true
description: My concern about how to include footer into document outline.
tags: semantics, footer, discuss
---

I'm concerned how should I style my footer so that it is included into semantic outline of my page.

Let's assume, that my page is like this (don't know how to post html tags, that's why removed '<' & '>'):

<pre>
body

    header.../header
    main.../main

    footer
        h2 Main footer of the page /h2
        section
          h3 About this site /h3
        /section
        section
          h3 Contact form /h3
        /section
        nav
          h3 Footer navigation /h3
        /nav
    /footer

/body
</pre>

If I outline this code (<a href="https://gsnedders.html5.org/outliner/">here</a>), I see:

<pre>

1. Header
2. Main content of the page
2.1. Main footer of the page
2.2. About this site
2.3. Contact form
2.4. Footer navigation

</pre>

This is not what I intended to have. In the above outline, 'footer' is a subsection of 'main' section and footer's subsections are also just subsections of the 'main' section on the same level with 'footer'.

I would like have 'footer' on the same level as 'main' section and footer's subsections as its subsections. To see in the outline something like this:

<pre>

1. Header
2. Main content of the page
3. Main footer of the page
3.1. About this site
3.2. Contact form
3.3. Footer navigation

</pre>

Then I read, that " 'header' and 'footer' are not sectioning content like 'section', rather, they exist to semantically mark up parts of a section.". That gave me a hint, that everything inside of my 'footer' tag is not considered a separate section in terms of outlining. So, I wrapped my 'footer' into 'section', which did the trick and my outline improved:

<pre>
body

    header.../header
    main.../main
    
    section
        footer
            h2 Main footer of the page /h2
            section
              h3 About this site /h3
            /section
            section
              h3 Contact form /h3
            /section
            nav
              h3 Footer navigation /h3
            /nav
          /footer
    /section

/body
</pre>

Which led to this outline:

<pre>

1. Header
2. Main content of the page
3. Main footer of the page
3.1. About this site
3.2. Contact form
3.3. Footer navigation

</pre>

My question is still the same: is this approach correct - to wrap 'footer' into meaningless 'section'? Please share your opinions or experience.
Lazy FizzBuzz (Python ver.)
Tags: python
Published: 2017-11-17 06:45:27

---
title: Lazy FizzBuzz (Python ver.)
published: true
description: 
tags: python
---


Recently I wrote [a post](https://dev.to/quanon/lazy-fizzbuzz-7gd) about FizzBuzz with Ruby. Now I want to do that with Python.

In the previous post, I use [Enumerator::Lazy](https://docs.ruby-lang.org/ja/latest/class/Enumerator=3a=3aLazy.html) for laziness (which means  lazy evaluation for list) with Ruby, and I use [generator](https://docs.python.org/3/tutorial/classes.html#generators) with Python.


```fizzbuzz.py
import itertools  # what a great tools 😊


class FizzBuzzRule(object):
  @classmethod
  def say(cls, word):
    return cls(word)

  def __init__(self, word):
    self.word = word

  def for_multiples_of(self, number):
    return itertools.cycle((*itertools.repeat('', number - 1), self.word))


numbers = itertools.count(1)
fizzes = FizzBuzzRule.say('Fizz').for_multiples_of(3)
buzzes = FizzBuzzRule.say('Buzz').for_multiples_of(5)

fizzbuzz_generator = (f'{fizz}{buzz}' or n
                      for n, fizz, buzz
                      in zip(numbers, fizzes, buzzes))


if __name__ == '__main__':
  for word in itertools.islice(fizzbuzz_generator, 30):
    print(word)
```
```shell-session
$ python fizzbuzz.py
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz
```
Faster Test Suites, Less Code, Embracing Writing Addons.
Tags: git, opensource, ember, testing
Published: 2017-11-17 06:06:38

---
title: Faster Test Suites, Less Code, Embracing Writing Addons.
description: Less code, a faster test suite, and a tighter focus on core functionality can be achieved through embracing open source.
published: true
tags: Git, Open Source, Ember, Testing
canonical_url: https://wrotenwrites.com/separation-of-concerns-addon/
---

Less code, a faster test suite, and a tighter focus on core functionality can be achieved through embracing open source. [Ember addons](https://www.emberaddons.com/) are on point in delivering such a promise as I've learned while open sourcing a widely used [component at work](https://github.com/q2ebanking/ember-select-light).

The key is a separation of concerns. Modifying code rebuilds the app and, before shipping, all tests must be verified again regardless of what the modifcations touch. Moving chunks of an app, such as a component, to an open source addon grants all the benefits that come with code isolation. Admittedly similar can be achieved with careful abstraction and no open source, but I feel it's the right direction for myself and likely others to aim for.

**Less code** a developer must retain in their heads the easier they may reason about the way an app flows. A well tested and well documented addon promises a level of functionality not often afforded by yet another file to be debugged within the app. While addon code eventually gets compiled into the final output, I've found the act of isolating code into an addon forces me to code more concisely and clearly for public consumption. Without the goal of open sourcing the addon I may cut corners thinking "it's just for me, no big deal" which can do more harm than good longterm.

**Faster test suite** runs, without the cost of coverage, comes isolating tests to separate addon projects. This goes both ways in fact. Tests get removed from the original app and an addon will have just the tests to cover itself resulting in a quick build and test time. Isolated testing concerns can lead to higher relative code coverage and a quicker feedback loop for [test-driven development](https://www.youtube.com/watch?v=2b1vcg_XSR8).

**Tighter focus on core functionality** arises from the need to isolate an addon's concern to a concise idea. Assigning a name and writing documentation for an addon is a healthy exercise in producing a highly intentional and hopefully valuable addon.

After becoming no longer afraid of the world of open source I've learned to embrace the advantages that come from creating a wide range of projects. Addons are a new and exciting world for me and hopefully for you as well.
Using WebAssembly for a NodeJS Native Addon
Tags: javascript, webassembly, node, zopfli
Published: 2017-11-17 05:36:28

---
title: Using WebAssembly for a NodeJS Native Addon
published: true
description: 
tags: javascript, webassembly, nodejs, zopfli
---

Recently I have released an npm [@gfx/zopfli](https://www.npmjs.com/package/@gfx/zopfli), which is a JavaScript binding to [google/zopfli](https://github.com/google/zopfli), as a drop-in replacement to [node-zopfli](https://www.npmjs.com/package/node-zopfli).

I have a story for this package: it is built with Emscripten into WebAssembly.

https://github.com/gfx/universal-zopfli-js

WebAssembly is a portable executable format for the web browsers, but it is not only for the web but usable for nodejs native addons. That is, the package includes pre-built executable binary in wasm. No compiler is required to install it. No node-pre-gyp magic is required (in fact node-zopfli has problems with node-pre-gyp [pierreinglebert/node-zopfli#87](https://github.com/pierreinglebert/node-zopfli/issues/87)). Even Windows users can use it just by `npm install @gfx/zofpli` (or `yarnpkg add @gfx/zopfli`).

You might be worried about wasm performance, but I think it is already production-ready, although it is slower than native code.

Here is a benchmark result in the repo on NodejS 8.9.1 (see [benchmark/random-bytes.js](https://github.com/gfx/universal-zopfli-js/blob/master/benchmark/random-bytes.js) for the code):

> #### payload size: 1
> universal-zopfli x 106 ops/sec ±0.79% (80 runs sampled)
> node-zopfli x 201 ops/sec ±1.99% (82 runs sampled)
>
> #### payload size: 1024
> universal-zopfli x 1.37 ops/sec ±12.99% (11 runs sampled)
> node-zopfli x 4.62 ops/sec ±3.34% (27 runs sampled)
>
> #### payload size: 1038336
> universal-zopfli x 0.26 ops/sec ±6.91% (6 runs sampled)
> node-zopfli x 0.39 ops/sec ±1.35% (6 runs sampled)

The speed (ops/sec) of universal-zopfli (i.e. in wasm) is about 30% - 70% of node-zopfli (i.e. in native code). It is good enough for production if you use `@gfx/zopfli` as a Zlib alternative in [compression-webpack-plugin](https://github.com/webpack-contrib/compression-webpack-plugin). And fortunately, the current state of WebAssembly implementation in NodeJS/V8 is just an MVP! It should be getting better in performance.

Development of nodejs native addon with Emscripten is difficult for now, but I believe most of NodeJS native addons which do not use systemcalls, including nodejs standard libraries such as zlib, can be replaced with wasm because of its portability.
プロダクトマネジメントトライアングル
Published: 2017-11-17 05:27:10

---
title: プロダクトマネジメントトライアングル
published: true
description: 
tags: 
---

新しいプロダクトを生み出すためのミーティングで、自分がプロダクト、サービスを開発、維持運営するには最低３つの役割が必要だ、という話をした。

> 社内に説明する人
> 社外からフィードバックもらってくる人
> コーディングを監視する人

すると翌日、以下のような記事がホットになった。

[プロダクトマネジメントトライアングルと各社の PM の職責と JD](https://medium.com/@tumada/product-management-triangle-job-description-d18d1855ef65)

![プロダクトマネジメントトライアングル](https://thepracticaldev.s3.amazonaws.com/i/ilhbqywucjrubn3zdmpr.png)


先見性あるじゃんと思いつつ、この図を自分なりに解釈してみる。

まず、単語に言い換えてみる。

- 社内に説明する人　→　ビジネス
- 社外からフィードバックもらってくる人　→　顧客
- コーディングを監視する人　→　開発チーム

そして、各３項目を結びつける間の業務を入れ込む。外側から内側に向けて優先順位が高くなっている。

- 開発と顧客の間
  - UI/UXデザイン
  - 運用サポート
  - コミュニティマネージャ
- 開発とビジネスの間
  - インフラ・セキュリティ
  - 開発リソースマネジメント
  - システムアーキテクト
- 顧客とビジネスの間
  - ビジネスロードマップ
  - ビジネスロジカルマネジメント
  - PRマネジメント

![シン・プロダクトマネジメントトライアングル](https://thepracticaldev.s3.amazonaws.com/i/p6ga0wcx18i0484k38ak.png)

考案してみてわかったがこの図の文言はそのプロダクトや担当するメンバーによっても変わってくる。

空のトライアングルを下記に置いたので余白に役割を入れてみよう！

https://gist.github.com/fk2000/0d3ece64b80d2a83b676191e2a3c8eb3
Can you hire an Japanese engineer with poor English?
Tags: job, japanese, php, discuss
Published: 2017-11-17 04:24:37

---
title: Can you hire an Japanese engineer with poor English?
published: true
description: 
tags: #job, #japanese, #php, discuss
---

Many Japanese are poor at English.
I am one of them.
For example, do you think Japanese engineers who are not good at English will succeed if they are job-seeking in Silicon Valley?