Wednesday, March 6, 2013

Mac OSX | Installing PHP Composer under MAMP

Install MAMP:
This Assumed that you already install MAMP. If not just download and install from here.

Setup Bash Profile:
Open a terminal (Launchpad > Other > Terminal)

Biboyatienza-MacBook-Pro:~ biboyatienza$ open ~/.bash_profile


Then add/append the line below, at the time of this writing my MAMP is using php5.4.4

export PATH=/Applications/MAMP/bin/php/php5.4.4/bin:$PATH


Check PHP Setup And Install PHP Composer:
 Last login: Wed Mar 6 06:58:28 on ttys000  
 Biboyatienza-MacBook-Pro:~ biboyatienza$ php --version  
 PHP 5.4.4 (cli) (built: Jul 4 2012 17:28:56)   
 Copyright (c) 1997-2012 The PHP Group  
 Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies  
   with XCache v2.0.0, Copyright (c) 2005-2012, by mOo  
 Biboyatienza-MacBook-Pro:~ biboyatienza$ curl -s https://getcomposer.org/installer | php  
 #!/usr/bin/env php  
 All settings correct for using Composer  
 Downloading...  
 Composer successfully installed to: /Users/biboyatienza/composer.phar  
 Use it: php composer.phar  
 Biboyatienza-MacBook-Pro:~ biboyatienza$  

Tuesday, March 5, 2013

C# | How to write entry to Windows Event

Here's a sample code on how to write to Windows Event Logs.
Keep an eye on variable maximumCharacterThatTheWindowEventLogsCanHandled where I used 30,000 but for it's actually 32,766 :)

     private static void WriteToWindowsEventLog(string logs)  
     {  
       const string source = "biboyatienza Sample Windows Services";  
       const string log = "Application";  
       const int maximumCharacterThatTheWindowEventLogsCanHandled = 30000;  
       if (!EventLog.SourceExists(source))  
         EventLog.CreateEventSource(source, log);  
       string message = (logs.Length >= maximumCharacterThatTheWindowEventLogsCanHandled  
                   ? HttpUtility.HtmlEncode(logs).Substring(0, maximumCharacterThatTheWindowEventLogsCanHandled)  
                   : HttpUtility.HtmlEncode(logs));  
       EventLog.WriteEntry(source, message);  
     }  

Windows Event Logs | Log entry string is too long. A string written to the event log cannot exceed 32766 characters

 Date/Time: 05.03.2013 10:55:43  
 Method Name: CbtImportFromStaService.RunImportFromSta()  
 Error Details: Log entry string is too long. A string written to the event log cannot exceed 32766 characters.  
 Source: System  
 Stack Trace:  at System.Diagnostics.EventLog.InternalWriteEvent(UInt32 eventID, UInt16 category, EventLogEntryType type, String[] strings, Byte[] rawData, String currentMachineName)  
   at System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)  
   at System.Diagnostics.EventLog.WriteEntry(String source, String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)  
   at System.Diagnostics.EventLog.WriteEntry(String source, String message)  
   at CBTImportFromSTA.WindowsService.Helpers.LogHelper.WriteToWindowsEventLogs(String logs)  
   at CBTImportFromSTA.WindowsService.Helpers.LogHelper.LogErrorsWindowsEventLogs(String exceptionContent)  
   at CBTImportFromSTA.WindowsService.Helpers.MailHelper.SendEmail(String exceptionContent, String optionalSubject)  
   at CBTImportFromSTA.WindowsService.CbtImportFromStaService.GetFirstXmlAttachmentOfEachEmail(MailMan mailman)  
   at CBTImportFromSTA.WindowsService.CbtImportFromStaService.FetchEmailsFrom_cbtresults_dot_import_at_osm_dot_biz_AndExtractOneXmlFileFromEachEmail()  
   at CBTImportFromSTA.WindowsService.CbtImportFromStaService.RunImportFromSta()  

Thursday, August 9, 2012

Merak 9.4.2, CLSID {FBD995D1-EA68-4BD0-909D-461102F67E8F} problem

OS Version:Windows 7 64 bit

Visual Studio:Visual Studio 2010

Language:C#

Component:
Merak 9.4.2

Problem:

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {FBD995D1-EA68-4BD0-909D-461102F67E8F}


Resolution:
Compile using x86, that solved my problem for the past 3 days =)

Monday, June 11, 2012

Javascript | How to disable/enable the href functionality

Problem:
It's been a couple of days since I started solving the issue of href = "#", what I want is to disable it on certain occasion. Means there would be no active link will be shown on "Visit biboyatienza blogspot!" link, it should be display as a normal text no underline no mouse over.

From : Visit biboyatienza blogspot!


To : Visit biboyatienza blogspot!


Solution:
 var chk = document.getElementById('chkShoulBeActive');  
 if(chk != null)                 
 {  
                var hl = document.getElementById('hlSite');  
                if(hl != null)  
                {  
                     if(chk.checked)  
                          hl.addAttribute('href');  
                     else       
                          hl.removeAttribute('href');  
                }  
 }  

Hope you find it helpful

MS SQL | Enable/Disable All Database Triggers on a given Server

Problem:
A simple script that capable of enabling or disabling all databases triggers on a given Microsoft SQL Servers

Solution:
 DECLARE @Status VARCHAR(20)  
 -- Switch to enable/disable:   
 SET @Status = 'DISABLE'  
 -- SET @Status = 'ENABLE'  
 CREATE TABLE #tempTriggerToBeDeleted (RowId int IDENTITY(1,1), SqlTrigger VARCHAR(255))  
 DECLARE @dbName VARCHAR(255)  
 DECLARE @strSQL NVARCHAR(2000)  
 DECLARE ListDbs CURSOR  
 -- Insert into a temp database table:  
 FOR  
      SELECT name FROM master..sysdatabases       
 OPEN ListDbs  
 FETCH NEXT  
      FROM ListDbs  
      INTO @dbName  
 WHILE @@fetch_status = 0  
 BEGIN  
 SELECT @strSQL =   
 '  
      USE ' + @dbname + '  
      SELECT db_name()  
      INSERT INTO #tempTriggerToBeDeleted  
      SELECT   
           ''ALTER TABLE ' + @dbname + ''' + ''.'' + SU.name + ''.'' + SO2.[name] + '' '+ @Status +' TRIGGER '' + SO1.[name] AS DisableTrigger   
      FROM sysobjects SO1   
      JOIN sysobjects SO2 ON SO1.parent_obj = SO2.[id]   
      INNER JOIN syscomments Comments On SO1.id = Comments.id  
      INNER JOIN sysusers SU ON SO1.uid = SU.uid  
      WHERE SO1.xtype=''TR''  
 '  
 EXEC sp_executesql @strSQL  
 PRINT db_name()  
 FETCH NEXT  
      FROM ListDbs  
      INTO @dbName  
 END   
 CLOSE ListDbs  
 DEALLOCATE ListDbs  
 SELECT * FROM #tempTriggerToBeDeleted  
 DECLARE   
      @EndCount INT,  
      @CurrentCount INT  
 SET @EndCount = 0  
 SET @CurrentCount = 1  
 SELECT @EndCount = COUNT(RowId) FROM #tempTriggerToBeDeleted  
 WHILE @CurrentCount <= @EndCount  
 BEGIN  
      DECLARE @SqlTrigger NVARCHAR(2000)  
      SET @SqlTrigger = ''  
      SELECT TOP 1 @SqlTrigger = SqlTrigger FROM #tempTriggerToBeDeleted WHERE RowId = @CurrentCount  
      PRINT @SqlTrigger       
      EXEC sp_executeSQL @SqlTrigger  
      SET @CurrentCount = @CurrentCount + 1  
 END        
 DROP TABLE #tempTriggerToBeDeleted  
 -- Check Triggers Status on current Database:  
 /*  
 SELECT   
      T.[name] as TableName,   
      TR.[Name] as TriggerName,   
      CASE WHEN 1=OBJECTPROPERTY(TR.[id], 'ExecIsTriggerDisabled')THEN 'Disabled' ELSE 'Enabled' END AS Status   
 FROM   
      sysobjects T   
      INNER JOIN sysobjects TR on t.[ID] = TR.parent_obj   
 WHERE   
      (T.xtype = 'U' or T.XType = 'V')   
      AND (TR.xtype = 'TR') ORDER BY T.[name], TR.[name]   
 */