What is Jamstack?
Jamstack is a robust web development architecture crafted to build secure, faster, and scalable web applications. It comprises three key elements of development: JavaScript, API, and Markup (JAM).
JavaScript – It manages all the dynamic aspects and features of the Jamstack website. Developers can effortlessly utilize their preferred framework to develop web applications.
APIs – By employing reusable APIs, server-side operations are optimized for user interface (UI) and application backend connectivity.
Markup – Users experience the Jamstack website through HTML files. This means that these files can be generated from structured data formats like XML, Markdown, JSON, or directly from source files using a static website generator.
As a result, users benefit from a speedy application experience, while CEOs or CTOs can optimize development costs effectively, and Jamstack developers can create applications at a reduced expense.
Here are some examples of organizations using Jamstack:
A study was conducted to gain insights into the motivations, architectural decisions, and outcomes of implementing Jamstack architecture in organizations. The following are the main aspects highlighted from the analysis:
Motivations for Jamstack implementation:
The primary motivation for implementing Jamstack is to improve performance and security. Many organizations are adopting Jamstack to improve page load speed while reducing vulnerability to specific attacks.
Jamstack Architecture Solutions:
Many companies prefer to use statically generated websites (SSGs) in their web development process because they demonstrate excellent performance and simplify maintenance processes. SSGs pre-generate content, allowing for the quick delivery of finished pages to users. Additionally, Client-Side Rendering (CSR) is applied in some scenarios, providing dynamic updating of content on the client side. This enhances the interactivity of web applications, making the user experience more dynamic and engaging.
Organizations are also successfully integrating reusable APIs for efficient data exchange between the UI and the backend. This enables efficient information management by ensuring smooth and consistent data exchange, which is important for the functionality and performance of web applications as a whole.
Jamstack Implementation Results:
Many companies are noticing that users are becoming more satisfied with fast load times and easy navigation on their websites. Plus, using statically generated sites and content delivery networks (CDNs) helps reduce server load, positively impacting scalability and maintenance.
These benefits highlight the advantages companies gain by moving to a Jamstack architecture. It also provides other companies with information to make informed decisions when choosing technologies for web development.
Analyzing the architecture components and technologies used in Jamstack applications involves examining static site generators, content APIs, and serverless features.
Static Site Generators (SSGs) are crucial in constructing modern web applications. Their primary advantage lies in pre-generating static pages during the application build process. This approach notably enhances the loading speed and overall performance of the site. Popular tools like Gatsby, Next.js, and Hugo offer developers convenient solutions for creating statically generated sites, ensuring an efficient and user-friendly development experience.
Content APIs play a pivotal role in facilitating dynamism in static applications. Reusable APIs are utilized to fetch and modify data, enabling the provision of dynamic content on the client side. Examples of such APIs include Contentful, Strapi, and GraphQL APIs. These tools empower efficient content management, allowing developers to manipulate data and craft a dynamic user experience.
Serverless functions represent another crucial component of the Jamstack architecture. They enable the execution of server-side code without the requirement for infrastructure management. This approach offers scalability and resource efficiency, as functions are triggered only when necessary. Prominent tools for developing and deploying serverless functions include AWS Lambda, Azure Functions, and Netlify Functions.
In this way, static site generators, content APIs, and serverless functions come together in the Jamstack architecture to provide efficient and productive web application creation. Overall, Jamstack offers significant performance, security and scalability benefits, making it an attractive choice for modern web applications.
Even more intriguingly, there is a high demand for Jamstack developers across various industries, such as finance, healthcare, marketing, education, and advertising. This indicates that Jamstack has reached a mature stage of adoption. As headless CMS platforms mature, Jamstack builds are gaining popularity even among large corporations. Indeed, Jamstack serves as a web development solution that bridges the application gap, catering to the needs of multi-million dollar companies.
Development Process:
Automation Tools:
Deployment Strategies:
In Jamstack, the end product for the user is a static HTML page. Page templates and data are stored separately. Static page generators (SSGs) are used to create pages based on templates without data. The data is stored in the Headless CMS, and using an API, the SSG connects to the CMS, generating static HTML pages. The code is then placed in a remote repository, and a service like Netlify takes the code, runs it, and hosts the resulting HTML pages.
Jamstack makes development simpler and more efficient, enabling easy collaboration and high performance web applications.
Jamstack | Outdated system |
---|---|
Jamstack technologies like Gatsby and Next.js are written in JavaScript, one of the most popular programming languages. | Outdated solutions like Drupal and WordPress are written in PHP, one of the oldest programming languages. |
The Jamstack template has ready-made modules that help developers build applications faster with optimal development costs and minimal effort. | Maintaining old code demands significant time, energy, financial resources, and the effort required to upgrade legacy systems to more recent versions. |
Jamstack eliminates all the security concerns that age-old development architectures have. | Outdated systems lack the necessary security, application management tools, and technology. |
Programming languages
Data on the popularity of programming languages in the Jamstack community
JavaScript remains a nearly universal choice, with 96% of respondents stating that they have utilized it in some or multiple projects within the past year.
Jamstack is an ecosystem that allows the JavaScript framework, template markup, and APIs to work in full synchronization to develop a fast and scalable website. This makes speed one of the main benefits of Jamstack that a marketer can utilize.
The Jamstack application study identified key lessons learned, including the use of modern tools and optimization strategies. Recommendations include examining approaches to technology selection, performance monitoring, and team preparation for Jamstack principles. They will help organizations effectively implement and use this architecture.
]]>In early March 2024, Microsoft decided to rename the Azure Linux repository of its Linux distribution project, previously known as CBL-Mariner (Common Base Linux), which serves as a Linux distribution for Microsoft’s internal infrastructure. This special-purpose distribution, developed by Microsoft’s Linux System Group, which is responsible for creating the Linux kernel for the WSL2 subsystem, now redirects to the Microsoft/AzureLinux project on GitHub when attempting to access the old name.
All other references and links to the CBL-Mariner project have also been rebranded as Azure Linux. It’s worth noting that Microsoft also offers a Linux-based Azure Sphere OS designed for IoT and microcontrollers.
The latest release of Azure Linux (formerly CBL-Mariner) version 2.0.20240301 includes some updates to the source code, and efforts are underway to rename artifacts, such as transitioning from “MARINER_VERSION” to “AZL_VERSION” for Azure Linux.
The package system for Azure Linux (formerly CBL-Mariner) is based on RPM and utilizes the dnf and Tiny DNF package managers inherited from Photon OS, a VMware container system for cloud applications.
]]>Recently, a user encountered a frustrating P6 error while attempting to log into P6 Web. The error message displayed was “Login failed due to invalid database instance.” After reaching out for assistance via email, we swiftly jumped into action to resolve this issue. Thanks to the collaborative efforts and cooperation of the user, we successfully tackled the problem. Here’s a breakdown of the solution we implemented, along with step-by-step instructions for future reference:
The user encountered the dreaded P6 error message stating, “Login failed due to invalid database instance,” which halted their progress in accessing P6 Web.
1. Access the P6 Configuration:
P6_HOME\p6
).adminpv.cmd
file.privuser
credentials (username and password).2. Update Database Instance Password:
privuser
password and confirm changes.3. Test the Connection:
4. Log Back In:
A big thanks to the user for their help and willingness to share their experience! By following these steps and referencing the screenshots provided, others can hopefully resolve the “invalid database instance” error quickly and easily.
]]>1. The deinstaller will take care of stopping all the services run by Oracle database. For example, listener, database service etc
2. The deinstaller will completely remove all the directories inside the ORACLE_HOME directory such as /admin, /oradata, /diag etc
3. Run the Deinstaller either as administrator or Oracle Software installation owner
4. The deinstaller identifies the ORACLE_HOME directory automatically if it runs from the ORACLE_HOME\deinstall
In this section, I explained how to Uninstall Oracle Database Enterprise 12C edition from Windows
1. Go into the ORACLE_HOME\deintall\ and run the deintaller.bat as Administrator or owner of the database
2. The de-installer opens on the screen. Verify the Listener name & Hit Enter
3. Verify the SID & Hit Enter
4. Check the SID and hit enter
5. Input ‘Y‘ and Hit Enter
6. The Oracle database uninstallation begins. The command windows closes once it completed the uninstallation.
7. The installer will remove all the directories from the ORACLE_HOME
8. Delete the app directory manually from the File Explorer
9. Manually, remove any user account that belongs to the database. That’s it. The database has been completely removed from the system.
]]>TDE supports any of the following encryption algorithms to encrypt the data.
TDE uses an encryption key to encrypt or decrypt the data. The encryption key is saved in a Keystore which is saved external to the database.For example, the Keystore can be saved in a file.
TDE supports two levels of encryption
TDE supports SALT, a random data added to the value before the encryption happens. It strengthens the encryption.
In this post, I explained how to setup a password-based Transparent Data Encryption (TDE) in Oracle database. The following are the series of steps required to complete the setup.
Let’s begin to set up the Transparent Data Encryption
Oracle Database 11.2.0 or greater installed
1.1) Go to ORACLE_HOME\NETWORK\ADMIN and open the SQLNET.ora in a notepad file C:\app\oracledb\product\12.1.0\dbhome_1\NETWORK\ADMIN\Sqlnet.ora
1.2) Create a directory anywhere on the database server cd C:\app\oracledb\product\12.1.0\dbhome_1\ mkdir wallets
1.3) Add the below content in SQLNET.ORA file. Here we are defining a directory location for the KEYSTORE. Replace the directory path in the DIRECTORY parameter with the one you created. ENCRYPTION_WALLET_LOCATION= (SOURCE= (METHOD=FILE) (METHOD_DATA= (DIRECTORY=C:\app\oracledb\product\12.1.0\dbhome_1\wallets)))
2.1) Login as SYSDBA or a user who has been granted the ADMINISTER KEY MANAGEMENT or SYSKM privilege sqlplus sys/password as sysdba
2.2) Create a KEYSTORE ADMINISTER KEY MANAGEMENT CREATE KEYSTORE ‘C:\app\oracledb\product\12.1.0\dbhome_1\wallets’ IDENTIFIED BY passwod123;
3.1) Login as sysdba and Open the KEYSTORE ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password123;
4.1) Set the Master Encryption Key using SET KEY clause ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password123 WITH BACKUP USING ’emp_key_backup’;
You can encrypt individual columns in a table or the entire tablespace. The Following algorithms are supported (3DES168, AES128, AES192, AES256)
5.1.1) Create a table with an encrypted column. create table job(title varchar2(128) encrypt);
Where:
The keyword encrypt tells the database toencrypts data that are stored in column ‘Title’. By default, It uses the encryption algorithm AES192. SAC and MAC are added by default
5.1.2) Create a column with an encryption algorithm and NO SALT. The Using keyword is used to set an algorithm. create table emp(name varchar2(128) encrypt using ‘3DES168’, age NUMBER ENCRYPT NO SALT);
5.1.3) Encrypt an existing table column alter table employees modify (first_name ENCRYPT NO SALT);
(or) Alter table employees add (new_name varchar(40) ENCRYPT)
5.1.4) Change the Encryption key of an existing column alter table employees rekey using ‘3DES168’;
You need to set the COMPATIBLE parameter greater than 11.1.2 before encrypting the tablespace.
First, check the COMPATIBLE value SQLPLUS / as SYSDBA show parameter compatible;
If the compatible value is less than 11.2.0.0 then change the value greater than 11.2.0. Follow the steps below to change the parameter Sqlplus / as sysdba ALTER SYSTEM SET COMPATIBLE = ‘12.2.0’ SCOPE=SPFILE; Shutdown IMMEDIATE STARTUP
CREATE TABLESPACE my_tablespace DATAFILE ‘C:\app\oracledb\oradata\orcl\TABLESPACE_NAME.dbf’ SIZE 150M ENCRYPTION USING ‘AES256’ DEFAULT STORAGE (ENCRYPT);
Note: Encrypting existing tablespace is not supported.
That’s it. The transparent data encryption is completed now. If you have any questions or concerns about the matter above, please post it in the comment below.
]]>In this section, I have explained OBIEE 12C installation on a Windows Machine. The following bi components will get covered in this section
1.1) Go to Oracle BI download URL, Accept the license, and download the Windows downloads File1 & File2
1.2) Unzip the two zip two files in a folder as shown below
2.1) Right click on the BI Installer and select Run as Administrator
2.1) The BI Installer opens on the screen
2.3) Click the button Next on the installer
2.4) Input the Oracle support credentials if you have for automatic updates or skip it
2.5) Input the Middleware home. This is the folder where you installed Fusion Middleware 12.2.1. Look at Fusion Middleware installation on step 7
2.6) Toggle on BI Platform Distribution with Samples
Note: If you are installing it on a DEV box, I would suggest to install it. It has plenty of samples to refer
2.7) Click the button Next
2.8) Click on the button Install
2.9) Click Next once it went 100%
2.10) Click Close to complete the setup
3.1) Go to <MW_HOME>\oracle_common\bin and double click on the rcu.bat
3.2) Click on the button Next
3.3) Click Create Repository and click Next
3.4) Select your database and input the SYSDBA credentials
3.5) Click Ok on the pop-up
3.6) Input a prefix and enable Oracle Business Intelligence
Note: The prefix in Create New Prefix is important. You need this prefix while creating a BI domain
3.7) Click Ok on the pop-up
3.8) Input a password for the BI schema Password
Note: Save this password. You need this while creating BI domain
3.9) Accept the default or double click on the tablespace to select your database. Click Next
3.10) Click Ok on Repository Creation Utility – Confirmation pop-up
3.11) Click Create on Repository Creation Utility
3.12) Click Ok
3.13) Click Close once it was done
4.1) Open your control panel >> System >> Advanced System Settings >> Advanced >> Environment Variables >> Add the variable BI_PRODUCT_HOME points to your <MW_HOME>\bi folder
5.1) Go to <MW_HOME>bi\bin folder and run config.cmd
5.2) The Oracle Business Intelligence 12C Configuration Assistant opens on the screen. Select the option you want
5.3) Click Next
5.4) Input a BI domain name & WebLogic username and password
5.3) Select Use existing schema and input your database connection string
Simple Connect String: localhost:1521:orcl (Sample Format)
Prefix: Mentioned in step 3.6
Password: Mentioned in step 3.8
5.4) Input a port range, so BI will choose port number for WebLogic admin server and BI servers
Port Range Starting Port: Port From
Port Range End Port: Port To
5.5) Select the Oracle Sample application (SampleAppLite) & click Next
Note: By selecting the SampleAppLite, BI Analytic display predefined dashboard. Useful in DEV server for reference
5.6) Click Configure
5.7) The Bi domain configuration will get started. It would take 15-30 minutes depend on your process speed
5.8) You may receive multiple pop-ups during this process. Click Allow access
5.9) Click Next once it went 100%
5.10) Scroll down and look at the port numbers before closing the wizard. Click Finish to exit the setup
6.1) Verify the BI Analytic URL. The URL will be like HTTP://<HOSTNAME>:<PORT>/analytics. Enter your WebLogic credentials and login
Note: The port number is mentioned in step 5.10
6.2) To see the sampleAppLite dashboard, Select the Dashboard dropdown and select anything under Sample Lite
6.3) The BI analytics SampleAppLite dashboard
6.4) Open BI Publisher URL with WebLogic credentials. The default URL will look like http://<HOSTNAME>:<PORT>/xmlpserver
6.5) Open a sample report
6.6) The sample BI Publisher report
6.7) Go to Visual Analyzer URL and login with your WebLogic username and password
6.8) BI Visual Analyzer dashboard. The default URL will be http://localhost:9502/console
6.9) Verify the status of the Oracle Essbase application. The URL will be like http://localhost:9502/aps/Essbase
6.10) Login into WebLogic console with your WebLogic username and password. The default URL is http://localhost:9500
6.11) Login into WebLogic Enterprise manager with your WebLogic username and password. The default URL is http://localhost:9500/em
7.1) Go to <MW_HOME>\user_projects\<DOMAIN_NAME>\bi\bitools\bin and run the command as shown below
Start.cmd => Start BI Server
Stop.cmd => Stop BI Server
Status.cmd => Status
For Example, Double click on status.cmd will give BI status like below
]]>Encountering errors while trying to install Java applications is a common frustration for many users. One such error message you might encounter is: “This installer must be executed using a Java Development Kit (JDK)”, followed by a notification that the provided directory is not a valid JDK.
Understanding the Error: This error typically occurs when the installer attempts to run using the Java Runtime Environment (JRE) instead of the required Java Development Kit (JDK). While the JRE allows you to run Java applications, it lacks the necessary tools for development, thus causing compatibility issues during installation.
Resolving the Error: Fortunately, resolving this issue is straightforward. You need to ensure that the installer is executed using the JDK. Here’s a step-by-step guide to fix the problem:
c:\Program Files\Java\jdk1.8.0_60\bin\java.exe” -jar “<FILENAME>.jar”
By following these steps, you ensure that the installer is executed using the Java Development Kit, thus resolving the error and allowing you to proceed with the installation smoothly.
Conclusion: Encountering errors like “This installer must be executed using a Java Development Kit (JDK)” can be frustrating, but with the right troubleshooting steps, you can overcome them quickly. By ensuring that the installer runs with the JDK instead of the JRE, you can avoid compatibility issues and successfully install Java applications on your system.
Remember, when it comes to Java installations, having the JDK installed is crucial for development purposes. So, next time you encounter such an error, don’t fret. Follow these steps, and you’ll be back on track in no time.
]]>This tutorial covers the java version JDK 1.8_60 install on platform Windows 10. Let’s begin the installation.
Step1:
Go to the JDK Download URL >> Scroll down and find Java Archive >> Click Download. This will take you to the Java archive version page.
Step2:
The Java archives are segregated by Versions 1,5,6,7,8. Click the version you required. I am going to install JDK 8_60 so I have clicked Java SE 8 here.
Step3:
Scroll down and choose the specific version you want to download; I have selected Java SE Development Kit 8u60.
Click Accept and Click the Jdk against your operating system. This will take you to Oracle sign in page
Step4:
Enter your Oracle username and password; Click Sign in. The download begins immediately.
Step5:
Go to the JDK downloaded location and double click on the downloaded file.
Step6:
The JDK installer wizard appears on the screen, Click Next
Step7:
Click Next
Step8:
Click Next, the installer begins installing JDK on your machine
Step9:
Click close to complete the installation
Setting Java Environment Variables in your machine
The two environment variable needs to be configured in your machine.
JAVA_HOME >> Where is my Java installed
Include JAVA_HOME\bin in PATH >> Where are my Java executable files.
Settings JAVA_HOME Variable
My Java is installed under c:\program files\java\jdk, This is where my JAVA_HOME needs to point. To set this variable
Go to your Windows control Panel >> System >> Advanced System settings >> Select the tab Advanced >> Click Advanced Variables as shown below
Select New
Type the variable name as JAVA_HOME and VARIABLE_VALUE as your Java installed directory. Click Ok
Select the System Variable PATH and click EDIT
Click New and add %JAVA_HOME%\bin in the path as shown below and click OK.
Open Windows command prompts and type java -version. It will display the version of Java installed on the machine.
]]>