Closure - First class function that have access to free variables in a lexical environment
Coroutine - is a subroutine that have multiple entry points for suspending and resuming at certain locations - ex, C# we can use yield.
Idempotent - is an operation that be called multiple times without changing the result beyond initial application - ex, Cancel Order/Change address are idempotent, but Placing an order is not.
Reentrant - a re-entrant block of code is one that can be entered by another actor
before an earlier invocation has finished, without affecting the path
that the first actor would have taken through the code. That is, it is
possible to re-enter the code while it's already running and still produce correct results.
Virtual Machine - Software emulation of a computer, two types - System VM and Process VM. Process VM provides portability and flexibility, and is bound to a single process. Loads when process load, and unloads when process goes out of scope. Process will be restricted to the resources/abstraction provided by VM. CLR is an example of Process VM
Friday, 14 February 2014
Thursday, 13 February 2014
C# Closure
As per wiki, Closure is a first class function with free variables that are bound in the lexical environment.
First class function is function that are treated as variable. C# we have delegates.
Free variables, are ones that are accessible to function which are not either passed as argument or defined locally.
Lexical environment means scope.
We call it closure because, first class function closes the variable it refers. In the example below, though myVar goes out of scope after first inc(), it is closed by the first class function(inc). It would print 7 & 9.
First class function is function that are treated as variable. C# we have delegates.
Free variables, are ones that are accessible to function which are not either passed as argument or defined locally.
Lexical environment means scope.
We call it closure because, first class function closes the variable it refers. In the example below, though myVar goes out of scope after first inc(), it is closed by the first class function(inc). It would print 7 & 9.
static void Main(string[] args){ var inc = GetAFunc(); Console.WriteLine(inc(5)); Console.WriteLine(inc(6));}public static Func<int,int> GetAFunc(){ var myVar = 1; Func<int, int> inc = delegate(int var1) { myVar = myVar + 1; return var1 + myVar; }; return inc;}
Labels:
c#
Location:
Bangalore, Karnataka, India
Tuesday, 17 December 2013
The Network Device Enrollment Service received an http message without the "Operation" tag, or with an invalid "Operation" tag.
We were facing this issue on one of our Microsoft NDES server setup, when tried to enrol/request certificate. IIS logs(C:\inetpub\logs\LogFiles\W3SVC1) shows the http response code being returned is 404.15.
So server denies our request because while enrol/requesting certificate, we need to send the CSR(certificate response)in query string, so length is big. Checking the CertSrv/mscep's Request Filtering/Max Query String(bytes) setting on that erroneous server was 2048. Increasing this size to 65536 solved the issue. Between by default when you install NDES, the limit would be 65536, but looks like not always the case to be. We can also directly edit the values in applicatioHost.config(C:\Windows\system32\inetsrv\config)
HTTP Error 404.15 - Not Found
The request filtering module is configured to deny a request where the query string is too long.
So server denies our request because while enrol/requesting certificate, we need to send the CSR(certificate response)in query string, so length is big. Checking the CertSrv/mscep's Request Filtering/Max Query String(bytes) setting on that erroneous server was 2048. Increasing this size to 65536 solved the issue. Between by default when you install NDES, the limit would be 65536, but looks like not always the case to be. We can also directly edit the values in applicatioHost.config(C:\Windows\system32\inetsrv\config)
Labels:
CA,
Certificates,
Microsoft,
NDES
Location:
Bangalore, Karnataka, India
Wednesday, 11 December 2013
Log4Net File logging is not logging in an ASP.NET Web Application
I had this issue, checked for issues in web.config, but turned out to be a security issue as the AppPool identity account is 'NetworkService'. Changing it to LocalSystem made it work.
Labels:
Log4Net
Location:
Bangalore, Karnataka, India
Monday, 2 December 2013
Microsoft NDES - Identity User account configuration
While configuring Microsoft NDES, you would need to choose an account for impersonation(under which SCEP ISAPI runs). Below steps should help you do that.
Standalone CA
1. Open Certification Authority, go to Action, Click
Properties
2. Security Tab, in Groups or user names, click Add.
3. Once added, Check 'Manage CA'
Enterprise CA(by default Domain Admins have default permissions)
1
1. Create a user in DC, need not to
be part of any administrator group.
2. Go to CA Server, type
‘certtmpl.msc’. This will open certificate template window.
3.
For all marked templates (IPSec (Offline
request), CEP Encryption, Exchange Enrollment Agent (Offline request)), given
‘Enroll’ permission for the added user.
4.
Double click each template, Security tab, add
User and check ‘Enroll’
Location:
Bangalore, Karnataka, India
Subscribe to:
Posts (Atom)