Directory programming
The following pages are available in this directory:
- 10GEthernetBufferSizes
- 32BitBugFun
- ACIdiomIAvoid
- AShellScriptGotcha
- AbstractSourceRepresentation
- ActionableMessages
- AddingStatsNotes
- AgainstStringInterpolation
- AllInOneCustomization
- AllowScrubbingHistory
- AlsoHaveReload
- AlwaysAllowVersion1
- AlwaysLogIPAddress
- AlwaysSignExactVersion
- AmigaBusyCursor
- AmigaStackSizeBug
- AnAcceptGotcha
- AnAwkCaution
- AnIntrospectionAdvantage
- AnOptimizationThought
- AnonymousStructsGood
- AvoidingQuotingBug
- AwkClauseOrdering
- AwkFieldAccessLimitation
- AwkFunWithEquality
- AwkLastFieldIdiom
- BackportsAreHard
- BadPopupDialog
- BadProjectLayout
- BashTestLimitation
- BcForBirthdayParadox
- BeSureItsACString
- BetterUndo
- BlindedByInheritance
- BourneBadForLargeScripts
- BourneCapturingOutput
- BourneCommandSuperstition
- BourneExecInPipeline
- BourneGetoptsTooVerbose
- BourneGetoptsUseAlways
- BourneGol
- BourneIfCanSetVars
- BourneListMatch
- BourneMyTooCleverExec
- BourneNoMatchOperator
- BourneNonFavourite
- BournePleasantArithmetic
- BourneQuoting
- BourneQuotingII
- BourneRedirectionAndQuoting
- BourneRedirectionGotcha
- BourneSeparatedList
- BourneSetEGotcha
- BourneShellGlobalVariableOops
- BourneShellLimitation
- BourneShellLists
- BourneShellTrickyAndDim
- BourneSubshellGotcha
- BufferingOnBuffering
- BugTypes
- BuildingMultiCoreImportance
- CAPIsEffectsOfMalloc
- CAsAbstractMachine
- CDependencyHellSource
- CFreeGivesReturnFreedom
- CFreeRequiresMetadata
- CMallocFreeDecentAPI
- CNoStaticLocals
- CNullStringsDefense
- COptimizerMakingProgramsCompile
- CPlusPlusProblem
- CPolymorphicPatterns
- CPolymorphicPatternsII
- CProgrammerOOView
- CProgrammersTwoTypes
- CRLFAndBuffering
- CSometimesGoodAnswer
- CStackOnceNoExpansion
- CStackSizeInvisible
- CStdargImpossibleApi
- CStdargLimitations
- CStdargWhyWrong
- CTriumph
- CUndefinedDereference
- CUnionsForNamespaces
- CWhyGlobalsZeroDefault
- CacheLifetimeRealization
- CacheTypes
- CacheValditorsVsInvalidation
- CacheValidatorsVsInvalidation
- CaseForAtomicTypes
- ChangesHaveContext
- ChangingTextSize
- CheckThenUseIsDangerous
- ChecksumsAndHashes
- ChecksumsRevisited
- ClassicCQuotingBug
- ClearPersonalIdioms
- CleverFirefox
- CodeCommentsWhy
- CodeEditingVimVsEmacs
- CodeReadingNarrowness
- ColourSettingInterface
- CommentingOutCode
- CommitLittleChanges
- CommonSocketError
- CompiledVsInterpretedPackaging
- CompilerStagesHowMany
- CompilerThreadAwareness
- ComplexitySuperstition
- ConceptualBugExample
- ConfigurationIsNotGeneric
- ConfigurationPurpose
- ConfiguringInRealLanguage
- ConfiguringInRealLanguageBlackBox
- ContextInProgramming
- CryptographicVsNormalPRNG
- CutNPasteModels
- DBFieldSizing
- DVCSWant
- DWikiBugAnatomy
- DWikiParsing01
- DWikiParsing02
- DanglingElseAndBlocks
- DataVsObjects
- DatabasesAlwaysSchemas
- DateFormatRightWay
- DebuggerHandHolding
- DebuggersAndBugTypes
- DebuggingJoy
- DependenciesEnablePrograms
- DesignVsConstruction
- DevCostsVsOpsCosts
- DiffsRequireContext
- DiffsRequireContextII
- DislikingCaching
- DislikingSingleton
- DocumentationBonus
- DontBreakUpMessages
- DynamicLinkingTax
- DynamicMemoryFailures
- EfficiencyOptimistView
- EgrepOFieldExtraction
- EmacsAutocompletionWant
- EmacsBackForward
- EmacsChangingLispWithAdviceAdd
- EmacsCompletionForcingCategories
- EmacsDynamicMenubarMenus
- EmacsEasyMenuAndMenubarOrder
- EmacsFunctionDefiningFunction
- EmacsInternVsMakeSymbol
- EmacsMetaXRelevantCommands
- EmacsPackages-2023-11
- EmacsSmallPackagesPraise
- EmacsUnderstandingCompletion
- EmacsUnderstandingOrderless
- EmacsUsePackageAndKeymaps
- EmacsUsePackageWhy
- EnteringWEPKeys
- EnumBadAPIDesign
- ErrorMessagePrinciple
- EspeciallyDangerousTricks
- ExamplesShouldWork
- ExceptionHandlingAggregation
- EximObservation
- ExplainYourMath
- ExplicitBlockDelimiters
- ExplicitErrorsAndBroadCatches
- FallibleSemverAndMVS
- FalsifiableUnitTests
- FancyProgrammingEditors
- FastCGIProtocolMistake
- FavoriteLineContinuation
- FavoriteLineContinuationII
- FiddlingFirefoxFiles
- FiddlingXSelections
- FilenamesInErrors
- FirefoxBisectNotes
- FirefoxExtensionsQuickIntro
- FirefoxNewWebExtsAPI
- FirefoxNoStyleInContext
- FlowAndClocks
- FragmentationAndRegionAllocation
- FrequentVsInfrequentDevs
- FunRegexpBug
- GCAPIAdvantage
- GarbageCollectionGoodEnough
- GeneralOpenDanger
- GeneralOpenDangerII
- GeneratorsAndAsync
- GettersSettersDislike
- GettingCostsRight
- GitAliasesIUse
- GitAndLocalChanges
- GitBranchesSocialConstructs
- GitCheckoutBranchBack
- GitCloningBaseBenefit
- GitCommitAndRebaseBetter
- GitCommitAndRebaseNotes
- GitCompareAcrossUpstreams
- GitCoreVersusMagic
- GitFetchMagicPlus
- GitLogDashGNotes
- GitMasterToMainWithLocalChanges
- GitMindblowingFeatures
- GitMultiRepoWorkflow
- GitPickingRightApproach
- GitPruneRemoteBranches
- GitPullConfigAndRebase
- GitQuieterRepoTracking
- GitRebaseLocalChangesSetup
- GitRebaseOnRebase
- GitRebaseUnderstanding
- GitRebaseVsCherrypick
- GitSelectiveCommitWithMagit
- GitTagsBeforeAfterCommit
- GitTreeUncertainShuffles
- GitUpstreamLimitedTracking
- GitViewFileOverTimeWish
- GitWorktreeLimitedPulling
- GitWorktreeThoughts
- GithubAndGitRepoPublishing
- GithubPRTestingWorkflow
- GithubPullReqsPain
- GnomeFileChoserProblem
- Go1.11VersioningViews
- Go113AndGoModInGOPATH
- Go115InterfaceSmallInts
- Go115InterfaceSmallIntsII
- Go116OpenBSDUsesLibc
- Go117SaveACopy
- Go117StillGopathMode
- Go118GenericsSimpleAndComplex
- Go118NoConstraintsPackage
- Go121LinuxStaticToolchain
- Go121ToolchainDownloads
- Go122ReflectTypeFor
- Go122TypesAliasAndCompatibility
- Go18GenericsSpecialized
- Go2ContractsLike
- Go2ContractsMoreReadable
- Go2ContractsNowBoring
- Go2ContractsTooClever
- Go2ErrorHandlingHammer
- Go2ErrorInspectionViews
- Go2GenericsExpectedEfficiency
- Go2GenericsNotWithInterfaces
- Go2RequireMinimalContracts
- GoAPIStabilityAndAssumptions
- GoAddressableValues
- GoAddressableValuesII
- GoAlwaysDrainGoroutines
- GoAmd64ArchitectureLevels
- GoAndDeprecatingGoGet
- GoAndGlibcVersioning
- GoAppearanceOfChanges
- GoAvoidingAnyAsAType
- GoAvoidingGarbage
- GoBigVirtualSize
- GoBigVirtualSizeWhy
- GoBinaryStructureNotes
- GoBuildFromSource
- GoBuildTime1.8Vs1.9
- GoBuildUsingNewAPIs
- GoBuildWhereTimeGoes
- GoCGoCompatibleStructs
- GoCGoDilemma
- GoCGoStringFunctions
- GoCLibraryAPIIssues
- GoCarefulDesign
- GoCgoErrorReturns
- GoCgoExperienceNotes
- GoChannelsAndReplies
- GoChannelsExpensiveFeatures
- GoConcurrencyLimitsWhere
- GoConcurrencyStillNotEasy
- GoConstantsAsValues
- GoContextValueMistake
- GoContextsAssumeNotRetained
- GoConvertSliceToArray
- GoCrossCompileNotes
- GoCrossCompilingConstants
- GoDetectingGoneModules
- GoDevelopmentTipResources
- GoDialCancellationHow
- GoDirectivesThoughts
- GoEmacsDroppedTools
- GoEmacsWithLspMode
- GoEmbeddingInterfacesWhen
- GoEnumNotes
- GoExpvarFuncLimit
- GoExpvarNotes
- GoExpvarVarGotcha
- GoFinalizerCostsNotes
- GoFinalizersStopLeaks
- GoFirstExperience
- GoFlagUIImportance
- GoForMe
- GoForRangeNudging
- GoFrictionPoints
- GoFutureClearBuiltin
- GoGCBadPointerPanics
- GoGenericsTypeInterfaceIssue
- GoGenericsTypeSets
- GoGetAloneBadTracking
- GoGetoptProblem
- GoGocodeEmacsAutocomplete
- GoGocodeEmacsAutocompleteII
- GoGoroutinesVsLocks
- GoHackingWithModules
- GoHalfMissingImport
- GoHasCasts
- GoHowMapsStored
- GoIncrementStatementBenefit
- GoInfiniteLoopOptimization
- GoInlinesAcrossPackages
- GoInspectingErrors
- GoInstallLimitation
- GoInterest
- GoInterfacePunning
- GoInterfaceSmuggling
- GoInterfaces
- GoInterfacesAutogenFuncs
- GoInterfacesLimitation
- GoInterfacesVsGenerics
- GoInteriorPointerGC
- GoIpv6MyDesire
- GoIsGooglesLanguage
- GoKeepReleaseAround
- GoKeepsConstantVariables
- GoLang32BitProblem
- GoLanguageIrritations
- GoLimitedTypeInferenceLike
- GoLoggingWrongIdiom
- GoLowLevelX
- GoMemoryToStructures
- GoMiddlewareVsInterfaceSmuggling
- GoMisreadingSomeCode
- GoModularizationTwoGotchas
- GoModuleBuildsWhatPossible
- GoModuleNoticingUpdates
- GoModulePlusIncompatibleMeaning
- GoModuleProperSetup
- GoModuleSupportNeed
- GoModulesAndDomainExpiry
- GoModulesGoVersionWhy
- GoModulesGoVersions
- GoModulesNoSrcMess
- GoModulesOnlyFuture
- GoMultipleInitFunctions
- GoMyGetoptChoice
- GoNaNsAsMapKeys
- GoNetErrorsUndocumented
- GoNetLookupsCgoAndLinux
- GoNetProblem
- GoNilIsTypedSortOf
- GoNilMethodsWhy
- GoNilNotNil
- GoNoAtomicVariables
- GoNoMemoryFreeing
- GoNoTypeForTypes
- GoNonMutatingMethods
- GoOSVersionsRisks
- GoOddImportsNotes
- GoOnIdentifierVisibility
- GoOpenBSDSituation
- GoPackagesKeepingUp
- GoPartialIfdefWithConsts
- GoPeopleRedoModuleVersions
- GoPointerToInteger
- GoProgramMemoryUse
- GoPrometheusMetricLabels
- GoRaceBug
- GoRangeCopying
- GoRangefuncAndUserContainers
- GoRealImprovementsWhy
- GoReflectEscapeHack
- GoReflectTypeForOptimization
- GoRollingErrors
- GoRuntimeKeepAliveNotes
- GoSSHHostKeyCheckingNotes
- GoSchedulerAndSyscalls
- GoSelfContainedSource
- GoSleazyDuckTyping
- GoSliceMutability
- GoSlicesMemoryLeak
- GoSlicesTwoViews
- GoSlicesVsPointers
- GoSscanfTrailingText
- GoStackIsADetail
- GoStreamSynchronizationProblem
- GoStringsMemoryHolding
- GoStructsForNamespaces
- GoSyncAtomicPointerGeneric
- GoSyncPoolThreadLocality
- GoSysadminAttractions
- GoTLSNoStringIssue
- GoThingsILike
- GoTimeFormatMixedFeelings
- GoTimeHasLocation
- GoTimeParsingTZIssue
- GoTimeToSetGO111MODULE
- GoTimingAndNewMachines
- GoToolchainStaticBuildFailure
- GoTracingInitCalls
- GoTryWillBeUsedSimply
- GoTypesOfTypeSetsQuestion
- GoUintptrVsUnsafePointer
- GoUnaddressableSlice
- GoUncomparableThings
- GoUnsafePointerBuiltin
- GoUnsafeTypeConvGCSafety
- GoUsingStandardPackages
- GoValueCopyIsTyped
- GoVariableToArrayConversion
- GoVendoringAndVgo
- GoVendoringUsage
- GoVersionOfYourSource
- GoVersionedModulesDesire
- GoVersionsAndStableUnixes
- GoVersionsMyView
- GoVersusPythonWith
- GoWhatOpenBSDs-2020-03
- GoWhenNotManyGoroutines
- GoWhyGofmtAccepted
- GoWhyNotStaticLinked
- GoWhyOSRequirementsChange
- GoWorkspacesComing
- GoYoungLanguage
- GodocNotes
- GoingMyOwnWay
- GoodGraphicalInterfaces
- GoroutinesAsStateCapture
- GosimpleWhyGreat
- GroupMembershipCheck
- HMACVersioning
- HashCollisionTypes
- HashLengthExtAttack
- HashPrivacyLimit
- HgPendingAlias
- HowToDoRandomizedIO
- HowToWriteToStderr
- IOMultiplexingDoneWrong
- IPCLevels
- IPCLevelsII
- IdiomUnderstandability
- IfdefProblem
- ImprovingThreadProgramming
- IndentationProblem
- InheritanceSeparateAspects
- InheritanceVsInterfaceII
- InplacePatchingProblem
- IntelCPUIDNotes
- InteractivityThought
- InterestingHashBug
- InterpretedLanguageAdvantage
- InterpreterEvalAndControlFlow
- InterruptsAndStructure
- InvertedConditionals
- IsConcurrencyHard
- IterativeProgrammer
- ItsAMultiProtocolWorld
- JavaScriptExtensionLanguage
- KernelAPIConstraints
- KernelAPIPreference
- KnowledgeVersusProof
- LanguageChangeAcceptance
- LanguageDataStructureLimit
- LanguageNiches
- LanguageNichesII
- LanguagesAndCommunityOwnership
- LanguagesNeedComments
- LearningAPIDesign
- LearningLanguages
- LearningLanguagesTwoWays
- LexerLineNumbersTrick
- LibraryWarnings
- LikingProgramming
- LimitingProgramScope
- LispDataStructuresImpression
- LogMessagesManySources
- LogMessagesNoPromises
- LoggingAndStreams
- MHENarrowToPending
- MVSAndBadVersions
- MagitDiscardingChanges
- MagitPraise
- MajorVersionSupportSignal
- MakefileLies
- MakefileLiesComplexity
- MakingChannelsAsynchronous
- MockComplexIssue
- MockistVsClassicalist
- ModernIPv6Handling
- ModernSocketsListening
- MostSpecificCauseProblem
- MyAssertUsage
- MyEmacsProblem
- MyGithubHostingUsage
- MyVCSBranchingView
- MyViewOnORMS
- NetcatGoodTest
- NetcopyLogic
- NewLanguageLongevity
- NewStaticLanguagePopularity
- NoKillingScreenlocker
- NoScrollToNextItem
- NodeNotForMe
- NondeterministicGCII
- NondeterministicGCProblem
- NotCommittingChanges
- NotKnowingLanguageLimitations
- ObjectImportance
- ObjectOrientationPurpose
- OnHTMLViaStringTemplates
- OnInterfaceStandards
- OnInterfaceStandardsII
- OnLispConsCells
- OnLogMessageFormats
- OnNotTestingBetas
- OnStructuredLogging
- OnTabs
- OnTabsII
- OnTheFlyNoToggles
- OpenSourceNoDocIssue
- OptimizingCosts
- OptimizingDynamicLanguages
- OptionTypesIndirectPower
- OvercomingAcceptDrawbacks
- ParserTestingThoughts
- ParsingInBourneShell
- ParsingVersusRewriting
- ParsingWikitext
- PasswordBits
- PerfAnomalyImportance
- PerlDNSQueries
- PerlNonFavorite
- PerverseTDDDislike
- PhotoEditingNote
- PollBlockingWritesBad
- PortabilityOngoingCosts
- PracticalLanguageGuarantees
- PrimaryVsSurrogateKeys
- PrintDebuggingAndInfrequentDevs
- PrintfAndArgumentPassing
- PrintfToSeeDynamicBehavior
- ProcessingAnimationLesson
- ProductAndUtilityCode
- ProductionLanguages
- ProfilingReason
- ProgramBehaviorAndBugs
- ProgramEfficiencyCost
- ProgramExtensionsAvoid
- ProgrammerCertificationResult
- ProgrammerLaziness
- ProgrammingBlindness
- ProgrammingCanBeRightAnswer
- ProgrammingProductivity
- ProgrammingViaSuperstition
- ProtocolCodecNeeds
- PureBlockingAPIsWhyBad
- QueuedIOMemoryUsageDownside
- RPCExpense
- RandomVsGoodPasswords
- ReadingLisp
- ReadingManpages
- ReadingSensitiveFilesLessons
- ReadingTooBigBuffers
- ReadlineQuoting
- ReadlineQuotingExample
- RebaseAndPersonalChanges
- RecursiveDescentParsingAndLexing
- RegexpPerformanceFolklore
- RegexpWordMatching
- ReimplementationPolish
- RelativeEncapsulation
- ReleaseBuildsNoAbortOnWarnings
- ReverseDNS
- Rust1BackwardIncompatibility
- RustInOurFuture
- RustIsInevitable
- RustMyViews
- RustupFairlyNice
- SCGIisCaching
- SCGIvsFastCGI
- SQLForeignKeyRealization
- SQLGoodBad
- SQLHairshirtIssue
- SQLNormalization
- SQLNormalizationII
- SQLPlaceholders
- SQLServerCaching
- SQLiteAttraction
- SSHClientKeyTypeMistake
- SafeReadingInSafeLanguages
- SaltingAndCryptSpeed
- SaltingPasswords
- ScopingForLoops
- ScriptVersusProgram
- ScrollingVsPanning
- SecurityBugProblem
- SecurityBugProblemII
- SelectVsChannels
- SelfHostingLanguageAdvantage
- SendingViaSMTPHarmful
- SensibleNetworkIO
- ServerJavaScriptSpeedNote
- SessionIDsAndBirthdayParadox
- ShellLoopIndexes
- ShellMultiWordTrick
- ShellPipelineStepsAndCPUs
- ShellScriptTemptation
- ShellScriptVerbosity
- ShellScriptingReuseTemptation
- ShellScriptsAndSpeed
- ShellScriptsBeClearFirst
- ShellcheckAndGrep
- ShellcheckGoodForMe
- ShellcheckNoiseVsSignal
- SideEffectsBad
- SimpleDebuggerFeature
- SimpleLanguageEvalPattern
- SingleContextApplications
- SingleInstanceApplications
- SmallUISuggestion
- SmallUISuggestionII
- SmallUITweaksImportance
- SmoothScrollDislike
- SocketListenLimitation
- SoftwarePointersI
- SomeOverloadingViews
- SourcesOfSecurityBugs
- SplittingLogging
- StatesAreNotEverything
- StaticLinkingAndPopularity
- StaticVsDynamicTyping
- StronglyTypedView
- SyntacticSugarMatters
- SyntaxAesthetics
- SyntheticTestDataHazard
- SyslogVsStderr
- TK85XFTFontNotes
- TKLike
- TabsVsWindows
- TernaryIfVsAndOr
- TestDrivenAPIDevelopment
- TestErrorPaths
- TestingComplexDatastructures
- TestingInTheFaceOfPopen
- TestingVsExtensibility
- TestsNotInCIProblem
- TheLetdown
- ThinkingAboutGoodSQL
- ThreadsAndFork
- ThreeStatesOfMessages
- TickersVersusSleeping
- TooMuchSQL
- TransparencyImportance
- TwoSortsOfLanguages
- TwoTypesOfCertification
- UIDetailImportance
- UndefinedCNutshell
- UnderstandingMongoDBRandom
- UndoGitCommitAmend
- UndoNotEnough
- UndoOperations
- UnicodeNewProblems
- UnitTestsAsVerification
- UnixAPIMistake
- UnixEOFDifference
- UnixLogTimestampsInThings
- UnmaintainedCodeHugeValue
- UnpredictableSequenceNeed
- UntypedLanguages
- UseConfigurationFiles
- UseDrivenTesting
- UsePATH
- V8CodingTypesTrick
- VariableSizeIntegersMaybeNot
- VolatileProblem
- VolatileProblemII
- VolatileSpencer
- WaitingForIOAndThreads
- WallclockSleepDesire
- WebAppsNeedAuditLogs
- WgetableDownloads
- WhatCreatesInheritance
- WhereTCLWentWrong
- WhyDBAsMakeMoney
- WhyDeclareBeforeUse
- WhyDynamicLinking
- WhyEasyTests
- WhyEditorsForDBChanges
- WhyFastCGIIsComplex
- WhyILikeGit
- WhyIRejectPatches
- WhyInsideUnitTests
- WhyJavaIsCompiled
- WhyLanguageTransformations
- WhyNotFirstAndLastNameFields
- WhyNotFunctional
- WhyNotRelationalDBs
- WhyOpenSourceRebase
- WhyParsersMatter
- WhyPortBindingRestriction
- WhyPrintBasedDebugging
- WhyRDParsersForMe
- WhyRunTestsFirst
- WhyShellScriptExec
- WikitestParsingPains
- WikitextNoErrorsBacktracking
- WikitextParseToAST
- WikitextParsingPains
- WriteCustomToolsForScripts
- WriteTestsLesson
- XMLAppeal
- YAMLAndConfigurationFiles