Author: Rob

  • The No Code Programming Revolution: Empowering Everyone to Innovate

    The No Code Programming Revolution: Empowering Everyone to Innovate

    Introduction

    Unraveling the pixels of the programming landscape—how no code is changing the fabric of digital creation. In a world where technology increasingly interlaces itself into everyday life, the emergence of no code programming stands out as a seismic shift. No code programming refers to development approaches that allow individuals to create and manage applications, websites, and automated processes without traditional coding expertise. This paradigm has rapidly ascended in popularity, fueled by the democratization of technology and the need for rapid innovation.

    The importance of democratizing technology cannot be overstated—it paves the way for the next generation of innovators by empowering individuals from all walks of life. No code programming releases ordinary users from dependency on specialized technical skills, enabling everyone to mold the digital space to fit their unique visions. This article explores six transformative elements of no code programming that elevate potential creators from consumers to innovators.

    Unpacking No Code: The Foundation

    To truly appreciate the no code movement, it helps to understand the historical context from which it has emerged. Traditional programming paradigms often required extensive training, expertise, and ongoing maintenance. As software and web development evolved, there was a clear gap between vast consumer needs and the limited pool of individuals with coding capabilities. Enter no code platforms—tools like Webflow, Airtable, and Make that streamline the development process, breaking down complex coding barriers into intuitive visual interfaces and simple workflows.

    User demographics of the no code space are diverse and continually expanding. Business owners now create websites and automate workflows without having to hire external developers. Artists translate their creative projects into functional applications, educators design interactive learning environments, and non-technical individuals prototype and implement solutions, each contributing uniquely to the digitized world around them.

    The Creative Canvas: Designing Without Limits

    No code platforms are the playgrounds of digital creativity, providing a blank canvas for users to bring their ideas to life. Innovative projects flourish within these platforms, showcasing visuals that tell compelling stories and demonstrate functionality, all without requiring a coding background. Take, for example, a community space designed through Webflow, where artistic expression and functional design intertwine seamlessly.

    User interface design principles stand as a cornerstone of no code environments, emphasizing intuition and user-friendliness. This shift redefines the entire creative process, allowing more people to participate and contribute. Tools featuring drag-and-drop functionalities allow users to swiftly craft their ideas into digital formats, accelerating problem-solving and rapid prototyping.

    Collaboration in the Cloud: Community-Driven Development

    No code programming thrives in the realm of social coding, where collaboration among individuals with diverse skill sets is paramount. Instead of silos defined by expertise, no code platforms usher in a new age of teamwork. Contributors harness the power of shared knowledge, seen vividly in communities where templates are exchanged and innovative workflows are disclosed.

    The crowd-sourcing of innovations epitomizes the no code ethos, facilitating rapid feedback loops and iterations borne from daily use and collective scaling. The community spirit drives growth, as individuals unite to refine concepts, troubleshoot challenges, and celebrate successes, ultimately shaping a vibrant ecosystem fueled by shared enthusiasm.

    Prototyping at Warp Speed: Turning Ideas into Reality

    No code platforms empower users to transform concepts into functioning applications—a journey involving ideation to tangible implementation. The typical workflow abandons traditional lengthy coding timelines, pivoting toward agile methodologies that embrace change and flexibility. By emphasizing rapid iteration, creators can quickly validate their ideas against real-world scenarios.

    Evaluation of market potential through no code innovation stands prominently illustrated by early-stage founders who leverage agile testing cycles to gather vital insights. This process enables adaptations based on user feedback, keeping products relevant and aligned with market needs. In this fast-paced environment, startups and established enterprises alike discover that no code complements their agile strategies, enhancing adaptability and response to changing landscapes.

    Democratizing Tech: Access for Everyone

    The impact of no code programming spans countless industries, fundamentally altering how education, healthcare, and social initiatives operate. In education, teachers create customized curriculum tools, while in healthcare, professionals streamline patient engagement processes. Moreover, non-profits tap into no code resources to amplify their outreach and effectiveness.

    Bridging the skills gap is a vital aspect of no code platforms, especially as this movement empowers individuals in underserved communities. As more people gain access to tools that facilitate learning and creation, barriers diminish, guiding narratives that absorb innovation from a broader audience. With shifting future of work dynamics, the skills landscape will require adaptation, preparing individuals to embrace both no code solutions and traditional programming elements side by side.

    Blind Spots and Misconceptions: Navigating No Code’s Limitations

    While the promise of no code programming is vast, it is essential to acknowledge its limitations. Understanding trade-offs is crucial—while scalable solutions are often achievable, customization potential can be restricted within certain constraints of no code platforms, leading to conflicts when unique specifications arise.

    Security remains an ongoing concern; though convenient, no code projects are not immune to vulnerabilities. Employing best practices and streamlined protocols will help users navigate the complexities associated with security in the digital realm. Finally, whilst the rise of no code suggests a declining role for traditional programming, the reality is more symbiotic—coding skills will remain invaluable, ensuring a landscape where hybrid models flourish harmoniously alongside no code innovations.

    Closing Thoughts

    In summary, no code programming carries transformative potential, reshaping the technological narrative to include a diverse array of creators. The movement progresses in tandem with innovations, processes, and communities that will leave an enduring legacy on the future tech landscape. As we look to the horizon, the call to action is resounding: explore the multitude of no code tools and contribute actively to this ever-evolving realm of digital creation. Imagine a future where ideation knows no bounds, where any individual with a spark of creativity can become a creator in their own right.

  • Innovative Website Design: Beyond Looks to User Experience & Engagement

    Innovative Website Design: Beyond Looks to User Experience & Engagement

    Introduction

    The first impression of your website can be the difference between a bouncing visitor and a lasting engagement. But is it just about the looks?

    This article uncovers six unconventional dimensions of website design that transcend traditional principles, pushing the boundaries of user experience, functionality, and creativity.

    The Psychology of Color – Crafting Emotional Connections

    Understanding color psychology is essential to grasp how colors influence user emotions and behaviors. Different hues evoke different feelings and can guide decisions—like trust with blue, excitement with red, and tranquility with green.

    For instance, brands like Coca-Cola strategically use red to instigate excitement, while companies like Facebook employ blue to convey trustworthiness. These examples highlight how effective color palettes can forge emotional bonds with users.

    To select a color scheme that aligns with your brand identity and audience aspirations, consider conducting audience research, using color theory resources, and testing various palettes to see which resonates best.

    The Art of White Space – Breathing Room for Creativity

    White space, often viewed merely as a minimalist element, actually plays a critical role in enhancing readability and user navigation. It allows visual elements to breathe, guiding users’ eyes to what’s important without overwhelming them.

    A comparison of websites that leverage white space ingeniously—like Apple’s clean product pages—versus those that overcrowd with text and images—such as cluttered e-commerce sites—reveals the profound impact on user experience.

    To incorporate white space effectively, aim for a balanced layout, prioritize critical content, and make use of margins and padding, thus creating a more inviting and readable design.

    Microinteractions – The Subtle Art of Engagement

    Microinteractions are the little actions that create significant impacts, including subtle hover effects and feedback animations. Although often unnoticed, these elements engage users and enhance their interactions with the site.

    The science behind these interactions indicates that cognitive engagement rises with thoughtful microinteractions, prompting users to remain engaged and interact more deeply.

    Successful applications of microinteractions can be seen in popular websites and apps like Facebook, where notifications and feedback messages catch users’ attention in meaningful ways.

    Soundscapes – Designing for the Ears

    The role of sound in web design extends beyond mere enhancement; it can shape user experiences in memorable ways. Auditory elements can accentuate functionalities and set an overall ambiance while guiding users through interactive experiences.

    Surprising applications of sound can be found on websites that utilize subtle sound effects as notifications or even background music, creating a more immersive experience for users. Examples include platforms like Medium that integrate low-key ambiance to keep readers engaged.

    When creating your sound design, consider relevance, volume, and emotional resonance, striving for audio elements that complement your website’s theme and enhance user interactions without becoming distracting.

    Accessibility Trends – Inclusive Design for All

    Understanding the importance of accessibility highlights why making your website accessible is not just a legal requirement but a moral necessity. Inclusive design ensures all users, regardless of abilities or disabilities, can enjoy navigating your site.

    Emerging trends in accessible web design include innovative practices like voice navigation and ARIA landmarks, which enhance the experience for users reliant on assistive technologies.

    Numerous resources are available to streamline accessibility auditing, such as the Web Content Accessibility Guidelines (WCAG) and various testing tools, helping designers ensure their sites cater to all users.

    Futuristic Interfaces – Anticipating Design Trends

    Speculative design invites an exploration into the possibilities brought forth by AI and machine learning, which have begun to redefine custom user experiences (UX). These advanced technologies offer unique opportunities to tailor interfaces based on user behavior and preferences.

    Among the trends on the horizon are transformative elements like voice interfaces and augmented reality, which hold the potential to fundamentally change how users interact with web content.

    To stay ahead of the curve, consider integrating these futuristic elements strategically into your design, experimenting with relevant technologies that align with your brand vision and user expectations.

    Closing Thoughts

    In summation, the unconventional dimensions discussed, from color psychology to futuristic interfaces, highlight their importance in contemporary web design. Each plays a vital role in creating a more engaging, functional, and inclusive experience for users.

    We encourage you to experiment with your website designs by adopting one or more of the innovative strategies outlined herein.

    Additionally, share your experiences, thoughts, or questions in the comments section to foster a vibrant community discussion!

  • Elevate Your Digital Strategy with the Wonders of Website Automation

    Elevate Your Digital Strategy with the Wonders of Website Automation

    Introduction

    In the past five years, website automation has surged by over 50%, with countless businesses adopting various automated solutions to enhance their digital strategies. This boom reflects not just a trend, but a fundamental shift in how companies optimize their online presence.

    Automation serves as the unsung hero of digital marketing and web functionality; it’s a critical tool that not only saves time but also boosts overall success. By streamlining repetitive tasks and enhancing user experiences, businesses can focus on what truly matters—growth and innovation.

    This article will delve into the depths of website automation, exploring its essence, unconventional tools, strategic implementation steps, the balance between automation and the human touch, the importance of metrics, and future predictions. Embrace the wonders of automation and elevate your digital strategy to the next level.

    The Essence of Website Automation: Demystifying the Concept

    Website automation entails the use of technology to perform tasks automatically online, reducing the need for human intervention. At its core, it centers on streamlining processes like data entry, email responses, and customer interactions to foster efficiency and consistency.

    Automation exists on a spectrum: ranging from simple scripts for responding to inquiries, to complex workflows integrating multiple platforms. Businesses—from start-ups to large enterprises—can adopt various automation strategies tailored to their operational model.

    Consider the journey of Clara’s Bakery, a small shop struggling to manage orders amidst increasing demand. By integrating a basic order automation tool, they transformed their operations. Instead of manually processing each order, they automated confirmation emails and inventory management, leading to increased sales and better customer satisfaction.

    Beneath the Surface: Unconventional Tools for Automation

    While most are familiar with mainstream automation tools, many others exist that can elevate your processes even further. Platforms such as Make.com or Integromat excel in connecting different web apps, but there are lesser-known gems, like Automate.io or Pipedream, that offer unique functionalities and user experiences.

    For small businesses operating on tight budgets, tools like Integromat and Airtable can serve as cost-effective automation solutions without sacrificing functionality, allowing smaller ventures to compete effectively with bigger companies.

    Additionally, sectors like healthcare and education possess a wealth of unexpected automation opportunities—imagine automating student enrollment processes or patient appointment scheduling, which many overlook but are ripe for improvement.

    Crafting Your Automation Strategy: Tactical Steps to Get Started

    Deciding where to begin with automation can be daunting. To simplify this, we present an interactive worksheet that encourages readers to assess their website’s areas of improvement—from trivial tasks that can be automated to customer experiences that need enhancement.

    Once areas are pinpointed, the next step is creating a roadmap. Start small, then gradually build complexity, ensuring to avoid common pitfalls such as over-automation—which could leave customers feeling neglected.

    However, not every automation attempt is seamless. For instance, a retail company once set up an automated email flow that inadvertently sent out promotional emails about a seasonal sale—two months after the sale ended! Such mini-disaster stories serve as powerful reminders of the importance of reviewing and testing automated systems.

    Balancing Automation and Human Touch: A Quandary of Trust

    Despite the compelling advantages of automation, it’s crucial to maintain a personalized touch. Companies must find ways to foster connections and ensure that automated interactions don’t feel mechanical or impersonal. Things like follow-up calls or personalized newsletters can pave the way for maintaining that human essence.

    Insights from industry leaders echo this sentiment. According to Rob , a marketing expert, “Authenticity combined with efficiency creates a winning formula for businesses in the always-connected digital age.” Their insights underscore the need to navigate the fine line between automation and genuine interaction.

    Moreover, companies must tread carefully with automation ethics. Where do you draw the line? When does the automation of customer experiences begin to feel intrusive? Balancing these questions can foster trust and ensure positive engagements.

    Metrics Matter: Measuring the Impact of Automation

    Automation can seem intangible, which makes it critical to track relevant KPIs that resonate with automated interactions. Metrics like automated email engagement rates, churn rates, and lead conversion times are essential for demonstrating automation’s impact.

    Utilizing specialized analytics platforms, such as HubSpot or Google Data Studio, can provide comprehensive insights into these metrics, allowing businesses to make informed decisions about their automation strategies.

    A real-time case study worth mentioning is Brand X, a mid-sized eCommerce store that, through careful evaluation of their automation metrics, managed to scale their operations significantly. They discovered certain automated responses discouraged customer engagement, leading them to fine-tune their strategy, ultimately increasing sales by 40%.

    Next-Gen Predictions: The Future of Website Automation

    Looking ahead, unusual predictions are emerging in the realm of automation. As AI and machine learning solidify their place in digital strategies, businesses may soon automate complex analyses and decision-making processes—redefining traditional roles.

    Moreover, innovative use cases are beginning to surface in niches previously devoid of automation—such as non-profit organizations utilizing automation tools to improve fundraising campaigns, or budding bloggers automating content distribution, boosting outreach without adding hours to their workload.

    In light of these advancements, readers are encouraged to take the plunge and explore emerging technologies. It’s an open landscape ripe for experimentation, innovation, and reimagining how automation serves both business needs and customer expectations.

    Closing Thoughts

    As we conclude, it’s imperative to reinforce the importance of embracing automation as a vital component of your digital strategy. The tools discussed, along with an ideal balance between technology and human engagement, can dramatically enhance both operational efficiency and customer experience.

    Now, equipped with knowledge and insight, ask yourself: are you ready to harness the power of automation to transform not just your business, but the very way you interact with your audience?

  • Windows Vista, 7, 8 Freezes and My Mouse Moves, but can’t Click Anything

    Having troubles with your Windows computer? Does it seem to freeze up, when you need it most. The problem that prompted this article is the following: The computer boots past the bios screen, and Windows starts. Sometime between the login screen and the desktop, some of the computer functions freeze.

    • The mouse icon moves but it doesn’t allow you to click on anything.
    • No response from the keyboard.
    • Ctrl – Alt – Del doesn’t work.
    • Rebooting the computer, no change.
    • Works in “Safe Mode”

    This could be an issue with your drivers or Windows file system. Here is step-by-step DIY how-to guide to fixing the Windows file system:

    1. Type “command” into the Start Menu search box
    2. At the command prompt, type “sfc /scannow” and press “Enter”

      At the command prompt, type "sfc /scannow" and press "Enter"
      At the command prompt, type “sfc /scannow” and press “Enter”
    3. It will take a few minutes to complete. Once finished, the results should be available in your “windows/logs/cbs” directory.

      It will take a few minutes to complete.  Once finished, the results should be available in your "windows/logs/cbs" directory.
      It will take a few minutes to complete. Once finished, the results should be available in your “windows/logs/cbs” directory.
    4. If this does not solve your problem, open “msconfig” from your Start Menu search box, and deselect all startup applications.  Reboot. Observe.  If your computer works, follow this method: selecting one startup application, reboot; continue until the computer freezes. The last startup application checked should be the culprit.  Re-install that program, and you should be good to go.

    If this method worked for you, please share the article with others and leave a record of your success, in the comments.  If you are still having problems, feel free to post your problems, and we will try to assist you further.

    All the best,
    Rob

  • Free Website Thumbnail Generator Code

    PromoKeychain.com
    Thumbnail image of PromoKeychain.com website.

    Ever wonder how certain websites are able to capture a thumbnail snapshot of your website and post in in their directory listing?

    Well, wonder no longer. Below, is the generator code to create the thumbnail image above:

    http://open.thumbshots.org/image.pxf?url=http://promokeychain.com

    replace the http://promokeychain.com with your own url and you will have an image of your own website.

  • How to change the vTiger CRM PDF layout

    Files used to generate the PDF


    /www/vtigercrm//include/fpdf/pdfconfig.php

    // Has thing like change items per page and the $bottom variable
    /www/vtigercrm/modules/Quotes/CreatePDF.php

    // This script retrieves data and assembles parts of the PDF
    /www/vtigercrm/modules/Quotes/pdf_templates/

    // Files in this directory contain parts of the PDF (header, footer, and last page)

    /vtigercrm/include/fpdf/templates/

    // Files in this directory contain body parts for invoices, sale orders, and quotes
    /vtigercrm/include/fpdf/pdf.php

    // This script contains the functions related to layout of invoice PDF’s, such as font size, font style, font color, as well as other settings.  !!Be careful – always copy your original file and edit the copy.
    /vtigercrm/include/fpdf/body.php

    // The main body of the invoice. This is the file specified in modules/Invoice/CreatePDF.php You can copy and rename body.php to like body-rev1.php, and edit it as you please, call it out in CreatePDF.php and tweak from there.
    /vtigercrm/include/tcpdf/templates/body.php

    // vtiger 5.0.4 The main body of the invoice. This is the file specified in modules/Invoice/CreatePDF.php You can copy and rename body.php to like body-rev1.php, and edit it as you please, call it out in CreatePDF.php and tweak from there.

    General layout editing


    body.php:

    • The x,y,width is specified for the bubble size and position
    • The numbers can be aligned by deleting spaces in the output lines
    • Since CreatePDF.php controls the output for header.php, footer.php and

    body.php, move pieces from footer to body if you like, align them and play with the alignment.

    • Check for commented out items regarding sales tax in CreatePDF.php and body.php
    • I added comments from the invoice to the pdf invoice by adding it in CreatePDF and body.php – used mysql to verify the field names were right and it showed up right the first time.

    Changing the formating


    Text alignment

    FILE:

    Alignment is controlled by values in an array named “$colsAlign”. For exemple, to center the values in column ‘Total’, change

    $colsAlign[“Total”] = “R”;

    to

    $colsAlign[“Total”] = “C”;

    Set font and size

    FILE: vtiger/include/fpdf/pdf.php

    Change the line:

    $this->SetFont( "Helvetica", "", 8);

    To whatever you want. There is line for each element in the invoice/quote. One for the table, one for address etc. With the exception of a bubble block which as the names suggests is the block with rounded courners.

    Change alignment of company logo

    FILE: modules/Invoice/pdf_templates/header.php

    To change the alignment of the company logo you need to to go to and change the figures in line 17:

     // ************** Begin company information *****************
     $imageBlock=array("22","6","0","0");

    Radius of box curves

    FILE: vtigercrm/include/fpdf/pdf.php

    Replace ALL values 2.5 and all values 4.5 with a new number greater than 0 i.e. 1.0

     $this->RoundedRect($r1-16, $y1-1, 52, $y2+1, 2.5, 'DF');

    Changing the structure


    Stop the last page from printing

    FILE: vtigercrm/modules/quote/CreatePDF.php

    Change the following:

     // would you like and end page?  1 for yes 0 for no
     $endpage="1";

    Change to $endpage=”0″; and this will stop the final page from printing.

    Vertical lines

    FILE: vtigercrm/include/fdpdf/pdf.php

    FILE: vtigercrm/include/fdpdf/templates/body.php

    The lines and columns may be changed in the /include/fpdf/templates/body.php file.

    Ans:The lines between 39 and 59 are for the columns width. The lines from 90 change the contents and the form of the total block To modify the vertical lines have a look at the ./include/fpdf/pdf.php file (from line 328).

    Change the products per page

    FILE: /include/fpdf/pdfconfig.php

    Change the $products_per_page=”6″ variable to whatever you want. This will change it in quotes and invoices. You may also need to change the $bottom variable to inlarge the table.

    Change the size of the main table

    FILE: /include/fpdf/pdfconfig.php

    Change the $bottom variable

    Stop an Item from printing

    Basic php use // to stop a single line of code from running, if you need to stop a whole segment put a */ before and a /* after.

    For example to stop the contact name from printing you would change:

    // Contact Name block
    $conBlock=array("79","65");
    $pdf->addRecBlock($contact_name, "Contact Name",$conBlock);

    to:

    // Contact Name block
    //$conBlock=array("79","65");
    //$pdf->addRecBlock($contact_name, "Contact Name",$conBlock);

    This way do not have to delete as you may change your mind.

    Add in product comments

    FILE: vtigercrm/modules/quotes/CreatePDF.php

    On line 153 you want to replace this:

    $product_name[$i] = $associated_products[$i]['productName'.$i]

    with this:

    $product_name[$i] = $associated_products[$i]['productName'.$i]."\n-".$associated_products[$i]['comment'.$i];

    Custom Fields in PDF

    You must change your createpdf.php

    Just after populating datas you can add this kind of code. It has been made in order to select customized fields cf_531, cf_545, cf_501 and include them in invoices

    Code:

    $add_query = "select vtiger_accountscf.* from vtiger_invoice, vtiger_accountscf
    where vtiger_invoice.accountid=vtiger_accountscf.accountid AND invoiceid=".$id;
    $result = $adb->query($add_query);
    $num_rows = $adb->num_rows($result);
    
    if ($num_rows == 1)
    {
    $reglement=$adb->query_result($result,0,"cf_531");
    $mode=$adb->query_result($result,0,"cf_545");
    $ntva=$adb->query_result($result,0,"cf_501");
    }

    Then you can modify your footer or header and include the value of the fields.

    Alternative PDF versions


    Alternative invoice and quote pdf template are available based from different community contributions:

    – see here

    and

    – see vtiger Forge at http://forge.vtiger.com/projects/crm-now-pdf/

  • BIOS Beep Codes

    PC (Personal Computer) BIOS POST Beep Codes

    When your computer starts, you normally hear a rather cheerful beep that signals the beginning  of great computing events to come.  This cheerful (also referred to as long) beep is part of your computer’s start-up diagnostic routine, and signals a successful hardware and memory check.  This process is known as the POST (Power On Self Test), and can be helpful for identifying problems with your computer system before you load your operating system.

    When problems are detected, typically you will receive a series of short beeps to help you troubleshoot your computers potential problems.

    The beeps codes are specific to the manufacturers BIOS.  Here is a list of common codes, you may find useful.

    AMI BIOS
    Number Duration of Beeps
    1 short DRAM refresh failure (Problem with memory)
    2 short Parity circuit failure
    3 short Base 64K RAM failure
    4 short System Timer failure
    5 short Processor failure
    6 short Keyboard Controller / Gate A20 failure
    7 short Virtual Mode Exception error
    8 short Display Memory Read/Write failure (video card fault)
    9 short ROM BIOS Checksum error (BIOS chip fault)
    10 short CMOS Shutdown Read/Write error
    11 short Cache memory
    1 long Passed (no errors)
    1 long/2 short Video failure
    1 long/3 short Base / Extended Memory failure
    1 long/8 short Display / Retrace Test failure
    Award BIOS
    Number Duration of Beeps
    1 short Passed (no errors)
    2 short Any non-fatal error
    1 long/2 short Video failure
    1 long/3 short Keyboard Controller failure (applies to 286/386/486)
    IBM BIOS
    Number Duration of Beeps
    none Power Supply or System Board failure (possible short)
    1 short Passed (no errors)
    1 short (blank screen) Video error (check cable)
    1 short (no boot) Floppy Drive error
    2 short Configuration Error (displayed on screen)
    repeated short Power Supply or System Board failure
    continuous Power Supply or System Board/Keyboard stuck
    1 long/1 short System Board failure
    1 long/2 short Video (Mono/CGA) failure (check cable)
    1 long/3 short Video (EGA) failure (check cable)
    3 long Keyboard Card error
    Phoenix BIOS
    Number Duration of Beeps
    1/1/3 CMOS Read/Write
    1/1/4 ROM BIOS Checksum failure
    1/2/1 Programmable Interval Timer failure
    1/2/2 DMA Initialisation failure
    1/2/3 DMA Page Register Read/Write failure
    1/3/1 RAM Refresh Verification error
    1/3/3 First 64K RAM Chip/Data Line failure
    1/3/4 First 64K RAM Odd/Even Logic
    1/4/1 First 64K RAM: Address Line
    1/4/2 First 64K RAM: Parity failure
    1/4/3 Fail-Safe Timer Feature (EISA only)
    1/4/4 Software NMI Port failure (EISA only)
    4/2/4 Unexpected Interrupt in Protected Mode
    2/followed by various combinations
    First 64K RAM Chip/Data Line failure (combinations indicate which bit)
    3/1/1 Slave DMA Register failure
    3/1/2 Master DMA Register failure
    3/1/3 Master Interrupt Mask Register failure
    3/1/4 Slave Interrupt Mask Register failure
    3/2/4 Keyboard Controller failure
    3/3/4 Display Memory failure
    3/4/1 Display Retrace failure
    3/4/2 Video ROM search proceeding
    4/2/1 Timer Tick failure
    4/2/2 Shutdown failure
    4/2/3 Gate A20 failure
    4/3/1 RAM test above 64K failure
    4/3/2/3 Programmable Interval Timer, Channel 2 failure
    4/3/4 Realtime Clock failure
    4/4/1 Serial Port error
    4/4/2 Parallel Port error
    4/4/3 Math Co-processor failure
    (tone) 1/1/2 System Board Select
    (tone) 1/1/3 Extender CMOS RAM
  • Convert a Drupal 5 theme to version 6

    So you fell in love with a Drupal theme, but it just wasn’t ready for Drupal 6. What now?

    This is a step by step procedure for bringing your old theme into the new Drupal format.

    What’s New

    1. Themes now have .info files
    2. Theme registry
    3. Theming through template files
    4. Template management
    5. New template files (.tpl.php)
    6. New template naming suggestions
    7. Defining block regions
    8. Block region variables name change
    9. Custom theme settings
    10. New $signature variable
    11. $body_classes variable
    12. $language is now an object
    13. Themes can override core- and module-defined CSS files
    14. Right to left CSS override files supported
    15. Submitted by user on date/time is themable
    16. jQuery updated to 1.2.6
    17. Default JavaScript file
    18. JavaScript themeing

    Themes now have .info files

    In 5.x, Drupal modules saw the introduction of .info files to store meta data about the module (for example, the name, description, version, dependencies, etc.). Starting in 6.x, Drupal themes also have a .info file. See the complete guide to writing .info files for themes for more information.

    Example themeName.info (partial list.):

    name = Theme Name
    description = One sentence description of theme.
    core = 6.x
    engine = phptemplate

    Theme registry

    All theme functions must now be registered. In Drupal 5, they were all discovered on the fly. New in 6.x, hook_theme() is used to register all themable output. PHPTemplate engine takes care of registering on behalf of the theme so in most situations you will not have to register manually.

    • There is one exception to this. Forms that do not have a default theme implementation will not be registered.
    • See the example in the theming handbooks for more details on theming forms.
    • Important note! Whenever you add a new theme function or template inside your theme the registry must be cleared!

    Theming through template files

    In 5.x, themable functions could be overridden with themeEngine_hook() or themeName_hook(). All the markup was placed inside the template.php file and returned with the data. Or, to use a separate template file (.tpl.php), _phptemplate_callback() could be used in 5.x.

    In 6.x, _phptemplate_callback() is no longer supported, because it has been rolled in to the main theme() function. But you don’t need it: As long as the hook is registered as a theme function (see above), you can override the default theming by either creating a function with the right name “themeName_hook()”, or a file with the right name “hook.tpl.php”. For example, the hook menu_tree is themable. So, to override it, create a function in template.php called “theme_name_menu_tree()”, or a template file inside your theme named menu-tree.tpl.php. Note the underscore being changed into a hyphen in the file name. Clear the registry and your theme function or template file will take over theming for menu trees.

    In 5.x, using _phptemplate_callback() also allowed the hook to manipulate the variables with the following. The following is no longer supported:

    <?php
    function _phptemplate_variables($hook, $variables) {
    switch (
    $hook) {
    case
    'page':
    // process variables for page hook.
    break;
    case
    'node':
    // process variables for node hook.
    break;
    }
    return
    $variables;
    }
    ?>

    To replicate addition of variables in Drupal 6.x, look into the preprocess documentation.

    • More details on the overriding behavior is available.
    • You can take a look at the underlying changes between 5 and 6. –links to pdfs

    Template management

    Template files (.tpl.php) can now be managed more easily by organizing them through sub-directories. PHPTemplate engine will find all files in the theme and register their locations. There is no limit on its depth either.

    New template files (.tpl.php)

    In 5.x the following templates are implemented by phptemplate.engine (inside the theme engines folder):

    • page.tpl.php
    • node.tpl.php
    • comment.tpl.php
    • block.tpl.php
    • box.tpl.php

    With the new changes under the hood, more default templates are provided and more will be available in future releases. The ones from PHPTemplate in 5.x were also moved. Read the comments inside these files to see where they are used and the available variables.

    In order to override these templates, all you need to do is copy them into your theme folder and clear the theme registry.

    See the complete list of new templates in the theming handbook.

    The seldom used default core functions for the above templates are no longer present. For example, theme_page no longer exists. This affects all themable output converted into templates. Due to the nature of the change, they are no longer necessary. This change should not affect anyone. Do not confuse the removed functions with how they are called. theme('page') still works. It is the default implementation that has changed.

    New template naming suggestions

    Template suggestions existed for page.tpl.php -based on path, node.tpl.php -based on node type and block.tpl.php -based on regions and modules. With the template conversions mentioned above, new suggestions are also provided.

    See the complete list of new template suggestions in the theming handbook.

    Defining block regions

    hook_regions has been deprecated. Regions are now defined through .info files. More details available in the main handbook page.

    regions[left] = Left sidebar
    regions[right] = Right sidebar
    regions[content] = Content
    regions[header] = Header
    regions[footer] = Footer

    Block regions variable name change

    The variable names for side bar block regions and footer has been changed.

    In 5.x the regions “left”, “right” and “footer” used the variables $sidebar_left, $sidebar_right and $footer_message inside page.tpl.php. This was ancient cruft that was needed in 4.6 and below.

    To make it cleaner and more straight forward, the three regions create variables of $left, $right and $footer just like any other region. $footer_message is still used but it’s for the footer message set from site information administration page.

    Custom theme settings

    Theme authors can now make their theme easily customizable by site administrators.

    In the Drupal administration section, each theme has its own settings page at admin/build/themes/settings/themeName. And this page has a form with standard settings like “Logo image settings” and “Shortcut icon settings”. To add additional settings to the form, simply create a theme-settings.php file in the theme’s directory and add a themeName_settings() or themeEngineName_settings() function. The function should use the Forms API to create the additional form widgets.

    See the Custom theme settings page in the Theme developer’s handbook for full details.

    New $signature variable

    In Drupal 6, signatures were made dynamic, which means they display when viewing a comment, and are not part of the comment itself. Therefore, a $signature variable needs to be added to comment.tpl.php.

    In 5.x:

    <div>
    <?php print $content; ?>
    </div>

    In 6.x:

    <div>
    <?php print $content ?>
    <?php if ($signature): ?>
    <div>
    <?php print $signature ?>
    </div>
    <?php endif; ?>
    </div>

    Note: you can use the following to prevent double-display of signatures on old posts:

    <div>
    <?php print $content ?>
    <?php if ($signature && $comment->cid > 1234): // Change "1234" to the last comment ID used before upgrading to Drupal 6 ?>
    <div>
    <?php print $signature ?>
    </div>
    <?php endif; ?>
    </div>

    $body_classes variable

    Inside page.tpl.php getting the state of the layout was possible with this:

    In 5.x, <?php print $layout; ?> would print left, right, or both depending on the sidebars in use.

    In 6.x $body_classes are also available. <?php print $body_classes; ?> may retrieve something like:

    front logged-in node-type-page no-sidebars

    which offers a set of specialized classes like those seen above. You can learn more at:
    http://drupal.org/node/171906

    $language is now an object

    The $language variable accessible to PHPTemplate themes is now not only a simple string holding the language code of the current page viewed, but an object representing multiple properties of the current language. You can now make your theme right to left compliant, so that your theme can be used by people hosting content in right to left written scripts (like Hebrew, of which http://www.drupal.org.il/ is a good example).

    $language has the $language->language property available with the current language code, and $language->direction being an integer (0 or LANGUAGE_LTR for left to right and 1 or LANGUAGE_RTL for right to left). $language->dir would return a string that’s either rtl for right to left or lrt for left to right.
    Accordingly, page.tpl.php would use the $language object to do the following:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
    <head>
    ...
    </head>
    <body dir="<?php print $language->dir ?>">
    ...
    </body>
    </html>

    If you are only interested in updating your themes, just change every instance of $language to $language->language.

    Themes can override core- and module-defined CSS files

    Themes may replace module-defined CSS files by adding a stylesheet with the same filename using drupal_add_css(). This allows themes to override complete CSS files, rather than specific selectors, when necessary.

    For example, if the following code were placed in Garland’s template.php file, themes/garland/system-menus.css would replace modules/system/system-menus.css:

    <?php
    drupal_add_css
    (path_to_theme() .'/system-menus.css', 'theme');
    ?>

    Right to left CSS override files supported

    To better support languages that flow right to left, any CSS file added to the page with drupal_add_css() can have a right to left CSS file pair. An example could be style.css, which can have a style-rtl.css file in the same directory. This file can contain overrides for the styles in style.css which should be different in a right to left language. The Drupal core system includes such RTL CSS files for built-in modules as well as some themes. By convention, the overridden rules are marked with an /* LTR */ comment in the original CSS file, so maintainers will notice that the RTL CSS might need modification when modifying the original CSS file later. These CSS files are only loaded when an RTL language is used to display the page.

    An excerpt from the modules/system/defaults.css file:

    th {
    text-align: left; /* LTR */
    padding-right: 1em; /* LTR */
    border-bottom: 3px solid #ccc;
    }

    An excerpt from the modules/system/defaults-rtl.css file:

    th {
    text-align: right;
    padding-right: inherit;
    padding-left: 1em;
    }

    Submitted by user on date/time is themable

    The “submitted” element in nodes and comments is now themable just like any themable element. This means that you can override what information is included, and how it is presented.

    You can add custom id/class, you can include more or less info, or even make the submitted look different for comments or node types.

    For an example, in template.php file for the garland theme:

    function phptemplate_comment_submitted($comment) {
    return t('!datetime — !username',
    array(
    '!username' => theme('username', $comment),
    '!datetime' => format_date($comment->timestamp)
    ));
    }
    function phptemplate_node_submitted($node) {
    return t(‘!datetime — !username’,
    array(
    ‘!username’ => theme(‘username’, $node),
    ‘!datetime’ => format_date($node->created),
    ));
    }

    jQuery updated to 1.2.6

    The jQuery JavaScript library included in Drupal was updated to version 1.2.6.

    Default JavaScript file

    Similarly to style.css, there is a new automatically included file named script.js for adding JavaScript code to a theme. The file should be placed in the theme’s home directory. This file name can be changed and more can be added through the .info file.

    JavaScript themeing

    There is now a themeing mechanism for JavaScript code. Together with the automatically included script.js, this allows theme developers more freedom in the domain of scripted events on Drupal web pages. Often, JavaScript code produces markup that is inserted into the page. However, this HTML code has usually been hard-coded into the script, which did not allow alteration of the inserted code.

    Modules provide default theme functions in the Drupal.theme.prototype namespace. Themes should place their override functions directly in the Drupal.theme namespace. Scripts call Drupal.theme('function_name', ...) which in turn decides whether to call the function provided by the theme (if present) or the default function.

    JavaScript theme functions are entirely free in their return value. It can vary from simple strings, up to complex data types like an object containing in turn several jQuery objects which are wrapped around DOM elements. See the original (default) theme function to see what your custom theme function should return.

  • Cron and crontab tutorial and examples

    Cron Example

    0 8 * * * php /home/yoursitename/public_html/admin/froogle_us.php

    This example uses ‘php’ to run the osCommerce google base feed aggregator ‘froogle_us.php’, located in the ‘/home/yoursitename/public_html/admin/’ absolute directory, every day at 8am.

    0 8 * * * translastes as 0 (minutes) 8 (hour) * (every day) * (every month) * (every weekday)

  • javascript previous page link script

    This handy peice of code allows users to browse back one page.

    <a href="javascript:history.go(-1)">