Posts

From AWS System Manager Document to Linux EC2 PowerShell Script

Let me start from what I'm trying to accomplished. Basically, I need to map partitions in Linux with EBS volumes. I first tried "df" command which works great. Through the following article, I found a way to retrieve corresponding volumes attached to the EC2 instance. https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-volumes.html Next, it is just a matter to marry both of them and output them as json. After many web searches and pages, I decided to install PowerShell Core to utilize its ConvertTo-Json function. All went great and I would like to create a new AWS System Manager Command Document so I can fire up an api call to execute the script. I first tried AWS System Manager's RunPowerShellScript document which claims to be able to execute PowerShell script on Linux. However, it somehow failed. I checked the requirements, update SSM Agent to no avail. Eventually, we submitted support ticket and waiting for the reply. While waiting fo...

PowerShell Split String by Whitespaces or Multiple Spaces Using Regex

I was looking into a way to split string that can take regular expression in PowerShell. Surprisingly, they have the capability: $StringArray = $StringInput -split '\s+'

Invoke-WebRequest PowerShell Command through Amazon AWS System Manager

I had a small issue with running Invoke-WebRequest through Amazon AWS System Manager. Somehow it doesn't seem to load the module properly. I ended up replacing: Invoke-WebRequest -Uri <url> with: $WebClient = New-Object System.Net.WebClient $WebClient.DownloadString(<uri>) which works perfectly for my case.

UNC and URL

Found something weird today. For a long time, we have published our project to the test environment using the following UNC pattern: \\testservername.productiondomain.com\shared-path. However, when I did that today, it accidentally connected to production. Removing the domain as part of the UNC solves the problem. The weird thing is the same UNC points to our test environment when run on my coworker's computer. Nothing is weird on our hosts file. I have not figured out why this is so. This post thus will be updated once I found out the actual reason.

Entity Framework Sorting/ Ordering and Dynamic LINQ

One of my coworkers would like me to update my IEnumerable SortBy extension method to support multiple columns. As I was working on it, I stumbled upon a nice StackOverflow question on Dynamic LINQ OrderBy on IEnumerable<T> and also Dynamic LINQ . They are all awesome. I decided to try Dynamic LINQ by adding it through Nuget. However, I soon found that Dynamic LINQ only support property names. In some cases, we want to be able to sort by specifying column attribute value, so I still use my own code which works just fine although it might not be optimized for performance. For example in VB.NET: Public Class Customer <Column c_name=""> Public Property Name As String <Column c_age=""> Public Property Age As Integer End Public Dim sortedByName = dbContext.Customers.AsEnumerable().SortBy("c_Name, c_Age DESC") The gist for my code can be found in: https://gist.github.com/nikyodo85/202fc2d417d9eb030d30896ccc862b7d

Entity Framework (EF) Decimal Mapping to SQL Server

We bumped into a strange issue. Value of our property was not saved to the database. We checked mapping, spelling, data type and none seems wrong. Eventually we found out that the decimal in our database has precision of (12, 6) and the SQL default is (18, 2). Problem is EF map Decimal data type to the SQL default precision thus our value was truncated. To fix the issue, we put the following code in our DbContext under OnModelCreating method and our value was then saved correctly. protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder) {        modelBuilder.Entity<Class>().Property(object => object.property).HasPrecision(12, 6); }

Autocomplete Bug in Chrome Form Field

I just update my website and everything works great in Firefox. As I test it in Chrome, I noticed when I navigate to another and then press the back button, my text field was populated with wrong data. The data was the default value of other text field before the navigation. As I was looking around, I found out that it is a bug in WebKit based browsers. Some people suggested to use autocomplete="off" property on all input field. But for my case, it is enough to put the attribute to all text fields (<input type="text"/>).