Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working from home

amay077 amay077

🏠
Working from home
View GitHub Profile
View nextint_tsuyotsuyo_koshikake.md

[募集終了]NextInt社 つよつよ人材 腰掛け雇用枠

参考ツイート

雇用条件

  • 月収30万円
  • 週3勤務
    • 残りの週2日については副業、勉強、大学院、転職活動等に充ててよい
    • 曜日はいい感じに調整、応相談
    • 土日祝日は休み、休日はちゃんと休め
@kekyo
kekyo / task.md
Last active Jul 8, 2019
Task.Runで非同期APIをシミュレートすべきかどうかの判断
View task.md

朝バタバタしてクリアじゃなかった... ちょっと間違ってましたこういうことです:

  • 多数同時並行するタスクがある場合
    • Windowsの場合はI/O完了ポートの「ブロックされたスレッドを検出するとワーカースレッドを世に放つ」機能があるので、同期APIがブロックしても、ワーカースレッド上限まではOK(ThreadPool.SetMaxThreadsの第二引数completionPortThreads)。
    • Windowsではない環境では必ず上記機能が使えるとは言えない(多分単純スレッドプール)ので、同期APIによるスレッドブロックが発生すると、同時並行動作数はそれ以上伸びない。これを避けたい場合、Task.Run を使わざるを得ない。
  • 多数同時並行したいタスクがない、GUIの場合
    • 同期APIでブロックすると、それがUIスレッドの場合はUIが固まってしまうので、それを避けたいなら Task.Run を使わざるを得ない。但し、継続処理がUIを操作する場合はUIスレッドにマーシャリングすることになり、そのコストはかなり高いことに注意(≒await後の処理でUI部品を操作する場合など)。
  • 多数同時並行したいタスクがない場合
    • 同期APIと非同期APIを比較すると、非同期APIのほうが余分なハンドリングを必要とするコストがあるので、この場合は同期APIをそのまま使うのがいい。

Taskを使うかValueTaskを使うかによる差については、本来はすべてをTaskを返す非同期APIとして定義したいが、ほとんどの場合同期的に完了してしまう(つまり一瞬で操作が完了する、待機する可能性が0ではないが殆ど待機しないというような)処理を、いつもTaskで管理するのはコストが高いので、代わりにValueTaskを使って初めから完了しているものはコストをほとんど0とするようにするという話です。

@yaraki
yaraki / ClockLiveData.kt
Last active Dec 21, 2019
This LiveData provides the time in hh:mm:ss format, updating the value every second
View ClockLiveData.kt
package io.github.yaraki.dependencyinjection
import android.arch.lifecycle.LiveData
import android.os.Handler
import android.os.Looper
import android.os.SystemClock
import android.text.format.DateFormat
import java.util.*
class ClockLiveData : LiveData<CharSequence>() {
View minimum-react.html
<div id=root />
<script type=module>
import React from 'https://dev.jspm.io/react@16'
import ReactDOM from 'https://dev.jspm.io/react-dom@16'
ReactDOM.render(
React.createElement('h1', null, 'hello'),
document.querySelector('#root')
)
</script>
@k-kagurazaka
k-kagurazaka / Main.kt
Last active Dec 20, 2017
RxCommand with double context extension pattern
View Main.kt
interface HasDisposables {
fun Disposable.autoDispose()
fun dispose()
companion object {
operator fun invoke(): HasDisposables = object : HasDisposables {
private val disposables = CompositeDisposable()
@voluntas
voluntas / working_time.rst
Last active Jun 24, 2021
時雨堂を支える固定時間労働 1 日 6 時間
View working_time.rst

時雨堂を支える固定時間労働 1 日 6 時間

更新:2021-06-24
作者:@voluntas
バージョン:2021.1
URL:https://voluntas.github.io/

概要

@shyouhei
shyouhei / gist:266178ffedab5767a5b69b972c76f88a
Created Sep 27, 2017
優秀なプログラマーになるためのコツ
View gist:266178ffedab5767a5b69b972c76f88a

優秀なプログラマーになるためのコツ

重要な順で

優秀なプログラマーになるには非常に長い時間がかかるという現実を直視すべし

優秀なプログラマーというのは寝ている間に異世界に召喚されて無双するのとはわけが違うんですよ。

自分の例で言うとプログラミングを始めた中学生の時から優秀なプログラマだったかって、そんなわけない。みんなヘッポコからスタートしているに決まってるわけです。以来二十余年、地道に生き恥を晒し続けてきた結果として、現在いちおう業界の末席を汚すところまで来ている。このプロセスから目を背けるべきではないです。優秀なプログラマーに生まれる人間なんかいない。優秀なプログラマーに「育つ」んだし、それには時間が必要。今日から無双したいと思うな。

@nuitsjp
nuitsjp / Enumに別名?をつけて表示する.cs
Last active Mar 13, 2020
Enumに別名?をつけて表示する
View Enumに別名?をつけて表示する.cs
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Gender.Female.ToJapanese());
Console.ReadLine();
}
}
public enum Gender
@smallgeek
smallgeek / BusyNotifierCommand.cs
Created Apr 28, 2017
2度押し防止コマンド試作
View BusyNotifierCommand.cs
using Reactive.Bindings.Notifiers;
using System;
using System.Threading.Tasks;
using System.Windows.Input;
namespace Reactive.Bindings
{
public class BusyNotifierCommand : BusyNotifierCommand<object>
{
public BusyNotifierCommand(Func<Task> execute)
@azyobuzin
azyobuzin / Program.cs
Created Feb 20, 2017
Xamarin の base メソッドを呼ばなければいけない/呼んではいけない奴を抽出
View Program.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Linq;
using Mono.Cecil;
using Mono.Cecil.Cil;
using Mono.Cecil.Rocks;