Skip to content

Instantly share code, notes, and snippets.

View Meir017's full-sized avatar
🎯
Focusing

Meir Blachman Meir017

🎯
Focusing
View GitHub Profile
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CodeFixes;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using System.Threading;
using System.Linq;
@Meir017
Meir017 / npm-links.json
Created March 11, 2018 17:14
npm-links.json
@Meir017
Meir017 / find-dups.js
Created March 16, 2018 07:00
find-duplicates in a node_module directory
const glob = require("glob");
const fs = require('fs');
const mainDir = 'angular-cli-demo';
const dups = {};
const packageJsons = glob.sync(`${mainDir}/node_modules/**/package.json`);
for (const packageJson of packageJsons) {
try {
const json = require(packageJson);
if(!json.name || !json.version) {
@Meir017
Meir017 / cdn-data.md
Last active March 23, 2018 06:59
offline cdn
@Meir017
Meir017 / benchmark.md
Last active April 24, 2018 20:40
C# return tasks

Program.cs

using BenchmarkDotNet.Running;

namespace Benchmarks
{
    class Program
    {
        static void Main()
        {
@Meir017
Meir017 / promise-queue.js
Last active April 26, 2018 19:18
nodejs promise queue
class PromiseQueue {
constructor(tasks = []) {
this.task = Promise.resolve();
for (const { func, args } of tasks) {
this.run(func, ...args);
}
}
run(func, ...args) {
return new Promise((resolve, reject) => {
@Meir017
Meir017 / puppeteer.logs
Created May 28, 2018 18:26
puppeteer sharp debug logs
PuppeteerSharp.Connection:Trace: Send ► 1 Method Target.setDiscoverTargets Params { discover = True }
PuppeteerSharp.Connection:Trace: ◀ Receive {"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"16F8C8D2425EDAD67F349F4F844618FA","type":"page","title":"","url":"about:blank","attached":false}}}
PuppeteerSharp.Connection:Trace: ◀ Receive {"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"1f75e057-6e9a-4456-aff8-735039c07889","type":"browser","title":"","url":"","attached":false}}}
PuppeteerSharp.Connection:Trace: ◀ Receive {"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"8c58be72-6ec7-4363-866f-166d44212a72","type":"browser","title":"","url":"","attached":true}}}
PuppeteerSharp.Connection:Trace: ◀ Receive {"id":1,"result":{}}
PuppeteerSharp.Connection:Trace: Send ► 2 Method Target.attachToTarget Params { targetId = 16F8C8D2425EDAD67F349F4F844618FA }
PuppeteerSharp.Connection:Trace: ◀ Receive {"method":"Target.targetInfoChanged","params":{"targetInfo":{"tar
@Meir017
Meir017 / timespan.ts
Last active October 3, 2018 19:20
timespan typescript
type TimeSpanCtorArguments = number
| [number, number, number]
| [number, number, number, number]
| [number, number, number, number, number];
export class TimeSpan {
public static readonly ticksPerMillisecond = 10000;
private static readonly millisecondsPerTick = 1.0 / TimeSpan.ticksPerMillisecond;
public static readonly ticksPerSecond = TimeSpan.ticksPerMillisecond * 1000; // 10,000,000
private static readonly secondsPerTick = 1.0 / TimeSpan.ticksPerSecond; // 0.0000001
@Meir017
Meir017 / PuppeteerInterfaces.cs
Created April 15, 2019 17:30
PuppeteerInterfaces
interface IBrowser
{
string WebSocketEndpoint {get;}
Process Process {get;}
bool IgnoreHTTPSErrors {get;set;}
bool IsClosed
{get;}
BrowserContext DefaultContext {get;}
int DefaultWaitForTimeout {get;set;}= Puppeteer.DefaultTimeout;
Task<Page> NewPageAsync();