Monday, December 19, 2016

Why is PHP so complex?

1. This is Hello World in Assembly Language:
  1. .model small
  2. .stack 100h
  3.  
  4. .data
  5. msg db 'Hello world!$'
  6.  
  7. .code
  8. start:
  9. mov ah, 09h
  10. lea dx, msg
  11. int 21h
  12. mov ax, 4C00h ;
  13. int 21h
  14. end start
2. This is Hello World in C++:
  1. #include <iostream>
  2.  
  3. int main() {
  4. std::cout << "Hello world!\n";
  5. }
3. This is Hello World in PHP:
  1. <?php
  2. print "Hello world!";
  3. ?>
4. This is Hello World in the Big Bang Theory:
From #1 to #3Complexity should not be defined by how many lines of codes an application contains. On the contrary, each language, from #1 to #3, is least complex and makes better applications if used in the right context. For example:
#1. Assembly writes better CPU/GPU processes,
#2. C++ writes better operating systems and video games,
#3. PHP … let’s just say … is versatile and practised by a huge community.
In the wrong context, any languages could become complex. For example, it is difficult and impractical to make a corporate website with Assembly and a video game with PHP. Programming is easiest when the right languages and tool sets are used (see also JavaJavaScriptPythonC language family and Haskell).
Between #3 and #4. Human language is still the most beautiful language ever. Our mind can interpret Hello World in both pictures and letters - more accurately than any computers or computer languages. How is that even possible is another topic all by itself. Yet, that is not to say that human language is not complex. It is.
I look forward to a day when we have the ability to program in human gestures and native languages. Meanwhile, between #3 and #4, that’s the next best thing we have.

Tuesday, December 13, 2016

What's the difference between RHEL and CentOS?


  1. Fedora is the main project, and it’s a communitity-based, free distro focused on quick releases of new features and functionality.
  2. Redhat is the corporate version based on the progress of that project, and it has slower releases, comes with support, and isn’t free.
  3. CentOS is basically the community version of Redhat. So it’s pretty much identical, but it is free and support comes from the community as opposed to Redhat itself.
There's no functional difference. 
 CentOS is RHEL relabeled to remove the Red Hat identity. 
Red Hat isn't going to support it, but you do get the benefit of all the work they put in on integration of the distribution,

fedora-redhat-centos

Friday, December 2, 2016

Delete all files & folders from SharePoint library

Add-PSSnapin Microsoft.SharePoint.PowerShell

# Replace siteurl with actual web url
$web = Get-SPWeb -Identity "siteurl"
# Replace docurl with document library url
$list = $web.GetList("docurl")

function DeleteFiles {
    param($folderUrl)
    $folder = $web.GetFolder($folderUrl)
    foreach ($file in $folder.Files) {
        # Delete file by deleting parent SPListItem
        Write-Host("DELETED FILE: " + $file.name)
        $list.Items.DeleteItemById($file.Item.Id)
    }
}

# Delete root files
DeleteFiles($list.RootFolder.Url)

# Delete files in folders
foreach ($folder in $list.Folders) {
    DeleteFiles($folder.Url)
}

# Delete folders
foreach ($folder in $list.Folders) {
    try {
        Write-Host("DELETED FOLDER: " + $folder.name)
        $list.Folders.DeleteItemById($folder.ID)
    }
    catch {
        # Deletion of parent folder already deleted this folder
    }
}

Tuesday, November 29, 2016

CAML, get all list items where text field contains a value?

Server Object Model:


query.Query = "<Where><Contains><FieldRef Name="Name"/><Value Type="Text">" + "YourValue" + "/Value></Contains></Where>";




Client Object Model:

"<Query><Where><Contains><FieldRef Name="Name"/><Value Type="Text">" + "YourValue" + "/Value></Contains></Where></Query>";

CAML query filter for HTML BR tag

<Value Type="Note"><!CDATA[<BR>]]></Value>

<Query>
   <Where>
      <Contains>
         <FieldRef Name='title_id ' />
         <Value Type='Computed'>o</Value>
      </Contains>
   </Where>
</Query>