Wednesday, April 3, 2019

Query a XML string for a specific field value in oracle SQL



1
select extractvalue(XMLTYPE(inputxml), '/ROOT/DATA/ELEMENT') "Value" from MYTABLE 


Where inputxml is a varchar2 column (storing xml as a string)
if you are storing data in a Xml datatype, you can remove XMLTYPE() function call

Tuesday, April 2, 2019

How to debug an aspx file with Visual Studio in IIS, that is not part of a project (or catch website exceptions with Visual Studio)

You have a file in IIS, you want to debug/step through

Open new instance of Visual studio (you may want to run it as Administrator)
File -> Open -> Web Site
In the left side, select Local IIS
Expand and locate the IIS Website your aspx file is part of

Any exception on this site will be caught now by VS

Monday, March 11, 2019

Unity capture animation to sprites (with transparency)

  1. Create a new Scene
  2. In game tab, set the resolution to be the same as your captured sprites should be
  3. Drag your prefab or gameobject for animation into your scene and position it as you like
  4. Save below code as FrameDump.cs
  5. Drag the FrameDump.cs to camera object
  6. Set the "frame count" to number of frames to capture. For, example, if you have created an animation with Samples 60 and it runs for 1 minute, set this to 60. Open your animation on your animation tab in Unity to see this
  7. Run your new Scene in editor by clicking Play
  8. You can stop after the "frame count" counts down to 0
  9. The files are saved to c:\temp\cap


 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
34
35
36
37
38
39
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class FrameDump: MonoBehaviour {
 string folder = "C:\\temp\\cap";
 [SerializeField]
 int frameCount = 60;
 int MAXFRAMES = 0;

 // Initialization
 void Start() {
  // delete folder (and anything inside it) if it exists
  if (System.IO.Directory.Exists(folder)) {
   System.IO.Directory.Delete(folder, true);
  }
  // create the folder for dumps
  System.IO.Directory.CreateDirectory(folder);
  MAXFRAMES = frameCount;

 }

 private void OnPostRender() {
  if (frameCount <= 0)
   return;
  string filename = string.Format("{0:000000}", (MAXFRAMES - frameCount));
  Debug.Log("File: " + filename);
  //Create a new texture with the width and height of the screen
  Texture2D texture = new Texture2D(Screen.width, Screen.height, TextureFormat.ARGB32, false);
  //Read the pixels in the Rect starting at 0,0 and ending at the screen's width and height
  texture.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0, false);
  texture.Apply();
  File.WriteAllBytes(folder + "\\" + filename + ".png", texture.EncodeToPNG());
  Destroy(texture);
  frameCount--;
 }
}


Saturday, January 12, 2019

Consuming from specific Offset, in a Topic, with Confluent Kafka .Net client


From the example in the home page help here https://github.com/confluentinc/confluent-kafka-dotnet#basic-consumer-example 

Change below
c.Subscribe("my-topic");

and update it as below (assuming topic is "my-topic" and offset is 123456)

c.Assign(new TopicPartitionOffset(new TopicPartition("my-topic", new Partition()), new Offset(123456)));


Monday, January 7, 2019

Confluent-kafka-dotnet Consumer (client) - sasl configuration example

To use SSL Auth via SASL for Confluent's .NET Client for Apache Kafka,
update the example in the home page help here https://github.com/confluentinc/confluent-kafka-dotnet#basic-consumer-example with below config


var config = new ConsumerConfig

{
    BootstrapServers = brokerList,
    GroupId = groupId,
    EnableAutoCommit = false,
    StatisticsIntervalMs = 5000,
    SessionTimeoutMs = 6000,
    AutoOffsetReset = AutoOffsetResetType.Earliest,
    SecurityProtocol = SecurityProtocolType.Sasl_Ssl,
    SaslMechanism = SaslMechanismType.ScramSha512,
    SaslUsername = "mykafkausername",
    SaslPassword = "mykafkapassword",
    SslCaLocation = "MyKafkaCA.pem" //PEM file location (you may have to copy this to the .bin location
};


Note: 1.0 beta3 has the below changes
AutoOffsetReset = AutoOffsetReset.Earliest,
SecurityProtocol = SecurityProtocol.SaslSsl,
SaslMechanism = SaslMechanism.ScramSha512,

Windows - check to see if a remote server port is open

We can use portqry tool for this. Windows server editions should already come with this tool.

if not already in windows, you can download a command line or UI version from below
https://support.microsoft.com/en-us/help/310099/description-of-the-portqry-exe-command-line-utility

Usage is as below.
For example, to check if servername has port 80 open, do below

portqry -n servername -e 80

Friday, January 4, 2019

Unity - How to take a screenshot in game with script (at a specific resolution)

Attach below script to any object in your game. Click Play in editor and at the desired point, press "z" in keyboard to take your screenshot as a png file (if game is built, use Ctrl-Z). The screenshot will be stored (ie; the save location) in your Unity project's root folder


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TakeScreenShot : MonoBehaviour {

 // Update is called once per frame
 void Update () {
#if UNITY_EDITOR
        if (Input.GetKey(KeyCode.Z))
#else
     if((Input.GetKey(KeyCode.RightControl) 
      || Input.GetKey(KeyCode.LeftControl)) 
        && Input.GetKeyDown(KeyCode.Z))
#endif
        {
            Debug.Log("Taking screenshot");
            ScreenCapture.CaptureScreenshot("ScreenShot-" + 
             UnityEngine.SceneManagement.SceneManager.GetActiveScene().name + 
             ".png");
            Debug.Log("Done");
        }           
    }
}


Tip: If you want a specific resolution of screenshot, make sure to set this in the player (ie; in Game tab)
In the below example, we are setting resolution to 2400 x 1200. When you use above script, the saved screenshot will have the same resolution.

See example below. Use + symbol to add custom resolutions

Turn on Windows 11 Fast Boot

If windows starting is slow, to enable windows 11 fast startup/boot,  Press Windows + R, type powercfg.cpl, and hit Enter.  This will direct...