Vinod Sebastian – B.Tech, M.Com, PGCBM, PGCPM, PGDBIO

Hi I'm a Web Architect by Profession and an Artist by nature. I love empowering People, aligning to Processes and delivering Projects.

Category: IT Notes

IT Notes

  • Transaction Control Language

    Understanding Transaction Control Language in Databases

    Transaction Control Language (TCL) plays a crucial role in managing transactions within a database. It allows users to control the flow of transactions by defining checkpoints, committing or rolling back changes, and creating savepoints.

    Key Features of Transaction Control Language:

    • Session-based: TCL operates on a per-session basis, allowing users to control transactions within a specific session without affecting others.
    • SAVEPOINT: TCL enables the creation of savepoints, which define a specific point within a transaction to which you can roll back if needed.
    • ROLLBACK WORK: This command is used to undo changes made within a transaction up to a specified savepoint or the beginning of the transaction.
    • COMMIT WORK: When you are satisfied with the changes made within a transaction, the COMMIT WORK command is used to permanently apply those changes to the database.

    By understanding and utilizing TCL effectively, database users can ensure data integrity and consistency while managing transactions efficiently.

  • Miscellaneous

    Database Tips and Tricks

    Regular Expressions

    Regular expressions (regex) are powerful tools for pattern matching in strings. In Oracle, there are several functions that utilize regular expressions:

    • REGEX_SUBSTR(string, pattern, position, which_occurrence, instruction_of_match): Returns the character string matched.
    • REGEX_INSTR(string, pattern, position, which_occurrence, optional, instruction_of_match): Returns the position of the match. Set optional = 1 to get the position after the match.
    • REGEX_REPLACE(string, pattern, replace, position, optional, instruction_of_match): Replaces the matched pattern in the string.
    • CHECK (REGEXP_LIKE(column_name, regex_expression)): Checks if a column value matches the regex pattern.
    • Useful information:
      • Instructions for matching include: c for case-sensitive, i for case-insensitive, n to match newline, m for multiline, and x to ignore white spaces.
      • [ ] matches any one character, while [^ ] matches any character except the specified one.
      • [:graph:] is equivalent to [A-Za-z0-9punctuation].
      • Quantifiers: + for one or more, * for zero or more, ? for zero or one, and {n1}, {n1,}, {n1,n2} for specific repetitions.
      • (ab|bc|cd) uses | as an OR operator.
      • Use to escape special characters.
      • ^ denotes the start of a string, while $ denotes the end.
      • The first captured expression is referenced as 1.

    Session Control Statements

    In Oracle, session control statements are used to manage the current session:

    • ALTER SESSION: Modifies the current session’s settings.
    • SET ROLE: Assigns roles to the current session.

    System Control Statements

    System control statements in Oracle are used for system-wide changes:

    • ALTER SYSTEM: Alters system parameters.

    Embedded SQL Statements

    Embedded SQL statements refer to any Data Definition Language (DDL), Data Manipulation Language (DML), or Transaction Control Language (TCL) integrated into a third-generation programming language (3GL).

    Miscellaneous Tips

    Here are some additional miscellaneous tips and commands:

    • System Privileges vs. Object Privileges: System privileges are like having a license to drive any car, while object privileges are specific to driving a particular car.
    • CREATE USER username IDENTIFIED BY password: Creates a new user with the specified username and password.
    • ALTER USER username IDENTIFIED BY password: Modifies the password for an existing user.
    • DROP USER username: Removes a user from the database.
    • DROP USER username CASCADE: Drops a user and all objects owned by the user.
    • CONNECT username/password: Connects to the database using the specified username and password.
  • IT Notes

    šŸ‘Øā€šŸ’» About Me

    I am a full-stack software engineer with a passion for computers since my teenage years. My expertise spans various programming languages such as PHP, Java, .NET, and Python, along with proficiency in front-end technologies including HTML, CSS, JavaScript, and jQuery. I have a strong background in databases such as MySQL, MSSQL, DB2, and Oracle, coupled with hands-on experience in Photoshop, wireframing, SEO, and digital marketing.

    My early career involved manual testing, QC, and automation using QTP, providing me with a comprehensive understanding of software delivery processes. Currently, I maintain a keen interest in data science and machine learning, constantly exploring ways to integrate logic and insights into intelligent systems.

    šŸ”„ From Developer to Architect

    Transitioning into a Salesforce and WordPress architect role, I specialize in assisting clients in building and expanding CRM, CMS, and E-Commerce platforms. My Salesforce proficiency includes administration, LWC development, Einstein Analytics, chatbots, Marketing Cloud, and Pardot. I have facilitated businesses in selling on Amazon and eBay using Linnworks and developed seamless storefronts with WordPress-WooCommerce.

    Beyond coding, I oversee projects and client interactions to ensure that delivery, strategy, and execution align with organizational objectives.

    If you are interested in collaboration, feel free to reach out to me at opportunities[at]vinodsebastian.com.

    🧠 IT Notes: My Digital Scratchpad

    On my website, I host a collection of IT Notes, which serve as quick-reference guides I have developed during my programming journey. These notes cover a wide range of topics including HTML, CSS, Regex, OOPS, JavaScript, jQuery, PHP, Java, ASP.NET, C#, Databases, Linux, URL Rewrite, SEO, Project Management, Hosting, and more.

    Originally created as rough memory aids, I am now transforming them into structured articles and videos available on my YouTube channel: IT Made Easy. I encourage you to subscribe, share, and provide feedback or corrections to admin[at]vinodsebastian.com.

    šŸŽ­ Not Just a Nerd

    Despite my passion for technology, I do not fit the stereotypical nerd mold. Currently, I am contemplating whether Al Pacino or Robert De Niro is the superior actor. It amuses me that “Perl” is more than just a decorative gem and “Python” is not solely a type of snake. As I often say:

    ā€œI’m someone whose tire got punctured by ‘IT’ and decided to make it my destiny.ā€

  • General

    General

    Agile Management

    Agile management is an iterative method of determining requirements. It allows for the customer to provide further requirements after experiencing previous deliverables.

    • Agile comes to prominence when requirement gathering will take a significant amount of time or when requirements constantly change.
    • For large classical projects where requirements are relatively constant, traditional Waterfall management is typically employed.

    Lean Management

    Lean management believes in continuous production that maximizes customer value by minimizing waste in the shortest time through standardization. It involves the following key principles:

    • Eliminate waste – identify and break down processes, refine them, and eliminate wastage between them.
    • Empowerment, respect, and integrity – empower individuals to make decisions.
    • Decide later and deliver fast – set aggressive targets, continuously spread work, and protect critical paths.
    • Amplify learning – foster an environment of continuous learning.
    • See the whole – visualize the entire process and seek improvements.

    People Management

    People management should be insistent, persistent, and consistent. It should be driven by values and results.

    • People – Identify, allocate, and empower individuals effectively.
    • Place – Create a workspace that encourages learning, sharing, rewarding, and fun.
    • Mission – Add a sense of purpose and meaning to tasks.
    • Vision – Align actions with future plans and goals.

  • Notes

    Java Programming Notes

    Identifiers and Class Members

    • Identifiers in Java must start with a letter, a currency character ($), or an underscore (_).
    • Class members are initialized with default values of binary 0s for primitive types and null for objects.

    Modifiers in Java

    • Default: Scope limited to the same package.
    • Public: Scope visible everywhere.
    • Protected: Scope within the package and all subclasses.
    • Private: Scope limited to the class.


    Static modifiers are used to create class variables and methods that can be accessed without an instance of the class. The static keyword is also used for static blocks to initialize static data members. These blocks execute before the main() method.


    Synchronized is used to ensure that a method can only be accessed by one thread at a time, which is crucial in multithreading scenarios.

    Interfaces and Polymorphism

    • Interfaces can be implemented by a class or extended by another interface, while classes can only be extended.
    • Polymorphism can be achieved through overloading or overriding methods.

    Constructor and Static Methods

    • Constructors should always have a call to super or this. If a constructor is provided in the base class, a call to super must be included in the derived class constructor.
    • Static methods are called by class name, while instance methods are called by objects.

    Nested Classes in Java


    Nested classes in Java can be divided into inner classes and static nested classes. Inner classes have an association with an instance of their enclosing top-level class, while static nested classes exist independently. Anonymous inner classes are useful for on-the-fly object creation without defining a separate top-level class.

    String Handling and Serialization

    • Strings in Java are immutable, and StringBuffer is used for thread safety while StringBuilder is faster for string concatenation.
    • Serialization in Java stores objects in a serialized form, excluding transient and static variables. Serialization involves methods like readObject and writeObject.

    Exception Handling and Threads

    • Exceptions in Java are categorized into unchecked exceptions (subclass of RuntimeException) and checked exceptions. Errors are at the same level as unchecked exceptions.
    • Threads can be created by inheriting from the Thread class or implementing the Runnable interface. Various thread operations like wait, notify, yield, and sleep are used for synchronization.

    Comparator and Comparable Interfaces

    • The Comparator interface is used for custom sorting logic, while the Comparable interface provides default sorting behavior.
    • Both interfaces offer methods for comparing objects based on specific criteria.

    Importing Classes and JAR Files

    • Normal import declarations import classes from packages, while static import declarations import static members from classes for direct usage.
    • JAR files are checked in specific locations to resolve classpath dependencies.

    Additional Concepts

    • Garbage collection in Java handles memory management by removing unreferenced objects in a non-deterministic manner.
    • Assertions are used to validate invariants in the code by triggering an AssertionException if the condition is false.

    Overview of Java Collections

    • Java provides various collection types like Lists, Sets, Maps, and Queues for storing and manipulating data.
    • Features like ordering, sorting, and thread safety are inherent properties of specific collection types like Linked, Tree, and Vector.

    Conclusion

    Java programming encompasses a wide range of concepts and features that are essential for developing robust and efficient applications. By understanding the core principles discussed in these notes, developers can enhance their skills in Java programming and build scalable and reliable software solutions.

  • Notes

    Notes on C# Programming

    Access Modifiers in C#

    In C#, access modifiers control the visibility of classes, methods, and other members:

    • Public: Accessible by any code in the same or another assembly.
    • Private: Accessible only within the same class or struct.
    • Protected: Accessible within the same class, derived classes, or the same assembly.
    • Internal: Accessible by any code in the same assembly.
    • Protected internal: Accessible by code in the declaring assembly or derived classes in other assemblies.

    Default Access Modifiers

    In C#, classes are internal by default, while their members are private.

    Interfaces in C#

    Interfaces in C# can contain methods, properties, events, or indexers. Interface members are always public and cannot include access modifiers or be static.

    Sealed Classes

    A sealed class in C# cannot be inherited.

    Constructor Behavior

    If no constructor is explicitly defined, a default constructor is provided by the compiler.

    Shadowing and Inheritance

    When inheriting classes in C#, the new keyword can be used to indicate shadowing of inherited members.

    Extension Methods

    Extension methods allow adding new methods to existing types like integers using static classes and methods.

    Named Arguments

    In C#, named arguments can be used in method calls after positional arguments.

    Indexers in C#

    class IPAddress {
        public int[] ip;
        public int this[int index] {
            get { return ip[index]; }
            set { ip[index] = value; }
        }
    }
    IPAddress myIp = new IPAddress();
    myIp[0] = 0;

    Reference Variables and Generics

    Reference variables use ref in both calling arguments and called parameters. They are commonly used in generics.

    Conversion and Casting

    C# provides various methods for conversions and casting, such as int.Parse for parsing integers and System.Convert.

    Unmanaged Code

    Unmanaged code in C# refers to code written outside the Common Language Runtime (CLR) and can be accessed using P/Invoke and COM Interop.

    P/Invoke in C#

    Static extern uint GetShortPathName([MarshalAs(UnmanagedType.LPStr)] string Pathname);

    COM Interop

    COM Interop in C# involves adding references, using dynamic data types, and utilizing interfaces for communicating with COM components.

    Strings in C#

    C# provides various constructors and methods for working with strings, including formatting options and immutable string behavior.

    Delegates and Events

    Delegates and events are powerful features in C# for implementing callbacks and event-driven programming.

    Exception Handling

    C# supports exception handling using try-catch blocks, custom exceptions, and serialization for cross-AppDomain exceptions.

  • Abbreviations

    Common Abbreviations in the IT World

    Abbreviations are essential in the IT world as they help simplify complex terms and improve communication efficiency within the tech industry. Familiarizing yourself with these common abbreviations can enhance your understanding of various IT concepts and technologies.

    Abbreviation List:

    • AI: Artificial Intelligence
    • ALGOL: Algorithmic Language
    • API: Application Programming Interface
    • ASCII: American Standard Code for Information Interchange
    • BASIC: Beginner’s All-Purpose Symbolic Instruction Code
    • BCC: Blind Carbon Copy
    • BINAC: Binary Automatic Computer
    • BIOS: Basic Input Output System
    • CC: Carbon Copy
    • CAD: Computer Aided Design
    • CMS: Content Management System
    • CRM: Customer Relationship Management
    • CSS: Cascading Style Sheets
    • CDROM: Compact Disc Read Only Memory
    • COBOL: Common Business Oriented Language
    • DBMS: Database Management System
    • DBA: Database Administrator
    • DNS: Domain Name System
    • DVD: Digital Versatile Disk
    • e-Commerce: Electronic Commerce
    • EBCDIC: Extended Binary Coded Decimal Interchange Code
    • EOB: End Of Business Day
    • EOD: End Of Day
    • EOL: End Of Line
    • EPROM: Erasable Programmable Read Only Memory
    • EXE: Executable
    • FAX: Facsimile
    • FORTRAN: Formula Translation
    • FS: File System
    • FTP: File Transfer Protocol
    • GIF: Graphics Interchange Format
    • GB: Gigabyte
    • GSM: Global System for Mobile Communication
    • HTTP: Hyper Text Transfer Protocol
    • HTML: Hyper Text Markup Language
    • ISP: Internet Service Provider
    • IVR: Interactive Voice Response
    • IMAP: Internet Message Access Protocol
    • JPEG: Joint Photographic Experts Group
    • JS: JavaScript
    • KB: Kilobyte
    • KPI: Key Performance Indicator
    • LED: Light Emitting Diode
    • MB: Megabyte
    • MMS: Multimedia Messaging Service
    • MPEG: Moving Picture Experts Group
    • MIPS: Million Instructions Per Second
    • MICR: Magnetic Ink Character Recognition
    • NOS: Network Operating System
    • OOP: Object-Oriented Programming
    • PC: Personal Computer
    • PDF: Portable Document Format
    • PAN: Personal Area Network
    • PHP: Hypertext Preprocessor
    • PPP: Point-to-Point Protocol
    • PROM: Programmable Read-Only Memory
    • PING: Packet Internet Groper
    • RDBMS: Relational Database Management System
    • RAM: Random Access Memory
    • REST: REpresentational State Transfer
    • ROM: Read-Only Memory
    • RIP: Routing Information Protocol
    • SLA: Service Level Agreement
    • SOAP: Simple Object Access Protocol
    • SQL: Structured Query Language
    • SRAM: Static Random Access Memory
    • SMTP: Simple Mail Transfer Protocol
    • SIM: Subscriber Identity Module
    • TCP: Transmission Control Protocol
    • TCPIP: Transmission Control Protocol Internet Protocol
    • TB: Terabyte
    • URL: Uniform Resource Locator
    • URI: Uniform Resource Identifier
    • USB: Universal Serial Bus
    • USP: Unique Selling Proposition
    • VDU: Visual Display Unit
    • VGA: Video Graphics Array
    • WWW: World Wide Web
    • WiFi: Wireless Fidelity
    • WPA: Wi-Fi Protected Access
    • WLAN: Wireless Local Area Network
    • WP: WordPress
    • WORM: Write Once Read Many
    • WSDL: Web Services Description Language
    • XML: Extensible Markup Language
    • ZB: Zettabyte
  • General

    Understanding HTML Basics

    Types of HTML Documents

    HTML documents can be classified into three main types:

    • Traditional HTML: This type follows standard HTML syntax and is widely used in web development.
    • Strict HTML: Documents that strictly adhere to HTML and CSS specifications to ensure consistent rendering across browsers.
    • Frameset HTML: Used for creating web pages with frames to divide the browser window into sections.

    Rendering Modes in Web Browsers

    Web browsers operate in different rendering modes to handle web page display:

    • Standards Mode: Renders pages according to the latest HTML and CSS specifications for modern web standards compliance.
    • Quirks Mode: Emulates older browser behavior to maintain compatibility with legacy web content and avoid rendering issues.

    HTML Form Best Practices

    Follow these best practices when designing HTML forms for optimal functionality:

    • Avoid nesting forms within each other to prevent unpredictable behavior across browsers.
    • Set file upload size limits using a hidden field:
    • <input type="hidden" name="MAX_FILE_SIZE" value="500000" />
    • Choose appropriate form encoding methods based on content:
      1. application/x-www-form-urlencoded: Default encoding suitable for most form submissions.
      2. multipart/form-data: Use for forms involving file uploads to handle binary data properly.

    Base Href and Meta Tags

    The <base> tag sets a base URL for relative URLs within a page:

    <base href="http://www.example.com/images/" />

    Defining a base URL simplifies managing relative links on a website, especially when dealing with URL rewriting.

    Meta tags provide additional information about HTML documents:

    <meta http-equiv="refresh" content="5; url=autoforward_target.html">
    <meta http-equiv="pragma" content="no-cache">

    These tags control automatic page redirection and caching behavior to enhance user experience and optimize page performance.

  • General

    CSS Tips and Tricks

    Understanding CSS Display Property

    The display: none property in CSS is used to hide an element completely from the layout. This means the element will not be visible and will not take up any space on the page. On the other hand, the visibility: hidden property hides the element without affecting the layout. The element is not visible, but space is reserved for it in the layout.

    Block Elements in CSS

    In CSS, block elements are those that start on a new line and take up the full width available. They create a line break before and after themselves, affecting the layout of the page. Examples of block elements include <div>, <p>, and <h1> to <h6>.

    Pseudo Classes and Elements in CSS

    • Pseudo-classes in CSS are used to define special states of an element. They are written with the syntax selector:pseudo-class { property: value; }. Examples of pseudo-classes include :link, :visited, :active, and :hover.
    • Pseudo-elements in CSS allow styling specific parts of an element. They are written with the syntax selector:pseudo-element { property: value; }. Examples of pseudo-elements include ::first-letter, ::first-line, ::before, and ::after.

    Understanding Selector Precedence in CSS

    In CSS, when multiple selectors target the same element, the selector with the highest specificity will take precedence in styling that element. Specificity in CSS is calculated based on the type of selector used. For example, ID selectors have a specificity of 100, class selectors have a specificity of 10, and HTML selectors have a specificity of 1.

    Introduction to @ At-Rules in CSS

    @-rules in CSS are special instructions or directives for the CSS parser. Some common @-rules include:

    • @charset: This rule defines the character encoding of an external style sheet and must be the first rule in the file.
    • @import: The @import rule allows importing one style sheet into another. It is important to note that all @import rules must come before any other rules in the file.
  • CSS 2

    CSS 2

    Adjacent Selector (+)

    The adjacent selector in CSS, denoted by X + Y, selects the element (Y) that is immediately preceded by the former element (X). For example, applying div + p affects the p tag that comes right after a closing div tag.

    Child Selector (>)

    Using X > Y in CSS means that Y is the immediate child of X. This selector targets elements that are direct children of a specific parent element.

    General Sibling Selector (~)

    The general sibling selector, represented by X ~ Y, is similar to the adjacent selector but less strict. For instance, div ~ p applies styles to the p tag that comes after a closing div tag at the same level.

    Attribute Selectors

    • X[href="foo"]: Targets elements where the href attribute is exactly “foo”.
    • X[href*="foo"]: Selects elements where the href attribute contains the substring “foo”.
    • X[href^="foo"]: Matches elements with an attribute that starts with “foo”.
    • X[href$="foo"]: Matches elements with an attribute that ends with “foo”.
    • X[data-*="foo"]: Selects elements with an attribute that starts with “data-” and has the value “foo”. For example, X[data-xyz="foo"] will target all elements with data-xyz="foo".
    • X[data~*="foo"]: Targets elements with an attribute that contains a space-separated list of values, where one of the values is “foo”. For instance, X[data~xyz="foo"] applies to elements with data-xyz="eoo goo foo".