(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
import System.Directory | |
import System.Environment | |
import System.FilePath | |
import Control.Applicative ((<$>)) | |
import Control.Arrow (first, second) | |
import Control.Monad (void) | |
import Data.Either (rights) | |
import Data.List (isSuffixOf) | |
import Data.Set (Set, (\\), empty, fromList, insert, singleton, toList, union) | |
import Text.Parsec |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
Rich Hickey on becoming a better developer | |
− | |
Avatar | |
Rich Hickey • 3 years ago | |
Sorry, I have to disagree with the entire premise here. | |
A wide variety of experiences might lead to well-roundedness, but not to greatness, nor even goodness. By constantly switching from one thing to another you are always reaching above your comfort zone, yes, but doing so by resetting your skill and knowledge level to zero. | |
Mastery comes from a combination of at least several of the following: |
function Set-WinStoreSetting { | |
param ( | |
[Parameter(Mandatory=$true, Position=0)][string]$PackageName, | |
[Parameter(Mandatory=$true, Position=1)][string]$SettingName, | |
[Parameter(Mandatory=$true, Position=2)][string]$SettingValue | |
) | |
$settingsFile = [IO.Path]::Combine($env:LOCALAPPDATA, 'Packages', $PackageName, 'Settings\settings.dat') | |
# temporary paths |
There are three easy to make mistakes in go. I present them here in the way they are often found in the wild, not in the way that is easiest to understand.
All three of these mistakes have been made in Kubernetes code, getting past code review at least once each that I know of.
What do these lines do? Make predictions and then scroll down.
func print(pi *int) { fmt.Println(*pi) }
/* | |
Copyright (c) 2024 Orson Peters <[email protected]> | |
This software is provided 'as-is', without any express or implied warranty. In no event will the | |
authors be held liable for any damages arising from the use of this software. | |
Permission is granted to anyone to use this software for any purpose, including commercial | |
applications, and to alter it and redistribute it freely, subject to the following restrictions: | |
1. The origin of this software must not be misrepresented; you must not claim that you wrote the |
object Nullable { | |
sealed trait NullableTag | |
type Nullable[A] = A with NullableTag | |
def nullAs[B]: Nullable[B] = | |
null.asInstanceOf[Nullable[B]] | |
implicit class ToNullable[A](val a: A) extends AnyVal { | |
def `?`: Nullable[A] = a.asInstanceOf[Nullable[A]] | |
} |
private void EnableStoreTodosAndReminders(RDOStore store) | |
{ | |
//Enable store for reminders | |
var reminders = store.Reminders; | |
reminders.EnableStoreReminders(); | |
//Collection some folders we need | |
var rootFolder = store.RootFolder; | |
var taskFolder = store.GetDefaultFolder(rdoDefaultFolders.olFolderTasks); | |
var inbox = store.GetDefaultFolder(rdoDefaultFolders.olFolderInbox); |
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
using Mono.Cecil; | |
namespace ClrToStringOverrides | |
{ | |
internal class Program | |
{ |