#javascript do while loop
Explore tagged Tumblr posts
tawnysoup · 1 month ago
Text
✨LOOP CRITTER SHIMEJI!✨
IT'S FINALLY DONE!!!
Finally, you can have a critter of your very own! Or 50 of them! Your call!
Looplet features a couple more traits than your standard shimeji, including some interactions, a hotspot (so you can pet them) and adjusted chances for various animations to play. Ultimately, they'll make doing anything on your computer 5x harder by running around and distracting you constantly :)
This shimeji contains vague spoilers for lategame In Stars and Time, but you can probably get away with using them if u haven't finished the game, since they are so so vague. Still, be mindful of this if you care about spoilers!
To use the shimeji simply download, unzip, make sure you have Javascript 8 installed, and doubleclick the jar file inside the folder! If you have any other issues running the shimeji, please consult the readme txt inside the folder.
ALSO! If you encounter any bugs while using the shimeji, please let me know! Editing the code was a bit nightmarish (there's so little documentation online) so it's a bit held together with duct tape and I wouldn't be surprised if anything went wrong. As a side note, yes the 'dragging' animation will delete one of the looplets if cloning is disabled, unfortunately there's nothing I can do about that one 😔
In any case… have fun, everyone!
------------------------------------------ ✨GOOGLEDRIVE LINK TO THE DOWNLOAD (CLICK HERE)✨ ------------------------------------------
Tumblr media
3K notes · View notes
study-diaries · 8 months ago
Text
Tips for understanding complex topics
I've struggled with this but I'm adapting, you know? So here are some of my tips I use for this :)
If you can't understand it at once, do not think that it is hard
Many times, the topic itself if simple but the way the textbook has described it is complex so go and search for related videos and Google about it until you've got a hint about what it is.
If it's complicated, divide the sentence.
When you find yourself getting completely lost in a topic while banging your head against the wall because it's so confusing.... separate each part of the sentence while you write each part as you say it out loud. It'll help you to atleast get a short idea about the subject.
Read! Read! Read!
Read it over and over again and underline the words you think are important, write them down, explain it to yourself, draw small diagrams around your notes, connect them through visual representation. The more you use different types of senses, the better you understand it.
Give yourself time.
Let yourself grasp what the whole topic is about, do not under any circumstances have a time limit for difficult topics. I took days just to understand how Javascript loops work and I'm still not fully clear about it but i can explain the general, very basic purpose of it.
Explain it to someone or yourself
The best way to learn is to teach, this actually does work. It helps you to put your understanding in words and clear any underlying questions. And lastly...
Handwritten notes!
I cannot stress this enough but things that you've written down generally stay in your memory for longer durations. I also prefer handwritten notes to digital ones cause personally it works better.
Hope this helps! :D
176 notes · View notes
haveyouusedthispokemon · 24 days ago
Note
genuine question, where are you getting the gifs of the diamond/pearl sprites? usually when i see people reference sprites from gen 4 they use the updated ones from platinum, it’s kinda neat seeing the original ones
I get the sprites and official art from Bulbapedia! Their archive has been a huuuge help. ^^
They use JavaScript to animate the sprites, though, so I��ve been converting them to gif’s since tumblr doesn’t really take js or apng’s.
This is also why the ones I post don’t loop while theirs do; I made them non-looping to match what happens in d/p! (and the rest of gen 4 really)
20 notes · View notes
idrellegames · 6 months ago
Note
hi there! sorry if you've gotten a similar ask before. do you write wayfarer directly into twine or do you keep it in a separate doc? do you just have really clearly labeled sections in a word doc or something or is there a specific program you use to keep track of every story path? basically, with something as expansive and w/ as many routes as wayfarer, how do you keep all your writing organized?
I have answered this before, but I can't seem to find my posts on the subject (you may want to peruse my coding in twine tag, the masterpost has a bunch of different resources for this kind of thing!).
But in short, no, I do not write Wayfarer directly into Twine. This could functionally work for a very small game, but I would still advise against it as Twine doesn't really work as a word processor. You can't proof-read in it.
My process has three main steps:
Outlining
Writing
Coding
Compiling
Outside of my big beat chart (which spans the whole game), I break each episode down into their own outlines, and then break the routes of each episode down into their own outlines. Sometimes specific sections end up with their own outlines too. My system probably doesn't make much sense to anyone other than me, but as long as I know what the divisions are, then it's all good.
I write in MS Word. Each episode has its own folder (sometimes with subfolders) and every section of the game gets its own document.
Tumblr media
Here's the main folders, each episode goes into its own thing.
Tumblr media
This is an subfolder for Episode 1, specifically Route B.
Within my word documents themselves, I use a colour-coding system for separating out branches and sections. This is extremely useful for writing dialogue loops, like this:
Tumblr media
I also add in any coding notes (variables, true/false states, stat checks) while I am writing so I know what I need to do when I sit down to code 4+ months later. I usually throw a X or XX on choices after I have written them as a note to myself that I have finished it (this is just personal shorthand - X means I've done the pass version of a check, XX means I've done the pass and fail states).
I use about 8-10 colours in my documents; I have a set of MS Word macros set up so I can easily switch between them.
I share my word documents with my editor via OneDrive, which makes it easy for her to got through and proofread.
I use MS Word because I've been using it to write since the 2000s and it's what I prefer to use. I have also been writing professionally for over a decade now, so I have systems and strategies in place that work for me that I've developed for myself over time. But if you're new to writing and you're looking for a word processor that can also help you with outlining and keeping your story straight, something like Scrivener may be helpful.
One the text is ready to be coded, it's a lot of copy/pasting from Word into Twine. When I'm coding I will typically be running multiple programs at once:
MS Word
MS Excel (for my variable sheets)
Twine
Notepad++ (which has some regularly used code stored in it; I also use it to edit CSS and Javascript, as well as any really code-heavy sections since it's easier to do that in Notepad++ than it is in the Twine editor)
Notepad (just the regular version - I use it for writing notes to myself while I'm coding)
a web browser to launch tests in as I code
Once I am done coding and I have tested things, it's time to compile. The Twine editor can only handle so many passages and text in one file (around 500-700 passages before you hit massive lag), so I break Wayfarer into multiple story files. Having multiple story files also makes it really easy for me to cross-reference events (if I need to grab a passage title to reference it later) because I don't have to look through one big file. If I know the event happens in Episode 2's first scene, then I know I need to open Chapter_2.1.
My Twine library looks like this at the moment:
Tumblr media
I am using an old version of the editor (with an up-to-date version of SugarCube) since I didn't like the new one. I don't necessarily recommend using the Twine editor when you can easily make your game with Twee extensions in Visual Studio Code and have better support and functionality, but this is what I like and it really comes down to personal preference.
But because everything is in separate files, I have to merge them altogether. I have Tweego installed on my PC; it's run through the command prompt and outputs multiple story files into one HTML file. I've talked about this process here and here.
And that's basically it! I don't think there's a one-size-fits-all solution to keeping track of your IF. You need to figure out what works for you, based on your writing and outlining habits, how big your story is, and how much you intend to keep track of.
Hope this helps!
46 notes · View notes
azurecake16 · 5 months ago
Text
Home-1751 words
Grian opened his eyes carefully. Instead of his nook in the Hub, he was sitting in a small grassy meadow.
Written for @hermitcraftguesstheauthorevent ! Hope y’all had fun guessing!
If you want to know more about the whole process for this fic I’m putting under the cut 👍
The idea of having a fic told through a coding script has been floating around in my head for a few months now? Originally, the idea was to have the entire fic written in code, using things like loops and if-statements to tell a story, but i quickly ran into problems with the code not working.
So, I took my story concept (At the time vaugley about Grian’s relationship with the Watchers and Hermitcraft) and then decided to instead make it into a story told through Grian’s Com, with him trying to hack in (So just the lines of code and then the last scene with Doc and Etho). I ended up adding the written bits inbetween because I wanted to add more backstory!
(Side ramble: The end scene was inspired by a story i wrote a while back for with one of my Hermitcitizens! Uhh it changed a lot from the original scene but I do think the vibes are still there!)
Back on track and onto the actual coding part of the fic! The lines of code Grian uses to hack in where written in JavaScript, because Java wasn’t as easy to read/understand. The hacking code was also just what I learned from bitburner because I don’t know how to hack!
The rest of the code was just written in Java because it’s Minecraft commands, even if its not fully realistic.
For the actual whitelist, I used the list of server members at the time (including people who where whitelisted but not particularly) which was probably one of the more tedious parts of writing, especially trying to organize it in a way that made sense
And then the actual formatting I don’t know HTML code very well so I decided to find a skin to use instead of making one! I couldn’t find a single skin dedicated to code scripts, and I knew that I really wanted to add one, mainly because i wanted it to look nice, and look like it was actually lines of code. Eventually I found UltraViollett’s Minecraft Chat skin. So, I just edited it a bit, and then did all the formatting (which was a lot of going back and forth between drafts to make sure it looked good!
If y’all have anymore questions please send me an ask, I would love to answer and let you know!
14 notes · View notes
snowcodes · 6 days ago
Text
Javascript help please!
I'm working through the different kinds of loops in javascript today… ❄️ for ❄️ do while ❄️ while ❄️ nested loops…. Trying to figure out exactly what each one does is a little tricky, so if anyone has any good infographics I would be so very grateful! ❄️
9 notes · View notes
kafus · 1 year ago
Text
advent of code 2023 day 1
so for the record i'm being pretty casual about this, i have stuff going on this month + my health is wonky as usual so i may not actually be doing this everyday, might do puzzles late, etc
anyway! i'm still a bit of a novice i think, but i decided i would try out this advent of code thing, seemed fun. i'm using html/javascript since that's what i have any experience in right now.
my solutions below the cut so you aren't spoiled if you want to do it yourself!
i decided to keep my part 1 and part 2 solutions separated, they're on the same document. i have some really basic HTML that looks like this:
Tumblr media Tumblr media
and this was my solution for part 1 before words got involved:
Tumblr media
for the record i have taught myself basic RegEx multiple times, and every time i forget nearly everything, so most of my time spent on this solution was refreshing myself on a little bit of RegEx. i think this is pretty straightforward - split the input by line, then loop through each line and remove anything that isn't a number, then take the first and last digit in each of the remaining strings, add them all together for the result.
the solution for part 2 on the other hand:
Tumblr media
i actually found this somewhat frustrating because the problem itself didn't clearly explain whether something like "eightwothree" in the provided example should be "8 2 3" or "8 3"... my original solution disregarded overlapping words like that. this caused issues because if you had something like... i don't know, threeeightwo, my program would make the resulting two digit number 38 instead of 32, resulting in a wrong sum when adding all of them together.
once i realized the issue i was a bit stumped on how to deal with this and get the overlapping words to be included. i knew that i could manually loop through each position in the string, looking for any of the nine digits in either their letter or numeric form, and when it finds a result, push it to an array of results or whatever, but i really didn't want to do that because it would be unnecessarily bulky in my opinion. and i wanted to keep experimenting with RegEx instead. so after some googling i landed on amending the numPattern and changing
lines[i] = lines[i].match(numPattern);
to
lines[i] = Array.from(lines[i].matchAll(numPattern), (x) => x[1]);
and while it works great, i admittedly don't fully understand it. like, conceptually i get its intention and the end result it spits out, but i wish i understood what was happening under the hood with .matchAll() better. i tried to wrap my brain around it, but i'm too hungry and too sick feeling to properly teach myself right now, so i've decided to drop it and if it's still itching at me later, i'll come back when i feel better to understand it.
anyway, after that, still pretty straightforward - once it's taken out all of the numbers in both numeric and written format, it loops through the results and converts the words to digits, then joins all the digits together, then does the same thing as before with slicing off the first and last digit to make two digit numbers and adding them all together at the end with .reduce().
15 notes · View notes
mr-abhishek-kumar · 1 year ago
Text
Morning python study log 03-11-2023
So these days I have started to stream my code study.
So today morning I learnt:
How to take absolute value. Found some anomaly in the system lol. Basically it was not taking abs() but fabs() however my python was the latest version
I studied how to sort three numbers in python, although I have done this in other language since the syntax of python is still foreign to me I had difficulty sorting them in ascending order and also descending order using the built in function sorted() and also making my own implementation
I understood what is range function and how to use it with for loops, had a bit of hit and miss while understanding how it really worked but google's bard helped, I also learnt about reverse sorting
I learnt what is interning while trying to understand the difference between identity operators and equality operators. Found some anomaly in my system again, that my computer's range of interning is much larger than what is documented ?
I learnt what is keyword argument when with using reverse built in sort, yeah so I was amazed that the order of arguments didn't mattered for keyword argument.
I was also confusing syntax of python with javascript since that is what is what recently code in.
Learnt about what does len() function does, like properly rather than just guessing about what it does.
understood about control statements such as if, else and elif
learnt about break and continue in loops in python which is same as java script.
learnt about how to check the divisibility of a number. I didn't knew that it was separate topic in my syllabus I just thought it was something people would knew.
Learnt the basics about on how to make a READ , EVAL PRINT LOOP, REPL
Learnt about stupid pattern program in python, I don't know why the heck they still teach these things and put it in syllabus. There is no real world use of it as far as I can see. I still have to post the notes about it in my blogs and store it my cloud drive.
Learnt how to do a summation of series, using and not using numpy.
figured out how to do a factorial of a number
was trying to make an short algorithm on how to do the fibonacci series but well, I was so sleepy that my mind didn't worked as it should, I took the hint from bard then felt bad that I was directly looking at the solution when rather I should sleep and approach the problem from afresh in next study stream. So stopped my study stream.
youtube
9 notes · View notes
debbymatt · 1 year ago
Text
Dicas e Recomendações p/ iniciantes em Programação
Tenho me deparado constantemente com os questionamento, de colegas e amigos, sobre: como começar a programar ou para alguns, "codar" ?
Apesar de não ser a minha especialização e muito longe área de interesse, pensei em uma maneira de construir um fluxograma de processo e recomendação de conteúdo para estudar e aprender a programar.
Mas de antemão, deixarei um adendo e recorte de um comentário que li num vídeo do YouTube, tratando justamente sobre o assunto, de Waldeck Vieira.
"Sou desenvolvedor com anos de experiência e vou dar as minhas dicas, principalmente com tantas promessas absurdas que tem hoje de cursos que fazem você virar desenvolvedor em um mês!
Curso é importante sim, mas não vai te fazer virar um desenvolvedor bom em poucos meses!
Estudar é importante sim, mas o que vai fazer você ficar bom, é o treino! Treinar, treinar e treinar muito todos os itens que vou destacar abaixo. É igual aprender a tocar um piano bem, vc nunca vai ser um bom pianista em poucos meses e só estudando teoria, o que vai fazer vc ficar bom é o treino diário!
Não se preocupe em decorar nada, o importante é treinar e entender! Decorar só serve para fazer prova de colégio ou prova de emprego. Mas não mede sua capacidade! Os comandos vc decora praticando!
Já vi muito youtuber bom dizendo que precisa decorar as coisas! Isso é um absurdo, ainda mais hoje que tudo muda toda hora! E cada linguagem vc tem uma forma de escrever os comandos(sintaxe), então não precisa decorar tudo! Ninguém, nem o melhor dev do mundo sabe tudo decorado! O que ele sabe é resolver e entende muita coisa, quando esquece a sintaxe de algo, ele simplesmente consulta na documentação ou na net!
Você só começa a ser um bom desenvolvedor a partir de pelo menos, no mínimo, uns 6 meses de muita prática! Agora ser um dos melhores só fazendo projetos reais e tendo um emprego! Então, mesmo que vc pense em trabalhar com a programação, tenha um emprego, por pelo menos 1 ano! Vc vai ver como vc vai evoluir!
Não precisa começar a estudar só no caderno, escolha uma linguagem, como Python ou JavaScript e pratique nela todos os conceitos!
Itens mais importante para começar e eu iria nessa sequencia. Pratique por pelo menos duas semanas cada item, e tente entender muito bem, e já use uma linguagem, tipo Python ou JavaScript:
Variáveis e seus tipos, case sensitive, constantes, identação do código, condicionais (o famoso if), loops (os famosos for e while), procedures, funções, algoritmos para tratamento de strings, arrays, estrutura de dados aplicada na linguagem escolhida(Essa realmente é uma parte muito importante), conceitos de orientação a objeto. Esse para mim é o básico.
Treine pelo menos uns 5 meses tudo isso! Depois você precisa estudar e praticar, HTML, CSS combinado com JavaScript, mesmo que vc não vá desenvolver para a web, mas vc pode precisar criar um serviço na web para um sistema que vc desenvolveu! Depois estude linguagem SQL para banco de dados, usando uma IDE de desenvolvimento para banco (SQL Server ou MySQL), eu indico!
E uma dica, banco de dados é um mundo a parte, e vc precisa dominar muito a linguagem SQL, dos bancos relacionais (SQL Server, MySQL, Oracle e etc), que é comum em todos os bancos de dados, pois é com ela que vc manipulas os dados, e corrige erros, aumenta a performance de uma consulta e etc!
Então depois de pelo menos mais de 6 meses a 1 ano, estudando e praticando muito tudo isso que coloquei. Desenvolva projetos reais, usando uma linguagem e um banco de dados. E a partir dai, se possível arrume um emprego, e sempre estude e pratique muito em qualquer linguagem e nas novidades do mercado! É isso!".
Portanto, repassado todos os alertas que já venho feito, passarei indicações de conteúdo e ferramentas.
Começaremos pela IDE, mas o que é isso? é um Ambiente de Desenvolvimento no qual utilizamos para programar ou codificar.
Vale ressaltar que a IDE pode variar de linguagem para linguagem no qual ira programar. Citarei alguns a seguir, gratuitos:
JavaScript, recomendo o Visual Studio Code. Pois o VS Code, é uma ferramenta simples, esta sendo constantemente tendo correção de bugs, disponível em diversos idiomas, inclusive PT-Br, compatível com os sistemas: Windows, Linux e Mac. E é possível compilar nas mais diversas linguagens de programação, além de muitas outras funcionalidades, que deixarei vocês conhecerem por si mesmos;
Python, indico o PyCharm e Jupyter Notebook. O VS Code também é uma boa, porém um pouco mais trabalhoso para desenvolver. Mas porque, o python se utiliza de uma IDE especifica ? Por causa, da necessidade de invocar Bibliotecas (coleção de subprogramas usados no desenvolvimento de softwares). Quando trabalhamos com o VS Code por exemplo, toda biblioteca que for utilizar, ira ter que realizar a instalação através do Prompt de comando, ou Terminal, se seu sistema for Linux. Já se vc utilizar IDEs como: Pycharm e Jupyter Notebook, não terá a dor de cabeça de pensar nesse aspecto. E o fato de que não tem a necessidade de criar ou ajustar um venv e outros;
SQL, destaco o MySQL Workbench, Oracle SQL e SQL Server Management Studio (SSMS). O SQL, é uma linguagem que geralmente se organiza em planilha ou tabelas de larga escala, que para quem deseja programar nesta linguagem se faz necessário uma ferramenta que trabalhe especificamente com isso e proporcione uma visualização clara e precisa dos dados, para assim poder fazer a estruturação.
Por se tratar de guia para programadores iniciantes, ficaremos apenas nesses linguagens.
Acrescento que ao contrário do que muitos pensam, HTML e CSS, NÃO SÃO LINGUAGENS DE PROGRAMAÇÃO!
São apenas Linguagens de Marcação e Formatação de Texto e Estilo.
HTML: linguagem de marcação utilizada para estruturar os elementos da página, como parágrafos, links, títulos, tabelas, imagens e até vídeos.
CSS: linguagem de estilos utilizada para definir cores, fontes, tamanhos, posicionamento e qualquer outro valor estético para os elementos da página.
JavaScript: linguagem de programação utilizada para deixar a página com mais movimento, podendo atualizar elementos dinamicamente e lidar melhor com dados enviados e recebidos na página.
Exemplo dessa combinação:
Tumblr media
Explicação simples e didática que emprestei da Alura.
Já recomendado IDEs, esclarecido algumas confusões que ocorrem, darei prosseguimento para a indicação de conteúdos para estudo.
Eu particularmente, comecei a ter noção de lógica de programação e a saber a programar jogando os APPs, que foram desenvolvidos especificamente para isso:
Grasshopper, é o aplicativo desenvolvido pela Google, que tem o objetivo de ensinar a linguagem JavaScript, Recursos: quebra-cabeças visuais desenvolvem suas habilidades de resolução de problemas e solidificam os conceitos de programação; feedback em tempo real te orienta como um professor; coleciona conquistas à medida que aprende novas habilidades e ganha certificado.
O aplicativo está disponível para Android e iOS. 
Mimo, o aplicativo te instruí a desenvolver em: HTML, JavaScript, CSS, Python e SQL. Além do que já destaquei no app anterior e a possibilidade de dialogar e competir com outra pessoas que também o utilizam para aprender a programar.
O aplicativo está disponível para Android e iOS. 
Meoweb: Jogo de programação, a ideia do jogo é que você precisa ajudar Agatha a resgatar os gatinhos perdidos. Você precisa resolver os quebra-cabeças que estão nas plataformas para ajudá-la. Você receberá diferentes desafios que precisa resolver para chegar ao próximo nível. Que consiste em comandos em CSS, é muito fofo e divertido.
Disponível apenas para Android.
 Code Combat, é jogo apenas na versão web, onde vocês podem aprender a desenvolver em Python, JavaScript, CoffeeScript e Lua. A curva de aprendizado é bastante suave, começando com comandos básicos de lógica em um universo agradável e colorido. Tudo isso é possível graças à ação de colaboradores do mundo todo, em um projeto aberto, com página no Github. 
Disponível em diversos idiomas, incluindo português.
E a vídeos aulas:
Canal Curso em Vídeo :
Algoritmos e Lógica de Programação;
Banco de Dados com MySQL;
HTML5 + CSS3 + JavaScript;
HTML + CSS (módulo 1);
HTML + CSS (módulo 2);
HTML + CSS (módulo 3);
HTML + CSS (módulo 4);
JavaScript e ECMAScript;
Python 1 (princípios básicos);
Python 2 (Estrutura de Controle);
Python 3 (Estrutura Composta).
Vale ressaltar que uma coisa importantíssima é tornar disponível e visível os seus trabalhos, e uma ótima plataforma para isso, com uma ampla comunidade é o GitHub.
Mas o que é o GitHub ?
É uma plataforma de hospedagem de código-fonte e arquivos com controle de versão usando o Git. Ele permite que programadores, utilitários ou qualquer usuário cadastrado na plataforma contribuam em projetos privados e/ou Open Source de qualquer lugar do mundo. - Wikipédia.
Por ser uma plataforma que será importante para o desenvolvimento de seus projetos e trabalhos, e portfólio futuro, deixarei vídeos que te auxiliaram a adquirir o conhecimento pleno das funcionalidades da plataforma.
Curso de Git e GitHub.
Como personalizar o seu perfil no GitHub.
Ademais, acredito que isso é tudo pessoal, o vídeo que me inspirou em escrever esse post na tentativa de auxiliar, desfazer desentendidos e indica conteúdo, foi o casal do canal Código Fonte TV: O MÍNIMO QUE VOCÊ PRECISA SABER ANTES DE PROGRAMAR!.
No qual desmitifica e apoia toda a argumentação e pontos que destaquei até aqui e é claro recomenda mais conteúdo teórico, além do que já escrevi.
Espero ter ajudado em alguma coisa ou mesmo tirado a dúvida de vocês, sintam-se a vontade de curtir, compartilhar e comentar nestes post e outros.
Desde já agradeço pelo seu tempo e atenção, e até um próximo post.
Referências Bibliográficas do que foi abordado:
HTML, CSS e Javascript, quais as diferenças? ;
IDE PARA PYTHON: O QUE É, COMO ESCOLHER E LISTA DAS MELHORES;
Link das IDEs:
Jupyter Notebook;
MySQL Workbench;
Oracle SQL;
PyCharm;
SQL Server Management Studio (SSMS);
Visual Studio Code.
Vídeo Aulas recomendadas:
Algoritmos e Lógica de Programação;
Banco de Dados com MySQL;
Curso de Git e GitHub.
Como personalizar o seu perfil no GitHub.
HTML5 + CSS3 + JavaScript;
HTML + CSS (módulo 1);
HTML + CSS (módulo 2);
HTML + CSS (módulo 3);
HTML + CSS (módulo 4);
JavaScript e ECMAScript;
Python 1 (princípios básicos);
Python 2 (Estrutura de Controle);
Python 3 (Estrutura Composta).
O MÍNIMO QUE VOCÊ PRECISA SABER ANTES DE PROGRAMAR!
Aplicativos recomendados:
Code Combat;
Grasshopper;
Meoweb: Jogo de programação;
Mimo.
11 notes · View notes
lunarsilkscreen · 11 months ago
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
nobalg · 2 years ago
Text
Rant of a Frog
Tumblr media
Bruh, Yo Java Guys, why you faking it bruh.
Why you trying to be someone else and failing so hard on it.
May be change is the only way we can be better than yesterday
But your base was so so rigid bruh, its making things difficult for the older community and the newer community is unable to connect with their Grand uncles bruh.
Its obviously clear that at last you accepted the fact that JavaScript's functional way and callbacks were legit from the start. You trying so hard to make Java geeks believe that reactivity is something which will change the world, but I want you to intimate your audience that node js was doing it from so long, concepts like event loop were lying around there from so long. Its just that you were may be late to the party, or have to follow the trend to make the developer's stick to you. May be you want to attract Js developers with your functional styles and lambdas introduction, but this seduction is far from what you planned for.
You only can boost the utilization of multithreaded programs, and utilizing the multicores of a system. But let me tell you this, they will eat you up in this aspect as well.
Why the default was introduced man, in interfaces? Why you had to break your own principles?
Introduce a new concept bruh, but don't alter the story mate, why create such a story, you have created holes in your happy story, while trying to replicate what JS (even though single threaded and have a reputation of having browser language only) have done from long ago.
Functional Programming , ehh, what's wrong with your OOPS man, you used to boost of. Han?
Even though if somebody tries to start from fresh on this path, other then Josh long or Venkat, no legit resources, no community, no answers on Stack overflow for legit questions. Just Blackbox.
So you want to make some threads free ehh, thats why reactivity, ehh,
onErrorContinue ehh, you yourself say the biggest anomaly ehh.
Please comeback when you are consolidated bruh, We devs dont know how to estimate around you with such open things, We don't know how to handle Exceptions efficiently, Venkat said, if you can't handle or sometimes feels like imperative is better , Go for it.
He said if you want only happy path, then functional will be good.
But ehh, you know right, nothing is happy about programming, there are exceptions , errors , which are meant to be handled.
Bruh, either grow exponentially, or die, as We devs are not able to justify, why you are actually good, but what it will cost to get married with you and your unstability may be.
Angry
5 notes · View notes
faafarchive · 2 days ago
Text
Documentário sobre JavaScript Básico
Fala meus DEVs lindos (2 pessoas que seguem a página) durante minha jornada de Front-End eu me encanei bastante com o querido JavaScript em meus projetos, seja chat-bot, to do list ou qualquer mínima aplicação.
Atualmente eu tenho o objetivo de migrar para o TypeScript, PORÉM, não é tão simples refinar para o TS sem aprender o JS primeiro na minha opinião, sendo assim eu me enfiei em alguns cursos e quero gravar um FaaF Archive lá no canal desvendando um pouco das experiências que eu tive com o JavaScript que vou relatar um pouco aqui no BLOG.
Tumblr media
Vamos começar falando do porque eu acho que tem tanta gente que prefere o PYTHON a mexer no JavaScript, isso porque o PYTHON É UMA MÃE CARINHOSA perto da paulada que você vai encontrar aqui. Estamos falando de uma linguagem de programação que vai somar um Number com uma String! E tirando essas esquisitices de lógica de comparação, eu não encontrei dificuldade alguma com Variáveis, Elementos, condicionais e Fluxo de execução. Sem dúvida se você já possui uma lógica de programação na cabeça, vai ser uma questão de adaptação para você aprender a mexer no básico do JavaScript.
Tumblr media
Uma das experiências mais legais que eu aprendi ao começar a programar em JavaScript foi a parte de Debbuger do VSCode, ele serve para indicar para você basicamente "Em que ponto paramos" assim que ele atingir uma linha de código que você indicou, fazendo ele parar ali e procurar entender o que tá rolando. Vou mostrar um exemplo:
Você está com um código em Loop dentro de um While e precisa saber se um item específico está dentro de uma lista, assim o código vai ficar em Loop até encontrar o que você quer. Primeiro passo é criar um "contador" e considerar que ele é menor que o número de itens na sua lista para ele verificar um por um.
Tumblr media
Pega seu valor e soma 1 nele mesmo
Tumblr media
Nesse exemplo de código abaixo ele vai verificar se há um destino em um Array de destinos:
Tumblr media
Esses são os BreakPoints:
Tumblr media
Assim, quando for Debbugar, o código vai parar nesses pontos
Tumblr media
Assim você consegue verificar exatamente o que está acontecendo com o isso código, ou é claro, você pode ser RAIZ e meter uma série de console.log() e ver o que está acontecendo.
Tumblr media
Meu último tópico sobre o JavaScript Básico o que eu tenho a comentar é que eu prefiro muito mais a estrutura do While do que do FOR, apesar de serem semelhantes existe uma mudança clara na estrutura do código.
Enquanto no While você insere a condição dentro do parênteses, no FOR você precisa colocar o valor da variável, sua condição e o que deve ser executado, tudo logo de cara e sem choro.
Tumblr media
Enfim pessoal, eu dei uma geral simples sobre o JavaScript básico e tenho muito mais a comentar sobre a Programação Orientada a Objetos do JavaScript, se quiserem que eu faça uma parte 2 desse comentário basta pedir e se quiserem podem acompanhar o desenrolar dessa saga lá no Youtube: FaaF Archive!
https://www.youtube.com/@faafarchive
0 notes
nllyf · 2 months ago
Text
JavaScript Loop Types Explained: For, While, Do-While
You can use a for loop, or a while loop, or a do-while loop, whichever is convenient. The while loop and do-while loop are easier to learn than the for loop. But you will learn the for loop quickly after some practice. A for loop places the control variable initialization, loop continuation condition, and adjustment after iteration all together. It is more concise and lets you write the code…
Tumblr media
View On WordPress
0 notes
santecky2 · 2 months ago
Text
Essential Steps For Beginners To Learn JavaScript
Tumblr media
Introduction:
JavaScript is the most popular & commonly used programming language globally. It powers the interactive elements of web applications and allows developers to design dynamic, engaging user experiences. For beginners, learning JavaScript is essential to becoming a proficient web developer. However, diving into JavaScript can seem overwhelming due to its vast ecosystem and evolving features. This guide provides a clear path from the basics to advanced JavaScript concepts, making it effective for beginners to learn JavaScript.
Understand The Basics Of Programming
Before diving into JavaScript, it is important to grasp fundamental programming concepts. Concepts such as variables, data types, loops, conditionals, and functions form the foundation of any programming language, including JavaScript. Our JavaScript Training in Chennai is one of our premier programs, designed to equip both aspiring developers and seasoned professionals with essential web development skills. If you're entirely new to coding, consider starting with a beginner-friendly language like Python or exploring basic HTML and CSS to get a feel for web development. Understanding these basics will help you comprehend JavaScript's syntax and functionality more quickly.
Key Concepts To Learn:
Variables: How to store data.
Data Types: Numbers, strings, booleans, arrays, objects.
Conditionals: If-else statements, switch cases.
Loops: For, while, and do-while loops.
Functions: How to declare and invoke functions.
Familiarize Yourself With HTML And CSS
JavaScript interacts heavily with HTML and CSS, so it is essential to structure a webpage using HTML and style it using CSS. HTML explains the structure of web pages, and CSS provides the design, while JavaScript makes the pages interactive. Understanding how HTML elements are laid out and styled will allow you to write JavaScript that manipulates these elements effectively.
Essential Topics In HTML/CSS:
HTML: Tags, elements, attributes, DOM (Document Object Model).
CSS: Selectors, properties, box model, responsive design, and media queries.
Set Up Your Development Environment
To start coding in JavaScript, you need a development environment where you can edit and test your code. The good news is that JavaScript runs directly in the browser, so you don't need to install any special software. However, a good text editor and browser developer tools will significantly help your learning process.
Recommended Tools:
Text Editor: Write and manage your code using a lightweight editor like Visual Studio Code or Sublime Text.
Browser Developer Tools: Most modern browsers, such as Chrome and Firefox, have built-in developer tools where you can run and test your JavaScript code live. You can access these by right-clicking on any webpage and selecting "Inspect."
Start With Basic Syntax And Concepts
Once you have your environment set up, it's time to write your first lines of JavaScript. Start by mastering the basic syntax and concepts. JavaScript has its quirks and rules to get used to.
Key Concepts To Master:
Basic Syntax: Learn to declare variables, perform arithmetic, and use strings.
Functions: Understanding how to create and call functions is crucial for reusing and making code modular.
DOM Manipulation: Learn how to select HTML elements and modify them using JavaScript. It is fundamental for making your web pages interactive.
Learn JavaScript's Control Structures
JavaScript's control structures allow you to dictate the flow of your programs. These include loops, conditionals, and switch statements, which help you perform operations based on conditions or repeat actions multiple times.
Important Control Structures:
If-else Statements: Decide between two different actions.
For and While Loops: Repeat a block of code multiple times.
Switch Statements: A cleaner way to handle various conditions.
Explore Arrays And Objects
Arrays and objects are essential for handling complex data in JavaScript.Unlock your potential and kickstart a rewarding career in software development with Infycle Technologies, the Best Software Training Institute in Chennai. Arrays allow storing multiple values in a single variable, while objects let you represent more complex entities using key-value pairs.
Key Concepts:
Arrays: Learn how to create, manipulate, and loop through arrays.
Objects: Understand how to define and use objects to store data structured in key-value pairs.
Work With Events And Event Listeners
One of JavaScript's key strengths is its ability to handle user events like clicks, keypresses, and mouse movements. By understanding events and event listeners, you can build interactive web pages.
Essential Event Concepts:
Event Listeners: Use event listeners to trigger actions in response to user inputs.
Common Events: Handle events such as clicks, form submissions, key presses, and hovering over elements.
Understand Asynchronous JavaScript (Promises, Callbacks)
Modern web applications often rely on asynchronous operations, such as fetching data from a server or waiting for user input. JavaScript has powerful features like promises, async/await, and callbacks to handle these tasks. Learning these concepts will enable you to build more efficient, non-blocking applications.
Key Concepts:
Promises: A promise represents an asynchronous operation's eventual completion or failure.
Async/Await: A cleaner way to write asynchronous code, making it look like synchronous code.
Callbacks: Callbacks passed as arguments to other functions are frequently utilized for managing asynchronous operations.
Practice Regularly With Real Projects
The best way to master JavaScript is through practice. Start building simple projects like to-do lists, calculators, or dynamic forms. As you gain more confidence, move on to more complex projects like interactive games or data-driven web applications.
Project Ideas:
To-do List: Create a simple app where users can delete, add and mark tasks as completed.
Calculator: Build a basic calculator that performs arithmetic operations.
Weather App: Use an API to fetch and display real-time weather information based on user input.
Explore JavaScript Frameworks And Libraries
Once you're comfortable with JavaScript fundamentals, consider exploring popular libraries like jQuery or frameworks like React, Vue, or Angular. These tools simplify many tasks and enable you to build more complex applications faster.
Popular JavaScript Libraries And Frameworks:
React A powerful library for creating user interfaces, particularly for single-page applications.
Vue.js: A lightweight and easy-to-learn framework.
Angular: A robust framework for building large-scale web applications.
Conclusion:
Learning JavaScript can be a challenging but ultimately rewarding journey. By following these essential steps—understanding the basics, practicing regularly, and exploring modern libraries and frameworks—you'll be well on your way to becoming proficient in JavaScript and building dynamic, interactive web applications. Dedication, consistency, and practice will ensure your success.
0 notes
sophiasmithg · 3 months ago
Text
Why Use Flutter for Mobile App Development?
Today, having a mobile app for everything has made it easier to fast-track things. 
Do you know, that people check their phones 58 times per day? And almost 52% of checking their phones (30 per day) occur during work hours. Mobile apps have taken the market by storm. Thus businesses and developers seek solutions that help them build a strong presence in the mobile app industry.
Flutter has emerged as a popular choice for cross-platform mobile app development to cater to their growing demand. Flutter is powering top brands like eBay, Grab, GPay, Groupon, and more today.
Tumblr media
Flutter’s popularity is its simplicity, fast development cycles, and flexible UI. it can benefit businesses in several ways especially when they want to build a strong mobile industry presence. 
Let’s understand why Flutter is becoming a go-to framework for mobile app development. 
What is Flutter?
Flutter is a popular cross-platform mobile app development framework that Google created for its internal usage. Later, it was available for everyone’s use. In less time, Flutter has gained immense popularity.
Over the years Flutter has improved and has made mobile development easier with several plugins, widgets, developer tools, and more. 
Tumblr media
Source- https://verygood.ventures/blog/flutters-history-so-far-all-the-biggest-milestones 
Several giants are leveraging Flutter to stay ahead with next-level mobile app development.
Brands leveraging Flutter
Tumblr media
Reasons to Choose Flutter for Mobile App Development
1. Cross-Platform Development
Flutter is a cross-platform platform. It simply means, that developers only have to write a single codebase that will efficiently run across mobile devices and OS. It ensures the same native look and feel. It not only saves developers time and effort but also reduces significant development costs, making. Thus it is a cost-effective solution for businesses with limited budgets.
2. Native Performance
Flutter uses Dart, a fast and object-oriented programming language, which compiles native code. This means that Flutter apps offer native performance and can take full advantage of the underlying platform's capabilities. 
Tumblr media
Source
Unlike other cross-platform frameworks that only rely on web views or JavaScript bridges, Flutter renders UI components directly to the canvas, offering smooth animations, fluid interactions, and excellent performance. From scrolling through a list or navigating between screens, it offers a high level of responsiveness to users.
To build native apps that execute well across platforms, you must hire a Flutter App Development Company. 
3. Rich and Customizable UI
Another reason that makes Flutter preferable to 46% of developers is its rich set of pre-designed widgets for high customization and flexible designs. Developers can create engaging user interfaces that adhere to the native platform's design guidelines. 
Tumblr media
Apart from the customizable UI, Flutter has a reactive architecture that allows developers to integrate animations, gestures, and effects for visually engaging user experiences. Whether it's Material Design for Android or Cupertino for iOS, Flutter provides the tools and components to create pixel-perfect UIs that look and feel native on each platform.
4. Fast Development Cycle
Another significant reason for Flutter's amazing results is the hot reload feature. It helps developers to make changes to the code and see the results instantly without restarting the app. This iterative development cycle speeds up the development process and improves team collaboration. 
It allows developers to experiment with different UI layouts, tweak animations, or fix bugs on the fly, while maintaining the app's state. This rapid feedback loop helps them deliver the app in less time, increasing time-to-market.
5. Strong Community Support
Flutter is supported by an active community of developers and contributors who aim to improve Flutter’s experience for all. From official documentation and tutorials to third-party packages and plugins, developers can access several resources and tools to build better apps faster. 
Also read: flutter web tips
Tumblr media
Hire Flutter Developers with OnGraph
There is no doubt about Flutter’s capability. It not only helps developers simplify their development experience but also guarantees business growth and success. If you are looking to expand your brand visibility with an exceptional mobile app, then Flutter is your way to go.
To elevate your mobile app experiences, connect with OnGraph for advanced Flutter App Development Services.
Why choose OnGraph?
Faster time-to-market
100% customizable designs
Cross-platform development
15+ years of expertise
Content Source URL: https://dev.to/sophiaog/why-use-flutter-for-mobile-app-development-3gp
0 notes
jcmarchi · 3 months ago
Text
All About JavaScript Loops
New Post has been published on https://thedigitalinsider.com/all-about-javascript-loops/
All About JavaScript Loops
Every programming language has loops. Loops perform an operation (i.e., a chunk of work) a number of times, usually once for every item in an array or list, or to simply repeat an operation until a certain condition is met.
JavaScript in particular has quite a few different types of loops. I haven’t even used all of them, so for my own curiosity, I thought I’d do a high-level overview of them. And as it turns out, there are pretty good reasons I haven’t used at least a couple of the different types.
So, for now let’s spend a while exploring the different types of loops, what we can do with each of one, and why you might use one over another. (You’ll think that little play on words is absolutely hilarious by the end.)
The while and do...while loops
First up is the while loop. It’s the most basic type of loop and has the potential to be the easiest to read and the fastest in many cases. It’s usually used for doing something until a certain condition is met. It’s also the easiest way to make an infinite loop or a loop that never stops. There is also the do...while statement. Really, the only difference is that the condition is checked at the end versus the beginning of each iteration.
// remove the first item from an array and log it until the array is empty let queue1 = ["a", "b", "c"]; while (queue1.length) let item = queue1.shift(); console.log(item); // same as above but also log when the array is empty let queue2 = []; do let item = queue2.shift() ?? "empty"; console.log(item); while (queue2.length);
The for loop
Next is the for loop. It should be the go to way to do something a certain number of times. If you need to repeat an operation, say, 10 times, then use a for loop instead. This particular loop may be intimidating to those new to programming, but rewriting the same loop in the while-style loop can help illustrate the syntax make it easier to stick in your mind.
// log the numbers 1 to 5 for (let i = 1; i <= 5; i++) console.log(i); // same thing but as a while loop let i = 1; // the first part of a for loop // the second while (i <= 5) console.log(i); i++; // the third ("end");
The for...of and for await...of loops
A for...of loop is the easiest way to loop through an array.
let myList = ["a", "b", "c"]; for (let item of myList) console.log(item);
They aren’t limited to arrays though. Technically they can iterate through anything that implements what is called an iterable protocol. There are a few built-in types that implement the protocol: arrays, maps, set, and string, to mention the most common ones, but you can implement the protocol in your own code. What you’d do is add a [Symbol.iterator] method to any object and that method should return an iterator. It’s a bit confusing, but the gist is that iterables are things with a special method that returns iterators; a factory method for iterators if you will. A special type of function called a generator is a function that returns both a iterable and iterator.
let myList = *[Symbol.iterator]() yield "a"; yield "b"; yield "c"; , ; for (let item of myList) console.log(item);
There is the async version of all the things I just mentioned: async iterables, async iterators, and async generators. You’d use an async iterable with for await...of.
async function delay(ms) return new Promise((resolve) => setTimeout(resolve, ms); ); // this time we're not making an iterable, but a generator async function* aNumberAMinute() let i = 0; while (true) // an infinite loop yield i++; // pause a minute await delay(60_000); // it's a generator, so we need to call it ourselves for await (let i of aNumberAMinute()) console.log(i); // stop after one hour if (i >= 59) break;
One unobvious thing about for await...of statement is that you can use it with non-async iterables and it will work just fine. The reverse, however, is not true; you can’t use async iterables with the for...of statement.
The forEach and map loops
While these are not technically loops per se, you can use them to iterate over a list.
Here is the thing about the forEach method. Historically it was much slower than using a for loop. I think in some cases that may not be true anymore, but if performance is a concern, then I would avoid using it. And now that we have for...of I’m not sure there is much reason to use it. I guess the only reason that it still may come up is if you have a function ready to use as the callback, but you could easily just call that same function from inside the body of for...of.
forEach also receives the index for each item though, so that may be a thing you need too. Ultimately, the decision to use it will probably come down to whether any other code you’re working with uses it, but I personally would avoid using it if I’m writing something new.
let myList = ["a", "b", "c"]; for (let item of myList) console.log(item); // but maybe if I need the index use forEach ["a", "b", "c"].forEach((item, index) => console.log(`$index: $item`); );
Meanwhile, map essentially converts one array into another. It still has the same performance impact that forEach has, but it is a bit nicer to read than the alternative. It’s certainly subjective though, and just like with forEach you’ll want to do what the rest of your other code is doing. You see it a ton in React and React-inspired libraries as the primary way to loop through an array and output a list of items within JSX.
function MyList(items) return ( <ul> items.map((item) => return <li>item</li>; ) </ul> );
The for...in loop
This list of loops in JavaScript wouldn’t be complete without mentioning the for...in statement because it can loop through the fields of an object. It visits fields that are inherited through the object’s prototype chain too, though, and I’ve honestly always avoided it for that reason.
That said, if you have an object literal, then for...in might be a viable way to iterate through the keys of that object. Also it’s worth noting that if you’ve been programming JavaScript for a long time, you may remember that the order of keys use to be inconsistent between browsers, but now the order is consistent. Any key that could be an array index (i.e., positive integers) will be first in ascending order, and then everything else in the order as authored.
let myObject = a: 1, b: 2, c: 3, ; for (let k in myObject) console.log(myObject[k]);
Wrapping up
Loops are something that many programmers use every day, though we may take them for granted and not think about them too much.
But when you step back and look at all of the ways we have to loop through things in JavaScript, it turns out there are several ways to do it. Not only that, but there are significant — if not nuanced — differences between them that can and will influence your approach to scripts.
0 notes