• C# Getting the Constant Value from Class using Reflection

    By on Wednesday, February 08, 2017 | Filed Under Software

    In C# Getting the Constant Value from Class using Reflection need not be a difficult and there are quite few articles and blogs written on the subject. I wanted to mimic the GetNameQuery function that is in Hibernate, maintaining backward compatibility while converting services to C# using Dapper. For Inspiration I looked at this blog. This returned a list of the constant Names and what I actually wanted to do was look through all the constant names and then match mine an...

  • Creating Dapper entities Using MSSQL

    By on Monday, February 06, 2017 | Filed Under Software

    Creating Dapper entities using MSSQL and Mapping classes is rather easy, but very time consuming from scratch. This came around because I really got tired of the typing a multitude of class and mapping files So let's jump into it. Firstly, lets go get the list of tables, this will return a list in the correct format for the T-SQL in clause. The reason why I did it this way was because it's easier to remove those that I don't want to generate entities for. DECLARE @d...

  • Dapper ORM to Easily Map Column Names

    By on Friday, February 03, 2017 | Filed Under Software

    This is just a short post in using Dapper ORM to Map column names in Mssql generating c# csharp code. I had a requirement using Dapper ORM to Easily Map Column Names, problem was that the columns names had Underscores in them and the need to Have uppercase letter at the beginning of each word to conform to naming conventions. The service we are re-writing has numerous mapping tables so it all started out fine doing the tables with only a few columns, but as things cot m...

  • Hackerrank – Weather Observation Station 4 – MsSql

    By on Thursday, August 04, 2016 | Filed Under Software

    Hackerrank - Weather Observation Station 4 I have always loved just killing some time on Hackerrank, doing some challenges. And today was no different, but what was funny about it was I got stumped by one of the stupidest and simplest things under the sun. I really believe in software we should always look for the simplest answer, but in my case I couldn't for the love of me come up with the simplest answer which is: SELECT COUNT(CITY) - COUNT (DISTINCT City) FROM STATI...

C# Getting the Constant Value from Class using Reflection »

By on Wednesday, February 08, 2017

In C# Getting the Constant Value from Class using Reflection need not be a difficult and there are quite few articles and blogs written on the subject. I wanted to mimic the Get...

Creating Dapper entities Using MSSQL »

By on Monday, February 06, 2017

Creating Dapper entities using MSSQL and Mapping classes is rather easy, but very time consuming from scratch. This came around because I really got tired of the typing a multit...

Dapper ORM to Easily Map Column Names »

By on Friday, February 03, 2017

This is just a short post in using Dapper ORM to Map column names in Mssql generating c# csharp code. I had a requirement using Dapper ORM to Easily Map Column Names, problem...

In C# Getting the Constant Value from Class using Reflection need not be a difficult and there are quite few articles and blogs written on the subject. I wanted to mimic the GetNameQuery function that is in Hibernate, maintaining backward compatibility while converting services to C# using Dapper. For Inspiration I looked at this blog. This returned a list of the constant Names and what I actually wanted to do was look through all the constant names and then match mine and return the Sql value inside.

Where to start: reflection

Firstly we need to look at the FieldInfo Class looking at the example it shows us how we can get the field values.

Read Full Article

Creating Dapper entities using MSSQL and Mapping classes is rather easy, but very time consuming from scratch. This came around because I really got tired of the typing a multitude of class and mapping files So let’s jump into it.

Firstly, lets go get the list of tables, this will return a list in the correct format for the T-SQL in clause. The reason why I did it this way was because it’s easier to remove those that I don’t want to generate entities for.

1
2
3
4
5
6
7
8
9
10
DECLARE @db VARCHAR(50) = 'Your_db_name'
DECLARE @tempTable TABLE (TableName VARCHAR(250))
 
SELECT DISTINCT '''' +  ltrim(rtrim(t.table_name))+ ''',' AS TABLE_NAME
FROM     information_schema.columns c
         INNER JOIN information_schema.tables t
           ON c.table_name = t.table_name
              AND c.table_schema = t.table_schema
              AND t.table_type = 'BASE TABLE'
WHERE t.TABLE_CATALOG = @db

Read Full Article

This is just a short post in using Dapper ORM to Map column names in Mssql generating c# csharp code.

I had a requirement using Dapper ORM to Easily Map Column Names, problem was that the columns names had Underscores in them and the need to Have uppercase letter at the beginning of each word to conform to naming conventions. The service we are re-writing has numerous mapping tables so it all started out fine doing the tables with only a few columns, but as things cot more intense at 32 plus columns then I needed a better way to do it. MSSQL, to the rescue, I found a method on the web to convert the initial capitalisation for the beginning of each word for the I used this method:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
CREATE FUNCTION [dbo].[InitCap] ( @InputString VARCHAR(4000) ) 
RETURNS VARCHAR(4000)
AS
BEGIN
 
DECLARE @INDEX          INT
DECLARE @CHAR           CHAR(1)
DECLARE @PrevChar       CHAR(1)
DECLARE @OutputString   VARCHAR(255)
 
SET @OutputString = LOWER(@InputString)
SET @INDEX = 1
 
WHILE @INDEX < = LEN(@InputString)
BEGIN
    SET @CHAR     = SUBSTRING(@InputString, @INDEX, 1)
    SET @PrevChar = CASE WHEN @INDEX = 1 THEN ' '
                         ELSE SUBSTRING(@InputString, @INDEX - 1, 1)
                    END
 
    IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
    BEGIN
        IF @PrevChar != '''' OR UPPER(@CHAR) != 'S'
            SET @OutputString = STUFF(@OutputString, @INDEX, 1, UPPER(@CHAR))
    END
 
    SET @INDEX = @INDEX + 1
END
 
RETURN @OutputString
 
END
GO

Read Full Article

Hackerrank – Weather Observation Station 4
I have always loved just killing some time on Hackerrank, doing some challenges. And today was no different, but what was funny about it was I got stumped by one of the stupidest and simplest things under the sun. I really believe in software we should always look for the simplest answer, but in my case I couldn’t for the love of me come up with the simplest answer which is:

1
2
SELECT COUNT(CITY) - COUNT (DISTINCT City)
FROM STATION ;

However what came out was a rather convoluted attempt: why do we try do something complex when the answer is actually so simple at the end of the day:

1
2
3
4
5
6
7
8
9
SELECT	
	a.cities - a.uniqueCities
FROM (
    SELECT
	COUNT(city) AS cities, 
	COUNT(DISTINCT city) AS uniqueCities 
    FROM
	station
) a;

looking at some of the answers the where submitted afterwards there where a few interesting ones:

SELECT abs(COUNT(CITY)-COUNT(DISTINCT CITY)) FROM STATION;
 
SELECT ((SELECT COUNT(CITY) FROM STATION) - (SELECT COUNT(DISTINCT CITY) FROM STATION)) FROM STATION WHERE ROWNUM=1;

At the end of the Day I suppose we all have days where we take something so simple, but then over complicate it.

I guess we have learnt something just by trying

ApkTool

Yesterday, we had a little issue whereby we needed to modify a production APK to work with Integration. So I want describe how to Decompile, Alter and Compile an apk using the Apktool. I have done some decompiling of Android APK’s in the past to learn how people and companies have achieved something. Never did I have to decompile, alter and re-compile an app using the Apktool. I volunteered naturally as this option seemed loads simpler than looking for the original branch source code at that point.

You should have a good compression tool on you machine I prefer Winrar, but you can use anything you wish.

A text Editor, I use Notepad++

At this point I will assume you already have the current JAVA JRE and SDK installed. You will need this for signing the APK. You should also have the Android SDK, for editing & Compiling etc… You will more then likely already have these if you are at this point.

You will need the ApkTool,the latest version can be downloaded here. The tool allows you to reverse engineer 3rd party, closed and binary Android applications. The tool does this by decompiling / compiling the code using Smali / baksmali. This tool required three files:

  1. apktool.bat
  2. apktool.jar
  3. aapt.exe

Once you have all these tools (not many I know this isn’t that difficult at all), the you are ready to get cracking… I mean reverse engineering.

Read Full Article

In this article I hope to show how to use a Jquery UI dialog prevent / cancel form submission. Based on a work requirement I wanted to stop the submission of a form, so I could validate the some checkboxes using JQuery, if they were all checked the okay button would be enabled and the form would be submitted. This Solution, always for an infinite amount of check boxes to be iterated through and only if all of them are checked will you be allowed to proceed, then it will submit the form as per original. You can check the entire Fiddle here

jquery ui dialog

<form id="objectdata" name="objectdata" action="newOrder.jsp" method="post">
    <div id="validateServicesContainer" title="Service Cancellation"  style="display: none">
        <tr>
            <td>
                The following Services will be suspended during upgrade.<br /> 
                Check service to confirm?
            </td>
        </tr><br /><br />
    <input class="sServices" id="chkBox1" type="checkbox"/>Service 1<br /> 
    <input class="sServices" id="chkBox2" type="checkbox"/>Service 2<br /> 
    <input class="sServices" id="chkBox3" type="checkbox"/>Service 3<br /> 
    <input class="sServices" id="chkBox4" type="checkbox"/>Service 4<br /> 
    <input class="sServices" id="chkBox5" type="checkbox"/>Service 5       
     </div>
     <input id="chkBox6" type="checkbox"/>Service 6<br /><br />
     <input type="submit" id="btnOpenDialog" value="Validate then submit" onclick="checkUpgradeSuspensions.call(this,event)"/>
</form>

Read Full Article

This last year has been an interesting year, Let’s hope the new year is a better year. There has been a huge amount of hack attempts against this site, it really makes you wonder what the intentions are.

I lost almost an Entire year’s worth of articles, partially due to me not making making my own back-up’s but al on over reliance on the host. They migrated servers and my sites bar this one came up. I should have disabled my plugins first but I didn’t, they back-up’s with host wasn’t complete, and they overwrote all my changes, and tha lost all the new articles I had made very sad.

Oh well, all this stuff happens we learn from it and we build more knowledge. So Happy New Year welcome 2016

HAPPY NEW YEAR

Happy new year

We were now ready to schedule time to do the layup preparation, we decided to do this on a full day, I said it would take 3-4 hours.

We used:
– Ram Wax
– PVA release
– GC1/080 Gel Coat
– 1 layer 163g Twill Glass
– 1 layer 210g unidirectional cloth
– 3 Layers of 410 Biax Glass
– Ampreg 21 epoxy.
– Cotton Flock
– modelling Clay

We first Filled the Gap, using modelling Clay, these corners where all squared and cleared with a squared off credit card. Once done we polished the Plug, with some G18 and then 5 layers of Ram wax. After doing the Gel coat, we precut all the cloth and filled all the “Corners” with cotton flock. Then the cloth went on in the following order, 1 layer 163g Twill Glass, 1 layer 210g unidirectional cloth and then 3 Layers of 410 Biax Glass. I was worried the about all the bubble and I would like to put a Bladder in the mold. So I decided, I need to vacuum all the air out, I went home for dinner and came back and the mold was hard. After, 3 hours of staring at the mold cleaning it up, I decided the mold was hard, and MAD kept saying he was worried it was not coming out to easy.

So I started unscrewing it, Usually in the past, I would worry but I was certain it would be perfect this time. I took off one side, it was flawless, then the other and the two sides. I wasn’t going to split it, but Sydney was saying am I thinking what he is thinking. So I split the mold, no resistance, nothing. The mold came out, but there was gel coat on my hand… DAMN. It turned out the second batch of gelcoat was not perfectly mixed. Not serious. I will correct this afterwards as it’s only on the flange. What was a total disaster and is also fixable is we used Nuts to mate up the halves. This chipped off some Gelcoat. I will fix it but note to Self, next time use something flat in index it. I though the result proved the the time spent on the layout preparation was well spent.

Here is the result, I will let the final un-cleaned product speak for itself.

Page 1 of 41234