#JavaScript User Input
Explore tagged Tumblr posts
Text
Gonna try to get some major site work done this week. 💪💪💪💪💪
I'm going to try to fix a small slightly annoying page loading issue I'm having. To summarize, the dynamic generation of the comic page images that I'm doing with JavaScript is making everything but the comic page image load first and it makes a weird jump effect that is not only eye straining but just annoying. I'm gonna try to fix this because fuck it's annoying. No idea why it's even doing that. I'll figure it out.
Alongside that, I'll work on the transcripts and archive pages some more. I think I briefly mentioned that I'm gonna revamp those a bit. Still figuring out what I wanna do visually (and making it as accessible/user-friendly/device responsive as possible, of course).
After those are done, I'll work on uploading V2. I'm hoping to have a lot more progress by the start of July but I can't make promises. The medical emergency wasn't an anticipated thing and it really threw me off both physically and motivation wise
Still taking input and suggestions for features etc! I can't promise or guarantee implementation but I'm open to hearing suggestions and I've used them before :]
55 notes
·
View notes
Text
The story of BASIC’s development began in 1963, when Kemeny and Kurtz, both mathematics professors at Dartmouth, recognized the need for a programming language that could be used by non-technical students. At the time, most programming languages were complex and required a strong background in mathematics and computer science. Kemeny and Kurtz wanted to create a language that would allow students from all disciplines to use computers, regardless of their technical expertise.
The development of BASIC was a collaborative effort between Kemeny, Kurtz, and a team of students, including Mary Kenneth Keller, John McGeachie, and others. The team worked tirelessly to design a language that was easy to learn and use, with a syntax that was simple and intuitive. They drew inspiration from existing programming languages, such as ALGOL and FORTRAN, but also introduced many innovative features that would become hallmarks of the BASIC language.
One of the key innovations of BASIC was its use of simple, English-like commands. Unlike other programming languages, which required users to learn complex syntax and notation, BASIC used commands such as “PRINT” and “INPUT” that were easy to understand and remember. This made it possible for non-technical users to write programs and interact with the computer, without needing to have a deep understanding of computer science.
BASIC was first implemented on the Dartmouth Time-Sharing System, a pioneering computer system that allowed multiple users to interact with the computer simultaneously. The Time-Sharing System was a major innovation in itself, as it allowed users to share the computer’s resources and work on their own projects independently. With BASIC, users could write programs, run simulations, and analyze data, all from the comfort of their own terminals.
The impact of BASIC was immediate and profound. The language quickly gained popularity, not just at Dartmouth, but also at other universities and institutions around the world. It became the language of choice for many introductory programming courses, and its simplicity and ease of use made it an ideal language for beginners. As the personal computer revolution took hold in the 1970s and 1980s, BASIC became the language of choice for many hobbyists and enthusiasts, who used it to write games, utilities, and other applications.
Today, BASIC remains a popular language, with many variants and implementations available. While it may not be as widely used as it once was, its influence can still be seen in many modern programming languages, including Visual Basic, Python, and JavaScript. The development of BASIC was a major milestone in the history of computer science, as it democratized computing and made it accessible to a wider range of people.
The Birth of BASIC (Dartmouth College, August 2014)
youtube
Friday, April 25, 2025
#basic programming language#computer science#dartmouth college#programming history#software development#technology#ai assisted writing#Youtube
7 notes
·
View notes
Text
100 days of code - days 13-14
October 27th, 2023
Well, usually making my daily post is the last thing I do in a day, but yesterday I was so tired that I just went to bed 😴. So today is two days in one post.
Day 13 🪨��✂️
Yesterday I practice JavaScript by making a classic rock, paper, scissors game. It's very simple, just take a user's input and plays against a randomly generated choice by the computer. For now, it's only a terminal game, but I'll use this logic to implement a game with graphic interface in the browser.
Day 14 🛒
Today I read about DOM manipulation and events.
DOM (document object model) is a JavaScript object that allow us to modify the HTML of a web page. With this feature, we can create dynamic websites that the content can vary.
Events in JS and HTML let us handle some event, like mouse clicks, when the mouse is over something, key press, and others.
I did a little "app" to use this features that you can add and remove items from a shopping list.
Clicking the button is the event that calls a function that insert the text into HTML.
That's it ✂️✂️, I'm enjoying doing this web dev stuff 🤓
Also, two weeks!! 😯😊
#day 13#day 14#100 days of code#100daysofcode#codeblr#programming#progblr#studyblr#computer science#Rust#1000 hours#code#100 days of productivity#100 days of studying#software development#100 days challenge#tech#javascript#html css#coding
82 notes
·
View notes
Text
How to Build Software Projects for Beginners
Building software projects is one of the best ways to learn programming and gain practical experience. Whether you want to enhance your resume or simply enjoy coding, starting your own project can be incredibly rewarding. Here’s a step-by-step guide to help you get started.
1. Choose Your Project Idea
Select a project that interests you and is appropriate for your skill level. Here are some ideas:
To-do list application
Personal blog or portfolio website
Weather app using a public API
Simple game (like Tic-Tac-Toe)
2. Define the Scope
Outline what features you want in your project. Start small and focus on the minimum viable product (MVP) — the simplest version of your idea that is still functional. You can always add more features later!
3. Choose the Right Tools and Technologies
Based on your project, choose the appropriate programming languages, frameworks, and tools:
Web Development: HTML, CSS, JavaScript, React, or Django
Mobile Development: Flutter, React Native, or native languages (Java/Kotlin for Android, Swift for iOS)
Game Development: Unity (C#), Godot (GDScript), or Pygame (Python)
4. Set Up Your Development Environment
Install the necessary software and tools:
Code editor (e.g., Visual Studio Code, Atom, or Sublime Text)
Version control (e.g., Git and GitHub for collaboration and backup)
Frameworks and libraries (install via package managers like npm, pip, or gems)
5. Break Down the Project into Tasks
Divide your project into smaller, manageable tasks. Create a to-do list or use project management tools like Trello or Asana to keep track of your progress.
6. Start Coding!
Begin with the core functionality of your project. Don’t worry about perfection at this stage. Focus on getting your code to work, and remember to:
Write clean, readable code
Test your code frequently
Commit your changes regularly using Git
7. Test and Debug
Once you have a working version, thoroughly test it. Look for bugs and fix any issues you encounter. Testing ensures your software functions correctly and provides a better user experience.
8. Seek Feedback
Share your project with friends, family, or online communities. Feedback can provide valuable insights and suggestions for improvement. Consider platforms like GitHub to showcase your work and get input from other developers.
9. Iterate and Improve
Based on feedback, make improvements and add new features. Software development is an iterative process, so don’t hesitate to refine your project continuously.
10. Document Your Work
Write documentation for your project. Include instructions on how to set it up, use it, and contribute. Good documentation helps others understand your project and can attract potential collaborators.
Conclusion
Building software projects is a fantastic way to learn and grow as a developer. Follow these steps, stay persistent, and enjoy the process. Remember, every project is a learning experience that will enhance your skills and confidence!
3 notes
·
View notes
Text
How to Create Multi-Step Forms With Vanilla JavaScript and CSS
New Post has been published on https://thedigitalinsider.com/how-to-create-multi-step-forms-with-vanilla-javascript-and-css/
How to Create Multi-Step Forms With Vanilla JavaScript and CSS
Multi-step forms are a good choice when your form is large and has many controls. No one wants to scroll through a super-long form on a mobile device. By grouping controls on a screen-by-screen basis, we can improve the experience of filling out long, complex forms.
But when was the last time you developed a multi-step form? Does that even sound fun to you? There’s so much to think about and so many moving pieces that need to be managed that I wouldn’t blame you for resorting to a form library or even some type of form widget that handles it all for you.
But doing it by hand can be a good exercise and a great way to polish the basics. I’ll show you how I built my first multi-step form, and I hope you’ll not only see how approachable it can be but maybe even spot areas to make my work even better.
We’ll walk through the structure together. We’ll build a job application, which I think many of us can relate to these recent days. I’ll scaffold the baseline HTML, CSS, and JavaScript first, and then we’ll look at considerations for accessibility and validation.
I’ve created a GitHub repo for the final code if you want to refer to it along the way.
The structure of a multi-step form
Our job application form has four sections, the last of which is a summary view, where we show the user all their answers before they submit them. To achieve this, we divide the HTML into four sections, each identified with an ID, and add navigation at the bottom of the page. I’ll give you that baseline HTML in the next section.
Navigating the user to move through sections means we’ll also include a visual indicator for what step they are at and how many steps are left. This indicator can be a simple dynamic text that updates according to the active step or a fancier progress bar type of indicator. We’ll do the former to keep things simple and focused on the multi-step nature of the form.,
The structure and basic styles
We’ll focus more on the logic, but I will provide the code snippets and a link to the complete code at the end.
Let’s start by creating a folder to hold our pages. Then, create an index.html file and paste the following into it:
Open HTML
<form id="myForm"> <section class="group-one" id="one"> <div class="form-group"> <div class="form-control"> <label for="name">Name <span style="color: red;">*</span></label> <input type="text" id="name" name="name" placeholder="Enter your name"> </div> <div class="form-control"> <label for="idNum">ID number <span style="color: red;">*</span></label> <input type="number" id="idNum" name="idNum" placeholder="Enter your ID number"> </div> </div> <div class="form-group"> <div class="form-control"> <label for="email">Email <span style="color: red;">*</span></label> <input type="email" id="email" name="email" placeholder="Enter your email"> </div> <div class="form-control"> <label for="birthdate">Date of Birth <span style="color: red;">*</span></label> <input type="date" id="birthdate" name="birthdate" max="2006-10-01" min="1924-01-01"> </div> </div> </section> <section class="group-two" id="two"> <div class="form-control"> <label for="document">Upload CV <span style="color: red;">*</span></label> <input type="file" name="document" id="document"> </div> <div class="form-control"> <label for="department">Department <span style="color: red;">*</span></label> <select id="department" name="department"> <option value="">Select a department</option> <option value="hr">Human Resources</option> <option value="it">Information Technology</option> <option value="finance">Finance</option> </select> </div> </section> <section class="group-three" id="three"> <div class="form-control"> <label for="skills">Skills (Optional)</label> <textarea id="skills" name="skills" rows="4" placeholder="Enter your skills"></textarea> </div> <div class="form-control"> <input type="checkbox" name="terms" id="terms"> <label for="terms">I agree to the terms and conditions <span style="color: red;">*</span></label> </div> <button id="btn" type="submit">Confirm and Submit</button> </section> <div class="arrows"> <button type="button" id="navLeft">Previous</button> <span id="stepInfo"></span> <button type="button" id="navRight">Next</button> </div> </form> <script src="script.js"></script>
Looking at the code, you can see three sections and the navigation group. The sections contain form inputs and no native form validation. This is to give us better control of displaying the error messages because native form validation is only triggered when you click the submit button.
Next, create a styles.css file and paste this into it:
Open base styles
:root --primary-color: #8c852a; --secondary-color: #858034; body font-family: sans-serif; line-height: 1.4; margin: 0 auto; padding: 20px; background-color: #f4f4f4; max-width: 600px; h1 text-align: center; form background: #fff; padding: 40px; border-radius: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); display: flex; flex-direction: column; .form-group display: flex; gap: 7%; .form-group > div width: 100%; input:not([type="checkbox"]), select, textarea width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px; .form-control margin-bottom: 15px; button display: block; width: 100%; padding: 10px; color: white; background-color: var(--primary-color); border: none; border-radius: 4px; cursor: pointer; font-size: 16px; button:hover background-color: var(--secondary-color); .group-two, .group-three display: none; .arrows display: flex; justify-content: space-between align-items: center; margin-top: 10px; #navLeft, #navRight width: fit-content; @media screen and (max-width: 600px) .form-group flex-direction: column;
Open up the HTML file in the browser, and you should get something like the two-column layout in the following screenshot, complete with the current page indicator and navigation.
Adding functionality with vanilla JavaScript
Now, create a script.js file in the same directory as the HTML and CSS files and paste the following JavaScript into it:
Open base scripts
const stepInfo = document.getElementById("stepInfo"); const navLeft = document.getElementById("navLeft"); const navRight = document.getElementById("navRight"); const form = document.getElementById("myForm"); const formSteps = ["one", "two", "three"]; let currentStep = 0; function updateStepVisibility() formSteps.forEach((step) => document.getElementById(step).style.display = "none"; ); document.getElementById(formSteps[currentStep]).style.display = "block"; stepInfo.textContent = `Step $currentStep + 1 of $formSteps.length`; navLeft.style.display = currentStep === 0 ? "none" : "block"; navRight.style.display = currentStep === formSteps.length - 1 ? "none" : "block"; document.addEventListener("DOMContentLoaded", () => navLeft.style.display = "none"; updateStepVisibility(); navRight.addEventListener("click", () => if (currentStep < formSteps.length - 1) currentStep++; updateStepVisibility(); ); navLeft.addEventListener("click", () => if (currentStep > 0) currentStep--; updateStepVisibility(); ); );
This script defines a method that shows and hides the section depending on the formStep values that correspond to the IDs of the form sections. It updates stepInfo with the current active section of the form. This dynamic text acts as a progress indicator to the user.
It then adds logic that waits for the page to load and click events to the navigation buttons to enable cycling through the different form sections. If you refresh your page, you will see that the multi-step form works as expected.
Multi-step form navigation
Let’s dive deeper into what the Javascript code above is doing. In the updateStepVisibility() function, we first hide all the sections to have a clean slate:
formSteps.forEach((step) => document.getElementById(step).style.display = "none"; );
Then, we show the currently active section:
document.getElementById(formSteps[currentStep]).style.display = "block";`
Next, we update the text that indicators progress through the form:
stepInfo.textContent = `Step $currentStep + 1 of $formSteps.length`;
Finally, we hide the Previous button if we are at the first step and hide the Next button if we are at the last section:
navLeft.style.display = currentStep === 0 ? "none" : "block"; navRight.style.display = currentStep === formSteps.length - 1 ? "none" : "block";
Let’s look at what happens when the page loads. We first hide the Previous button as the form loads on the first section:
document.addEventListener("DOMContentLoaded", () => navLeft.style.display = "none"; updateStepVisibility();
Then we grab the Next button and add a click event that conditionally increments the current step count and then calls the updateStepVisibility() function, which then updates the new section to be displayed:
navRight.addEventListener("click", () => if (currentStep < formSteps.length - 1) currentStep++; updateStepVisibility(); );
Finally, we grab the Previous button and do the same thing but in reverse. Here, we are conditionally decrementing the step count and calling the updateStepVisibility():
navLeft.addEventListener("click", () => if (currentStep > 0) currentStep--; updateStepVisibility(); );
Handling errors
Have you ever spent a good 10+ minutes filling out a form only to submit it and get vague errors telling you to correct this and that? I prefer it when a form tells me right away that something’s amiss so that I can correct it before I ever get to the Submit button. That’s what we’ll do in our form.
Our principle is to clearly indicate which controls have errors and give meaningful error messages. Clear errors as the user takes necessary actions. Let’s add some validation to our form. First, let’s grab the necessary input elements and add this to the existing ones:
const nameInput = document.getElementById("name"); const idNumInput = document.getElementById("idNum"); const emailInput = document.getElementById("email"); const birthdateInput = document.getElementById("birthdate") const documentInput = document.getElementById("document"); const departmentInput = document.getElementById("department"); const termsCheckbox = document.getElementById("terms"); const skillsInput = document.getElementById("skills");
Then, add a function to validate the steps:
Open validation script
function validateStep(step)
Here, we check if each required input has some value and if the email input has a valid input. Then, we set the isValid boolean accordingly. We also call a showError() function, which we haven’t defined yet.
Paste this code above the validateStep() function:
function showError(input, message) const formControl = input.parentElement; const errorSpan = formControl.querySelector(".error-message"); input.classList.add("error"); errorSpan.textContent = message;
Now, add the following styles to the stylesheet:
Open validation styles
input:focus, select:focus, textarea:focus outline: .5px solid var(--primary-color); input.error, select.error, textarea.error outline: .5px solid red; .error-message font-size: x-small; color: red; display: block; margin-top: 2px; .arrows color: var(--primary-color); font-size: 18px; font-weight: 900; #navLeft, #navRight display: flex; align-items: center; gap: 10px; #stepInfo color: var(--primary-color);
If you refresh the form, you will see that the buttons do not take you to the next section till the inputs are considered valid:
Finally, we want to add real-time error handling so that the errors go away when the user starts inputting the correct information. Add this function below the validateStep() function:
Open real-time validation script
function setupRealtimeValidation() nameInput.addEventListener("input", () => if (nameInput.value.trim() !== "") clearError(nameInput); ); idNumInput.addEventListener("input", () => if (idNumInput.value.trim() !== "") clearError(idNumInput); ); emailInput.addEventListener("input", () => if (emailInput.validity.valid) clearError(emailInput); ); birthdateInput.addEventListener("change", () => if (birthdateInput.value !== "") clearError(birthdateInput); ); documentInput.addEventListener("change", () => if (documentInput.files[0]) clearError(documentInput); ); departmentInput.addEventListener("change", () => if (departmentInput.value !== "") clearError(departmentInput); ); termsCheckbox.addEventListener("change", () => if (termsCheckbox.checked) clearError(termsCheckbox); );
This function clears the errors if the input is no longer invalid by listening to input and change events then calling a function to clear the errors. Paste the clearError() function below the showError() one:
function clearError(input) const formControl = input.parentElement; const errorSpan = formControl.querySelector(".error-message"); input.classList.remove("error"); errorSpan.textContent = "";
And now the errors clear when the user types in the correct value:
The multi-step form now handles errors gracefully. If you do decide to keep the errors till the end of the form, then at the very least, jump the user back to the erroring form control and show some indication of how many errors they need to fix.
Handling form submission
In a multi-step form, it is valuable to show the user a summary of all their answers at the end before they submit and to offer them an option to edit their answers if necessary. The person can’t see the previous steps without navigating backward, so showing a summary at the last step gives assurance and a chance to correct any mistakes.
Let’s add a fourth section to the markup to hold this summary view and move the submit button within it. Paste this just below the third section in index.html:
Open HTML
<section class="group-four" id="four"> <div class="summary-section"> <p>Name: </p> <p id="name-val"></p> <button type="button" class="edit-btn" id="name-edit"> <span>✎</span> <span>Edit</span> </button> </div> <div class="summary-section"> <p>ID Number: </p> <p id="id-val"></p> <button type="button" class="edit-btn" id="id-edit"> <span>✎</span> <span>Edit</span> </button> </div> <div class="summary-section"> <p>Email: </p> <p id="email-val"></p> <button type="button" class="edit-btn" id="email-edit"> <span>✎</span> <span>Edit</span> </button> </div> <div class="summary-section"> <p>Date of Birth: </p> <p id="bd-val"></p> <button type="button" class="edit-btn" id="bd-edit"> <span>✎</span> <span>Edit</span> </button> </div> <div class="summary-section"> <p>CV/Resume: </p> <p id="cv-val"></p> <button type="button" class="edit-btn" id="cv-edit"> <span>✎</span> <span>Edit</span> </button> </div> <div class="summary-section"> <p>Department: </p> <p id="dept-val"></p> <button type="button" class="edit-btn" id="dept-edit"> <span>✎</span> <span>Edit</span> </button> </div> <div class="summary-section"> <p>Skills: </p> <p id="skills-val"></p> <button type="button" class="edit-btn" id="skills-edit"> <span>✎</span> <span>Edit</span> </button> </div> <button id="btn" type="submit">Confirm and Submit</button> </section>
Then update the formStep in your Javascript to read:
const formSteps = ["one", "two", "three", "four"];
Finally, add the following classes to styles.css:
.summary-section display: flex; align-items: center; gap: 10px; .summary-section p:first-child width: 30%; flex-shrink: 0; border-right: 1px solid var(--secondary-color); .summary-section p:nth-child(2) width: 45%; flex-shrink: 0; padding-left: 10px; .edit-btn width: 25%; margin-left: auto; background-color: transparent; color: var(--primary-color); border: .7px solid var(--primary-color); border-radius: 5px; padding: 5px; .edit-btn:hover border: 2px solid var(--primary-color); font-weight: bolder; background-color: transparent;
Now, add the following to the top of the script.js file where the other consts are:
const nameVal = document.getElementById("name-val"); const idVal = document.getElementById("id-val"); const emailVal = document.getElementById("email-val"); const bdVal = document.getElementById("bd-val") const cvVal = document.getElementById("cv-val"); const deptVal = document.getElementById("dept-val"); const skillsVal = document.getElementById("skills-val"); const editButtons = "name-edit": 0, "id-edit": 0, "email-edit": 0, "bd-edit": 0, "cv-edit": 1, "dept-edit": 1, "skills-edit": 2 ;
Then add this function in scripts.js:
function updateSummaryValues() nameVal.textContent = nameInput.value; idVal.textContent = idNumInput.value; emailVal.textContent = emailInput.value; bdVal.textContent = birthdateInput.value; const fileName = documentInput.files[0]?.name; if (fileName) const extension = fileName.split(".").pop(); const baseName = fileName.split(".")[0]; const truncatedName = baseName.length > 10 ? baseName.substring(0, 10) + "..." : baseName; cvVal.textContent = `$truncatedName.$extension`; else cvVal.textContent = "No file selected"; deptVal.textContent = departmentInput.value; skillsVal.textContent = skillsInput.value || "No skills submitted"; }
This dynamically inserts the input values into the summary section of the form, truncates the file names, and offers a fallback text for the input that was not required.
Then update the updateStepVisibility() function to call the new function:
function updateStepVisibility() formSteps.forEach((step) => document.getElementById(step).style.display = "none"; ); document.getElementById(formSteps[currentStep]).style.display = "block"; stepInfo.textContent = `Step $currentStep + 1 of $formSteps.length`; if (currentStep === 3) updateSummaryValues(); navLeft.style.display = currentStep === 0 ? "none" : "block"; navRight.style.display = currentStep === formSteps.length - 1 ? "none" : "block";
Finally, add this to the DOMContentLoaded event listener:
Object.keys(editButtons).forEach((buttonId) => const button = document.getElementById(buttonId); button.addEventListener("click", (e) => currentStep = editButtons[buttonId]; updateStepVisibility(); ); );
Running the form, you should see that the summary section shows all the inputted values and allows the user to edit any before submitting the information:
And now, we can submit our form:
form.addEventListener("submit", (e) => e.preventDefault(); if (validateStep(2)) alert("Form submitted successfully!"); form.reset(); currentFormStep = 0; updateStepVisibility(); );
Our multi-step form now allows the user to edit and see all the information they provide before submitting it.
Accessibility tips
Making multi-step forms accessible starts with the basics: using semantic HTML. This is half the battle. It is closely followed by using appropriate form labels.
Other ways to make forms more accessible include giving enough room to elements that must be clicked on small screens and giving meaningful descriptions to the form navigation and progress indicators.
Offering feedback to the user is an important part of it; it’s not great to auto-dismiss user feedback after a certain amount of time but to allow the user to dismiss it themselves. Paying attention to contrast and font choice is important, too, as they both affect how readable your form is.
Let’s make the following adjustments to the markup for more technical accessibility:
Add aria-required="true" to all inputs except the skills one. This lets screen readers know the fields are required without relying on native validation.
Add role="alert" to the error spans. This helps screen readers know to give it importance when the input is in an error state.
Add role="status" aria-live="polite" to the .stepInfo. This will help screen readers understand that the step info keeps tabs on a state, and the aria-live being set to polite indicates that should the value change, it does not need to immediately announce it.
In the script file, replace the showError() and clearError() functions with the following:
function showError(input, message) const formControl = input.parentElement; const errorSpan = formControl.querySelector(".error-message"); input.classList.add("error"); input.setAttribute("aria-invalid", "true"); input.setAttribute("aria-describedby", errorSpan.id); errorSpan.textContent = message; function clearError(input) const formControl = input.parentElement; const errorSpan = formControl.querySelector(".error-message"); input.classList.remove("error"); input.removeAttribute("aria-invalid"); input.removeAttribute("aria-describedby"); errorSpan.textContent = "";
Here, we programmatically add and remove attributes that explicitly tie the input with its error span and show that it is in an invalid state.
Finally, let’s add focus on the first input of every section; add the following code to the end of the updateStepVisibility() function:
const currentStepElement = document.getElementById(formSteps[currentStep]); const firstInput = currentStepElement.querySelector( "input, select, textarea" ); if (firstInput) firstInput.focus();
And with that, the multi-step form is much more accessible.
Conclusion
There we go, a four-part multi-step form for a job application! As I said at the top of this article, there’s a lot to juggle — so much so that I wouldn’t fault you for looking for an out-of-the-box solution.
But if you have to hand-roll a multi-step form, hopefully now you see it’s not a death sentence. There’s a happy path that gets you there, complete with navigation and validation, without turning away from good, accessible practices.
And this is just how I approached it! Again, I took this on as a personal challenge to see how far I could get, and I’m pretty happy with it. But I’d love to know if you see additional opportunities to make this even more mindful of the user experience and considerate of accessibility.
References
Here are some relevant links I referred to when writing this article:
How to Structure a Web Form (MDN)
Multi-page Forms (W3C.org)
Create accessible forms (A11y Project)
#:not#Accessibility#ADD#aria#Article#Articles#attention#attributes#background#border-radius#box#box-shadow#browser#buttons#challenge#change#classes#code#Color#content#CSS#CV#dept#direction#display#email#error handling#event#Events#Exercise
3 notes
·
View notes
Text
Universal Scroll Button(Autochange Direction) For Any Host
Hey, do you have a site with a lot of forums? Does your host allow you to use Javascript? Boy does this weirdo have a deal for you! For the low low price of free, you can get right now access to a scroll button that swaps directions when you scroll automatically, as well as changing the target & title on hover! Act fast, this deal won't last! I kid, but enough of the ShamWowery. In reality, this is a very simple script that reads how far you have scrolled a window, & applies or removes a class to your scroll button, as well as changing the target of said scroll button & adjusting the title to reflect which way it will take you!
It's so simple, crediting me seems superfluous but if you want, feel free to credit with a link to my blog <3 I hope the new verse of our song is eminently kind to everyone!
See it In Action(Click, or look Below):
I currently use this code on two different WIPS, so feel free to check out some gifs;
To Begin
Before the end of your </body> tag in your wrappers(for Jcink) or wherever the HTML templates go on other sites, you want to place this script:
<script> $(window).scroll(function() { if ($(this).scrollTop() > 800) { $('#scroll').attr("title","To Top?").attr("href","#Top").addClass('totop'); } else { $('#scroll').attr("title", "To Bottom?").attr("href","#Bottom").removeClass('totop'); } });</script>
This seeks out an id of Scroll to adjust the href & title as needed depending on the scroll position within the relevant window. The scroll amount is in px, so to change how quickly it changes the button, alter the number 800 to whatever you desire, fiddle with it; one size never fits all.
The Styling
Once you've saved that, move to your CSS, or wherever your Style tag is to add styling for the link itself. Keep in mind the link should be contained within a container that handles its positioning for it as otherwise the script will fuck with the positioning as well as the transformation & you really just want it to spin upwards.
The styling for the link should be as follows;
#scroll { display: inline-block; positioning: relative; transform: rotate(0deg); transition: transform .5s ease-in-out; /*** ^ change the .5s to alter duration or the ease-in-out to alter the timing of the transition between button states ***/ }
#scroll.totop { transform: rotate(180deg); }
The first statement defines the default state (linking to the bottom) of the scroll button on the load of the page, the second defines the change of position once the window has been scrolled far enough to activate one's script.
The HTML
Now you've got the behaviour defined via JS & the styling defined via CSS, it's time to input the HTML, or the bone structure of the code itself. In your wrappers, template, or wherever HTML goes on your host, locate three places;
One, where you want the TOP scroll location to be. This is where the scroll button will take you once it has changed states on scrolling a certain distance. Here, you place an anchor span as follows;
<span id="Top"></span>
Two, Where you desire for the BOTTOM or BODY scroll location to be, as in where the scroll button will take you on click initially. This could also be a scroll to the start of content, in which case I recommend changing #Bottom & id="Bottom" respectively to reflect the syntax, it's entirely up to you. Here, you place an anchor span as follows;
<span id="Bottom"></span>
Finally, It's time to add the scroll button. Keep in mind, where you put it is a function of utility & design choice. Some like it persistently hovering in a fixed position, some like it in a sidebar or on userlinks, some prefer it in the navigation bar.
Wherever you place it, try to ensure that it's easily accessible on any device, screen size, & matches the User Interface logic you've used everywhere else. If you have all text buttons, don't use just an icon, if you have all icons, don't suddenly use just text. Match your action calls, so users don't feel confused while using your site.
Once you've decided where you want it, place the following code, NOTING that there should be a container for this code that positions it for you. I've provided two options; the Icon Font option (courtesy of Phosphoricons -- a free & reliable Icon Font I recommend -- As well as one which includes text, so both UI/UX design philosophies are accommodated.
Note the option with text will only rotate the caret from downwards to upwards, so the scroll text shouldn't need editing unless you want to add or supplement flavourtext.
Please choose the appropriate option for yourself;
Icon Font
<a id="scroll" class="ph-fill ph-caret-down"></a>
Icon Font with Text
<span>Scroll <a id="scroll" class="ph-fill ph-caret-down"></a>?</span>
Some Notes:
I just want to add a bit of info:
If your browser isn't scrolling smoothly to your anchors? Check your settings, & be sure the root of your CSS has scroll-behaviour: smooth; in it.
If you use this guide & have problems getting it to work, please let me know! I will troubleshoot this for you & tumblr has strange coding, I may have futzed something up, I want this to be as accessible as possible, so don't be silent; questions help!
If you are not using Jcink, or another host with a Jquery library pre-loaded, be aware that one is needed for this script to work. Most hosts will have a default Jquery library, but if yours doesn't or you're self hosting, any should do. The Jcink file is below, however, if you want to just use that.
10 notes
·
View notes
Text

The Comprehensive Guide to Web Development, Data Management, and More
Introduction
Everything today is technology driven in this digital world. There's a lot happening behind the scenes when you use your favorite apps, go to websites, and do other things with all of those zeroes and ones — or binary data. In this blog, I will be explaining what all these terminologies really means and other basics of web development, data management etc. We will be discussing them in the simplest way so that this becomes easy to understand for beginners or people who are even remotely interested about technology. JOIN US
What is Web Development?
Web development refers to the work and process of developing a website or web application that can run in a web browser. From laying out individual web page designs before we ever start coding, to how the layout will be implemented through HTML/CSS. There are two major fields of web development — front-end and back-end.
Front-End Development
Front-end development, also known as client-side development, is the part of web development that deals with what users see and interact with on their screens. It involves using languages like HTML, CSS, and JavaScript to create the visual elements of a website, such as buttons, forms, and images. JOIN US
HTML (HyperText Markup Language):
HTML is the foundation of all website, it helps one to organize their content on web platform. It provides the default style to basic elements such as headings, paragraphs and links.
CSS (Cascading Style Sheets):
styles and formats HTML elements. It makes an attractive and user-friendly look of webpage as it controls the colors, fonts, layout.
JavaScript :
A language for adding interactivity to a website Users interact with items, like clicking a button to send in a form or viewing images within the slideshow. JOIN US
Back-End Development
The difference while front-end development is all about what the user sees, back end involves everything that happens behind. The back-end consists of a server, database and application logic that runs on the web.
Server:
A server is a computer that holds website files and provides them to the user browser when they request it. Server-Side: These are populated by back-end developers who build and maintain servers using languages like Python, PHP or Ruby.
Database:
The place where a website keeps its data, from user details to content and settings The database is maintained with services like MySQL, PostgreSQL, or MongoDB. JOIN US
Application Logic —
the code that links front-end and back-end It takes user input, gets data from the database and returns right informations to front-end area.

Why Proper Data Management is Absolutely Critical
Data management — Besides web development this is the most important a part of our Digital World. What Is Data Management? It includes practices, policies and procedures that are used to collect store secure data in controlled way.
Data Storage –
data after being collected needs to be stored securely such data can be stored in relational databases or cloud storage solutions. The most important aspect here is that the data should never be accessed by an unauthorized source or breached. JOIN US
Data processing:
Right from storing the data, with Big Data you further move on to process it in order to make sense out of hordes of raw information. This includes cleansing the data (removing errors or redundancies), finding patterns among it, and producing ideas that could be useful for decision-making.
Data Security:
Another important part of data management is the security of it. It refers to defending data against unauthorized access, breaches or other potential vulnerabilities. You can do this with some basic security methods, mostly encryption and access controls as well as regular auditing of your systems.
Other Critical Tech Landmarks
There are a lot of disciplines in the tech world that go beyond web development and data management. Here are a few of them:
Cloud Computing
Leading by example, AWS had established cloud computing as the on-demand delivery of IT resources and applications via web services/Internet over a decade considering all layers to make it easy from servers up to top most layer. This will enable organizations to consume technology resources in the form of pay-as-you-go model without having to purchase, own and feed that infrastructure. JOIN US
Cloud Computing Advantages:
Main advantages are cost savings, scalability, flexibility and disaster recovery. Resources can be scaled based on usage, which means companies only pay for what they are using and have the data backed up in case of an emergency.
Examples of Cloud Services:
Few popular cloud services are Amazon Web Services (AWS), Microsoft Azure, and Google Cloud. These provide a plethora of services that helps to Develop and Manage App, Store Data etc.
Cybersecurity
As the world continues to rely more heavily on digital technologies, cybersecurity has never been a bigger issue. Protecting computer systems, networks and data from cyber attacks is called Cyber security.
Phishing attacks, Malware, Ransomware and Data breaches:
This is common cybersecurity threats. These threats can bear substantial ramifications, from financial damages to reputation harm for any corporation.
Cybersecurity Best Practices:
In order to safeguard against cybersecurity threats, it is necessary to follow best-practices including using strong passwords and two-factor authorization, updating software as required, training employees on security risks.
Artificial Intelligence and Machine Learning
Artificial Intelligence (AI) and Machine Learning (ML) represent the fastest-growing fields of creating systems that learn from data, identifying patterns in them. These are applied to several use-cases like self driving cars, personalization in Netflix.
AI vs ML —
AI is the broader concept of machines being able to carry out tasks in a way we would consider “smart”. Machine learning is a type of Artificial Intelligence (AI) that provides computers with the ability to learn without being explicitly programmed. JOIN US
Applications of Artificial Intelligence and Machine Learning: some common applications include Image recognition, Speech to text, Natural language processing, Predictive analytics Robotics.
Web Development meets Data Management etc.
We need so many things like web development, data management and cloud computing plus cybersecurity etc.. but some of them are most important aspects i.e. AI/ML yet more fascinating is where these fields converge or play off each other.
Web Development and Data Management
Web Development and Data Management goes hand in hand. The large number of websites and web-based applications in the world generate enormous amounts of data — from user interactions, to transaction records. Being able to manage this data is key in providing a fantastic user experience and enabling you to make decisions based on the right kind of information.
E.g. E-commerce Website, products data need to be saved on server also customers data should save in a database loosely coupled with orders and payments. This data is necessary for customization of the shopping experience as well as inventory management and fraud prevention.
Cloud Computing and Web Development
The development of the web has been revolutionized by cloud computing which gives developers a way to allocate, deploy and scale applications more or less without service friction. Developers now can host applications and data in cloud services instead of investing for physical servers.
E.g. A start-up company can use cloud services to roll out the web application globally in order for all users worldwide could browse it without waiting due unavailability of geolocation prohibited access.
The Future of Cybersecurity and Data Management
Which makes Cybersecurity a very important part of the Data management. The more data collected and stored by an organization, the greater a target it becomes for cyber threats. It is important to secure this data using robust cybersecurity measures, so that sensitive information remains intact and customer trust does not weaken. JOIN US
Ex: A healthcare provider would have to protect patient data in order to be compliant with regulations such as HIPAA (Health Insurance Portability and Accountability Act) that is also responsible for ensuring a degree of confidentiality between a provider and their patients.
Conclusion
Well, in a nutshell web-developer or Data manager etc are some of the integral parts for digital world.
As a Business Owner, Tech Enthusiast or even if you are just planning to make your Career in tech — it is important that you understand these. With the progress of technology never slowing down, these intersections are perhaps only going to come together more strongly and develop into cornerstones that define how we live in a digital world tomorrow.
With the fundamental knowledge of web development, data management, automation and ML you will manage to catch up with digital movements. Whether you have a site to build, ideas data to manage or simply interested in what’s hot these days, skills and knowledge around the above will stand good for changing tech world. JOIN US
#Technology#Web Development#Front-End Development#Back-End Development#HTML#CSS#JavaScript#Data Management#Data Security#Cloud Computing#AWS (Amazon Web Services)#Cybersecurity#Artificial Intelligence (AI)#Machine Learning (ML)#Digital World#Tech Trends#IT Basics#Beginners Guide#Web Development Basics#Tech Enthusiast#Tech Career#america
4 notes
·
View notes
Text
Did You Know the Math Simulation Software GeoGebra? 🎓🧮
In the realm of educational technology, few tools have revolutionized the way we teach and learn mathematics as profoundly as GeoGebra. This dynamic software seamlessly blends geometry, algebra, calculus, and statistics, offering a versatile platform for students and educators alike. Whether you're a teacher aiming to bring mathematical concepts to life or a student looking to explore the depths of math, GeoGebra has something to offer.
What is GeoGebra? 🤔
GeoGebra is an interactive mathematics software designed to make learning and teaching math more engaging and effective. It's a powerful tool that integrates various branches of mathematics into a single platform, providing users with a comprehensive suite of tools to explore mathematical concepts visually and interactively.
Key Features of GeoGebra 🌟
Interactive Geometry: With GeoGebra, you can create constructions and models using points, vectors, segments, lines, polygons, and conic sections. The dynamic nature of these objects allows for real-time manipulation, making abstract concepts tangible and easier to understand.
Algebraic Integration: Directly input equations and coordinates to see their graphical representations. GeoGebra links algebraic and geometric views, helping users see the relationships between different mathematical expressions.
Calculus Tools: Explore derivatives, integrals, and functions with ease. GeoGebra's calculus tools are designed to help users visualize and understand these complex concepts.
Statistics and Probability: Create graphs of statistical data, calculate probabilities, and visualize distributions. These features make it easier to teach and learn statistical concepts.
3D Graphics: GeoGebra’s 3D capabilities allow for the creation and manipulation of three-dimensional graphs and shapes, providing a deeper understanding of spatial relationships.
Spreadsheet View: Handle data efficiently with the integrated spreadsheet functionality. This feature is perfect for visualizing and analyzing large data sets.
Scripting and Custom Tools: Automate tasks and create custom tools using GeoGebra’s scripting language, GGBScript, and JavaScript. This allows for tailored solutions to specific mathematical problems.
Cross-Platform Availability: GeoGebra is accessible as a web application and on various platforms including Windows, macOS, Linux, iOS, and Android, ensuring that you can use it anywhere, anytime.
Transforming Education with GeoGebra 📚💡
GeoGebra is not just a tool for solving mathematical problems; it's a bridge that connects theoretical mathematics with practical understanding. Here’s how it’s making an impact in education:
Visualization: Complex mathematical concepts become accessible through visual representation, making it easier for students to grasp abstract ideas.
Interactive Learning: Students engage more actively with math by manipulating objects and seeing the immediate effects of changes.
Immediate Feedback: GeoGebra provides instant visual feedback, aiding in the learning process and helping students correct mistakes in real-time.
Collaborative Learning: It supports group projects and resource sharing, fostering a collaborative learning environment.
Customizable Resources: Teachers can create interactive worksheets and tailor lessons to meet the needs of their students.
Why Choose GeoGebra? 🤩
User-Friendly Interface: Designed to be intuitive and easy to use, GeoGebra is suitable for all educational levels.
Rich Community and Resources: A large community of users shares resources, tutorials, and tips, making it easier to get the most out of GeoGebra.
Cost-Effective: Free to use, GeoGebra is accessible to a wide audience, ensuring that financial barriers do not hinder learning.
Versatility: Whether you’re in elementary school, university, or working on professional research, GeoGebra has tools to meet your needs.
Real-World Applications 🌍🔍
GeoGebra’s versatility extends beyond the classroom. It’s used in academic research, professional presentations, and even in real-world problem-solving scenarios. Its ability to visualize complex data and mathematical relationships makes it an invaluable tool for a wide range of applications.
Conclusion 🎉
GeoGebra is more than just software; it's a transformative educational tool that brings mathematics to life. By combining visualization, interaction, and immediate feedback, GeoGebra helps students and teachers alike to deepen their understanding of math. Whether you're solving algebraic equations, exploring geometric constructions, or delving into calculus and statistics, GeoGebra is your go-to resource for a richer, more engaging mathematical experience. Embrace the power of GeoGebra and unlock the full potential of mathematics! 🚀🧩
3 notes
·
View notes
Text
Lightweight Text Highlighting JavaScript Library - Highlight Search Term
Highlight Search Term is a small and fast JavaScript library to dynamically highlight specific words or phrases within a page based on user input. It’s compatible with vanilla JavaScript and popular frameworks like React, Vite, and Angular. Can be useful in search-intensive websites, knowledge bases, document viewers, and more. How it works: The ‘Highlight Search Term’ library functions by…
2 notes
·
View notes
Text
Front-End Development: Building the Interface of the Future
Front-end development is at the heart of creating user-friendly and visually appealing websites. It involves translating designs into code and ensuring that web applications are responsive and interactive. In this article, we explore the key aspects of front-end development, essential skills, and emerging trends in the field.
What is Front-End Development?
Front-end development focuses on the user interface (UI) and user experience (UX) aspects of web development. It involves creating the part of the website that users see and interact with, using a combination of HTML, CSS, and JavaScript.
Core Technologies
HTML (HyperText Markup Language): HTML is the foundation of web pages, defining the structure and content, such as headings, paragraphs, and images.
CSS (Cascading Style Sheets): CSS is used to style and layout web pages, controlling aspects like colors, fonts, and spacing to create an attractive and consistent look.
JavaScript: JavaScript adds interactivity and dynamic content to web pages, enabling features like form validation, animations, and user input handling.
Popular Frameworks and Libraries
React: A JavaScript library for building fast and dynamic user interfaces, particularly single-page applications.
Angular: A comprehensive framework for building large-scale applications with a structured and modular approach.
Vue.js: A flexible framework that is easy to integrate into projects and focuses on the view layer of applications.
The Role of a Front-End Developer
Turning Designs into Code
Front-end developers take designs created by UI/UX designers and turn them into code. This involves creating HTML for structure, CSS for styling, and JavaScript for functionality, ensuring the design is faithfully implemented and functional across various devices and browsers.
Ensuring Responsiveness
With the growing use of mobile devices, it’s crucial that websites work well on screens of all sizes. Front-end developers ensure that web applications are responsive, meaning they adapt smoothly to different screen resolutions and orientations.
Optimizing Performance
Performance optimization is key in front-end development. Developers reduce file sizes, minimize load times, and implement lazy loading for images and videos to enhance the user experience.
Maintaining Cross-Browser Compatibility
A successful front-end developer ensures that web applications work consistently across different browsers. This involves testing and resolving compatibility issues to provide a uniform experience.
Implementing Accessibility
Making web content accessible to people with disabilities is a critical aspect of front-end development. Developers adhere to accessibility standards and best practices to ensure that everyone can use the website effectively.
Essential Skills for Front-End Developers
Mastery of Core Technologies
Proficiency in HTML, CSS, and JavaScript is fundamental. Front-end developers must be able to write clean, efficient code that is both maintainable and scalable.
Familiarity with Modern Frameworks
Knowledge of modern frameworks like React, Angular, and Vue.js is crucial for building contemporary web applications. These tools facilitate the creation of complex, dynamic interfaces.
Version Control with Git
Version control systems like Git are essential for tracking changes in the codebase and collaborating with other developers. Mastery of Git allows for efficient project management and collaboration.
Understanding of UX/UI Design
An understanding of UX/UI principles helps developers create user-friendly and aesthetically pleasing interfaces. This includes knowledge of user behavior, usability testing, and design basics.
Problem-Solving and Debugging
Front-end development often involves troubleshooting issues related to layout, functionality, and performance. Strong problem-solving skills are essential to identify and resolve these challenges efficiently.
Emerging Trends in Front-End Development
Progressive Web Apps (PWAs)
PWAs combine the best features of web and mobile applications, offering fast loading times, offline capabilities, and push notifications. They provide a native app-like experience within the browser.
WebAssembly
WebAssembly allows developers to run high-performance code in web browsers. It enables complex applications like games and video editors to run efficiently on the web, expanding the possibilities of front-end development.
Server-Side Rendering (SSR)
Server-side rendering improves the loading speed of web pages and enhances SEO. Frameworks like Next.js (for React) facilitate SSR, making it easier to build fast and search-friendly applications.
Single Page Applications (SPAs)
SPAs load a single HTML page and dynamically update the content as users interact with the application. This approach provides a smoother user experience, similar to that of a desktop application.
Component-Based Development
Modern frameworks emphasize component-based architecture, where UI elements are built as reusable components. This modular approach enhances maintainability and scalability.
AI and Machine Learning Integration
Integrating AI and machine learning into front-end development enables the creation of smarter, more personalized applications. Features like chatbots, recommendation engines, and voice recognition can significantly enhance user engagement.
#FrontEndDevelopment#WebDevelopment#UIUXDesign#HTML#CSS#JavaScript#ReactJS#Angular#VueJS#ResponsiveDesign#WebDesign#UserExperience#WebPerformance#WebAccessibility#SinglePageApplication#ProgressiveWebApp#WebDevelopmentTrends#ModernWebDev#FrontendFrameworks#CodeNewbie#LearnToCode#WebDevCommunity#CodingLife#TechTrends#WebComponents#WebAssembly#ServerSideRendering#DigitalDesign#UIComponents#WebOptimization
3 notes
·
View notes
Text
What to do when you spot a broken website
I am a very firm believer in either sticking to your principles or update them.
So when I got this error while I tried to search for C/C++ on my national job portal:
My first thought was "Huh, that is sorta funny" (especially since the code to show me the email address to report this error to was ALSO broken... meaning that whoever made the code that should run if the website broke... never tested it). And then I realized what I was looking at.
And at that point I think I had a ethical duty to notify people to get this fixed. FAST. Why?
It comes under "You are responsible for your choices". With it being understood that doing nothing is also a choice, and that taking a job where you work for, and help a company with doing evil is NOT a choice, if that is the only job you could get (IE, you did not have the power/money/mental health/time to make a choice)
It is now fixed*, so I wanted to make this post for all in the little codeblr community doing any front-end work. Web or not. With 3 lessons to learn from this.
First thing to get from this: "Everyone makes mistakes". This is one of the reason good code is not code without errors. It is code where it is easy to make changes and fix errors. You then try to find as many errors as you can with code reviews, automated testing, having a work environment that does not punish human errors( which encourages people to HIDE errors ) and so on.
Second thing: "Sanitize your user input. Always". Write code that assumes that every single user wants nothing more than to break your code and exploit its vulnerabilities.
This had NOT been done here. This error shows that characters in the string that was made from my search terms, was being run as code. As in, I, or anyone else, could run code in the middle of this javascript code. Meaning it is possible that someone could write code as part of their search that would make the javascript code do... whatever they wanted to. Including deleting the entire backend database. Or steal the info. This is why you ALWAYS sanitize your user input. Basically encode all potentially dangerous characters as something else while working on them. There are libraries like validator.js and express-validator that will do it for you, if you use javascript.
And the third thing. "Do NOT investigate further" . As soon as you confirm that your user input gets treated as code, you contact whoever is running it. If they do not take the threat seriously and it is still there after a week or two, contact established press with this info. You may read about so called grey hat hackers, who unlike black hat hackers(who is people wishing to do harm) or white hat hackers(Who are hired to try to break into a companies software to test it), are trying to find security flaws with good intentions, but are unaffiliated with whoevers code they are trying to break into. In an ideal world, doing that, and then contacting the company, SHOULD result in the company thanking them . But often it also leads to the company suing. And winning. Since breaking in to show that it is possible, is technically still breaking in. So do NOT start testing what you are able to do with the exploit you found. Report it to them, and check a weeks time later if it is fixed. If it keeps being vulnerable, contact the press. The site fixed this error after half a week. But they did it, not by encoding the dangerous characters into something else, but to simply remove them all from the user input string. Meaning that I still cannot search for "C++". Now I just get any job that contains the letter "C"... I mean... it is better... So if you take user input, and it does not brick your code in dangerous ways. You are doing better than whoever coded this for the Danish State :p
12 notes
·
View notes
Text
What is the difference between HTML and HTML5?
HTML (Hypertext Markup Language) is the standard markup language used to create web pages. HTML5 is the fifth and latest version of HTML. Here are some key differences:
New Features: HTML5 introduced several new features and elements that were not available in previous versions, such as <video>, <audio>, <canvas>, <header>, <footer>, <nav>, and <article>. These elements enhance multimedia support and provide better semantic structure for web documents.
Improved Semantics: HTML5 provides better semantic markup, allowing developers to create more structured and meaningful web pages. Semantic elements like <section>, <article>, <header>, <footer>, and <nav> help in defining the structure and purpose of different parts of a web page.
Compatibility: HTML5 is designed to be backward compatible with older browsers, ensuring that web pages created with HTML5 can still be viewed and function properly on browsers that do not support HTML5 features. However, some advanced features may not be fully supported in older browsers.
Multimedia Support: HTML5 provides native support for embedding audio and video content directly into web pages using the <audio> and <video> elements, eliminating the need for third-party plugins like Adobe Flash.
Improved Forms: HTML5 introduces new input types, attributes, and validation features for forms, making it easier to create user-friendly and accessible forms without relying on JavaScript or additional libraries.
Offline Support: HTML5 includes features like the Application Cache and Web Storage, which allow web applications to work offline and store data locally on the user's device, providing a more seamless and responsive user experience.
Overall, HTML5 represents a significant advancement over previous versions of HTML, offering developers more powerful tools and capabilities for creating modern and interactive web experiences.
Read more .....
#tech#technology#computer#computer science#computer generated image#computer art#phones#old technology#computing
2 notes
·
View notes
Text
Fucking hell, now even if you write a post in HTML editor, once it renders, when you go to edit the post it opens in rich text editor, and then when you switch over to HTML editor it has replaced your actual text input with the rich text overwrite. There is no input method with actual control. This. This is what enshittening looks like. Taking things that were well designed and optimized DECADES ago, and reinventing them in Javascript solely to take control AWAY from users.
#this blue hellsite#hell world! hell world! hell world! hell world!#the tag recall has also gotten quite inferior since they killed the old post editors#category: other
3 notes
·
View notes
Text
JavaScript Frameworks
Step 1) Polyfill
Most JS frameworks started from a need to create polyfills. A Polyfill is a js script that add features to JavaScript that you expect to be standard across all web browsers. Before the modern era; browsers lacked standardization for many different features between HTML/JS/and CSS (and still do a bit if you're on the bleeding edge of the W3 standards)
Polyfill was how you ensured certain functions were available AND worked the same between browsers.
JQuery is an early Polyfill tool with a lot of extra features added that makes JS quicker and easier to type, and is still in use in most every website to date. This is the core standard of frameworks these days, but many are unhappy with it due to performance reasons AND because plain JS has incorporated many features that were once unique to JQuery.
JQuery still edges out, because of the very small amount of typing used to write a JQuery app vs plain JS; which saves on time and bandwidth for small-scale applications.
Many other frameworks even use JQuery as a base library.
Step 2) Encapsulated DOM
Storing data on an element Node starts becoming an issue when you're dealing with multiple elements simultaneously, and need to store data as close as possible to the DOMNode you just grabbed from your HTML, and probably don't want to have to search for it again.
Encapsulation allows you to store your data in an object right next to your element so they're not so far apart.
HTML added the "data-attributes" feature, but that's more of "loading off the hard drive instead of the Memory" situation, where it's convenient, but slow if you need to do it multiple times.
Encapsulation also allows for promise style coding, and functional coding. I forgot the exact terminology used,but it's where your scripting is designed around calling many different functions back-to-back instead of manipulating variables and doing loops manually.
Step 3) Optimization
Many frameworks do a lot of heavy lifting when it comes to caching frequently used DOM calls, among other data tools, DOM traversal, and provides standardization for commonly used programming patterns so that you don't have to learn a new one Everytime you join a new project. (you will still have to learn a new one if you join a new project.)
These optimizations are to reduce reflowing/redrawing the page, and to reduce the plain JS calls that are performance reductive. A lot of these optimatizations done, however, I would suspect should just be built into the core JS engine.
(Yes I know it's vanilla JS, I don't know why plain is synonymous with Vanilla, but it feels weird to use vanilla instead of plain.)
Step 4) Custom Element and component development
This was a tool to put XML tags or custom HTML tags on Page that used specific rules to create controls that weren't inherent to the HTML standard. It also helped linked multiple input and other data components together so that the data is centrally located and easy to send from page to page or page to server.
Step 5) Back-end development
This actually started with frameworks like PHP, ASP, JSP, and eventually resulted in Node.JS. these were ways to dynamically generate a webpage on the server in order to host it to the user. (I have not seen a truly dynamic webpage to this day, however, and I suspect a lot of the optimization work is actually being lost simply by programmers being over reliant on frameworks doing the work for them. I have made this mistake. That's how I know.)
The backend then becomes disjointed from front-end development because of the multitude of different languages, hence Node.JS. which creates a way to do server-side scripting in the same JavaScript that front-end developers were more familiar with.
React.JS and Angular 2.0 are more of back end frameworks used to generate dynamic web-page without relying on the User environment to perform secure transactions.
Step 6) use "Framework" as a catch-all while meaning none of these;
Polyfill isn't really needed as much anymore unless your target demographic is an impoverished nation using hack-ware and windows 95 PCs. (And even then, they could possible install Linux which can use modern lightweight browsers...)
Encapsulation is still needed, as well as libraries that perform commonly used calculations and tasks, I would argue that libraries aren't going anywhere. I would also argue that some frameworks are just bloat ware.
One Framework I was researching ( I won't name names here) was simply a remapping of commands from a Canvas Context to an encapsulated element, and nothing more. There was literally more comments than code. And by more comments, I mean several pages of documentation per 3 lines of code.
Custom Components go hand in hand with encapsulation, but I suspect that there's a bit more than is necessary with these pieces of frameworks, especially on the front end. Tho... If it saves a lot of repetition, who am I to complain?
Back-end development is where things get hairy, everything communicates through HTTP and on the front end the AJAX interface. On the back end? There's two ways data is given, either through a non-html returning web call, *or* through functions that do a lot of heavy lifting for you already.
Which obfuscates how the data is used.
But I haven't really found a bad use of either method. But again; I suspect many things about performance impacts that I can't prove. Specifically because the tools in use are already widely accepted and used.
But since I'm a lightweight reductionist when it comes to coding. (Except when I'm not because use-cases exist) I can't help but think most every framework work, both front-end and Back-end suffers from a lot of bloat.
And that bloat makes it hard to select which framework would be the match for the project you're working on. And because of that; you could find yourself at the tail end of a development cycle realizing; You're going to have to maintain this as is, in the exact wrong solution that does not fit the scope of the project in anyway.
Well. That's what junior developers are for anyway...
2 notes
·
View notes
Text
Navigating the Web's New Frontier: Core Web Vitals Optimization in 2023
The internet is a bustling ecosystem, constantly evolving and demanding adaptability from website owners and developers. In 2023, the talk of the town in the digital realm is Core Web Vitals (CWV). To stay relevant and competitive, you must understand how to improve Core Web Vitals, grasp the CWV ranking factors, and master tips to enhance the Largest Contentful Paint (LCP). In this comprehensive guide, we'll not only explore these essential concepts but also infuse a touch of humanity into the world of digital optimization.
The Rise of Core Web Vitals
What Are Core Web Vitals?
Core Web Vitals are a set of user-centric metrics that Google considers crucial for evaluating the overall user experience of a web page. They focus on aspects like page loading speed, interactivity, and visual stability, all of which directly impact how users perceive and interact with a website.
Why Do Core Web Vitals Matter?
Core Web Vitals matter for several compelling reasons:
User-Centered Web: They emphasize user experience, aligning with the user-centric approach that Google has been championing for years.
Search Rankings: Google now uses Core Web Vitals as a ranking factor, meaning that a better-performing website has a higher chance of ranking well in search results.
Improved Engagement: Faster-loading pages and smoother interactions lead to increased user engagement, lower bounce rates, and ultimately, higher conversion rates.
Improving Core Web Vitals
Now, let's dive into the practical steps to improve Core Web Vitals:
1. Optimize Largest Contentful Paint (LCP):
LCP measures the loading performance of a web page and focuses on the largest element that appears in the viewport.
Image Optimization: Compress and serve images in modern formats like WebP. Use lazy loading to prioritize the loading of images within the viewport.
Content Delivery Network (CDN): Utilize a CDN to deliver content from servers closer to the user, reducing server response times.
Reduce Server Response Times: Optimize server performance and reduce the time it takes to render the initial content.
2. Enhance First Input Delay (FID):
FID evaluates the responsiveness of a web page by measuring the delay between a user's interaction (e.g., clicking a button) and the browser's response.
Minimize JavaScript Execution: Identify and remove or defer non-essential JavaScript. Use browser caching to reduce the load on the user's device.
Prefetch and Preload: Use resource hints like prefetch and preload to ensure critical resources are fetched in advance.
Lazy-Load JavaScript: Load JavaScript components only when they are needed to avoid blocking the main thread.
3. Tackle Cumulative Layout Shift (CLS):
CLS assesses visual stability by measuring the unexpected layout shifts that can frustrate users.
Reserve Space for Ads and Embeds: Ensure that ad placeholders and embeds reserve space to prevent sudden layout shifts when they load.
Set Dimensions for Images and Media: Specify the dimensions of images and media elements in your HTML to reserve space.
Use Transition Animations Wisely: If you use animations, make sure they don't cause unexpected layout shifts.
Core Web Vitals Ranking Factors
Understanding the CWV ranking factors is key to mastering Core Web Vitals optimization:
1. Mobile Friendliness:
With mobile devices dominating web traffic, ensuring that your website is mobile-friendly is essential. Responsive design and mobile optimization are key factors for CWV.
2. Page Loading Speed:
The speed at which your page loads is crucial for LCP. Optimize your site for fast loading by minimizing server response times and leveraging browser caching.
3. HTTPS Security:
A secure website not only protects user data but also contributes positively to CWV. Ensure your website uses HTTPS.
4. Mobile Interactivity:
FID is all about how quickly your site responds to user interactions on mobile devices. Keep JavaScript lightweight and efficient.
5. Visual Stability: CLS depends on how elements on your page are laid out. Avoid elements that can cause unexpected shifts and prioritize visual stability.
The Human Element of Core Web Vitals
Amidst all the technical jargon and optimization techniques, it's crucial to remember that behind every website visit is a human being with specific needs, expectations, and emotions. Core Web Vitals optimization isn't just about pleasing search engines; it's about creating a better online experience for real people.
Imagine a user sitting in a bustling coffee shop, attempting to access your website via their smartphone. They're seeking information or a product that can make their day easier or more enjoyable. If your website loads quickly, responds instantly to their taps and clicks, and doesn't frustrate them with unexpected layout shifts, you've not only met the criteria for Core Web Vitals but also provided a positive, user-centric experience.
Core Web Vitals in Action
Let's take a look at how real-world websites can improve Core Web Vitals:
1. E-Commerce Site:
Issue: High LCP due to large product images loading slowly.
Solution: Implement lazy loading for product images and compress images without compromising quality.
2. Blogging Platform:
Issue: High FID due to excessive JavaScript loading.
Solution: Defer non-essential JavaScript, prefetch critical resources, and prioritize lazy-loading for images and videos.
3. News Website:
Issue: High CLS due to ads causing layout shifts.
Solution: Reserve space for ads, pre-load ad placeholders, and optimize ad delivery for visual stability.
Conclusion: Striking a Balance
In 2023, Core Web Vitals optimization is more than a technical necessity; it's a commitment to enhancing the online experience for your audience. By understanding how to improve Core Web Vitals, grasping the CWV ranking factors, and keeping the human element at the forefront of your efforts, you can strike a balance between pleasing search engines and satisfying real people. Remember, every second counts, every click matters, and every layout shift can make or break a user's experience. As you embark on your Core Web Vitals optimization journey, keep the user at the center of your strategy, and you'll find that success in this new digital frontier is not just achievable but also deeply rewarding
3 notes
·
View notes
Text
React Native: Why Should You Use It For Your Mobile App?
Introduction
There is no doubt that mobile applications are a basic need in our day-to-day life. Tons of mobile apps are being downloaded every day. Every organization requires a mobile application for its business so every app must be well-optimizer and user-friendly as well.
Therefore various frameworks are being created and used to give out the best mobile app to the customer and from all of them react native is one of them.
What is React Native?
With various frameworks and technologies available, choosing the right one can be terrible. However, when it comes to creating high-quality mobile apps, React Native has always been a first thought for mobile app developers.
In simple words, React Native is an open-source UI software Framework for creating mobile applications for Android and iOS platforms. Moreover, it allows developers to build high-quality mobile applications using a single codebase.
However, the question arises as to why React Native is the best framework for mobile applications. So, let’s begin with why mobile app developers rely more on the React Native framework.
The Advantages of React Native
The apps that are created by React Native are always of high quality and flexible towards code sharing to make it a developer-friendly framework.
Cross-Platform Compatibility One of the most significant advantages of React Native is that it’s flexible on various platforms. As it’s a cross-platform framework it provides the same level of performance as a native app for android and iOS as well. It just requires a base code and it can be operated on any OS platform, by which you don't have to hire developers for various platforms. That’s the reason why React Native is used as a hybrid application.
UI Focused React Native allows you to create a unique eye-catching UI (User-Interface) for the app. It involves components like clicks, hovers, keyboard inputs, and all to make your mobile user-friendly and easy to navigate. You can say this framework pays a lot of attention to designing UI apps.
Hot Reloading This is one of the advantages that allows the developers to view two screens at a time allowing them to inspect the live changes without reloading the entire app. Hot reloading is also known as Live reloading which improves the development process with real-time feedback.
Better Performance Compared to native apps React has plenty of components that are used for different features and functions. Therefore, it allows the developer to create mobile apps faster and more efficiently which reduces the time and work needed to develop an app.
Accessibility For every mobile app development process accessibility is the main aspect as it increases the size of your potential market. React Native has a considerably more robust accessibility API than many others. Developers can gain benefits in approving apps from this feature of React Native.
Future Of React Native
React Native has already made a name for itself in the field of developing mobile applications. Performance and stability optimization will be one of React Native's main future priorities.
To provide a seamless experience for developers and end users, the React Native team and the community are actively solving the performance issues. The bridge between JavaScript and native components is being optimised to cut down on cost and speed up rendering.
This involves enhancing navigational capabilities, enabling smoother animations, and improving support for platform-specific components.
The future possibilities for React Native are promising to continue work and a passionate user base. The developer experience is streamlined and native-like user interfaces are made possible as performance increases.
Conclusion
In conclusion, React Native is the clear choice for mobile app development. Its numerous advantages, cost-effectiveness, and ability to deliver native-like experiences making it the preferred framework for developers worldwide.
So, embrace your React Native mobile application with Techvoot Solutions where our experts ensure to create a seamless and robust mobile application for your organisation.
Frequently Asked Questions
Is React Native the same as React? Yes, React Native shares some concepts with React, they are not the same. React Native is specifically designed for mobile app development, whereas React is a JavaScript library for building web user interfaces.
Can I use existing web development skills with React Native? Yes, if you have experience with JavaScript and React, you’ll find it easy to get started with React Native.
Which Programming languages are used in React Native? React Native primarily uses JavaScript or TypeScript for building mobile applications. It allows the writing of platform-specific code using iOS and Java when necessary.
Can I use native modules with React Native? Yes, React Native allows the integration of native modules written in Swift, Objective-C, Java, or other native languages.
Can I use third-party libraries and plugins with React Native? Yes, React native community offers a wealth of third-party resources to enhance your app’s functionality. Source:
3 notes
·
View notes