Skip to content

Instantly share code, notes, and snippets.

View jonpryor's full-sized avatar

Jonathan Pryor jonpryor

View GitHub Profile
diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/GetAndroidDefineConstants.cs b/src/Xamarin.Android.Build.Tasks/Tasks/GetAndroidDefineConstants.cs
index 8699d0af0..f3bd8a40e 100644
--- a/src/Xamarin.Android.Build.Tasks/Tasks/GetAndroidDefineConstants.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tasks/GetAndroidDefineConstants.cs
@@ -15,7 +15,7 @@ namespace Xamarin.Android.Tasks
public override string TaskPrefix => "GAD";
[Required]
- public int AndroidApiLevel { get; set; }
+ public string AndroidApiLevel { get; set; } = "";
diff --git a/Src/AwesomeAssertions/Equivalency/Steps/GenericEnumerableEquivalencyStep.cs b/Src/AwesomeAssertions/Equivalency/Steps/GenericEnumerableEquivalencyStep.cs
index 5622fb62..2c1edd81 100644
--- a/Src/AwesomeAssertions/Equivalency/Steps/GenericEnumerableEquivalencyStep.cs
+++ b/Src/AwesomeAssertions/Equivalency/Steps/GenericEnumerableEquivalencyStep.cs
@@ -3,6 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
+using System.Text;
using AwesomeAssertions.Common;
@jonpryor
jonpryor / exec-notify.sh
Last active August 7, 2025 20:24
macOS script which executes the command line, and when the command finishes posts a macOS notification that the command has finished, it's time(1) info, and the exit code.
#!/bin/sh -e
TIMEFILE=`mktemp -t exec-notify` || exit 1
EXIT_CODE=0
/usr/bin/time -o "${TIMEFILE}" "$@" || EXIT_CODE=$?
cat "${TIMEFILE}"
echo exit=$EXIT_CODE
// Metadata version: v4.0.30319
.assembly extern System.Runtime
{
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
.ver 9:0:0:0
}
.assembly extern System.Console
{
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
// Metadata version: v4.0.30319
.assembly extern System.Runtime
{
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
.ver 9:0:0:0
}
.assembly extern System.Console
{
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
using System.Collections.Generic;
interface IFruit {
string Name {get;}
}
class Banana : IFruit {
public string Name => "Banana";
}
@jonpryor
jonpryor / Java.Interop.diff
Created February 15, 2024 21:17
Assemblies & build variations, oh my!
diff --git a/src/Java.Interop/Java.Interop.csproj b/src/Java.Interop/Java.Interop.csproj
index 43d5937e3..f93e38e6a 100644
--- a/src/Java.Interop/Java.Interop.csproj
+++ b/src/Java.Interop/Java.Interop.csproj
@@ -22,14 +22,15 @@
<Import Project="..\..\TargetFrameworkDependentValues.props" />
<PropertyGroup>
<DefineConstants>INTEROP;FEATURE_JNIOBJECTREFERENCE_INTPTRS;INTERNAL_NULLABLE_ATTRIBUTES;$(JavaInteropDefineConstants)</DefineConstants>
- <IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\$(TargetFramework.ToLowerInvariant())\</IntermediateOutputPath>
- <OutputPath>$(ToolOutputFullPath)</OutputPath>
diff --git a/beg.il b/end.il
index 7be9c831..716d50bc 100644
--- a/beg.il
+++ b/end.il
@@ -83,7 +83,7 @@
.custom instance void [System.Runtime]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( 01 00 19 4A 61 76 61 2E 49 6E 74 65 72 6F 70 2E // ...Java.Interop.
45 78 70 6F 72 74 2D 54 65 73 74 73 00 00 ) // Export-Tests..
.permissionset reqmin
- = {[System.Runtime]System.Security.Permissions.SecurityPermissionAttribute = {}}
+ = {class 'System.Security.Permissions.SecurityPermissionAttribute, System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' = {}}

Managing Asynchronously

There's managing, then there's managing remotely, then there's managing asynchronously. A goal of "managing" is to serve as a liaison between your company and your direct reports, ensuring that the goals of all parties are fulfilled. It is a constant balancing act.

Managing remotely is management without physical presence. The difficulty is increased; lack of physical presence makes it more difficult to build rapport with directs. Lack of in-person communication cues can make conversations more difficult.

Managing asynchronously is managing remotely, with fewer (or no) timezone constraints. One can imagine managing a team with everyone in the same timezone. Once multiple timezones across multiple continents enter the picture, workflows which are straightforward when managing remotely no longer scale.

Many open source projects embody asynchronous work. If you have worked with such projects in the past, you will find that many of the techniques are applicable.

<Project>
<PropertyGroup>
<InvalidVersion>1.2.3a4</InvalidVersion>
<IsValid Condition="$([System.Version]::TryParse(
'$(InvalidVersion)',
$([System.Version]::Parse('1.2.3.4'))
))">True</IsValid>
</PropertyGroup>
<Target Name="Foo">
<Message Text="IsValid=$(IsValid)" Importance="High" />