People often ask me how to find F# jobs. I don't have any special connections to companies using F#, and I don't have any special tricks either. I wish I did!
So, given that, here's my take on F# jobs.
For job hunting my suggestions are:
| function equal<Type, Key extends keyof Type>(propertyName: Key, value: Type[Key]) { | |
| return (item: Type) => item[propertyName] === value; | |
| } | |
| const arr = [ | |
| { id: 1, name: "juho" }, | |
| { id: 2, name: "kim" }, | |
| { id: 3, name: "holy" }, | |
| { id: 4, name: "jesus" }, | |
| { id: 5, name: "fire" }, |
| { | |
| "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", | |
| "blocks": [ | |
| { | |
| "alignment": "right", | |
| "segments": [ | |
| { | |
| "foreground": "#007acc", | |
| "properties": { | |
| "template": "{{ .Name }}" |
| # Boot oh-my-posh | |
| # must install oh-my-posh | |
| # https://ohmyposh.dev/docs/windows | |
| # oh-my-posh prompt init pwsh --config https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/v$(oh-my-posh --version)/themes/jandedobbeleer.omp.json | Invoke-Expression | |
| oh-my-posh prompt init pwsh --config "~/Documents/PowerShell/.mytheme.omp.json" | Invoke-Expression | |
| # PowerShell parameter completion shim for the dotnet CLI | |
| Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock { | |
| param($commandName, $wordToComplete, $cursorPosition) | |
| dotnet complete --position $cursorPosition "$wordToComplete" | ForEach-Object { |
| function getParams(func: Function) { | |
| // String representaation of the function code | |
| const funcS = func.toString() | |
| // Remove comments of the form /* ... */ | |
| // Removing comments of the form // | |
| // Remove body of the function { ... } | |
| // removing '=>' if func is arrow function | |
| const str = funcS | |
| .replace(/\/\*[\s\S]*?\*\//g, '') |
| # -*- mode: ruby -*- | |
| # vi: set ft=ruby : | |
| # All Vagrant configuration is done below. The "2" in Vagrant.configure | |
| # configures the configuration version (we support older styles for | |
| # backwards compatibility). Please don't change it unless you know what | |
| # you're doing. | |
| Vagrant.configure("2") do |config| | |
| config.vm.define "control-plane" do |config| | |
| config.vm.box = "generic/rocky8" |
| function sliceToSmallArray(acc, arr, maxLength) { | |
| if (arr.length === 0) return acc | |
| if (arr.length <= maxLength) return [...acc, arr] | |
| return sliceToSmallArray([...acc, arr.slice(0, maxLength)], arr.slice(maxLength), maxLength) | |
| } |
| import Amplify, { Auth, Storage } from 'aws-amplify'; | |
| Amplify.configure({ | |
| Auth: { | |
| identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX-1234-abcd-1234567890ab', //REQUIRED - Amazon Cognito Identity Pool ID | |
| region: 'XX-XXXX-X', // REQUIRED - Amazon Cognito Region | |
| userPoolId: 'XX-XXXX-X_abcd1234', //OPTIONAL - Amazon Cognito User Pool ID | |
| userPoolWebClientId: 'XX-XXXX-X_abcd1234', //OPTIONAL - Amazon Cognito Web Client ID | |
| }, | |
| Storage: { |
| import React, { useMemo, FC } from 'react' | |
| import { Box, Button, makeStyles } from '@material-ui/core' | |
| import { SkipPrevious, SkipNext, NavigateBefore, NavigateNext } from '@material-ui/icons' | |
| import classnames from 'classnames' | |
| function range(start: number, stop: number, step: number) { | |
| return Array.from({ length: (stop - start) / step + 1 }, (_, i) => start + i * step) | |
| } | |
| interface PaginationParams { |
| async function refresh() { | |
| const { idToken, accessToken, refreshToken } = await Auth.currentSession(); | |
| console.log('id: ', idToken.jwtToken); | |
| console.log(); | |
| console.log('access: ', accessToken.jwtToken); | |
| console.log(); | |
| console.log('refresh: ', refreshToken.token); | |
| console.log(); | |
| try { |