<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>DPBM Blog</title><link>https://personal-website-phi-seven-36.vercel.app/</link><description>Recent content on DPBM Blog</description><generator>Hugo</generator><language>en-us</language><managingEditor>dpbm136@gmail.com (Dpbm)</managingEditor><webMaster>dpbm136@gmail.com (Dpbm)</webMaster><copyright>2026 Alexandre Silva dpbm136@gmail.com</copyright><lastBuildDate>Sun, 21 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://personal-website-phi-seven-36.vercel.app/index.xml" rel="self" type="application/rss+xml"/><item><title>OpenWRT is like magic</title><link>https://personal-website-phi-seven-36.vercel.app/posts/openwrt-is-like-magic-c9isyfubnvw46/</link><pubDate>Sun, 21 Jun 2026 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/openwrt-is-like-magic-c9isyfubnvw46/</guid><description>&lt;p&gt;I&amp;rsquo;ve been working in some projects and for a specific problem I needed to have more control in my network.&lt;/p&gt;
&lt;p&gt;I need to setup more advanced stuff, like more specific routing rules, etc.&lt;/p&gt;
&lt;p&gt;I could have done that on my router, but it could affect the usage for my family. So, thank god, I&amp;rsquo;ve got some old TP-Link routers as a gift from a friend, who was trying to get rid of this &amp;ldquo;junk&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Wavelets for processing images - Kinda cool I'd say</title><link>https://personal-website-phi-seven-36.vercel.app/posts/wavelets-for-processing-images-kinda-cool-id-say-vnrxzpw6mgpni/</link><pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/wavelets-for-processing-images-kinda-cool-id-say-vnrxzpw6mgpni/</guid><description>&lt;p&gt;Well, my course on Wavelets transform is reaching the end, which is pretty sad. When I was choosing the subjects to study this semester, this one was the strangest to me, I had never heard of such a topic like that, actually I had heard of DSP for trading and whatever, but never had a formal knowledge on that. Now, that I have a more solid foundation on the topic, I can say that I have no regrets on choosing it. It&amp;rsquo;s so interesting in so many ways.&lt;/p&gt;</description></item><item><title>Mallat's algorithm with cuda - Everything I've learned with it</title><link>https://personal-website-phi-seven-36.vercel.app/posts/mallats-algorithm-with-cuda-everything-ive-learned-with-it-me7jmibwm2xof/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/mallats-algorithm-with-cuda-everything-ive-learned-with-it-me7jmibwm2xof/</guid><description>&lt;p&gt;As I pursue my master&amp;rsquo;s in computer science as by now a non-degree/special student, I decided to attend to two different classes this semester:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Algorithms (because I like it)&lt;/li&gt;
&lt;li&gt;Wavelet Transforms (because it seemed interesting)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Algorithms is a pretty well know topic in computer science which you may be familiar with. Everywhere and, weird or not, every class may be related to algorithms in some way (even my wavelet class). For this semester, we learned about some ways to calculate and analyze code to find bottlenecks, performance issues, possible improvements. In general, we learned about asymptotic behavior/analysis, so &lt;code&gt;big O&lt;/code&gt; notation and its relatives &lt;code&gt;θ&lt;/code&gt; and &lt;code&gt;Ω&lt;/code&gt;. I&amp;rsquo;d like to talk more about this, so I&amp;rsquo;ll hold this topic for a future post.&lt;/p&gt;</description></item><item><title>Openclaw for Quantum Simulation</title><link>https://personal-website-phi-seven-36.vercel.app/posts/openclaw-for-quantum-simulation-rqqldnn7kn24j/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/openclaw-for-quantum-simulation-rqqldnn7kn24j/</guid><description>&lt;p&gt;&lt;img alt="banner" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/openclaw-for-quantum-simulation-rqqldnn7kn24j/open-image.png"&gt;&lt;/p&gt;
&lt;p&gt;Since I did my zeroclaw setup (post: &lt;a href="https://personal-website-phi-seven-36.vercel.app/posts/how-i-failed-on-creating-my-own-ai-agent-rxdcmfxqpempm/"&gt;how-i-failed-on-creating-my-own-ai-agent-rxdcmfxqpempm&lt;/a&gt;) I was playing around a bit with LLMs in general.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been using a lot of &lt;code&gt;ChatGPT&lt;/code&gt;, &lt;code&gt;Gemini&lt;/code&gt; and &lt;code&gt;Perplexity&lt;/code&gt; for studying and clarification in some topics. I also tested the new &lt;code&gt;Muse Spark&lt;/code&gt; model from &lt;code&gt;Meta AI&lt;/code&gt; and &lt;code&gt;Github Copilot&lt;/code&gt; with Claude Haiku. Vibe coding is something that I always abominate, but after testing I found it very useful for prototyping and doing frontend applications fast, for that I installed &lt;code&gt;Antigravity&lt;/code&gt; (take a look at the interface of my app: &lt;a href="https://github.com/Dpbm/fngames"&gt;fngames&lt;/a&gt;). Even reported some exposed OpenAI API Keys for some companies.&lt;/p&gt;</description></item><item><title>How I failed on creating my own AI agent</title><link>https://personal-website-phi-seven-36.vercel.app/posts/how-i-failed-on-creating-my-own-ai-agent-rxdcmfxqpempm/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/how-i-failed-on-creating-my-own-ai-agent-rxdcmfxqpempm/</guid><description>&lt;p&gt;So, I suppose that at this point, everyone has heard at least a bit about agents and Openclaw.&lt;/p&gt;
&lt;p&gt;This buzzy words came out of sudden and became the words of the decade.&lt;/p&gt;
&lt;p&gt;As a tech guy, I&amp;rsquo;m loving all the possibilities we have with them and for sure they are great tools.&lt;/p&gt;
&lt;p&gt;Despite of that, I had never had a grasp on creating my own agents, even though I always wanted.&lt;/p&gt;</description></item><item><title>What's Python __future__?</title><link>https://personal-website-phi-seven-36.vercel.app/posts/whats-python-future-kuq9fnvw5fdaj/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/whats-python-future-kuq9fnvw5fdaj/</guid><description>&lt;p&gt;These are the notes I took to do my video about python futures, which is available here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/shorts/hRDHVKJI8d0?feature=share"&gt;&lt;img alt="De volta Para o Futuro do Python - Python &lt;em&gt;future&lt;/em&gt;" loading="lazy" src="https://img.youtube.com/vi/hRDHVKJI8d0/0.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.tiktok.com/@iamdpbm/video/7619330385436069140"&gt;De volta Para o Futuro do Python - Python &lt;em&gt;future&lt;/em&gt; - tiktokt video&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, all the videos are in portuguese. However, my notes are available bellow and the code is open source and available here: &lt;a href="https://github.com/Dpbm/video-python-futures"&gt;https://github.com/Dpbm/video-python-futures&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy :)&lt;/p&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Allows you to tell the compiler that you want to use a standard that will come in future releases.&lt;/li&gt;
&lt;li&gt;Is done by simply importing from &lt;code&gt;__future__&lt;/code&gt;.
&lt;ul&gt;
&lt;li&gt;Must be added on the top of the file, since it changes the way the file is parsed. Otherwise, it raises a &lt;code&gt;SyntaxError&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Tells the compiler you want an specific part of your code to act is it will be the default in the future.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;division&lt;/code&gt; calls &lt;code&gt;__truediv__&lt;/code&gt; instead of &lt;code&gt;__div__&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;from __future__ import whatever&lt;/code&gt; is a future clause, but you can also import the &lt;code&gt;__future__&lt;/code&gt; module with &lt;code&gt;import __future__&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The future itself is an object that contains metadata about the very feature, like versions and etc.&lt;/li&gt;
&lt;li&gt;Some futures are only supported by specific versions of python2, so older versions may need more workarounds than newer ones. That&amp;rsquo;s why &lt;code&gt;future&lt;/code&gt; and &lt;code&gt;six&lt;/code&gt; are so useful in these cases.&lt;/li&gt;
&lt;li&gt;Python 2.7 cli had a flag &lt;code&gt;-3&lt;/code&gt; that warned you when there was some statements that couldn&amp;rsquo;t be trivial to fix using 2to3.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;__future__&lt;/code&gt; works since python 2.1.&lt;/li&gt;
&lt;li&gt;There are flags that can be passed to &lt;code&gt;compile()&lt;/code&gt; to dynamically use future features.&lt;/li&gt;
&lt;li&gt;Only feature that requires future statements is &lt;code&gt;annoations&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Any code compiled with &lt;code&gt;exec()&lt;/code&gt; or &lt;code&gt;compile()&lt;/code&gt; will use the new statements when using futures in the module.&lt;/li&gt;
&lt;li&gt;Interactive session also can use futures.&lt;/li&gt;
&lt;li&gt;Only docstrings, comments, blank lines and other future statements can appear before it.&lt;/li&gt;
&lt;li&gt;Future object has 2 elements containing tuples with 5 elements. The first one describes the Optional release, which is the first release the feature was accepted. And the second is the Mandatory Release, describes either when the feature became part of the language, or a prediction of when it will be or can be None if it was dropped. Usually, Optional &amp;lt; Mandatory.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="six"&gt;six&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Used to wrap differences between python $2$ and $3$.&lt;/li&gt;
&lt;li&gt;Is a single python file being easy to copy into a project whenever needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="future"&gt;future&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A package to make a compatibility layer for python2-3 code.&lt;/li&gt;
&lt;li&gt;Based on the 2to3 module.&lt;/li&gt;
&lt;li&gt;Not necessary anymore.&lt;/li&gt;
&lt;li&gt;Add supports for the standard library.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2to3"&gt;2to3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A library builtin python.&lt;/li&gt;
&lt;li&gt;Transforms python2 code into python3 compatible.&lt;/li&gt;
&lt;li&gt;Was removed from Python3.13.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3.13/library/__future__.html"&gt;https://docs.python.org/3.13/library/&lt;strong&gt;future&lt;/strong&gt;.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/learnpython/comments/8ialj1/how_does_future_work/"&gt;https://www.reddit.com/r/learnpython/comments/8ialj1/how_does_future_work/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/7075082/what-is-future-in-python-used-for-and-how-when-to-use-it-and-how-it-works"&gt;https://stackoverflow.com/questions/7075082/what-is-future-in-python-used-for-and-how-when-to-use-it-and-how-it-works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pt.stackoverflow.com/questions/126466/para-que-serve-o-m%C3%B3dulo-future"&gt;https://pt.stackoverflow.com/questions/126466/para-que-serve-o-m%C3%B3dulo-future&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.geeksforgeeks.org/python/__future__-module-in-python/"&gt;https://www.geeksforgeeks.org/python/&lt;strong&gt;future&lt;/strong&gt;-module-in-python/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/5937251/writing-python-2-7-code-that-is-as-close-to-python-3-x-syntax-as-possible"&gt;https://stackoverflow.com/questions/5937251/writing-python-2-7-code-that-is-as-close-to-python-3-x-syntax-as-possible&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://six.readthedocs.io/"&gt;https://six.readthedocs.io/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pypi.org/project/future/"&gt;https://pypi.org/project/future/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://python-future.org/overview.html"&gt;https://python-future.org/overview.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3.8/library/2to3.html"&gt;https://docs.python.org/3.8/library/2to3.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/whatsnew/3.13.html"&gt;https://docs.python.org/3/whatsnew/3.13.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sources.debian.org/src/python2.7/2.7.9-2/Modules/future_builtins.c"&gt;https://sources.debian.org/src/python2.7/2.7.9-2/Modules/future_builtins.c&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/python/cpython/blob/main/Lib/__future__.py"&gt;https://github.com/python/cpython/blob/main/Lib/&lt;strong&gt;future&lt;/strong&gt;.py&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://python3porting.com/noconv.html"&gt;http://python3porting.com/noconv.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.oracle.com/cd/E86824_01/html/E54763/python2-7-1.html"&gt;https://docs.oracle.com/cd/E86824_01/html/E54763/python2-7-1.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3.13/library/__future__.html"&gt;https://docs.python.org/3.13/library/&lt;strong&gt;future&lt;/strong&gt;.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/library/functions.html#compile"&gt;https://docs.python.org/3/library/functions.html#compile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3.13/reference/simple_stmts.html#future"&gt;https://docs.python.org/3.13/reference/simple_stmts.html#future&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://peps.python.org/pep-0236/"&gt;https://peps.python.org/pep-0236/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://peps.python.org/pep-0563/"&gt;https://peps.python.org/pep-0563/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://peps.python.org/pep-0649/"&gt;https://peps.python.org/pep-0649/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://peps.python.org/pep-0749/#the-future-of-from-future-import-annotations"&gt;https://peps.python.org/pep-0749/#the-future-of-from-future-import-annotations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>The magic behind shebangs!</title><link>https://personal-website-phi-seven-36.vercel.app/posts/the-magic-behind-shebangs-wbje9fp8ogw7r/</link><pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/the-magic-behind-shebangs-wbje9fp8ogw7r/</guid><description>&lt;p&gt;These are the notes I took to do my video about shebangs, which is available here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/shorts/Mpv6wYCsikA?feature=share"&gt;&lt;img alt="Como shebangs functionam - youtube short video" loading="lazy" src="https://img.youtube.com/vi/Mpv6wYCsikA/0.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.tiktok.com/@iamdpbm/video/7608634329568136468"&gt;Como shebangs funcionam - tiktokt video&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, all the videos are in portuguese. However, my notes are available bellow and the code is open source and available here: &lt;a href="https://github.com/Dpbm/video-shebang"&gt;https://github.com/Dpbm/video-shebang&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy :)&lt;/p&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The name cames from Sharp-bang (&lt;code&gt;#!&lt;/code&gt; from music sheet notation). Some say that it&amp;rsquo;s due to its phonetics (hash + bang).&lt;/li&gt;
&lt;li&gt;It especifies an interpreter for this script.&lt;/li&gt;
&lt;li&gt;Bash handles the shebang when the underlying system doesn&amp;rsquo;t do that.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s usual to set it to &lt;code&gt;#!/bin/bash&lt;/code&gt; to ensure that it will use Bash instead of any other shell.&lt;/li&gt;
&lt;li&gt;Now days it&amp;rsquo;s preferable to use &lt;code&gt;#!/usr/bin/env bash&lt;/code&gt; to get bash from &lt;code&gt;$PATH&lt;/code&gt; if installed in a different directory.&lt;/li&gt;
&lt;li&gt;The script fallback to its parent &lt;code&gt;SHELL&lt;/code&gt; when no shebang is defined.&lt;/li&gt;
&lt;li&gt;The shebang is used for portability.&lt;/li&gt;
&lt;li&gt;When it&amp;rsquo;s not provided, the system raises an &lt;code&gt;ENOEXEC (Exec Format error)&lt;/code&gt; error.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;file&lt;/code&gt; command uses the shebang, as well, to see which kind of executable is that.&lt;/li&gt;
&lt;li&gt;You don&amp;rsquo;t need a blank after &lt;code&gt;#!&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Also accepts relative paths.&lt;/li&gt;
&lt;li&gt;When a program runs in a unix-like system, it executes a kernel &lt;code&gt;exec()&lt;/code&gt;(or any command from this family) function. It take a look at the first 16 bits, searching for a magic number that describes an executable. If it&amp;rsquo;s no signature is found it return an &lt;code&gt;ENOEXEC&lt;/code&gt; error.&lt;/li&gt;
&lt;li&gt;As time went, this magic part of the file also described how to execute it.&lt;/li&gt;
&lt;li&gt;When the run starts running your script, it first tries to delegate it to the kernel, which search for the shebang and tries to execute the file with a different interpreter. If none was found, the bash itself tries to execute.&lt;/li&gt;
&lt;li&gt;Explicit calling a script via a shell command (like &lt;code&gt;sh&lt;/code&gt; or &lt;code&gt;bash&lt;/code&gt;) the shebang is ignored.&lt;/li&gt;
&lt;li&gt;Using &lt;code&gt;/usr/bin/env&lt;/code&gt; doesn&amp;rsquo;t provide complete portability, but it&amp;rsquo;s a good practice.&lt;/li&gt;
&lt;li&gt;Arguments can be split differently in different systems, so it may break in some occasions.&lt;/li&gt;
&lt;li&gt;The path of the script is passed via argv to the interpreter.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="calling-trace"&gt;Calling trace&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;execve -&amp;gt; do_execveat_common -&amp;gt; create a linux_binprm containing data from it (DEFINE_CLASS -&amp;gt; alloc_bprm ) -&amp;gt; bprm_execve -&amp;gt; exec_binprm -&amp;gt; search_binary_handler -&amp;gt; prepare_binprm -&amp;gt; kernel_read (read the file) -&amp;gt;
it them iterates over a linked list of formats
list_for_each_entry(fmt, &amp;amp;formats, lh) {
the exec.c provides an external function `__register_binfmt` that is used by each type in `binfmt_*.c` to register in the lits, calling like:
core_initcall(init_elf_binfmt);
-&amp;gt; load_binary from struct linux_binprm
if it&amp;#39;s a script, it loads `binfmt_script.c` that has the method `load_script` which checks for the shebang
-&amp;gt; open_exec (from exec.c) -&amp;gt; do_open_execat
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://unix.stackexchange.com/questions/149045/why-is-shebang-called-shebang"&gt;https://unix.stackexchange.com/questions/149045/why-is-shebang-called-shebang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gnu.org/software/bash/manual/bash.html#Shell-Scripts-1"&gt;https://www.gnu.org/software/bash/manual/bash.html#Shell-Scripts-1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@jcroyoaun/a-deeper-view-into-the-shebang-for-linux-scripting-4a26395df49d"&gt;https://medium.com/@jcroyoaun/a-deeper-view-into-the-shebang-for-linux-scripting-4a26395df49d&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/3009192/how-does-the-shebang-work"&gt;https://stackoverflow.com/questions/3009192/how-does-the-shebang-work&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unix.stackexchange.com/questions/268766/what-exactly-happens-when-i-execute-a-file-in-my-shell"&gt;https://unix.stackexchange.com/questions/268766/what-exactly-happens-when-i-execute-a-file-in-my-shell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://crocidb.com/post/kernel-adventures/demystifying-the-shebang/"&gt;https://crocidb.com/post/kernel-adventures/demystifying-the-shebang/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.in-ulm.de/~mascheck/various/shebang/"&gt;https://www.in-ulm.de/~mascheck/various/shebang/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.faqs.org/faqs/unix-faq/faq/part3/section-16.html"&gt;http://www.faqs.org/faqs/unix-faq/faq/part3/section-16.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Shebang_(Unix)"&gt;https://en.wikipedia.org/wiki/Shebang_(Unix)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/torvalds/linux/blob/v4.8/fs/binfmt_script.c#L25"&gt;https://github.com/torvalds/linux/blob/v4.8/fs/binfmt_script.c#L25&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://man7.org/linux/man-pages/man2/execve.2.html"&gt;https://man7.org/linux/man-pages/man2/execve.2.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://man7.org/linux/man-pages/man3/perror.3.html"&gt;https://man7.org/linux/man-pages/man3/perror.3.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/4689724/where-do-i-find-the-source-code-for-execve"&gt;https://stackoverflow.com/questions/4689724/where-do-i-find-the-source-code-for-execve&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/exec.c#l1376"&gt;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/exec.c#l1376&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/binfmts.h"&gt;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/binfmts.h&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/torvalds/linux/blob/master/fs/namei.c#L4849"&gt;https://github.com/torvalds/linux/blob/master/fs/namei.c#L4849&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.kernel.org/admin-guide/binfmt-misc.html"&gt;https://docs.kernel.org/admin-guide/binfmt-misc.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/torvalds/linux/blob/master/include/linux/list.h"&gt;https://github.com/torvalds/linux/blob/master/include/linux/list.h&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/torvalds/linux/blob/master/fs/binfmt_script.c"&gt;https://github.com/torvalds/linux/blob/master/fs/binfmt_script.c&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://homepages.cwi.nl/~aeb/std/hashexclam.html"&gt;https://homepages.cwi.nl/~aeb/std/hashexclam.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch20s04.html"&gt;https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch20s04.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>How does Python handle imports?</title><link>https://personal-website-phi-seven-36.vercel.app/posts/python-imports-tpc7pcgzikhdq/</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/python-imports-tpc7pcgzikhdq/</guid><description>&lt;p&gt;This is a topic that I discussed in the following youtube video (unfortunately only in brazilian portuguese)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=qoHjoAgangI"&gt;&lt;img alt="Como python faz imports - youtube video" loading="lazy" src="https://img.youtube.com/vi/qoHjoAgangI/0.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;These notes were extracted from my github repo &lt;a href="https://github.com/Dpbm/video-python-import-methods"&gt;https://github.com/Dpbm/video-python-import-methods&lt;/a&gt;, take a look if you want more details and some code ;)&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="notes"&gt;Notes&lt;/h2&gt;
&lt;h3 id="c-includes"&gt;C includes&lt;/h3&gt;
&lt;h4 id="headers-h--files"&gt;headers (.h files)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;includes the interfaces for external code. including a header into a c source file is the same as copying the definition of the function or whatever to that context, but less prone to errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="include"&gt;&lt;code&gt;#include&lt;/code&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;it reads a file and places it inside the current source code.&lt;/li&gt;
&lt;li&gt;to avoid errors, use it to only import functions/declarations/definitions/etc from header files.&lt;/li&gt;
&lt;li&gt;includes using &lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt; looks only in standard system directories. But without it, it first looks into the current path and then starts look for it in other system locations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="wrappers"&gt;Wrappers&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;to avoid import the same thing twice use the wrappers&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#ifndef DEFINITION_OF_HEADER
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#define DEFINITION_OF_HEADER
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#endif
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;you can also use &lt;code&gt;#pragma once&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="js"&gt;JS&lt;/h3&gt;
&lt;h3 id="common-js"&gt;Common JS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;use &lt;code&gt;require&lt;/code&gt; and &lt;code&gt;exports.&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;require can load ES modules when the file is &lt;code&gt;.mjs&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="es-modules"&gt;ES modules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;are more flexible&lt;/li&gt;
&lt;li&gt;you can define queries, properties, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="python-import"&gt;Python import&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Python uses importlib as the underlying machinary for importing.&lt;/li&gt;
&lt;li&gt;components of &lt;code&gt;import&lt;/code&gt; are available through &lt;code&gt;importlib&lt;/code&gt; to make it possible for you to create a custom object.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;import&lt;/code&gt; calls &lt;code&gt;__import__()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;importer&lt;/code&gt; is a term that refers to a both finds and loads a module.&lt;/li&gt;
&lt;li&gt;the &lt;code&gt;import&lt;/code&gt; command don&amp;rsquo;t put every single definition directly into the current scope, but only the module name. To access its internals, you must use &lt;code&gt;module_name.&amp;lt;what you want&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;is not required to be on the top of the file.&lt;/li&gt;
&lt;li&gt;it search, create a module object and binds a name, while &lt;code&gt;__import__&lt;/code&gt; only searches and creates the object.&lt;/li&gt;
&lt;li&gt;when module is not found it raises &lt;code&gt;ModuleNotFoundError&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="the-import-statement"&gt;The import statement&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;find a module and loads it.&lt;/li&gt;
&lt;li&gt;define a name for this module in the current scope.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="the-import-statement-using-from"&gt;The import statement using &lt;code&gt;from&lt;/code&gt;&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;find the module specified in &lt;code&gt;from&lt;/code&gt; clause.&lt;/li&gt;
&lt;li&gt;for each name in &lt;code&gt;import&lt;/code&gt; check if the name exists. If not, check if it&amp;rsquo;s a submodule. If not found raise &lt;code&gt;ImportError&lt;/code&gt;. Otherwise import to the local namespace.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="using-"&gt;using &lt;code&gt;*&lt;/code&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;it exposes all public data.&lt;/li&gt;
&lt;li&gt;members with &lt;code&gt;_&lt;/code&gt; are not exposed by default.&lt;/li&gt;
&lt;li&gt;if &lt;code&gt;__all__&lt;/code&gt; is defined, all names defined are exposed. Otherwise all public members.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;__all__&lt;/code&gt; is a global variable per module.&lt;/li&gt;
&lt;li&gt;it imports all names into the current scope (except those which start with &lt;code&gt;_&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;not recommended.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="relative-imports"&gt;Relative imports&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;only works on packages contained one within the another.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.&lt;/code&gt; for the current package and &lt;code&gt;..&lt;/code&gt; for one that&amp;rsquo;s a level up.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="pythonpath"&gt;&lt;code&gt;PYTHONPATH&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;add entries in &lt;code&gt;sys.path&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;useful when we need to test a package without installing it.&lt;/li&gt;
&lt;li&gt;affects installed python versions/environments, only use when it&amp;rsquo;s really needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="syspath"&gt;&lt;code&gt;sys.path&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;first entry is the directory of the current script or the current directory when using &lt;code&gt;-c&lt;/code&gt; or &lt;code&gt;-m&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="sysmodules"&gt;&lt;code&gt;sys.modules&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;a dictionary that maps modules that were already loaded.&lt;/li&gt;
&lt;li&gt;it&amp;rsquo;s a cache.&lt;/li&gt;
&lt;li&gt;return a module ready to run.&lt;/li&gt;
&lt;li&gt;maps submodules as well.&lt;/li&gt;
&lt;li&gt;if an entry value is &lt;code&gt;None&lt;/code&gt; python will raise an &lt;code&gt;ModuleNotFoundError&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="sysmeta_path-meta-hooks"&gt;&lt;code&gt;sys.meta_path&lt;/code&gt; (meta hooks)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Are called before any importing proccess so it can override the &lt;code&gt;sys.path&lt;/code&gt;, &lt;code&gt;frozen modules&lt;/code&gt; and even &lt;code&gt;builtin&lt;/code&gt; ones.&lt;/li&gt;
&lt;li&gt;To register add a finder object in &lt;code&gt;sys.meta_path&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;if the whole list is check and every finder returns &lt;code&gt;None&lt;/code&gt;, so the module cannot be handled, raising an &lt;code&gt;ModuleNotFoundError&lt;/code&gt;, otherwise return a spec.&lt;/li&gt;
&lt;li&gt;it&amp;rsquo;s called multiple times for multilevel packages (&lt;code&gt;foo.bar.baz&lt;/code&gt;, 3 times, &amp;lsquo;foo&amp;rsquo;, &amp;lsquo;foo.bar&amp;rsquo;, &amp;lsquo;foo.bar.baz&amp;rsquo;).&lt;/li&gt;
&lt;li&gt;python has 3 by default. For builtin modules, for frozen modules and for an import path.&lt;/li&gt;
&lt;li&gt;by default it can handle &lt;code&gt;.py&lt;/code&gt;, &lt;code&gt;.pyc&lt;/code&gt; and &lt;code&gt;.so&lt;/code&gt; files.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="syspath_hooks"&gt;&lt;code&gt;sys.path_hooks&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;part of &lt;code&gt;sys.path&lt;/code&gt; processing.&lt;/li&gt;
&lt;li&gt;is registered by adding an importer factory into &lt;code&gt;sys.path_hooks&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;it checks if a path item can be handled.&lt;/li&gt;
&lt;li&gt;return an importer when an item can be handled, otherwise return &lt;code&gt;ImportError&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;is consulted while traversing a package &lt;code&gt;__path__&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;python uses this list to handle different types of files and locations, like from URLs, zip files, so files, .py files, etc.&lt;/li&gt;
&lt;li&gt;it&amp;rsquo;s used after python tries every single finder from &lt;code&gt;sys.meta_path&lt;/code&gt;. If none works, it iterate over each &lt;code&gt;sys.path_hooks&lt;/code&gt; entries and give it each possible value from &lt;code&gt;sys.path&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;must call &lt;code&gt;sys.path_importer_cache.clear()&lt;/code&gt; after adding a new factory to it&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="modules"&gt;Modules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;is a file containing statements and definitions.&lt;/li&gt;
&lt;li&gt;the module name is the filename, which can be accessed via &lt;code&gt;__name__&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;can have executable statements that are executed only once when the module is imported.&lt;/li&gt;
&lt;li&gt;have its private namespace.&lt;/li&gt;
&lt;li&gt;when executed as a script its name (&lt;code&gt;__name__&lt;/code&gt;) becomes &lt;code&gt;__main__&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;when importing a module, it searches in this sequence:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;sys.builtin_module_names&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sys.path&lt;/code&gt; (which includes the directory of the file, &lt;code&gt;PYTHONPATH&lt;/code&gt; and the installation dependent directory &lt;code&gt;site-packages&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;the &lt;code&gt;dir()&lt;/code&gt; command is used to list all the names in a module&lt;/li&gt;
&lt;li&gt;&lt;code&gt;builtins&lt;/code&gt; is a module that list everything that&amp;rsquo;s builtin python&lt;/li&gt;
&lt;li&gt;every module has a &lt;code&gt;repr&lt;/code&gt; (representaion) depending of data like name, origin, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="__pycache__"&gt;&lt;code&gt;__pycache__&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;contains the cached modules that were previously built.&lt;/li&gt;
&lt;li&gt;python always ignore the cache when:
&lt;ol&gt;
&lt;li&gt;they are directly loaded via CLI (it recompiles the module).&lt;/li&gt;
&lt;li&gt;when the module is a binary.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;to reduce the compiled size use:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;-O&lt;/code&gt; to remove &lt;code&gt;assert&lt;/code&gt; statements&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-OO&lt;/code&gt; to remove &lt;code&gt;asserts&lt;/code&gt; and &lt;code&gt;__doc__&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;opt-&lt;/code&gt; to optimize the binary&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.pyc&lt;/code&gt; are only faster for loading not executing&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="packages"&gt;Packages&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;collection of modules&lt;/li&gt;
&lt;li&gt;inside the package, when importing, python searchs in &lt;code&gt;sys.path&lt;/code&gt; for the names. To find the submodules inside your package, each submodule must have a &lt;code&gt;__init__.py&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;when loading submodules with &lt;code&gt;import&lt;/code&gt; python tries to find the name as a declarion/statement from the module, if it&amp;rsquo;s not find it tries to load as a submodule. In case it&amp;rsquo;s not found, it will raise and &lt;code&gt;ImportError&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;when using &lt;code&gt;import *&lt;/code&gt; it only import the names defined for that package, not every submodule name.&lt;/li&gt;
&lt;li&gt;you can use relative imports within the submodules to navigate quickly between code.&lt;/li&gt;
&lt;li&gt;you can also use &amp;lsquo;&lt;strong&gt;path&lt;/strong&gt;&amp;rsquo; to check which directory python search for the submodules.&lt;/li&gt;
&lt;li&gt;Any module that has a &lt;code&gt;__path__&lt;/code&gt; is a package.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="regular-packages"&gt;Regular Packages&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;directories with &lt;code&gt;__init__.py&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="namespace-packages"&gt;Namespace Packages&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;split a pacakge between multiple locations on disk.&lt;/li&gt;
&lt;li&gt;cannot contain &lt;code&gt;__init__.py&lt;/code&gt; files.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;__path__&lt;/code&gt; is read-only.&lt;/li&gt;
&lt;li&gt;at runtime you can use &lt;code&gt;sys.path&lt;/code&gt; to discover them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="__init__py"&gt;&lt;code&gt;__init__.py&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;can be empty but can also run initialization code.&lt;/li&gt;
&lt;li&gt;when a module is imported, the &lt;code&gt;__init__.py&lt;/code&gt; is executed.&lt;/li&gt;
&lt;li&gt;define a package.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="import-protocol"&gt;Import Protocol&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;it has two parts&lt;/li&gt;
&lt;li&gt;when both are implement it&amp;rsquo;s called an &lt;code&gt;importer&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;finder and loader can be the same object.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="finders"&gt;finders&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;it determines if a module can be found.&lt;/li&gt;
&lt;li&gt;return a &lt;code&gt;module spec&lt;/code&gt; with all information needed for loading it.&lt;/li&gt;
&lt;li&gt;can&amp;rsquo;t point to whatever location, not requering to be in the local machine.&lt;/li&gt;
&lt;li&gt;can be a &lt;code&gt;meta_path finder&lt;/code&gt;, which operates at the beggining of the importing proccess, and &lt;code&gt;path_entry finder&lt;/code&gt;, which responsible for finding and loading &lt;code&gt;modules&lt;/code&gt; and &lt;code&gt;packages&lt;/code&gt; located via a string &lt;code&gt;path entry&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sys.path_importer_cache&lt;/code&gt; maintains a cache of finders objects.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="loaders"&gt;loaders&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;don&amp;rsquo;t need to check for &lt;code&gt;sys.modules&lt;/code&gt;, import will check it before.&lt;/li&gt;
&lt;li&gt;module execution.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="overall-execution-pipeline-default-pipeline-as-i-understood"&gt;Overall Execution pipeline (Default pipeline as I understood)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;you use &lt;code&gt;import&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;it uses under the hood &lt;code&gt;__import__()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;search the module at cache &lt;code&gt;sys.modules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;if not found, run the &lt;code&gt;meta hooks&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;run the finder iteratively
&lt;ul&gt;
&lt;li&gt;if no &lt;code&gt;meta_path&lt;/code&gt; worked, it iterates over &lt;code&gt;sys.path&lt;/code&gt; and &lt;code&gt;sys.path_hooks&lt;/code&gt; trying to see if any of the paths can be handled&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;check if &lt;code&gt;.pyc&lt;/code&gt; file is up-to-date, when importing python files
&lt;ul&gt;
&lt;li&gt;if not, it regenerates the file and save the new hash&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;run loader returning a module object&lt;/li&gt;
&lt;li&gt;binds the module object into a name provided via &lt;code&gt;import&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.grumpymetalguy.com/programming/python_importlib/"&gt;https://www.grumpymetalguy.com/programming/python_importlib/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/library/importlib.html"&gt;https://docs.python.org/3/library/importlib.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/reference/simple_stmts.html#import"&gt;https://docs.python.org/3/reference/simple_stmts.html#import&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/python/cpython/blob/3.14/Lib/importlib/__init__.py"&gt;https://github.com/python/cpython/blob/3.14/Lib/importlib/&lt;strong&gt;init&lt;/strong&gt;.py&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/glossary.html#term-importer"&gt;https://docs.python.org/3/glossary.html#term-importer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/glossary.html#term-loader"&gt;https://docs.python.org/3/glossary.html#term-loader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/glossary.html#term-module-spec"&gt;https://docs.python.org/3/glossary.html#term-module-spec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://realpython.com/ref/stdlib/importlib/"&gt;https://realpython.com/ref/stdlib/importlib/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discuss.python.org/t/usage-of-all-in-init-py/17936/5"&gt;https://discuss.python.org/t/usage-of-all-in-init-py/17936/5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discuss.python.org/t/usage-of-pythonpath/18086/7"&gt;https://discuss.python.org/t/usage-of-pythonpath/18086/7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bic-berkeley.github.io/psych-214-fall-2016/using_pythonpath.html"&gt;https://bic-berkeley.github.io/psych-214-fall-2016/using_pythonpath.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/stas00/the-art-of-debugging"&gt;https://github.com/stas00/the-art-of-debugging&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH"&gt;https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html"&gt;https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nodejs.org/api/modules.html"&gt;https://nodejs.org/api/modules.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nodejs.org/api/esm.html"&gt;https://nodejs.org/api/esm.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tc39.es/ecma262/#sec-modules"&gt;https://tc39.es/ecma262/#sec-modules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/tutorial/modules.html"&gt;https://docs.python.org/3/tutorial/modules.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/glossary.html#term-namespace-package"&gt;https://docs.python.org/3/glossary.html#term-namespace-package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/reference/datamodel.html#module.__path__"&gt;https://docs.python.org/3/reference/datamodel.html#module.&lt;strong&gt;path&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/reference/import.html"&gt;https://docs.python.org/3/reference/import.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/library/sys.html#sys.modules"&gt;https://docs.python.org/3/library/sys.html#sys.modules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/library/sys.html#sys.meta_path"&gt;https://docs.python.org/3/library/sys.html#sys.meta_path&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://peps.python.org/pep-0302/"&gt;https://peps.python.org/pep-0302/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/library/sys.html#sys.path_importer_cache"&gt;https://docs.python.org/3/library/sys.html#sys.path_importer_cache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/glossary.html#term-portion"&gt;https://docs.python.org/3/glossary.html#term-portion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://micropython-stubber.readthedocs.io/en/main/50_frozen_stubs.html#frozen-modules"&gt;https://micropython-stubber.readthedocs.io/en/main/50_frozen_stubs.html#frozen-modules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/python/cpython/blob/main/Python/frozen.c"&gt;https://github.com/python/cpython/blob/main/Python/frozen.c&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.python.org/moin/Freeze"&gt;https://wiki.python.org/moin/Freeze&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python-guide.org/shipping/freezing/"&gt;https://docs.python-guide.org/shipping/freezing/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/library/sys_path_init.html"&gt;https://docs.python.org/3/library/sys_path_init.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/tutorial/classes.html#tut-scopes"&gt;https://docs.python.org/3/tutorial/classes.html#tut-scopes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/library/compileall.html#module-compileall"&gt;https://docs.python.org/3/library/compileall.html#module-compileall&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://peps.python.org/pep-3147/"&gt;https://peps.python.org/pep-3147/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://peps.python.org/pep-0420/"&gt;https://peps.python.org/pep-0420/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://packaging.python.org/en/latest/guides/packaging-namespace-packages/"&gt;https://packaging.python.org/en/latest/guides/packaging-namespace-packages/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://realpython.com/python-namespace-package/"&gt;https://realpython.com/python-namespace-package/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinder.find_spec"&gt;https://docs.python.org/3/library/importlib.html#importlib.machinery.PathFinder.find_spec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/41990169/how-to-use-sys-path-hooks-for-customized-loading-of-modules"&gt;https://stackoverflow.com/questions/41990169/how-to-use-sys-path-hooks-for-customized-loading-of-modules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/31882967/why-are-pyc-files-created-on-import"&gt;https://stackoverflow.com/questions/31882967/why-are-pyc-files-created-on-import&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://peps.python.org/pep-3147/#python-behavior"&gt;https://peps.python.org/pep-3147/#python-behavior&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@utkarshshukla.author/what-is-a-pyc-file-visualizing-pythons-bytecode-generation-fcce8e6da679"&gt;https://medium.com/@utkarshshukla.author/what-is-a-pyc-file-visualizing-pythons-bytecode-generation-fcce8e6da679&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://peps.python.org/pep-0451/"&gt;https://peps.python.org/pep-0451/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/python/cpython/blob/main/Lib/importlib/_bootstrap.py"&gt;https://github.com/python/cpython/blob/main/Lib/importlib/_bootstrap.py&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/python/cpython/blob/main/Lib/importlib/_bootstrap_external.py"&gt;https://github.com/python/cpython/blob/main/Lib/importlib/_bootstrap_external.py&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/python/cpython/blob/main/Lib/importlib/abc.py"&gt;https://github.com/python/cpython/blob/main/Lib/importlib/abc.py&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/python/cpython/blob/main/Lib/importlib/_abc.py"&gt;https://github.com/python/cpython/blob/main/Lib/importlib/_abc.py&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/Python/comments/untwoc/syspath_hooks_is_fun_for_everyone_cfgimp_a_misuse/"&gt;https://www.reddit.com/r/Python/comments/untwoc/syspath_hooks_is_fun_for_everyone_cfgimp_a_misuse/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/glossary.html#term-path-entry-finder"&gt;https://docs.python.org/3/glossary.html#term-path-entry-finder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/glossary.html#term-path-entry-hook"&gt;https://docs.python.org/3/glossary.html#term-path-entry-hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://snarky.ca/writing-a-zip-file-importer-the-path-hook-part-1/"&gt;https://snarky.ca/writing-a-zip-file-importer-the-path-hook-part-1/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rahul.gopinath.org/post/2018/09/07/python-importer/"&gt;https://rahul.gopinath.org/post/2018/09/07/python-importer/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.ploomber.io/en/latest/api/_modules/root/ploomber.SourceLoader.html"&gt;https://docs.ploomber.io/en/latest/api/_modules/root/ploomber.SourceLoader.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Moving my website from NextJS to HUGO</title><link>https://personal-website-phi-seven-36.vercel.app/posts/moving-my-website-from-nextjs-to-hugo-56xftmtrpapgc/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/moving-my-website-from-nextjs-to-hugo-56xftmtrpapgc/</guid><description>&lt;p&gt;So, it&amp;rsquo;s been a long time since I first created my blog using &lt;code&gt;NextJs&lt;/code&gt; and &lt;code&gt;MongoDB&lt;/code&gt;. The previous setup was kind a mess. You can still check it on my github &lt;a href="https://github.com/Dpbm/personal-blog/tree/966949eb6e321c5f8478d40fa07550b41351401f"&gt;966949eb6e321c5f8478d40fa07550b41351401f&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This old version was relying deeply on &lt;code&gt;Nextjs&lt;/code&gt; server components, &lt;code&gt;mdx&lt;/code&gt; plugin and the amazing &lt;code&gt;api&lt;/code&gt; capabilities. Wich was nice, and gave me a freedom I wouldn&amp;rsquo;t have in other environments, however it was so complicated to create new posts.&lt;/p&gt;</description></item><item><title>UV TLS issue</title><link>https://personal-website-phi-seven-36.vercel.app/posts/uv-tls-issue-5h2h3gc5a2fj/</link><pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/uv-tls-issue-5h2h3gc5a2fj/</guid><description>&lt;p&gt;Recently, I&amp;rsquo;ve been working on a python project that required me to use the &lt;code&gt;qiskit-ibm-runtime&lt;/code&gt; package to
do some quantum stuff.&lt;/p&gt;
&lt;p&gt;So, the first thing I did was run:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uv add python-dotenv qiskit-ibm-runtime
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;then I created a simple snippet to test it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; os
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; dotenv &lt;span style="color:#f92672"&gt;import&lt;/span&gt; load_dotenv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; qiskit_ibm_runtime &lt;span style="color:#f92672"&gt;import&lt;/span&gt; QiskitRuntimeService
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; __name__ &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; load_dotenv()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; QiskitRuntimeService&lt;span style="color:#f92672"&gt;.&lt;/span&gt;save_account(channel&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;ibm_quantum_platform&amp;#34;&lt;/span&gt;, token&lt;span style="color:#f92672"&gt;=&lt;/span&gt;os&lt;span style="color:#f92672"&gt;.&lt;/span&gt;getenv(&lt;span style="color:#e6db74"&gt;&amp;#34;IBM_KEY&amp;#34;&lt;/span&gt;), instance&lt;span style="color:#f92672"&gt;=&lt;/span&gt;os&lt;span style="color:#f92672"&gt;.&lt;/span&gt;getenv(&lt;span style="color:#e6db74"&gt;&amp;#34;CRN&amp;#34;&lt;/span&gt;), overwrite&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;, set_as_default&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;) &lt;span style="color:#960050;background-color:#1e0010"&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; service &lt;span style="color:#f92672"&gt;=&lt;/span&gt; QiskitRuntimeService()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print(service&lt;span style="color:#f92672"&gt;.&lt;/span&gt;least_busy(filters&lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;lambda&lt;/span&gt; b : &lt;span style="color:#f92672"&gt;not&lt;/span&gt; b&lt;span style="color:#f92672"&gt;.&lt;/span&gt;simulator &lt;span style="color:#f92672"&gt;and&lt;/span&gt; b&lt;span style="color:#f92672"&gt;.&lt;/span&gt;num_qubits &lt;span style="color:#f92672"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;9&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and ran the script with:&lt;/p&gt;</description></item><item><title>Hill Climbing for trading</title><link>https://personal-website-phi-seven-36.vercel.app/posts/hill-climbing-for-trading-c0g7f2b882afa/</link><pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/hill-climbing-for-trading-c0g7f2b882afa/</guid><description>&lt;h1 id="hill-climbing-for-petr4-stocks"&gt;Hill Climbing for PETR4 stocks&lt;/h1&gt;
&lt;p&gt;This project was a challenge propoused by our professor.&lt;/p&gt;
&lt;p&gt;The idea of this project, was to implement an AI agent to buy-sell PETR4 stocks using the hill
climbing algorithm.&lt;/p&gt;
&lt;p&gt;To tackle this challenge, I used Octave and the data provided by &lt;a href="https://www.infomoney.com.br/cotacoes/b3/acao/petrobras-petr4/historico/"&gt;InfoMoney PETR4&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="the-algorithm"&gt;The algorithm&lt;/h2&gt;
&lt;p&gt;My implementation uses the default hill climbing algorithm with some nuances.&lt;/p&gt;
&lt;p&gt;The agent starts with some stocks already bought and some spare money in hist wallet.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 292</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-292-ba7fgb8ja67i/</link><pubDate>Tue, 13 May 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-292-ba7fgb8ja67i/</guid><description>&lt;ul&gt;
&lt;li&gt;Dado: elementos brutos, sem significado&lt;/li&gt;
&lt;li&gt;Informação: Dado processado que auxilia na tomada de decisão&lt;/li&gt;
&lt;li&gt;Conhecimento: Maneira como os humanos entendem e interagem com as informações&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://www.researchgate.net/publication/324957309/figure/fig1/AS:622732219793409@1525482339739/Figura-1-A-hierarquia-Dados-Informacao-Conhecimento.png"&gt;&lt;img alt="piramide" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-292-ba7fgb8ja67i/conhecimento.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="níveis-de-hierarquia-de-informação"&gt;Níveis de Hierarquia de informação&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Operacional (base): operações rotineiras da empresa (pagamento, INSS, etc)&lt;/li&gt;
&lt;li&gt;Tática: usado para a tomada de decisões. Foca no ambiente interno da empresa. Gerado a partir dos dados operacionais&lt;/li&gt;
&lt;li&gt;Estratégicas: Foca no ambiente externo. Concorrentes, como está o mercado, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://www.pontotel.com.br/local/wp-content/uploads/2025/04/hierarquia-de-cargos-quais-sao-os-niveis-hierarquicos-de-cargos-1024x572.webp"&gt;&lt;img alt="hierarquia" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-292-ba7fgb8ja67i/hierarquia.webp"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Resolvendo o problema de local optima - NRainhas</title><link>https://personal-website-phi-seven-36.vercel.app/posts/resolvendo-o-problema-de-local-optima-nrainhas-e0j9a97gja5ea/</link><pubDate>Sun, 11 May 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/resolvendo-o-problema-de-local-optima-nrainhas-e0j9a97gja5ea/</guid><description>&lt;blockquote&gt;
&lt;p&gt;for english version &lt;a href="https://github.com/Dpbm/n-rainhas/blob/main/readme-en.md"&gt;click here&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Durante nossas aulas de Inteligência artificial, estávamos estudando sobre algoritmos de busca, mais precisamente o algoritmo de busca informada &lt;code&gt;Hill Climbing&lt;/code&gt;. Para aprender sobre esse algoritmo, o implementamos para resolver o problema das &lt;code&gt;N-Rainhas&lt;/code&gt;. Vimos que este é um algoritmo muito bom para resolver o problema rapidamente, contudo este se mostra como muito propenso a ficar estagnado no ótimo local.&lt;/p&gt;
&lt;p&gt;Devido a isso, nosso professor &lt;a href="https://scholar.google.com.br/citations?user=fm6GR6YAAAAJ"&gt;João Ricardo Favan&lt;/a&gt; nos deu o desafio de encontrar uma maneira de diminuir as chances do algoritmo empacar no ótimo local, e é por isso que estamos aqui.&lt;/p&gt;</description></item><item><title>Análise e Projeto de Algoritmos - Parte 1</title><link>https://personal-website-phi-seven-36.vercel.app/posts/analise-e-projeto-de-algoritmos-parte-1-8g293534fb42/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/analise-e-projeto-de-algoritmos-parte-1-8g293534fb42/</guid><description>&lt;p&gt;&lt;strong&gt;Algoritmo&lt;/strong&gt; → procedimento computacional bem definido que recebe
entrada(s) e devolve uma saída, sendo a descrição do problema a relação
entre a entrada e como deve ser sua saída;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problema&lt;/strong&gt; → descrição dos parâmetros e a descrição de como o
resultado deve ser apresentado;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Instância de um problema&lt;/strong&gt; → todas as entradas possíveis de um
algoritmo que respeitam suas restrições;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A velocidade de um programa depende de diversos fatores, mas não
necessariamente vai depender do hardware usado ou da tecnologia.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 1</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-1-9fa0gg495hg6/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-1-9fa0gg495hg6/</guid><description>&lt;p&gt;lógica e algoritmos, então aqui vão algumas anotações:&lt;/p&gt;
&lt;p&gt;Lógica:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Arte de pensar&lt;/li&gt;
&lt;li&gt;maneiras de encontrar a solução para algum problema&lt;/li&gt;
&lt;li&gt;o mais importante de um algoritmo é a lógica não a ferramenta
(linguagem de programação)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Algoritmos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;maneiras de resolver um problema usando a lógica&lt;/li&gt;
&lt;li&gt;passo a passo para resolver o problema&lt;/li&gt;
&lt;li&gt;obs: podem existir vários algoritmos que resolvem o mesmo problema&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Além de aprendermos os conceitos, foi dado uma breve explicação do que é
necessário para criar um algoritmo, sendo assim foi nos explicado que
para criar um algoritmo é necessário pensar em cada parte do problema o
que será necessário usar para resolve-lo&lt;/p&gt;</description></item><item><title>Ciências da computação dia 10</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-10-8hj065jh90a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-10-8hj065jh90a/</guid><description>&lt;p&gt;agora para sistemas lineares, equações irracionais e equações
biquadradas.&lt;/p&gt;
&lt;h3 id="sistemas-lineares"&gt;Sistemas lineares&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;duas equações que se correlacionam e possuem mais de uma incógnita.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;para resolver sistemas lineares um dos métodos apresentados foi o método
da adição, para utilizá-lo, pegue os números que acompanham x e
multiplique a parte de cima pelo número de x de baixo e o de baixo pelo
de cima, lembrando que um desses dois deve ser transformado em negativo,
após isso pegue as equações que resultaram e some as, lembrando que os
valores de x ao serem somados devem resultar em 0, o resultado dessa
soma será uma equação do primeiro grau simples de resolver. após
resolver e encontrar o Y com isso, pegue qualquer uma das equações
anteriores e substitua o Y.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 100</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-100-hd94h8ic40jf/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-100-hd94h8ic40jf/</guid><description>&lt;h3 id="análise-de-viabilidade"&gt;Análise de viabilidade&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;entender o mercado;&lt;/li&gt;
&lt;li&gt;base para um plano de negócios.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ambiente-setorial-mais-próximo-daempresa"&gt;Ambiente setorial (mais próximo da empresa)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;clientes, fornecedores, concorrentes;&lt;/li&gt;
&lt;li&gt;parte mais próxima da empresa que exerce pressão sobre ela;&lt;/li&gt;
&lt;li&gt;se você não tiver estratégias/ for bom, os clientes vão para outras
empresas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="macro-ambienteexterno"&gt;Macro ambiente externo&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Economia, Política/leis, tecnologia, cultura(se os funcionários não
estão adaptados, seu negócio cai);&lt;/li&gt;
&lt;li&gt;Forças externas que exercem pressão sobre a empresa;&lt;/li&gt;
&lt;li&gt;Através dessas forças, sua empresa pode cair ou subir no mercado,
dependendo das tendências.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se houver muita gente com muito dinheiro, comprando muito, e as empresas
não conseguem produzir o suficiente, os preços sobem.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 101</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-101-e143bbcab3cf/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-101-e143bbcab3cf/</guid><description>&lt;p&gt;Os objetos, as vezes, precisam de se relacionar uns com os outros para
trocas de informações.&lt;/p&gt;
&lt;h3 id="associação"&gt;Associação&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Objetos existem de forma independente;&lt;/li&gt;
&lt;li&gt;B é instanciado em A, ou o inverso ou em ambos;&lt;/li&gt;
&lt;li&gt;As instâncias são passadas ao objeto a partir de um método set que
recebe essa instância.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="multiplicidade"&gt;Multiplicidade&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Representação das quantidades de objetos que podem estar
relacionados;&lt;/li&gt;
&lt;li&gt;Age como uma cardinalidade em Banco de Dados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="multiplicidade entre Pessoa Veículo(1:N)" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-101-e143bbcab3cf/image_188.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 102</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-102-6i365abc8ibc/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-102-6i365abc8ibc/</guid><description>&lt;h3 id="entrevista"&gt;Entrevista&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Uma das melhores técnicas;&lt;/li&gt;
&lt;li&gt;Falar com os stakeholders cara a cara, de forma planejada por um
roteiro;&lt;/li&gt;
&lt;li&gt;O roteiro possui perguntas de como os processos são feitos hoje em
dia e quais os problemas que os stakeholders encontram no dia a dia;&lt;/li&gt;
&lt;li&gt;É necessário escolher pessoas chave para as reuniões (key
stakeholders);&lt;/li&gt;
&lt;li&gt;Diga para os entrevistados quais são seus objetivos;&lt;/li&gt;
&lt;li&gt;Questione o ambiente de trabalho deles;&lt;/li&gt;
&lt;li&gt;Evite termo técnicos;&lt;/li&gt;
&lt;li&gt;Utilize ferramentas para facilitar a coleta de dados;&lt;/li&gt;
&lt;li&gt;Presta atenção no que está sendo dito (use a escuta ativa, primeiro
ouça, depois formule o que você vai dizer);&lt;/li&gt;
&lt;li&gt;Anote tudo que for possível e depois apresente esse(s) documento(s)
para os entrevistados, garantindo que o que está escrito é de fato o
que eles disseram/querem.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="grupo-de-discussão"&gt;Grupo de discussão&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Um instrutor guia um grupo de stakeholders para ir entendendo como é
funciona hoje e o que pode ser melhorado.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="workshop"&gt;Workshop&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Os stakeholders escrevem e expõem os problemas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="brainstorm"&gt;Brainstorm&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Os stakeholders vão dando ideias (as mais malucas possíveis) de como
pode ser resolvido o problema;&lt;/li&gt;
&lt;li&gt;Ninguém crítica as ideias na primeira sessão. Após ela é que são
dados os prós e contras de cada ideia.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="questionário"&gt;Questionário&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Perguntas direto ao ponto para os stakeholders;&lt;/li&gt;
&lt;li&gt;Usado quando não há a possibilidade de fazer reuniões (último caso);&lt;/li&gt;
&lt;li&gt;Perguntas devem ser muito bem elaboradas;&lt;/li&gt;
&lt;li&gt;Use questionários junto com outras técnicas;&lt;/li&gt;
&lt;li&gt;Perguntas dissertativas → usadas para conhecer novos requisitos;&lt;/li&gt;
&lt;li&gt;Perguntas objetivas → usadas para validar o que foi feito;&lt;/li&gt;
&lt;li&gt;User perguntas como → indique o grau de importância, indique o grau
de necessidade.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="observações"&gt;Observações&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Acompanhar o dia a dia para identificar o problema;&lt;/li&gt;
&lt;li&gt;Geralmente usado como um complementar, uma vez que nem sempre você
consegue acompanhar todos os dias o trabalho do seu cliente;&lt;/li&gt;
&lt;li&gt;Para melhorar a experiência, é interessante você também colocar a
mão na massa para ver como tudo funciona;&lt;/li&gt;
&lt;li&gt;Funciona muito bem para problemas pontuais;&lt;/li&gt;
&lt;li&gt;É muito bom para encontrar requisitos implícitos/esperados.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="análise-de-documentos"&gt;Análise de documentos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Análise dos documentos que existem atualmente para a identificação.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Obs: Geralmente são usados um conjunto dessas técnicas.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 103</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-103-ghbccai9b34c/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-103-ghbccai9b34c/</guid><description>&lt;p&gt;Podemos utilizar uma versão da linked list, de forma que guardaremos em
uma variável o endereço do último node. Isso pode ser usado para reduzir
o tempo de acesso para alguns algoritmos.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 104</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-104-g89bc6idb8h8/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-104-g89bc6idb8h8/</guid><description>&lt;p&gt;O MySQL possui algumas engines, uma mais antiga que permite integridade
referencial é chamado de InnoDB, engine da época do MyISAM.&lt;/p&gt;
&lt;p&gt;Podemos utilizar essa engine apenas colocando ENGINE=InnoDB na frente de
um commando da DDL.&lt;/p&gt;
&lt;p&gt;obs: integridade referencial se dá a partir de FK.&lt;/p&gt;
&lt;p&gt;Para inserir date/datetime, use aspas simples ao redor.&lt;/p&gt;
&lt;p&gt;Se ao definir uma coluna na frente você colocar PRIMARY KEY, você
definiu ela como primaria a nível de coluna, já se você usar o comando
CONSTRAINT você define a nível de tabela.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 105</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-105-9db506g8f1bi/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-105-9db506g8f1bi/</guid><description>&lt;h3 id="continuação-dosmétodos"&gt;Continuação dos métodos&lt;/h3&gt;
&lt;h4 id="6defina-a-estrutura-organizacional"&gt;6 &amp;mdash; defina a estrutura organizacional&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Montar a empresa;&lt;/li&gt;
&lt;li&gt;Equipamentos, espaço, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="7defina-o-plano-financeiro"&gt;7 &amp;mdash; defina o plano financeiro&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Em quanto tempo o investimento se paga, fluxo de caixa, etc.&lt;/li&gt;
&lt;li&gt;Dinheiro do negócio.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="segmentação-e-posicionamento-demercado"&gt;Segmentação e posicionamento de mercado&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Kotler → autor sobre marketing;&lt;/li&gt;
&lt;li&gt;Composto de marketing == 4Ps;&lt;/li&gt;
&lt;li&gt;Geralmente os segmentos se dão por classe socioeconômica (classe,
emprego, escolaridade, etc.), faixa etária e localização;&lt;/li&gt;
&lt;li&gt;segmentação por grau de utilização → quantas vezes o cliente vai
frequentar essa loja, ou vai usar seu serviço, etc;&lt;/li&gt;
&lt;li&gt;segmentação psicográfica → entender hábitos, emoções, estilo de
vida, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Pesquisa de marketing ajuda à achar o seu público&lt;/p&gt;</description></item><item><title>Ciências da computação dia 106</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-106-j24f9chh6e27/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-106-j24f9chh6e27/</guid><description>&lt;p&gt;Static em Java,é usado por classes que não podem ser instânciadas, por
exemplo, aquela que possui a função main.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 107</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-107-6g67267i90ah/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-107-6g67267i90ah/</guid><description>&lt;h3 id="casos-deuso"&gt;Casos de Uso&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Conta uma história sobre o que o usuário fará no sistema (sob o
ponto de vista dele);&lt;/li&gt;
&lt;li&gt;É uma história escrita.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="diagrama-de-casos-deuso"&gt;Diagrama de casos de Uso&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Uma maneira mais rápida de listar os casos de uso;&lt;/li&gt;
&lt;li&gt;Deixa mais fácil para o cliente enxergar o produto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="exemplo de\u00a0diagrama" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-107-6g67267i90ah/image_189.png"&gt;&lt;/p&gt;
&lt;h3 id="regras-diagrama-de-casos-deuso"&gt;Regras Diagrama de casos de uso&lt;/h3&gt;
&lt;h4 id="generalização"&gt;Generalização&lt;/h4&gt;
&lt;p&gt;O user1 pode agir como o user2&lt;/p&gt;
&lt;p&gt;&lt;img alt="generalização" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-107-6g67267i90ah/image_190.png"&gt;&lt;/p&gt;
&lt;h4 id="include"&gt;Include&lt;/h4&gt;
&lt;p&gt;Quando o caso A é executado o Caso B também é&lt;/p&gt;</description></item><item><title>Ciências da computação dia 108</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-108-ah63ci7884c8/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-108-ah63ci7884c8/</guid><description>&lt;h3 id="inserir-valores"&gt;Inserir valores&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;INSERT INTO table_name (campo1, campo2, ...) VALUES (valor1, valor2, ...);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para inserir múltiplos valores repita o comando várias vezes.&lt;/p&gt;
&lt;p&gt;Para string e dates use aspas simples e para valores decimais use o
ponto para separar.&lt;/p&gt;
&lt;p&gt;Valores NULL não precisam ser colocados nem como campo nem valor. Ao
contrario dos NOT NULL, que a não ser que possuam um valor DEFAULT,
precisam ser inseridos.&lt;/p&gt;
&lt;p&gt;Você também pode omitir os campos:&lt;/p&gt;</description></item><item><title>Ciências da computação dia 109</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-109-839d59ac2ai4/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-109-839d59ac2ai4/</guid><description>&lt;p&gt;Para entender as ameaças/oportunidades perante seus concorrentes, você
deve entende-los, comprando seus produtos, vendo seu atendimento, vendo
o site, etc.&lt;/p&gt;
&lt;h3 id="5-forças-de-michaelporter"&gt;5 forças de Michael Porter&lt;/h3&gt;
&lt;p&gt;Forças que exercem pressão sobre a empresa (olha só para o micro e o
macro, não para dentro da empresa)&lt;/p&gt;
&lt;h4 id="1concorrentes-diretos"&gt;1 &amp;mdash; Concorrentes diretos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Entenda tudo sobre eles;&lt;/li&gt;
&lt;li&gt;Observe empresas que atuam no mesmo segmento;&lt;/li&gt;
&lt;li&gt;Faça comparações por linha de produto.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2fornecedores"&gt;2 &amp;mdash; Fornecedores&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ver se os fornecedores te ajudam a ser competitivo;&lt;/li&gt;
&lt;li&gt;conseguir um preço melhor ou uma qualidade melhor, dependendo do
segmento.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3clientes"&gt;3 &amp;mdash; Clientes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ver se seus clientes vão para sua empresa ao invés do concorrente.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4produtos-substitutos"&gt;4 &amp;mdash; Produtos substitutos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;produtos, não necessariamente do mesmo segmento que o seu, mas que
podem te substituir;&lt;/li&gt;
&lt;li&gt;mercado muito saturado, geralmente, faz os consumidores irem para
outros produtos.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5estudar-novos-entrantes"&gt;5 &amp;mdash; Estudar novos entrantes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ficar de olho nos novos concorrentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="b2b--business-tobusiness"&gt;B2B → business to business&lt;/h4&gt;
&lt;h4 id="b2c--business-tocostumer"&gt;B2C → business to costumer&lt;/h4&gt;
&lt;h3 id="pesquisa-de-mercado-ou-pesquisa-de-marketing"&gt;Pesquisa de mercado (ou pesquisa de marketing)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;formulários (geralmente) que são usados para entender seus
consumidores/mercado, o que eles precisam, seus hábitos, gostos,
etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="etapas-para-fazer-a-pesquisa-demercado"&gt;Etapas para fazer a pesquisa de mercado&lt;/h3&gt;
&lt;p&gt;1 &amp;mdash; definir os problemas, alternativas e os objetivos da pesquisa;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 11</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-11-4iic112h6dd4/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-11-4iic112h6dd4/</guid><description>&lt;p&gt;muitos sobre softskills e alguns problemas dos profissionais/ do mundo
de hoje. Já na segunda, tivemos um nivelamento em matemática, para
conseguimos entrar no cálculo.&lt;/p&gt;
&lt;h3 id="parte-1"&gt;Parte 1&lt;/h3&gt;
&lt;p&gt;como na primeira parte não tivemos nada de muita teoria, vou apenas
deixar minhas anotações de forma corrida.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Trate sempre dos pequenos detalhes, pois podem acarretar em algo
maior;&lt;/li&gt;
&lt;li&gt;Mantenha uma boa comunicação.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mundo VUCA&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Volatilidade → tudo muda rápido hoje&lt;/li&gt;
&lt;li&gt;Incerteza → não sabemos o que será no futuro(mercado de trabalho,
mercado financeiro, político, etc.)&lt;/li&gt;
&lt;li&gt;Complexidade → muitas conexões entre pessoas e coisas&lt;/li&gt;
&lt;li&gt;Ambiguidade → diversas linhas de pensamento e opinião&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Não existe fracasso exceto em não continuar tentando&amp;rdquo;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 110</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-110-51aacii81ch3/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-110-51aacii81ch3/</guid><description>&lt;h3 id="lista-duplamente-encadeada"&gt;Lista duplamente encadeada&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;dois pointer para o próximo nó e o anterior;&lt;/li&gt;
&lt;li&gt;ajuda na performance e na facilidade em encontrar valores na lista.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 111</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-111-05eh11g068g99/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-111-05eh11g068g99/</guid><description>&lt;h3 id="join"&gt;JOIN&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;usado para fazer junção de duas ou mais tabelas;&lt;/li&gt;
&lt;li&gt;um join não deve retornar mais linhas do que a menor tabela
(geralmente com o equi join) nem da maior tabela;&lt;/li&gt;
&lt;li&gt;obs: é necessário haver chave estrangeiras entre as tabelas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cross-join"&gt;CROSS JOIN&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;multiplicação dos dados das tabelas (produto cartesiano);&lt;/li&gt;
&lt;li&gt;retorna uma combinação dos dados das duas colunas, possuindo
n(linhas da tabela 1) x m (linhas da tabela 2);&lt;/li&gt;
&lt;li&gt;não é utilizado.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SELECT * FROM table JOIN table2;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="inner-join"&gt;INNER JOIN&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;join que une duas tabelas e pega apenas aquilo que tem relação;&lt;/li&gt;
&lt;li&gt;dois tipos são implementados em MySQL: EquiJOIN e Natural JOIN.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O comando ON mostra sempre a relação entre a PK e FK.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 112</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-112-5figf0f43a88/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-112-5figf0f43a88/</guid><description>&lt;h3 id="funções-de-valorsimples"&gt;Funções de valor simples&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Retornam um valor&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="roundnumero-m"&gt;ROUND(numero, [m])&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;arredonda o numero em m casas;&lt;/li&gt;
&lt;li&gt;por padrão ele retira a vírgula;&lt;/li&gt;
&lt;li&gt;arredonda para cima se o valor da próxima casa for &amp;gt;5.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="truncatenumero-m"&gt;TRUNCATE(numero, m)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;trunca o numero em um m casas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="sqrtnumero"&gt;SQRT(numero)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna a raiz quadrada do numero&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="funções-de-grupo-devalores"&gt;Funções de grupo de valores&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;retornam 1 linha apenas&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="avgn"&gt;AVG(n)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna o valor médio da coluna n;&lt;/li&gt;
&lt;li&gt;ignora nulos.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="count--expressão"&gt;COUNT(* | Expressão)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna o total de linhas de uma tabela (no caso do *), ou que uma
expressão retorna (desconsiderando nulos).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="maxn"&gt;MAX(n)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna o valor máximo de uma coluna n;&lt;/li&gt;
&lt;li&gt;em uma coluna n, como nome, o comando retorna o ultimo em ordem
alfabética.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="minn"&gt;MIN(n)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna o valor mínimo de uma coluna n;&lt;/li&gt;
&lt;li&gt;em uma coluna n, como nome, o comando retorna o primeiro em ordem
alfabética.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="sumn"&gt;SUM(n)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;soma todos os valores de uma coluna n.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="group-by"&gt;GROUP BY&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Quando há a necessidade de selecionar outros campos também, você usa
para juntar os valores;&lt;/li&gt;
&lt;li&gt;Claramente isso não pode ser usado em todos os casos, mas em casos
que os dados estão corretos, e a coluna seleciona tem alguma relação
isso pode ser usado.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SELECT id, COUNT(quantidade)
FROM compra
GROUP BY id;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="funções-que-devolvem-caracteres"&gt;Funções que devolvem caracteres&lt;/h3&gt;
&lt;h4 id="concattexto1-texto2"&gt;CONCAT(texto1, texto2)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna texto1 concatenado ao texto2.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="lowertexto"&gt;LOWER(texto)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna o texto todo em minúsculo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="uppertexto"&gt;UPPER(texto)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna o texto todo em maiúsculo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="replacetexto-para_ser_substituído-o_que_vai_substituir"&gt;REPLACE(texto, para_ser_substituído, o_que_vai_substituir)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna o texto com o &amp;ldquo;para_ser_substituído&amp;rdquo; substituído pelo
&amp;ldquo;o_que_vai_substituir&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="substrtexto-mn"&gt;SUBSTR(texto, m, [n])&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna uma substring do texto comando em m e terminando em n;&lt;/li&gt;
&lt;li&gt;lembrando que m começa em 1 e não 0;&lt;/li&gt;
&lt;li&gt;por padrão n é o fim do texto.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="funções-que-retornamnúmeros"&gt;Funções que retornam números&lt;/h3&gt;
&lt;h4 id="instrtexto1-texto2"&gt;INSTR(texto1, texto2)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna a primeira ocorrência do texto2 no texto1.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="lengthtexto"&gt;LENGTH(texto)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna o tamanho do texto.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="funções-dedata"&gt;Funções de DATA&lt;/h3&gt;
&lt;h4 id="now"&gt;NOW()&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna a data do sistema&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="last_daydata"&gt;LAST_DAY(data)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna o ultimo dia do mês da data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="daydata"&gt;DAY(data)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;pega o dia da data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="yeardata"&gt;YEAR(data)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;pega o ano da data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="monthdata"&gt;MONTH(data)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;pega o mês da data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="datediffdata1-data2"&gt;DATEDIFF(data1, data2)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;pega a diferença entre data1 e data2.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="condições"&gt;Condições&lt;/h3&gt;
&lt;h4 id="case"&gt;Case&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;maneira de retornar valores específicos em buscas.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SELECT CASE idade
WHEN 7 THEN &amp;#39;Jovem&amp;#39;
WHEN 14 THEN &amp;#39;Adolescente&amp;#39;
ELSE &amp;#39;Outro&amp;#39;
END as descricao;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 113</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-113-9c8i4h2b1h0i/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-113-9c8i4h2b1h0i/</guid><description>&lt;blockquote&gt;
&lt;p&gt;É melhor a empresa conseguir o planejado do que a mais.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Subnichar, pode ser uma boa ideia, já que deixa mais fácil o processo de
entender o público.&lt;/p&gt;
&lt;h3 id="método-de-pesquisa-demercado"&gt;Método de pesquisa de mercado&lt;/h3&gt;
&lt;p&gt;1 &amp;mdash; Segmentar/se posicionar no mercado&lt;/p&gt;
&lt;p&gt;2 &amp;mdash; Conhecer o ambiente escolhido&lt;/p&gt;
&lt;p&gt;3 &amp;mdash; entender o público&lt;/p&gt;
&lt;h3 id="motivação"&gt;Motivação&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;é um motivo que leva à uma ação;&lt;/li&gt;
&lt;li&gt;Ninguém consegue motivar ninguém;&lt;/li&gt;
&lt;li&gt;O motivo está dentro de cada pessoa;&lt;/li&gt;
&lt;li&gt;O que uma outra pessoa pode fazer, é te dar estímulos que fazem você
repensar os seus motivos;&lt;/li&gt;
&lt;li&gt;Quanto mais você conhece o motivo de alguém, mais fácil é gerar
estímulos para ela;&lt;/li&gt;
&lt;li&gt;Decisão de compra é racional, mas o ato(através de estímulos) é
irracional.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 114</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-114-gg2hed4d01h4/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-114-gg2hed4d01h4/</guid><description>&lt;h3 id="herança"&gt;Herança&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Maneira de derivar classes para novas classes;&lt;/li&gt;
&lt;li&gt;Nova classe herda os métodos e estruturas da classe que foi
derivada;&lt;/li&gt;
&lt;li&gt;A nova classe pode adicionar mais métodos, estruturas, assim como
redefinir estruturas e métodos herdados;&lt;/li&gt;
&lt;li&gt;Em um diagrama, a classe filho sempre aponta para o pai;&lt;/li&gt;
&lt;li&gt;Use valores protected apenas em último caso;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="vantages"&gt;Vantages&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;reutilizar classes;&lt;/li&gt;
&lt;li&gt;compartilhamento de recursos entre classes.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;class Base{}
class Child extends Base{
Child(arguments...){
super(arguments...); //aqui você passa os argumentos para o construtor da classe Base, se não há nenhum argumento, você pode omitir
}
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;obs: sobrecarga também pode acontecer aqui, contudo se você deixar com a
mesma assinatura (mesmo nome e argumentos em uma função) essa função
será reescrita(redefinição de métodos).&lt;/p&gt;</description></item><item><title>Ciências da computação dia 115</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-115-275e909gi7f4/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-115-275e909gi7f4/</guid><description>&lt;h3 id="passos-para-criar-um-caso-deuso"&gt;Passos para criar um caso de uso&lt;/h3&gt;
&lt;p&gt;1 &amp;mdash; Identificar as interações (ações) que serão executadas dentro do
sistema;&lt;/p&gt;
&lt;p&gt;2 &amp;mdash; Definir os atores (primários e secundários);&lt;/p&gt;
&lt;p&gt;3 &amp;mdash; Criar o caso de uso, com cenários de sucesso e falha, além das
interações (fazer como uma história escrita).&lt;/p&gt;
&lt;p&gt;obs: não é obrigatório ter ator secundário, mas 99% das vezes há.&lt;/p&gt;
&lt;h3 id="notação-de-caso-deuso"&gt;Notação de caso de uso&lt;/h3&gt;
&lt;p&gt;Resumido → forma simples, descrevendo a história;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 116</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-116-bhe549daib5f/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-116-bhe549daib5f/</guid><description>&lt;h3 id="listas-restritas"&gt;Listas restritas&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;listas que possuem restrições quanto a suas operações (inserção,
remoção e acesso aos dados).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="pilha"&gt;Pilha&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;é uma lista restrita;&lt;/li&gt;
&lt;li&gt;LIFO(last in first out);&lt;/li&gt;
&lt;li&gt;operações: push(insere no topo) e pop(remove do topo);&lt;/li&gt;
&lt;li&gt;poder ser criado usando linked lists.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="pilha-deexecução"&gt;Pilha de execução&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Um programa empilha as funções que devem ser executadas primeiro,
para saber sua ordem lógica.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;main(){
f1();
}
f1(){
f2();
}
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Pilha de execução
1. f2()
2. f1()
3. main()
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="notas-dec"&gt;Notas de C&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;para deletar um elemento de um array:&lt;/p&gt;</description></item><item><title>Ciências da computação dia 117</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-117-ce34i9bg63g4/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-117-ce34i9bg63g4/</guid><description>&lt;p&gt;Em um diagrama, a classe herdada aponta para o pai.&lt;/p&gt;
&lt;p&gt;&lt;img alt="classe herdada de\u00a0Pessoa" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-117-ce34i9bg63g4/image_193.png"&gt;&lt;/p&gt;
&lt;h3 id="construtor-padrão"&gt;Construtor padrão&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;construtor que não recebe parâmetros;&lt;/li&gt;
&lt;li&gt;não precisa ser declarado ou chamado (usando o super).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ao redefinir um método, caso você queira chamar a versão original do
método (a que está no pai), faça:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;super.metodo(...arguments...);
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="notas-java"&gt;Notas Java&lt;/h3&gt;
&lt;p&gt;ao dividir dois int, se você não forçar com que um seja float, o
resultado será truncado.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 118</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-118-865ibjabhg0f/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-118-865ibjabhg0f/</guid><description>&lt;h3 id="estrutura-caso-de-uso-estruturado"&gt;Estrutura caso de uso estruturado&lt;/h3&gt;
&lt;p&gt;1 &amp;mdash; Nome do caso de uso(começa com um verbo no infinitivo);&lt;/p&gt;
&lt;p&gt;2 &amp;mdash; Atores;&lt;/p&gt;
&lt;p&gt;3 &amp;mdash; Caso de sucesso (fluxo principal);&lt;/p&gt;
&lt;p&gt;4 &amp;mdash; Extensões (exceções).&lt;/p&gt;
&lt;p&gt;pré-condições e pós-condições são opcionais.&lt;/p&gt;
&lt;h3 id="extensões"&gt;Extensões&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ao usar &amp;lsquo;*&amp;rsquo; , isso significa que essa exceção funciona para
qualquer um dos passos do fluxo principal, podendo haver mais de um,
para isso identifique como: *.a, *.b, *.c, etc.;&lt;/li&gt;
&lt;li&gt;Uma extensão pode possuir extensões dentro.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 119</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-119-5fdaadbed9je/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-119-5fdaadbed9je/</guid><description>&lt;h3 id="índice"&gt;Índice&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;estrutura de dados que permite queries mais velozes;&lt;/li&gt;
&lt;li&gt;não é necessário criar, mas para aumentar a perfomance, é
recomendado;&lt;/li&gt;
&lt;li&gt;é criado automaticamente quando você seta alguma coluna como PK ou
UNIQUE, pois devido ao seu formato, ele garante que os dados não
sejam repetidos;&lt;/li&gt;
&lt;li&gt;Deixa mais rápido as pesquisas(queries), pois utilizam uma estrutura
que já deixa os dados já organizados e linkados, como uma B-tree.
Com isso, caso você não possua indices, ao fazer um select o mysql
fará um FULL TABLE SCAN, ou seja, percorrerá todos os dados pegando
aqueles que foram selecionados e filtrados;&lt;/li&gt;
&lt;li&gt;Não é necessário selecionar o índice manualmente, ao fazer um select
o mysql vai automaticamente usar o índice, caso ele veja que será
mais rápido;&lt;/li&gt;
&lt;li&gt;Você pode usar com cláusulas Where;&lt;/li&gt;
&lt;li&gt;Ao fazer um update, insert ou delete na table, o indice será
atualizado também.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;CREATE [UNIQUE] INDEX name ON table(column);
#O unique é usado geralmente para PK e UNIQUE columns, sendo assim, geralmente não é usado
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="view"&gt;View&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Armazena uma query;&lt;/li&gt;
&lt;li&gt;Dados são gerados dinamicamente quando você faz uma query usando a
view;&lt;/li&gt;
&lt;li&gt;Usado quando você possui uma query muito complexa que você precisa
executar muitas vezes em diferentes momentos;&lt;/li&gt;
&lt;li&gt;Também pode ser usado como uma maneira de limitar o acesso a certas
tabelas (em conjunto com as regras de acesso);&lt;/li&gt;
&lt;li&gt;Usado geralmente para select, mas pode ser usado para insert, update
e delete também, basta tomar cuidados com muitas tables e funções de
grupo;&lt;/li&gt;
&lt;li&gt;Representa uma espécie de visão/ponto de vista dos dados;&lt;/li&gt;
&lt;li&gt;Pode ser usado em conjunto com outras queries/cláusulas.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;CREATE [OR REPLACE] VIEW view_name as &amp;lt;query&amp;gt;;
#para selecionar os dados da view
SELECT * FROM view_name;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="cláusulas-where"&gt;Cláusulas WHERE&lt;/h3&gt;
&lt;h4 id="between"&gt;BETWEEN&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;retorna os dados que estão entre um intervalo;&lt;/li&gt;
&lt;li&gt;o valor menor precisa sempre vir antes.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SELECT id FROM users WHERE id BETWEEN 10 AND 100; #com numeros
SELECT insert_date FROM users WHERE insert_date BETWEEN &amp;#39;2005-01-04&amp;#39; AND &amp;#39;2022-01-03&amp;#39;; #com datas
SELECT name FROM users WHERE name BETWEEN &amp;#39;Ana&amp;#39; AND &amp;#39;Joana&amp;#39;; #com strings
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="like"&gt;LIKE&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;busca por padrões em strings;&lt;/li&gt;
&lt;li&gt;possui dois caracteres de substituição (coringas): % substitui
nenhum ou vários caracteres e _ substitui exatamente 1 caractere.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SELECT name FROM users WHERE name LIKE &amp;#39;%Ana%&amp;#39;; #pega nomes que possuem Ana
SELECT name FROM users WHERE name LIKE &amp;#39;_ia&amp;#39;; #pega nomes que possuem 3 letras e a primeira pode ser qualquer uma e as duas ultimas sao ia
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="in"&gt;IN&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Filtra dados que estão em uma lista de valores.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SELECT id FROM users WHERE id IN (1, 2, 3, 5);
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="is-null"&gt;IS NULL&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;pega os dados que são null;&lt;/li&gt;
&lt;li&gt;lembre-se que NULL é diferente de &amp;rsquo; &amp;rsquo; (vazio).&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SELECT title FROM movies WHERE gender IS NULL;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 12</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-12-ba4eb6c0d27a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-12-ba4eb6c0d27a/</guid><description>&lt;p&gt;sobre algoritmos em si, então irei colocar aqui algumas anotações
simples que fiz.&lt;/p&gt;
&lt;h3 id="porcentagens"&gt;Porcentagens&lt;/h3&gt;
&lt;p&gt;se você quer saber um preço já com o desconto faça:&lt;/p&gt;
&lt;p&gt;preço * (1 &amp;mdash; porcentagem)&lt;/p&gt;
&lt;p&gt;ou seja se você quer ver quando vai dar 100 reais com 10% de desconto
você fará:&lt;/p&gt;
&lt;p&gt;100 * (1&amp;ndash;0.1)&lt;/p&gt;
&lt;p&gt;100 * 0.9&lt;/p&gt;
&lt;p&gt;90&lt;/p&gt;
&lt;p&gt;agora caso você queira saber o preço do desconto faça:&lt;/p&gt;
&lt;p&gt;preço * porcentagem&lt;/p&gt;
&lt;p&gt;então o mesmo exemplo a cima&lt;/p&gt;</description></item><item><title>Ciências da computação dia 120</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-120-764f3b6b7e79/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-120-764f3b6b7e79/</guid><description>&lt;h3 id="filas"&gt;Filas&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;É uma lista restrita;&lt;/li&gt;
&lt;li&gt;FIFO(first in first out);&lt;/li&gt;
&lt;li&gt;Operações: Insere no fim e remove do começo;&lt;/li&gt;
&lt;li&gt;Segue a mesma ideia da pilha;&lt;/li&gt;
&lt;li&gt;Para atualizar a posição do primeiro da lista, ao invés de você
ficar passando todos os valores para frente, você pode usar uma
formula como essa ((fim + 1)%tamanho) para saber qual a posição do
próximo elemento, sem a necessidade de usar ifs.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 121</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-121-fh17igd1717g/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-121-fh17igd1717g/</guid><description>&lt;h3 id="marketing"&gt;Marketing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;direciona a empresa para: como fazer o produto, para quem fazer o
produto, como apresentar o produto, etc.;&lt;/li&gt;
&lt;li&gt;Marketing ajudar a fazer mais vendas;&lt;/li&gt;
&lt;li&gt;a ferramenta dos 4ps ajuda a entender melhor os clientes e fazer uma
venda mais assertiva.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mix-de-marketing"&gt;Mix de marketing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;conjunto de ferramentas usadas para uma empresa conseguir uma
resposta de deseja no mercado alvo;&lt;/li&gt;
&lt;li&gt;4ps.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4ps"&gt;4ps&lt;/h3&gt;
&lt;h4 id="produto"&gt;produto&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;bens e serviços que a empresa oferece;&lt;/li&gt;
&lt;li&gt;pontos: variedade, design, características, embalagem, serviço, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="preço"&gt;preço&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;quantidade de dinheiro que os clientes vão ter que pagar;&lt;/li&gt;
&lt;li&gt;pontos: lista de peças, desconto, subsídios, prazo de pagamento,
etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="praça"&gt;praça&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;atividades que fazer os serviço/produto ficar disponível;&lt;/li&gt;
&lt;li&gt;pontos: canais, locais, estoque, transporte, logística, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="promoção"&gt;promoção&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;atividades que comunica as pessoas sobre o produto/serviço;&lt;/li&gt;
&lt;li&gt;pontos: propaganda, vendas pessoais, relações públicas, etc.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 122</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-122-2942f47igi859/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-122-2942f47igi859/</guid><description>&lt;h3 id="casos-deuso"&gt;Casos de uso&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;nunca pense na UI ao fazer os casos de uso, pense de uma forma mais
genérica ao invés de dizer: &amp;ldquo;clica no botão&amp;rdquo;, &amp;ldquo;vai na aba x&amp;rdquo;, etc.;&lt;/li&gt;
&lt;li&gt;pense em o que é feito, ao invés de como é feito;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="caso-de-uso-caixapreta"&gt;Caso de uso caixa preta&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;não descreve o funcionamento do sistema;&lt;/li&gt;
&lt;li&gt;diz apenas as responsabilidades do sistema (como cadastrar usuário,
gerenciar estoque, etc.).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="como-identificar-casos-deuso"&gt;Como identificar casos de uso&lt;/h3&gt;
&lt;p&gt;1 &amp;mdash; escolher fronteiras do sistema;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 123</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-123-30b65786def8/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-123-30b65786def8/</guid><description>&lt;h3 id="interface"&gt;Interface&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Serve como um contrato;&lt;/li&gt;
&lt;li&gt;Define o que as classes que as estendem devem implementar,
obrigatoriamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="list"&gt;List&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;interface que define como implementar a List;&lt;/li&gt;
&lt;li&gt;subinterface do java collections;&lt;/li&gt;
&lt;li&gt;implementações: List, ArrayList, LinkedList, Vector, etc.;&lt;/li&gt;
&lt;li&gt;Não é necessário setar o tamanho ao instanciar;&lt;/li&gt;
&lt;li&gt;Diferentes implementações podem diferir nos algoritmos por trás;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;import java.util.ArrayList;
//....
ArrayList&amp;lt;Integer&amp;gt; numeros = new ArrayList&amp;lt;Integer&amp;gt;();
//Integer é uma classe java, definida para valores inteiros
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 124</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-124-aj5j7fiicfh3a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-124-aj5j7fiicfh3a/</guid><description>&lt;h3 id="include"&gt;Include&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-124-aj5j7fiicfh3a/image_195.png"&gt;&lt;/p&gt;
&lt;p&gt;Ao executar o caso A o caso B, necessariamente, é executado.&lt;/p&gt;
&lt;h3 id="extend"&gt;Extend&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-124-aj5j7fiicfh3a/image_196.png"&gt;&lt;/p&gt;
&lt;p&gt;Ao executar o caso A você pode, ou não, executar o caso B&lt;/p&gt;
&lt;h3 id="generalização"&gt;Generalização&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-124-aj5j7fiicfh3a/image_197.png"&gt;&lt;/p&gt;
&lt;p&gt;Vendedor e secretaria fazem tudo que um funcionário faz&lt;/p&gt;
&lt;h3 id="fronteiras"&gt;Fronteiras&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-124-aj5j7fiicfh3a/image_198.png"&gt;&lt;/p&gt;
&lt;p&gt;o retângulo define as fronteiras do sistema (só o que o sistema faz).&lt;/p&gt;
&lt;h3 id="comunicação"&gt;Comunicação&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-124-aj5j7fiicfh3a/image_199.png"&gt;&lt;/p&gt;
&lt;p&gt;define a comunicação entre as partes.&lt;/p&gt;
&lt;h3 id="atoroutra-notação"&gt;Ator(outra notação)&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-124-aj5j7fiicfh3a/image_200.png"&gt;&lt;/p&gt;
&lt;p&gt;Nota: Um bom diagrama mostra as fronteiras e como o sistema é usado.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 125</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-125-j2fdjb2d07d7/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-125-j2fdjb2d07d7/</guid><description>&lt;h3 id="árvore"&gt;Árvore&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Usado para indexação (algoritmos de busca);&lt;/li&gt;
&lt;li&gt;Base T: T define o número máximo de ramificações que um nó pode ter;&lt;/li&gt;
&lt;li&gt;árvore base 0: árvore vazia;&lt;/li&gt;
&lt;li&gt;Raiz: primeiro nó;&lt;/li&gt;
&lt;li&gt;Descendentes: nós a baixo de outro nó;&lt;/li&gt;
&lt;li&gt;Descendentes diretos: nós que estão ligados logo a baixo de um nó;&lt;/li&gt;
&lt;li&gt;Altura: Maior nível da árvore(quanto maior, mais ineficiente);&lt;/li&gt;
&lt;li&gt;Nível: Distância entre a raiz e o nó (número de ligações);&lt;/li&gt;
&lt;li&gt;Arestas: linhas que interligam os nós;&lt;/li&gt;
&lt;li&gt;Folha: Nó sem filhos (descendentes);&lt;/li&gt;
&lt;li&gt;Grau do nó: número de descendentes diretos;&lt;/li&gt;
&lt;li&gt;Grau da árvore: maior grau do nó;&lt;/li&gt;
&lt;li&gt;sub-ávore: nós a partir de um nó.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="árvore-binária"&gt;Árvore binária&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;base = 2;&lt;/li&gt;
&lt;li&gt;Árvore estritamente binária: cada nó(não folha) há exatamente dois
filhos;&lt;/li&gt;
&lt;li&gt;Árvore completa: quando todos os nós dos níveis estão preenchidos
(ela sempre é estritamente binária);&lt;/li&gt;
&lt;li&gt;Árvore perfeitamente balanceada: Quando a árvore possui a menor
altura possível para a quantidade total de nós, e são sempre
preenchidos começando da esquerda ( a diferença entre a altura do nó
da esquerda para o da direita é 1, sendo assim a quantidade de nós
na esquerda da árvore é N/2 e da direita é N &amp;mdash; (N/2) &amp;mdash; 1 nós,
onde N é o total de nós);&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-125-j2fdjb2d07d7/image_201.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 126</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-126-gd3aaee92id5a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-126-gd3aaee92id5a/</guid><description>&lt;h3 id="1-ideia"&gt;1. Ideia&lt;/h3&gt;
&lt;p&gt;A ideia pode ser um produto ou um serviço que atende à uma necessidade
ou aproveita alguma oportunidade do momento.&lt;/p&gt;
&lt;p&gt;Para entender melhor essa ideia, como ela deve ser moldada é preciso
sondar o mercado, vendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;preços (matéria prima, concorrentes, etc.)&lt;/li&gt;
&lt;li&gt;clientes (quem são)&lt;/li&gt;
&lt;li&gt;quantidade de vendas(quanto eu espero q venda e porque)&lt;/li&gt;
&lt;li&gt;gastos (o que é preciso gastar para fazer ou manter esse produto no
mercado)&lt;/li&gt;
&lt;li&gt;recursos (o que eu preciso pra fazer)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-formalização"&gt;2. Formalização&lt;/h3&gt;
&lt;p&gt;Na formalização, a ideia se transforma em um estudo mais concreto, com
documentação e tudo.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 127</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-127-b2hfg0ha270b/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-127-b2hfg0ha270b/</guid><description>&lt;h3 id="arraylist"&gt;ArrayList&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Não precisa definir um tipo, você pode usar ele para diferentes
tipos no mesmo objeto&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="switch"&gt;Switch&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;o default não precisa de break, uma vez que não há mais casos a
baixo dele&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="arquivos"&gt;Arquivos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;o java possui alguns objetos para a leitura e escrita de arquivos:
BufferedReader, BufferedWriter, FileReader, FileWriter&lt;/li&gt;
&lt;li&gt;as funções de leitura e escrita podem levantar um erro do tipo
IOException&lt;/li&gt;
&lt;li&gt;todas essas coisas podem ser importadas de java.io&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;BufferedReader reader = new BufferedReder(new FileReader(&amp;#34;file.txt&amp;#34;));
BufferedWriter writer = new BufferedWriter(new FileWriter(&amp;#34;file.txt&amp;#34;));
#lembre-se de usar um bloco try catch para não travar o programa, caso haja
# erros na execução
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="tratamento-deexceção"&gt;Tratamento de exceção&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;trata erros durante a execução sem travar o programa&lt;/li&gt;
&lt;li&gt;exemplos: dividir por zero, índice fora dos limites, problemas de
conexão, falta de memória, valor numérico fora dos limites, etc.&lt;/li&gt;
&lt;li&gt;estrutura (try-catch-finally)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;try{
# aqui, executa o código q pode levantar uma exceção
}catch(Exception e){
#aqui você pega o erro e pode trata-lo, como apresentar uma messagem
#fazer outra ação, etc.
#obs: é recomendado usar o tipo do erro ao invés do Exception
# o Exception, captura qualquer erro
}finally{
# aqui são executadas quaisquer instruções antes de terminar o bloco try-catch
# mesmo que não hajam erros, o finally é executado
}
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;Alguns tipos de erros: ArithmeticException,
ArrayIndexOutOfBoundException, InputMismatchException,
NumberFormatException, NullPointException (esse geralmente aparece
quando você tentar acessar um objeto que não foi instanciado)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 127</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-127-jjd2fbc67709/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-127-jjd2fbc67709/</guid><description>&lt;h3 id="modelagem"&gt;Modelagem&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;complementar ao levamento de requisitos;&lt;/li&gt;
&lt;li&gt;maneiras de representar a solução;&lt;/li&gt;
&lt;li&gt;casos de uso, diagrama de atividades, diagrama de classes, diagrama
de sequência, diagrama de estados, diagrama Entidade-relacionamento&lt;/li&gt;
&lt;li&gt;usado para facilitar a comunicação entre desenvolvedor e engenheiro
de software;&lt;/li&gt;
&lt;li&gt;se preocupa com: instruções, interfaces, objetos, restrições,
funções, comportamentos&lt;/li&gt;
&lt;li&gt;deve: descrever o que o cliente quer, dar base para a criação do
projeto, definir os requisitos que podem ser validados depois de
pronto (todo requisito precisa de um ID)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="regras-da-modelagem"&gt;Regras da modelagem&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;alta abstração, a principio&lt;/li&gt;
&lt;li&gt;contribuir para o entendimento&lt;/li&gt;
&lt;li&gt;postergar dados de infra até a parte do projeto&lt;/li&gt;
&lt;li&gt;minimizar acoplamento&lt;/li&gt;
&lt;li&gt;agregar valor aos stakeholders&lt;/li&gt;
&lt;li&gt;deve ser simples (deve ser feito apenas o necessário)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="abordagens"&gt;Abordagens&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;analise estruturada (mais antigo)&lt;/li&gt;
&lt;li&gt;analise orientada a objetos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;obs: você pode unir as abordagens&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 128</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-128-0897ig3eb1fg/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-128-0897ig3eb1fg/</guid><description>&lt;h3 id="diagrama-de-atividades"&gt;Diagrama de atividades&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;complementar ao caso de uso&lt;/li&gt;
&lt;li&gt;não precisa ser usado em todos os casos de uso&lt;/li&gt;
&lt;li&gt;usado geralmente em casos de uso muito complexos&lt;/li&gt;
&lt;li&gt;representação similar a um fluxograma&lt;/li&gt;
&lt;li&gt;representa um fluxo de interação de um cenário&lt;/li&gt;
&lt;li&gt;não identifica os atores, mas através de raias (divisões verticais,
ou colunas) podemos criar repartições que separação as ações por:
tipo, ator, área, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ponto-de-divisãointercalação"&gt;Ponto de divisão/intercalação&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-128-0897ig3eb1fg/image_204.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;o ponto de divisão é usado para criar fluxos alternativos (se
assemelha a um comando if).&lt;/li&gt;
&lt;li&gt;pode também ser usado com o intercalação, ou seja, juntar dois
fluxos que foram separados antes pelo if&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ação"&gt;Ação&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-128-0897ig3eb1fg/image_205.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 128</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-128-abda4j6f9787/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-128-abda4j6f9787/</guid><description>&lt;h3 id="percursos-emárvores"&gt;Percursos em árvores&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;maneiras que você pode percorrer todos os nós de uma árvore&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="pré-order"&gt;Pré order&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;acessa primeiro o root, depois os nós da esquerda e por fim os da
direita.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="in-order"&gt;In Order&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;acessa primeiro os nós da esquerda, depois o root e por fim os da
direita.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="pós-order"&gt;Pós Order&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;acessa os da esquerda, depois os da direita e por último o root.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 129</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-129-i8e8i5a3g3g7/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-129-i8e8i5a3g3g7/</guid><description>&lt;h3 id="subqueries"&gt;Subqueries&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;comando select embutindo em outro select&lt;/li&gt;
&lt;li&gt;retorna um conjunto de linhas para a query principal&lt;/li&gt;
&lt;li&gt;pode ser usado: no where, como uma expressão (coluna), no lugar de
uma tabela, no comando IN e no comando EXISTS&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#no IN
SELECT numero
FROM nfe
WHERE numero IN (
SELECT numero
FROM item_nfe
WHERE quantidade &amp;gt;= 10
);
#como tabela (caso raro de acontecer)
SELECT cidade.idcidade, cidade.nome, TB.qtde_bairro
FROM cidade
JOIN (
SELECT idcidade, COUNT(*) as qtde_bairro
FROM bairro
GROUP BY idcidade
) as TB
ON (cidade.idcidade = TB.idcidade);
#como uma coluna(expressão)
SELECT descricao, valor_unitario (
SELECT AVG(valor_unitario)
FROm produto
) as media
FROM produto;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="subquery-correlata"&gt;Subquery correlata&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;subquery que faz referência a colunas da query principal&lt;/li&gt;
&lt;li&gt;executa 1 vez para cada linha da query principal (nested loop join)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#como coluna
SELECT numero, data, (
SELECT SUM(quantidade * valor_unitario)
FROM item_nfe
JOIN produto
ON (item_nfe.idproduto = produto.idproduto)
WHERE item_nfe.numero = nfe.numero
) as total
FROM nfe;
#no EXISTS
SELECT *
FROM bairro
WHERE EXISTS(
SELECT 1
FROM ceps
WHERE ceps.idbairro = bairro.idbairro
AND auxiliar IS NOT NULL
);
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="exists"&gt;EXISTS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;vê se a relação devolve alguma linha&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="select-1"&gt;SELECT 1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;seta o valor 1 para cada linha retornada&lt;/li&gt;
&lt;li&gt;usado quando você não se importa com os dados em si&lt;/li&gt;
&lt;li&gt;você pode trocar o 1 por qualquer outra coisa&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="case"&gt;CASE&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;retorna dados para uma coluna&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="having"&gt;Having&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;filtra valores das resultantes das funções de grupo (já que o where
não funciona)&lt;/li&gt;
&lt;li&gt;espécie de where para funções de grupo&lt;/li&gt;
&lt;li&gt;aparece depois do GROUP BY&lt;/li&gt;
&lt;li&gt;pode ser usado com os operadores do WHERE também, como o AND, OR,
NOT, IS NOT NULL, BETWEEN, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SELECT numero, SUM(quantidade) as qtde
FROM item_nfe
GROUP BY numero
HAVING qtde &amp;gt; 10;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 13</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-13-972d908gei8f/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-13-972d908gei8f/</guid><description>&lt;p&gt;subtração e a base hexadecimal&lt;/p&gt;
&lt;h3 id="hexadecimal"&gt;Hexadecimal&lt;/h3&gt;
&lt;p&gt;na base hexadecimal temos 16 dígitos → 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,
B, C, D, E, F&lt;/p&gt;
&lt;p&gt;sendo&lt;/p&gt;
&lt;p&gt;A → 10&lt;/p&gt;
&lt;p&gt;B → 11&lt;/p&gt;
&lt;p&gt;C → 12&lt;/p&gt;
&lt;p&gt;D → 13&lt;/p&gt;
&lt;p&gt;E → 14&lt;/p&gt;
&lt;p&gt;F → 15&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Soma e conversão para decimal&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;para a soma com hexa fazemos:&lt;/p&gt;
&lt;p&gt;exemplo:&lt;/p&gt;
&lt;p&gt;5C + 4D&lt;/p&gt;
&lt;p&gt;C + D → 12 + 13 → 25&lt;/p&gt;</description></item><item><title>Ciências da computação dia 130</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-130-a3ad13ce757f/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-130-a3ad13ce757f/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-130-a3ad13ce757f/image_217.png"&gt;&lt;/p&gt;
&lt;p&gt;relações:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;* * -&amp;gt; indica n:m&lt;/li&gt;
&lt;li&gt;1 * -&amp;gt; indica 1:n&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;é comum que os atores se tornem classes&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-130-a3ad13ce757f/image_218.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 131</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-131-jej4e72252ah/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-131-jej4e72252ah/</guid><description>&lt;h3 id="árvore-de-buscabinária"&gt;Árvore de busca binária&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;usado para buscas rápidas&lt;/li&gt;
&lt;li&gt;lado esquerdo é sempre menor que a raiz e o direito sempre maior&lt;/li&gt;
&lt;li&gt;Ao usar o In-Order você terá uma lista em ordem crescente dos
valores&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="árvore-degenerada"&gt;Árvore degenerada&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;árvore que cria um zigue-zague entre os nós&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 133</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-133-1hdc73e6cidf/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-133-1hdc73e6cidf/</guid><description>&lt;h3 id="curdate"&gt;curdate()&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;retorna a data atual sem hora&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="delete-table"&gt;DELETE table&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;se em uma query DELETE há mais de uma tabela (usando um JOIN, por
exemplo) você deve especificar qual tabela você quer deletar (caso
seja apenas uma tabela para ser deletada) fazendo:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;DELETE table FROM table ....
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 134</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-134-7i9ig5i90759/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-134-7i9ig5i90759/</guid><description>&lt;h3 id="classe-concreta"&gt;Classe concreta&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;classe comum&lt;/li&gt;
&lt;li&gt;classe que pode ser instanciada como um objeto&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="classe-abstrata"&gt;Classe abstrata&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;serve de modelo para uma classe concreta&lt;/li&gt;
&lt;li&gt;devem sempre ser herdadas&lt;/li&gt;
&lt;li&gt;podem conter métodos abstratos e/ou métodos concretos&lt;/li&gt;
&lt;li&gt;usa a palavra chave &lt;em&gt;&lt;strong&gt;abstract&lt;/strong&gt;&lt;/em&gt; para definir&lt;/li&gt;
&lt;li&gt;se declarar um construtor você deve chama-lo no filho com o super()&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="método-concreto"&gt;Método concreto&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;método que possui lógica dentro&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="método-abstrato"&gt;Método abstrato&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;método que só pode ser setado em classes abstratas&lt;/li&gt;
&lt;li&gt;apenas os headers são declarados&lt;/li&gt;
&lt;li&gt;devem sempre ser implementados nos filhos&lt;/li&gt;
&lt;li&gt;não requerem a definição dos parâmetros&lt;/li&gt;
&lt;li&gt;utilizam a palavra chave &lt;em&gt;&lt;strong&gt;abstract&lt;/strong&gt;&lt;/em&gt; também&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="constantes"&gt;Constantes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;para declarar constantes basta setar as variáveis como &lt;em&gt;&lt;strong&gt;static
final&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="interface"&gt;Interface&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Especificação explicitas de um conjunto de métodos e atributos que
devem ser implementados na classe que à implementa&lt;/li&gt;
&lt;li&gt;todos os métodos são abstratos&lt;/li&gt;
&lt;li&gt;não são permitidos métodos concretos&lt;/li&gt;
&lt;li&gt;é permitido que uma herança múltipla com intrfaces(classes não)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;interface C extends A,B {...
class C implements A,B
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;ao setar os métodos você não coloca o &lt;em&gt;&lt;strong&gt;abstract&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;aqui você declara apenas os headers dos métodos&lt;/li&gt;
&lt;li&gt;para os parâmetros você precisa coloca os nomes e os tipos&lt;/li&gt;
&lt;li&gt;para os atributos você pode setar valores, mas eles serão constantes&lt;/li&gt;
&lt;li&gt;para uma classe usar uma interface, ao invés do extends, você usa o
implements&lt;/li&gt;
&lt;li&gt;uma interface pode extender outra&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="notas"&gt;Notas&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;As classes podem usar o extends e o implements ao mesmo tempo&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 134</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-134-992067360fi5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-134-992067360fi5/</guid><description>&lt;h3 id="design-thinking"&gt;Design Thinking&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Usado para desenvolver novos produtos&lt;/li&gt;
&lt;li&gt;Pessoas interagem para criar coisas e resolver problemas&lt;/li&gt;
&lt;li&gt;Metodologia para estimular pessoas a pensarem&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Imersão &amp;mdash; Coloca as pessoas para entenderem o que será feito&lt;/li&gt;
&lt;li&gt;Ideação &amp;mdash; Pessoas jogam as ideias (Brainstorming pode ser usado)&lt;/li&gt;
&lt;li&gt;Prototipação &amp;mdash; Válida as melhores ideias&lt;/li&gt;
&lt;li&gt;Desenvolvimento &amp;mdash; Implementa as ideias&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="canvas"&gt;Canvas&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Metodologia para apresentar o plano de negócios de forma objetiva&lt;/li&gt;
&lt;li&gt;Olha os principais pontos do plano&lt;/li&gt;
&lt;li&gt;Proposta de valor é um dos principais pontos &amp;mdash; aqui você indica o
que seu produto agrega para o público&lt;/li&gt;
&lt;li&gt;Isso se transforma em uma espécie de tabela&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://digital.sebraers.com.br/blog/estrategia/business-model-canvas-como-construir-seu-modelo-de-negocio/\"&gt;SEBRAE&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-134-992067360fi5/image_219.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 136</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-136-i14hc89a74da9/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-136-i14hc89a74da9/</guid><description>&lt;ul&gt;
&lt;li&gt;Java Permite você usar o extends e o implements ao mesmo tempo;&lt;/li&gt;
&lt;li&gt;É Possível definir uma variável com o tipo referente a interface
(isso é útil quando a subclasse não tem métodos específicos);&lt;/li&gt;
&lt;li&gt;Pense em usar classes abstratas quando você precisa definir métodos
concreto e/ou possui atributos.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 137</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-137-ah6c02e85ijd/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-137-ah6c02e85ijd/</guid><description>&lt;h3 id="master-detail"&gt;Master-Detail&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;abstração em que classes com relacionamento 1:N, você desmembra a o
item em outra classe (Detail)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="levantamento-de-requisitos"&gt;Levantamento de requisitos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;arte de extrair os problemas dos stakeholders&lt;/li&gt;
&lt;li&gt;uma boa maneira de levantar requisitos é entender como o sistema é
hoje&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lista-de-requisitos"&gt;Lista de requisitos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;a linguagem deve ser não técnica, para todos os stakeholders
entenderem&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="brown-paperwhitepaper"&gt;Brown paper &amp;mdash; White paper&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;técnica antiga&lt;/li&gt;
&lt;li&gt;maneira mais fácil de vender um sistema&lt;/li&gt;
&lt;li&gt;coloca o sistema atual em um papel marrom e o novo em um branco,
assim o cliente verá o antigo como se fosse algo velho e ruim&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lista-deserviços"&gt;Lista de serviços&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;apresenta as atividades que são feitas&lt;/li&gt;
&lt;li&gt;não precisa ser só em software&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mini-especificação"&gt;Mini especificação&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;breve descrição de um serviço e/ou objeto&lt;/li&gt;
&lt;li&gt;bom para pegar regras de negócio&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="casos-de-usocompleto"&gt;Casos de uso completo&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ao usar o &amp;ldquo;-&amp;rdquo; nas extensões, estamos dizendo que tal extensão cabe
de x até y (x-y), além disso também podem ser adicionadas letras
para vários casos, 1&amp;ndash;10a, 1&amp;ndash;10b, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="nível-de-sub-função"&gt;Nível de sub-função&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;sub-funções de um caso de uso&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="diagrama-de-atividade"&gt;Diagrama de atividade&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;descreve graficamente o caso de uso&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="herança-diagrama-declasses"&gt;Herança (diagrama de classes)&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-137-ah6c02e85ijd/image_220.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 138</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-138-762g66b20i29a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-138-762g66b20i29a/</guid><description>&lt;h3 id="árvores-avl"&gt;Árvores AVL&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Árvore de busca binária balanceada&lt;/li&gt;
&lt;li&gt;balanceada com respeito a altura das sub-arvores&lt;/li&gt;
&lt;li&gt;altura maxima entre sub-arvores é de +- 1 (1 ≤ |hL &amp;mdash; hR| ≥ -1)&lt;/li&gt;
&lt;li&gt;Para inserir nessa árvore, usamos o mesmo algoritmo das árvores de
busca binária, depois checamos o balanceamento, caso esteja
desbalanceado, rotacionamos o primeiro nó que quebrou o
balanceamento.&lt;/li&gt;
&lt;li&gt;Para remover é quase a mesma coisa de inserir, só que dessa vez você
aplica a rotação contrária.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="exemplo arvore\u00a0avl" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-138-762g66b20i29a/image_222.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 139</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-139-3ff62d9j6ejh/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-139-3ff62d9j6ejh/</guid><description>&lt;h3 id="pk"&gt;PK&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;quando há mais de uma PK, só haverá duplicatas quando a combinação
delas for a mesma&lt;/li&gt;
&lt;li&gt;PK composta não pode ser definida a nível de coluna&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="subqueries"&gt;Subqueries&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;não há problemas em usar subqueries com as mesmas tabelas, há
problema apenas em queries correlatas, nesse caso use um alias&lt;/li&gt;
&lt;li&gt;pode ser alvo de tabela, do from ou do where&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="relacionamento"&gt;Relacionamento&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ao passar um auto relacionamento para o diagrama de estrutura de
dados, você uma a PK da tabela e outra PK que você criará, gerando
então uma segunda tabela&lt;/li&gt;
&lt;li&gt;N:M ao passar para o DED você cria uma terceira tabela, contendo as
PKs de cada uma das outras duas, essas serão PK e FK ao mesmo tempo,
sendo a referencia das FK a tabela que ela foi herdada&lt;/li&gt;
&lt;li&gt;1:N a tabela N recebe uma coluna a mais que é a FK&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="join"&gt;JOIN&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Inner join mostra apenas os elementos relacionados&lt;/li&gt;
&lt;li&gt;outer join mostra os elementos relacionados e os restantes da tabela
da esquerda ou da direita&lt;/li&gt;
&lt;li&gt;o join sempre deve ser feito em ordem com os relacionamentos entre
tabelas&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 14</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-14-1cg90idb80fca/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-14-1cg90idb80fca/</guid><description>&lt;p&gt;exemplo:&lt;/p&gt;
&lt;p&gt;123332135 % 10 = 5&lt;/p&gt;</description></item><item><title>Ciências da computação dia 140</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-140-27ehf3326h76/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-140-27ehf3326h76/</guid><description>&lt;p&gt;Qualquer valor concatenado com uma String vira uma string em java.&lt;/p&gt;
&lt;p&gt;Podemos acessar constantes das interfaces usando: Interface.constante.&lt;/p&gt;
&lt;p&gt;classes abstratas podem herdar de classes concretas.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 141</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-141-ibehg7aha8d2/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-141-ibehg7aha8d2/</guid><description>&lt;p&gt;Bem, após um tempo de férias, minhas aulas finalmente voltaram. Para
muitos esse momento foi um desespero, para mim um alívio. Pode parecer
meio esquisito, mas realmente estava muito ansioso para voltar à
faculdade e entrar nas novas matérias 🤓.&lt;/p&gt;
&lt;p&gt;No primeiro dia, tivemos aula de engenharia de software. Diferentemente
do semestre passado, dessa vez iremos focar em metodologias e uma visão
mais prática da matéria.&lt;/p&gt;
&lt;p&gt;Nessa aula tivemos uma breve apresentação da matéria e uma pequena
revisão, veja a baixo algumas notas que fiz nessa aula.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 142</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-142-cf333bed97fc/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-142-cf333bed97fc/</guid><description>&lt;p&gt;No segundo dia de volta às aulas, tivemos organização de computadores
com foco em memórias. Aqui estão algumas notas:&lt;/p&gt;
&lt;p&gt;A RAM perde memória com o tempo.&lt;/p&gt;
&lt;p&gt;entre 1.7 e 0.8V não é considerado nenhum nível lógico.&lt;/p&gt;
&lt;p&gt;A parte da BIOS na memória principal é volátil.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 143</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-143-fibfjjid7412/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-143-fibfjjid7412/</guid><description>&lt;p&gt;&lt;strong&gt;linguagens formais&lt;/strong&gt; → maneira de descrever regras gramaticais de uma
linguagem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;grafos&lt;/strong&gt; → diferente das árvores, os grafos representam regras para
algo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;linguagem&lt;/strong&gt; → qualquer meio sistemático capaz de comunicar qualquer
coisa a partir de qualquer meio.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;formal&lt;/strong&gt; → meio definido por regras.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;autômato&lt;/strong&gt; →maquina que funciona de forma automática. Nesse contexto,
os grafos são autômatos, uma vez que, não importa se alguém sabe ou não
as regras de uma linguagem, apenas seguindo o grafo é capaz de dizer seu
uma palavra é válida ou não de forma &lt;em&gt;automática&lt;/em&gt;. Em um contexto mais
geral, um robô pode ser considerado um autômato, uma vez que ele seguirá
apenas o que foi anteriormente programado, também de forma &lt;em&gt;automática&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 144</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-144-59j7fejg6ha2b/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-144-59j7fejg6ha2b/</guid><description>&lt;p&gt;(a+b)² = (a+b)(a+b) = a² + 2ab + b²&lt;/p&gt;
&lt;p&gt;(a-b)²= (a-b)(a-b) = a²-2ab+b²&lt;/p&gt;
&lt;p&gt;(a+b)(a-b) = a² + b² (obs, eles precisam estar na mesma ordem, a+b e
a-b)&lt;/p&gt;
&lt;p&gt;(a+b)³ = (a+b)(a+b)² = a³+b³+3a²b + 3ab²&lt;/p&gt;
&lt;p&gt;(a-b)³ = (a-b)(a-b)² = a³-b³-3a²b + 3ab²&lt;/p&gt;</description></item><item><title>Ciências da computação dia 145</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-145-3d5h3j5dg57e/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-145-3d5h3j5dg57e/</guid><description>&lt;h4 id="dcl"&gt;DCL&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;segurança do banco de dados;&lt;/li&gt;
&lt;li&gt;criação de usuários e ajuste de privilégios que eles possuem.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="dtl"&gt;DTL&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;transação do banco de dados;&lt;/li&gt;
&lt;li&gt;seta um bloco de transação e, caso algo aconteça no meio da
transação, há a possibilidade de reverter, evitando inconsistências.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="parâmetros"&gt;Parâmetros&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;durante a instalação do banco de dados,é necessário configurar
alguns parâmetros para que o banco se encaixe na máquina usada, e a
aplicação da qual usará o banco.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="procedure"&gt;Procedure&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;funções que podem, ou não, retornar algo;&lt;/li&gt;
&lt;li&gt;pode possuir parâmetros de entrada e/ou saída.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="function"&gt;Function&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Função que retorna algo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="trigger"&gt;Trigger&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;procedure que está ligada à uma tabela;&lt;/li&gt;
&lt;li&gt;trabalha com eventos: Insert, update e delete;&lt;/li&gt;
&lt;li&gt;pode ser usado para criar logs/histórico.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="backup-incremental"&gt;Backup incremental&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;apenas dados que foram modificados após um backup anterior são
salvos.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="backup-quente"&gt;Backup quente&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;backup feito com o banco em funcionamento.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="backup-frio"&gt;Backup frio&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;backup que é feito apenas quando o banco está desligado.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="banco-dedados"&gt;Banco de dados&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;formado por processos e dados;&lt;/li&gt;
&lt;li&gt;recomendável usar em um servidor diferente do servidor do qual a
aplicação está rodando;&lt;/li&gt;
&lt;li&gt;ao fazer queries select no banco, além dos dados requisitados, ele
também salva alguns dados do entorno na memória para deixar uma
query futura mais rápida.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tablespace"&gt;Tablespace&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;maneira de fazer um track de onde os dados vão ser salvos/lidos;&lt;/li&gt;
&lt;li&gt;reparte dados em múltiplos discos.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 146</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-146-a6g4jb262ecj/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-146-a6g4jb262ecj/</guid><description>&lt;h3 id="estudo-de-viabilidade"&gt;estudo de viabilidade&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;verifica se um sistema vale a pena ser feito/implantado, ajudando na
tomada de decisão e, se houver, apresenta outras soluções.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="o-que-é-analisado"&gt;o que é analisado:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Como a empresa funciona: como opera, quem são os usuários, quais são
as políticas, etc.&lt;/li&gt;
&lt;li&gt;Problema com o sistema apresentado: ver como o sistema atual
funciona e o que pode ser melhorado nele.&lt;/li&gt;
&lt;li&gt;Objetivos e outros requisitos: requisitos novos para o sistema.&lt;/li&gt;
&lt;li&gt;Restrições: requisitos não funcionais que delimitam o sistema.&lt;/li&gt;
&lt;li&gt;Alternativas possíveis: outros sistema que podem anteder o problema
(o próprio sistema atual pode se encaixar nisso).&lt;/li&gt;
&lt;li&gt;Vantagens e Desvantagens das alternativas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="questões-que-podem-serfeitas"&gt;questões que podem ser feitas:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;O que acontece se o sistema não for implementado?&lt;/li&gt;
&lt;li&gt;Quais os problemas atuais?&lt;/li&gt;
&lt;li&gt;É necessário novas tecnologias/habilidades?&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="estrutura-pleces"&gt;estrutura PLECES:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Performance: tempo de resposta adequado.&lt;/li&gt;
&lt;li&gt;Informação: sistema gera informações úteis.&lt;/li&gt;
&lt;li&gt;Economia: sistema, economicamente, vale a pena.&lt;/li&gt;
&lt;li&gt;Controle: Controle de segurança.&lt;/li&gt;
&lt;li&gt;Eficiência: sistema usa de todos os recursos disponíveis.&lt;/li&gt;
&lt;li&gt;Serviços: sistema é flexível e confiável.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tipos-de-viabilidade"&gt;Tipos de viabilidade:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;econômica: o quanto custará e o quanto dará de retorno.&lt;/li&gt;
&lt;li&gt;operacional: a tecnologia apresenta alguma barreira ao usuário.&lt;/li&gt;
&lt;li&gt;técnica: há tecnologias para implementar o sistema.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tipos-decustos"&gt;Tipos de custos:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;de desenvolvimento: pessoas, software, hardware, instalação do
sistema, treinamento, etc.&lt;/li&gt;
&lt;li&gt;operacionais(contínuos): manutenção, salários, etc.&lt;/li&gt;
&lt;li&gt;fixo: aluguel, salários, luz, etc.&lt;/li&gt;
&lt;li&gt;variável: servidores, manutenção, serviço de terceiros, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tipos-de-benefícios"&gt;Tipos de benefícios:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;tangíveis: os quais você consegue ver os valores, como aumento de
produção e redução de despesas.&lt;/li&gt;
&lt;li&gt;intangíveis: os quais você não consegue medir diretamente, como
satisfação do cliente, melhor gestão, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="técnicas-para-análises-de-custo-x-benefício"&gt;técnicas para análises de custo x benefício:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Payback: se e em quanto tempo haverá o retorno financeiro, baseando
a análise se é melhor investir o dinheiro em renda fixa ou no
projeto.&lt;/li&gt;
&lt;li&gt;valor líquido atual: subtrai os benefícios dos custos atuais, se for
negativo haverá prejuízo.&lt;/li&gt;
&lt;li&gt;ROI (Análise de retorno dos investimentos): semelhante ao VLA, mas
dessa vez pensa no investimento inicial e diz qual dá mais retorno.&lt;/li&gt;
&lt;li&gt;matriz da análise de viabilidade: maneira de comparar todos as
técnicas acima usando uma matriz.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 147</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-147-67hcbhf4fffi/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-147-67hcbhf4fffi/</guid><description>&lt;h4 id="ram"&gt;RAM&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;dividia em BIOS, OS, APPs e DATA.&lt;/li&gt;
&lt;li&gt;memória ROM também possui acesso aleatório.&lt;/li&gt;
&lt;li&gt;para testar a MP, é necessário testar cada bit, e caso um esteja
comprometido a máquina não liga, já que a confiabilidade foi
perdida.&lt;/li&gt;
&lt;li&gt;Ao ligar a máquina, a BIOS é carregada, essa, por sua vez, testa
todos os dispositivos de ES, e, se tudo ocorrer bem, o OS é
carregado para a MP.&lt;/li&gt;
&lt;li&gt;Uma vez que as instruções residem na memória, o tamanho da palavra
delas é definido pelo tamanho do barramento de dados.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="hd"&gt;HD&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;acesso sequencial.&lt;/li&gt;
&lt;li&gt;possui diversas trilhas e essas trilhas possuem diversos blocos,
geralmente de 512bytes, denominados setores.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="registradorescpup-down"&gt;Registradores/CP/UP-DOWN&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;registrador acumulador também é um registrador geral.&lt;/li&gt;
&lt;li&gt;contador de programa incrementa o endereço atual.&lt;/li&gt;
&lt;li&gt;ao usar tomada de decisões dentro de um software, o contador de
programa, ao invés de incrementar, ele vai para a primeira função
desse novo fluxo, o que consequentemente deixa a execução mais
lenta.&lt;/li&gt;
&lt;li&gt;quando é feita uma divisão, o quociente fica no contador up/down, e
através do multiplex ele vai para o registrador acumulador. Caso a
gente queira o resto, basta pegar o resultado da operação feita pela
ULA.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 148</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-148-56f9d7c42246/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-148-56f9d7c42246/</guid><description>&lt;ul&gt;
&lt;li&gt;o estado inicial não necessariamente é q0.&lt;/li&gt;
&lt;li&gt;na cadeia, a ordem dos símbolos importa.&lt;/li&gt;
&lt;li&gt;quanto mais palavras o autômato aceita, mais simples ele será, uma
vez que terão menos regras à seguir.&lt;/li&gt;
&lt;li&gt;O autômato só para quando a cadeia terminal, ou seja, mesmo passando
pelo estado final, se ainda houverem mais símbolos ele vai
continuar.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 149</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-149-da93bi10hb37/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-149-da93bi10hb37/</guid><description>&lt;h4 id="hot-swap"&gt;Hot swap&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;dispositivo que pode ser conectado/desconectado enquanto a máquina
está ligado.&lt;/li&gt;
&lt;li&gt;em servidores, quando é necessário adicionar um novo disco, há uma
controladora HDA que faz com que os discos sejam hot swapable,
implementando RAID.&lt;/li&gt;
&lt;li&gt;obs: o padrão desses discos é SAS de ≥ 10000 RPM&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="arquitetura-oracle"&gt;Arquitetura Oracle&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;v19 e v21 recebem atualizações (pelo menos até 2023).&lt;/li&gt;
&lt;li&gt;ORACLE_HOME → pasta instalação do oracle&lt;/li&gt;
&lt;li&gt;Oradata → pasta de arquivos do banco de dados&lt;/li&gt;
&lt;li&gt;network/admin → arquivo de configuração
cliente/servidor(tnsnames.ora e listener.ora).&lt;/li&gt;
&lt;li&gt;padrão porta → 1521&lt;/li&gt;
&lt;li&gt;ORACLE_HOME/database → onde ficam os parâmetros de inicialização&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#para mostrar os parâmetros
SELECT name, value
FROM v$parameters; #view com os parâmetros
#ou
SHOW parameter &amp;lt;parte_do_nome&amp;gt;;
# para ver quais parâmetros são estáticos selecione
#também a coluna ISINSTANCE_MODIFIABLE
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# para alterar parâmetros
ALTER [SYSTEM|SESSION]
SET &amp;lt;parametro&amp;gt;=&amp;lt;valor&amp;gt;
SCOPE [MEMORY|SPFILE|BOTH];
#ao usar alter SESSION, as alterações só terão efeito na sessão atual
#MEMORY pode ser usado para parâmetros dinâmicos e funciona na hora,
#contudo ele não fica salvo para próximas sessões
#SPFILE salva diretamente nos arquivos de parametros (parâmetros estáticos),
#contudo é necessário reinciar a maquína para ter efeito
#BOTH aplica ambos
#obs: nunca edite os arquivos de parâmetros na mão
#obs2: você precisa de previlégios para alterar parâmetros, geralmente,
#apenas usuários SYS e SYSTEM conseguem
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="alguns-comandos-interessantes"&gt;Alguns comandos interessantes&lt;/h4&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#sysdate
SELECT SYSDATE FROM DUAL;
#DUAL é uma tabela virtual sem valores para executar o SELECT sem erros
#isso é devido ao SQL ANSI não permitir SELECT sem FROM
ALTER SESSION SET NLS_DATE_FORMAT=&amp;#39;dd/mm/yyyy hh24:mi:ss&amp;#39;;
#muda o formato de data para a sessão atual
SELECT * FROM v$INSTANCE;
#usa a view v$INSTANCE para mostrar dados sobre o banco e a máquina
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 15</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-15-fej43g759ah7a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-15-fej43g759ah7a/</guid><description>&lt;ul&gt;
&lt;li&gt;for, while, do while&lt;/li&gt;
&lt;li&gt;while → mais usado&lt;/li&gt;
&lt;li&gt;while → repete algo enquanto a condição for verdadeira&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 150</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-150-8a5ge4608202/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-150-8a5ge4608202/</guid><description>&lt;h3 id="evitar-riscosgerenciamento-deriscos"&gt;Evitar riscos/Gerenciamento de riscos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Pode ser adotado medidas como: pagar mais para nenhum funcionario
sair da empresa durante o projeto;&lt;/li&gt;
&lt;li&gt;tenta minimizar os riscos e seus efeitos;&lt;/li&gt;
&lt;li&gt;outras maneira de evitar riscos é montando times como mais de uma
pessoa, assim caso uma saia, há outra no lugar que já sabe o que
fazer;&lt;/li&gt;
&lt;li&gt;parte do gerenciamento de projeto;&lt;/li&gt;
&lt;li&gt;É preciso fazer uma listagem dos riscos e estimar suas
probabilidades de acontecer para serem mitigados o quanto antes
baseando-se em sua gravidade(planejamento de riscos);&lt;/li&gt;
&lt;li&gt;é preciso monitorar os riscos que podem aparecer durante o projeto;&lt;/li&gt;
&lt;li&gt;Para mitigar é necessário criar um plano de contingencia, do qual
dirá o que fazer em certas situações, ou ainda um plano de
prevenção, para evitar que o erro aconteça.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="gerenciamento-deprojeto"&gt;Gerenciamento de projeto&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;assegura que o software será entregue no prazo e orçamento;&lt;/li&gt;
&lt;li&gt;Pode ser utilizar resolusões de problemas já usados por outras
engenharias que são semelhantes à de software.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="atividades-do-gerenciamento"&gt;Atividades do gerenciamento&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Definição dos limites do projeto (o que faz e o que não faz);&lt;/li&gt;
&lt;li&gt;definição do cronograma;&lt;/li&gt;
&lt;li&gt;custo do projeto;&lt;/li&gt;
&lt;li&gt;monitoramento das ações;&lt;/li&gt;
&lt;li&gt;seleção de pessoas;&lt;/li&gt;
&lt;li&gt;relatórios.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="planejamento"&gt;Planejamento&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;definição do cronograma junto com cada equipe e suas
responsabilidades (Plano principal);&lt;/li&gt;
&lt;li&gt;outros planos podem vir junto com o principal, como o de qualidade,
validação, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="marcos"&gt;Marcos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;finalização de um processo e apresentação de um resultado (também
chamado de produto).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cronograma"&gt;Cronograma&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;define data limite para cada atividade, pensando também em
atividades simultâneas para otimizar o tempo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="rede-de-atividades"&gt;Rede de atividades&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;espécie de grafo que demonstra as sequencias de atividades (assim
como as simultanêas) e seus marcos;&lt;/li&gt;
&lt;li&gt;é possivel ver a data final do projeto seguindo o maior caminho do
grafo (uma vez que as transições contêm o tempo estimado), esse é
chamado de caminho critico, se algo atrasar nele, o projeto inteiro
atrasa.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="diagrama-debarras"&gt;Diagrama de barras&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Demonstra a sequência de atividades e a tolerância de atrasos no
calendário.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="gerente-deprojetos"&gt;Gerente de projetos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;precisa conhecer o projeto, ter habilidades práticas e saber lidar
com pessoas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="tipos-deriscos"&gt;Tipos de riscos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;de projeto → aumenta custos e tempo necessário;&lt;/li&gt;
&lt;li&gt;de produto → afeta a qualidade;&lt;/li&gt;
&lt;li&gt;de negócio → afeta a corporação.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 151</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-151-h0d47ea5eh1g/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-151-h0d47ea5eh1g/</guid><description>&lt;ul&gt;
&lt;li&gt;UES usa comunicação serial (apenas um &amp;ldquo;fio&amp;rdquo;);&lt;/li&gt;
&lt;li&gt;UNDERFLOW pode ocorrer quando há um número com um muitas casas
decimais;&lt;/li&gt;
&lt;li&gt;Quando há uma divisão por zero, o programa aborta, pois, caso
contrário, ela ficaria eternamente tentando calcular, caso não
houvessem flags e temporizadores;&lt;/li&gt;
&lt;li&gt;RAM é dinamica (perde informações com o tempo);&lt;/li&gt;
&lt;li&gt;CACHE é estática (não perde informações com o tempo);&lt;/li&gt;
&lt;li&gt;valores de 3.3v-5v é 1;&lt;/li&gt;
&lt;li&gt;valores de 0v-0.7v é 0;&lt;/li&gt;
&lt;li&gt;valores entre 0.7v-3.3v é tido como um estado indeterminado;&lt;/li&gt;
&lt;li&gt;A RAM possuim um sistema de REFRESH;&lt;/li&gt;
&lt;li&gt;um clock de 3Ghz tem 3*10⁹ ciclos/segundo, se 1 instrução leva 10
ciclos então temos 3*1⁰⁹/10 ciclos/segundo.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 152</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-152-hi5gc14i038ab/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-152-hi5gc14i038ab/</guid><description>&lt;p&gt;&lt;img alt="se e somente\u00a0se" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-152-hi5gc14i038ab/image_242.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-152-hi5gc14i038ab/image_243.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-152-hi5gc14i038ab/image_244.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="geometricamente" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-152-hi5gc14i038ab/image_245.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-152-hi5gc14i038ab/image_246.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 153</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-153-93i7cj389g9/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-153-93i7cj389g9/</guid><description>&lt;ul&gt;
&lt;li&gt;MYSQL possui parâmetros (nesse caso variáveis de ambiente) que podem
ser globais ou de sessão, estáticos ou dinâmicos.&lt;/li&gt;
&lt;li&gt;Para modificar parâmetros estáticos você precisa modificar o arquivo
my.ini ou my.inf&lt;/li&gt;
&lt;li&gt;Pasta include do MYSQL, possui os headers para interagir com outras
linguagens&lt;/li&gt;
&lt;li&gt;partes entre [] no arquivo my.ini são as seções de configuração&lt;/li&gt;
&lt;li&gt;parâmetros estáticos são read-only, ou seja precisam ser alterados
no arquivo diretamente&lt;/li&gt;
&lt;li&gt;programa mysql é um cliente, enquanto o mysqld é o servidor&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="alguns-parâmetros"&gt;Alguns Parâmetros&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;key_buffer_size → parâmetro que seta a memoria ram que a instância
pode usar&lt;/li&gt;
&lt;li&gt;sort_buffer_size → parâmetro que seta o tamanho do buffer para
ordenação de dados&lt;/li&gt;
&lt;li&gt;max_connections → descreve a quantidade máxima de conexões ao banco
(leve em consideração que alguns serviços do próprio MYSQL são tidos
como clientes)&lt;/li&gt;
&lt;li&gt;port → qual porta o servidor vai rodar(parâmetro estático)&lt;/li&gt;
&lt;li&gt;innodb_file_per_table → quando OFF ele começa a utilizar tablespaces&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SHOW VARIABLES;
--para alterar parametros dinamicos
--esses comandos só irão alterar a nivel de sessão, para ser global
--voce precisa alterar o arquivo my.ini
SET GLOBAL parameter=value;
--ou
SET @@GLOBAL.parameter=value;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="table-spaces"&gt;Table Spaces&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;arquivos lógicos que guardam os dados (só é possível acessar pelo
banco dedados)&lt;/li&gt;
&lt;li&gt;arquivos são chamados de datafiles&lt;/li&gt;
&lt;li&gt;não são cross platform&lt;/li&gt;
&lt;li&gt;são vantajosos quando você possui vários discos, e quando quer
acrescentar um, basta apontar no tablespace um datafile para esse
disco&lt;/li&gt;
&lt;li&gt;oracle por padrão usa tablespaces&lt;/li&gt;
&lt;li&gt;tablespaces podem ter múltiplos datafiles&lt;/li&gt;
&lt;li&gt;cada usuário pode ter o seu tablespace, sendo necessários
privilégios para criar também (em ORACLE)&lt;/li&gt;
&lt;li&gt;por padrão o sistema aloca todo o tamanho definido para o datafile
antes, para evitar problemas como desfragmentação de disco&lt;/li&gt;
&lt;li&gt;Table Space permanente → usada para guardar os dados&lt;/li&gt;
&lt;li&gt;Table Space temporária → usada para guardar dados como em:
ordenação, indices, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;SELECT * FROM dba_tablespaces;
ALTER TABLESPACE name
ADD DATAFILE &amp;#39;datafile&amp;#39;; -- pode ter qualquer nome e extensão o datafile
ALTER DATABASE
DATAFILE &amp;#39;datafile&amp;#39;
AUTOEXTEND ON NEXT 20M
MAXSIZE 1000M;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 154</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-154-c3i4cjda9dhi/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-154-c3i4cjda9dhi/</guid><description>&lt;h4 id="métricas"&gt;Métricas&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;falta de controle de um projeto está ligada a falta de métricas;&lt;/li&gt;
&lt;li&gt;tem como objetivo: entender, achar, controlar e prever tudo do
projeto;&lt;/li&gt;
&lt;li&gt;bom para entender em qual parte do projeto você está;&lt;/li&gt;
&lt;li&gt;usado para ter estimativas;&lt;/li&gt;
&lt;li&gt;usado para melhorar a qualidade do projeto.&lt;/li&gt;
&lt;li&gt;medida → valor de um indicador e/ou atributos usados para a medição;&lt;/li&gt;
&lt;li&gt;medição → processo de medir;&lt;/li&gt;
&lt;li&gt;métrica → estabelece um objetivo para a medição;&lt;/li&gt;
&lt;li&gt;indicador → classificação da medida (escala).&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 155</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-155-667hg8236283/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-155-667hg8236283/</guid><description>&lt;h4 id="funções"&gt;Funções&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;mapeamento entre dois conjuntos&lt;/li&gt;
&lt;li&gt;f: A → B, cada elemento de A corresponde a um único elemento em B&lt;/li&gt;
&lt;li&gt;A é o domínio, B o contra domínio, a imagem são os elementos que
foram mapeados pela função do domínio para o contra domínio&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="função-quadrática"&gt;Função quadrática&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ax²+bx+c&lt;/li&gt;
&lt;li&gt;a → diz se a concavidade é para cima ou para baixo&lt;/li&gt;
&lt;li&gt;|a| → diz se a concavidade é mais fechada ou aberta&lt;/li&gt;
&lt;li&gt;b → se pegarmos um ponto qualquer na parábola e mudarmos b, outra
parábola será criado com esse ponto (nova parábola será o inverso da
original)&lt;/li&gt;
&lt;li&gt;c → faz com que o gráfico suba ou desça em Y&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="função-irracional"&gt;Função irracional&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;1/x&lt;/li&gt;
&lt;li&gt;no gráfico sempre há duas assíntotas (horizontal e vertical)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 156</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-156-42bj83j5f6h1/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-156-42bj83j5f6h1/</guid><description>&lt;ul&gt;
&lt;li&gt;É recomendado criar pelo menos 2 tablespaces para cada sistema,
sendo um para dados e outro para indices, ajudando no balanceamento
de carga&lt;/li&gt;
&lt;li&gt;tablespace sysaux → informações auxiliares do sistema&lt;/li&gt;
&lt;li&gt;tablespace undotbs → usado para rollbacks&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;CREATE TABLESPACE name
datafile &amp;#39;datafile&amp;#39;
size 10M --tamanho inicial
AUTOEXTEND ON NEXT 2M
MAXSIZE 20M;
DROP TABLESPACE name INCLUDING CONTENTS AND datafiles;
SELECT * FROM dba_data_files; --just for admins
SELECT username, default_tablespace, temporary_tablespace
FROM user_users;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 157</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-157-476g2cgebe98a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-157-476g2cgebe98a/</guid><description>&lt;h4 id="diagrama-comportamental"&gt;Diagrama comportamental&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;visão completa do sistema&lt;/li&gt;
&lt;li&gt;representação baseada em eventos&lt;/li&gt;
&lt;li&gt;indica a resposta dele à eventos&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="diagrama-máquina-deestados"&gt;Diagrama máquina de estados&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;necessário antes ter feito o diagrama de casos de uso e de classes&lt;/li&gt;
&lt;li&gt;mostra o ciclo de vida de um objeto&lt;/li&gt;
&lt;li&gt;baseado em autômatos&lt;/li&gt;
&lt;li&gt;ações são os métodos previstos no diagrama de classe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="exemplo diagrama máquina de\u00a0estados" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-157-476g2cgebe98a/image_247.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 158</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-158-8gchdda41213/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-158-8gchdda41213/</guid><description>&lt;h4 id="memórias"&gt;Memórias&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;toda RAM pode se transformar em sequencial (como em filas e pilhas)&lt;/li&gt;
&lt;li&gt;CACHE é estática (não perde informações com o tempo)&lt;/li&gt;
&lt;li&gt;quando a MP esta fazendo refresh ela não pode ser usada naquele
momento&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Hierarquia de memórias, retirado de\n&lt;a href=\"https://blog.cod3r.com.br/o-que-e-hierarquia-de-memoria/\"&gt;blog.cod3r.com.br&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-158-8gchdda41213/image_248.png"&gt;&lt;/p&gt;
&lt;h4 id="hd"&gt;HD&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;OS fica na trilha 0 setor 0&lt;/li&gt;
&lt;li&gt;trilhas mais internas cabem menos informações&lt;/li&gt;
&lt;li&gt;com quantidades iguais de setores por trilha temos mais capacidade
de armazenamento, mas é mais lento para encontrar as informações&lt;/li&gt;
&lt;li&gt;com mesma quantidade de setores por trilha você tem menor capacidade
de armazenamento, mas o acesso fica um pouco mais rápido&lt;/li&gt;
&lt;li&gt;o OS pode marcar certos setores como corrompidos&lt;/li&gt;
&lt;li&gt;conforme você adiciona e remove coisas de um HD ele vai se
fragmentando, uma vez que certos setores vão ficar livres no meio de
outros setores usados, e quando você precisa colocar um novo, o
sistema terá de repartir o arquivo e colocar em setores distantes,
deixando mais lento.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="cd"&gt;CD&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;para gravar um CD é usado um laser para queimar uma camada de
corante definindo um bit&lt;/li&gt;
&lt;li&gt;para ler o CD é jogado uma luz nele e, naqueles pontos que foram
queimados, a luz passará e será refletida por uma camada reflexiva
que devolve a luz e é rebatida por um prisma até um fotodetector&lt;/li&gt;
&lt;li&gt;No blue-ray, por utilizar um laser mais para o azul, seu comprimento
de onda é muito menor, fazendo com que seja possível colocar muito
mais informações nele&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 159</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-159-7jbbg02g1i98/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-159-7jbbg02g1i98/</guid><description>&lt;p&gt;&lt;img alt="exemplo automato" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-159-7jbbg02g1i98/image_249.png"&gt;&lt;/p&gt;
&lt;p&gt;Para transformar o automato em uma tabela, pegue todos os estados e
depois faça uma lista dos símbolos e apenas preencha qual transição cada
estado fará para aquele símbolo.&lt;/p&gt;
&lt;p&gt;&lt;img alt="exemplo tabela" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-159-7jbbg02g1i98/image_250.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 16</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-16-j371732c2je6/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-16-j371732c2je6/</guid><description>&lt;p&gt;&lt;strong&gt;Complemento em decimal&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;obs: usar o complemento de um número é uma maneira de transformar uma
subtração em uma soma&lt;/p&gt;
&lt;p&gt;745&amp;ndash;84&lt;/p&gt;
&lt;p&gt;para transformar em um complemento pegue o maior numero da
subtração(745) e conte o numero de dígitos(3), agora ache o maior com
esse número de dígitos (999), agora vamos fazer o complemento de 9&lt;/p&gt;
&lt;p&gt;999&amp;ndash;84 = 915&lt;/p&gt;
&lt;p&gt;agora some o maior numero da subtração com o complemento do número 84&lt;/p&gt;</description></item><item><title>Ciências da computação dia 160</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-160-g7f73df865d3/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-160-g7f73df865d3/</guid><description>&lt;ul&gt;
&lt;li&gt;SYS é o dono do banco de dados;&lt;/li&gt;
&lt;li&gt;SYSTEM é o admin;&lt;/li&gt;
&lt;li&gt;usuário schema: possui objetos no banco, possui privilégios para
criar objetos;&lt;/li&gt;
&lt;li&gt;usuário de aplicação: tem privilégios para acessar objetos, mas não
pode alterá-los;&lt;/li&gt;
&lt;li&gt;por padrão usuários não tem permissão para nada (nem para logar no
banco);&lt;/li&gt;
&lt;li&gt;privilégios não precisam de restart do sistema para funcionar;&lt;/li&gt;
&lt;li&gt;packages empacotam várias procedures dentro;&lt;/li&gt;
&lt;li&gt;DCL → data control language (GRANT e REVOKE);&lt;/li&gt;
&lt;li&gt;cada banco criar o DCL do seu jeito (não possui padrão ANSI);&lt;/li&gt;
&lt;li&gt;donos dos objetos podem fazer o que quiser com eles.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="usuários"&gt;Usuários&lt;/h4&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;CREATE TEMPORARY TABLESPACE tmp_tablespace_name;
--criar usuário schema
CREATE USER name
IDENTIFIED BY password
DEFAULT TABLESPACE tablespace_name
TEMPORARY TABLESPACE tmp_tablespace_name;
--RESOURCE deixa o user criar coisas (devs usam esse)
--CONNECT dá permissões para logar no bacno
GRANT CONNECT, RESOURCE TO name;
--altera o limite para o usuário no tablespace
ALTER USER name QUOTA UNLIMITED ON tablespace_name;
--para usar outro tablespace ao inves do default
CREATE TABLE table_name (
coluna1 datatype,
coluna2 datatype,
coluna3 datatype,
) USING INDEX TABLESPACE tablespace_name;
--para setar um tablespace para o index
CREATE INDEX index_name on table_name ( coluna1, coluna2, coluna3 )
TABLESPACE tablespace_name;
--cria um usário de aplicação
CREATE USER name
IDENTIFIED BY password;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="privilégios"&gt;Privilégios&lt;/h4&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;--TIPOS DE PRIVILÉGIO
--privilégio de sistema
GRANT privilegio1, privilegio2,... TO user1, user2,...;
--alguns privilégios
CREATE SESSION; --para conectar no banco
CREATE TABLE; --para criar tabela e indices
CREATE SEQUENCE;
CREATE VIEW;
CREATE PROCEDURE;
--privilégio de objetos
GRANT privilegio1, privilegio2, ... | ALL [colunas...]
ON objeto
TO user1, user2, ... | role | PUBLIC
[WITH GRANT OPTION]; --permite o usuario dar privilégios para outros usuários nesse objeto
--alguns privilégios
INSERT, UPDATE, SELECT, DELETE --para tabelas
EXECUTE --para procedures
--obs: um unico grant não pode misturar privilégio de objeto e de sistema junto
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;--ROLES
--grupo de permissões
--do sistema
CONNECT,
RESOURCE,
DBA --para admin
--para criar uma role
CREATE ROLE role_name;
GRANT privilegio1, privilegio2,... TO role_name;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;--REVOKE
--remove privilegios
REVOKE privilegio1, privilegio2,...
ON objeto
FROM user1, user2,... | role | PUBLIC
[CASCADE CONSTRAINT]; --quando existem tables interligadas com privilégios
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;--SYNONYM
--maneira de criar um alias para um objeto
CREATE SYNONYM synonym_name FOR object;
SELECT * FROM synonym_name;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 161</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-161-8632jd7fghah/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-161-8632jd7fghah/</guid><description>&lt;ul&gt;
&lt;li&gt;F(x) → mapeia valor dos reais para os reais&lt;/li&gt;
&lt;li&gt;F(x) = x → função identidade&lt;/li&gt;
&lt;li&gt;reta bissetriz → reta que passa pelo ponto 0 e divide 90° em 2&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="função-afim"&gt;Função afim&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;quando a &amp;gt; 0 → crescente&lt;/li&gt;
&lt;li&gt;quando a &amp;lt; 0 → decrescente&lt;/li&gt;
&lt;li&gt;quando crescente o gráfico sai do terceiro quadrante e vai em
direção ao primeiro&lt;/li&gt;
&lt;li&gt;quandro decrescente o gráfico sai do quarto quadrante e vai para o
segundo&lt;/li&gt;
&lt;li&gt;a raiz da função é → F(x) = ax + b = 0&lt;/li&gt;
&lt;li&gt;coeficiente a denota também o quão inclinado será a reta, quanto
maior mais inclinado&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="função-modular"&gt;Função modular&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;F(x) = |x|+a → função sobe em Y&lt;/li&gt;
&lt;li&gt;F(x) = |x+a| → função se move para a esquerda quando a&amp;gt;0 e
direita quando a&amp;lt;0&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="função-quadrática"&gt;Função quadrática&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ponto máximo ou minimo da parábola é denominado de vértice&lt;/li&gt;
&lt;li&gt;coordenada do vértice → (-b/2a, -Δ/4a ou F(x))&lt;/li&gt;
&lt;li&gt;quando Δ &amp;gt; 0 → duas raizes (parabola corta o eixo x)&lt;/li&gt;
&lt;li&gt;quando Δ = 0 → uma raiz (único ponto em x)&lt;/li&gt;
&lt;li&gt;quando Δ &amp;lt; 0 → nenhuma raiz (não corta o eixo x)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="função-parímpar"&gt;Função par/ímpar&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;f(x) = f(x) →função par&lt;/li&gt;
&lt;li&gt;f(x) = -f(x) → função ímpar&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 162</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-162-c41i775j03b1/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-162-c41i775j03b1/</guid><description>&lt;h4 id="cache"&gt;CACHE&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;maneira temporal de preencher → realizada durante a busca de
instruções, uma cópia é enviada para a CACHE. Além disso a UCP usa
de alguns truques, como pegar instruções para a CACHE apenas quando
não estão lá, para ganhar tempo;&lt;/li&gt;
&lt;li&gt;maneira espacial → pega um pedaço da MP e copia para a CACHE. Assim
sempre que algo for ser executado, possivelmente, já esta na CACHE;&lt;/li&gt;
&lt;li&gt;para a CACHE o mais eficiente são estruturas de repetição, já que é
necessário poucas instruções dentro dela para conseguir um ganho de
performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="filas"&gt;Filas&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;todas as filas possuem limites (superior e inferior);&lt;/li&gt;
&lt;li&gt;há duas flags: underflow e overflow;&lt;/li&gt;
&lt;li&gt;há um ponteiro para a próxima posição livre para inserir, e um para
o endereço para remover o valor;&lt;/li&gt;
&lt;li&gt;possui operações de inserção(INS) e remoção(REM).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pilhas"&gt;Pilhas&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;possuem limites (superior e inferior);&lt;/li&gt;
&lt;li&gt;há flags também, como: underflow e overflow;&lt;/li&gt;
&lt;li&gt;possui um ponteiro dizendo a posição para adicionar um valor ou
ainda para remover o valor anterior;&lt;/li&gt;
&lt;li&gt;possui instruções de inserção (PUSH) e remoção (POP).&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 163</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-163-7j8ffhc2d6ee/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-163-7j8ffhc2d6ee/</guid><description>&lt;h4 id="autômato-finito-não-determinístico"&gt;Autômato finito não determinístico&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;transições são ambíguas;&lt;/li&gt;
&lt;li&gt;Vários caminhos para um mesmo símbolo;&lt;/li&gt;
&lt;li&gt;não é obrigatório adicionar transições para todos os símbolos;&lt;/li&gt;
&lt;li&gt;para checar a validade da entrada é necessário analisar todos os
caminhos usando uma árvore;&lt;/li&gt;
&lt;li&gt;Para ser válido precisa parar em pelo menos um estado final dentre
todas as possibilidades de caminhos;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="exemplo autômato" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-163-7j8ffhc2d6ee/image_251.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="verificando o valor 1100 usando uma\u00a0árvore" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-163-7j8ffhc2d6ee/image_252.png"&gt;&lt;/p&gt;
&lt;p&gt;como tivemos um estado final ao testar o valor 1100, esse valor é válido&lt;/p&gt;</description></item><item><title>Ciências da computação dia 164</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-164-2gj23bf2e644/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-164-2gj23bf2e644/</guid><description>&lt;p&gt;&lt;img alt="limite lateral a direita de f(x) tendendo x à\u00a01" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-164-2gj23bf2e644/image_254.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="limite lateral a esquerda de f(x) tendendo x à\u00a01" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-164-2gj23bf2e644/image_255.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="assíntota vertical" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-164-2gj23bf2e644/image_256.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="assíntota horizontal" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-164-2gj23bf2e644/image_257.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 165</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-165-gg55jfii7709/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-165-gg55jfii7709/</guid><description>&lt;pre tabindex="0"&gt;&lt;code&gt;--Criar usuário
CREATE USER &amp;#39;username&amp;#39;@&amp;#39;host&amp;#39; IDENTIFIED BY &amp;#39;password&amp;#39;;
-- o host é o ip, podendo ser usado caracteres corringa como % e _
-- um usuário pode ter vários hosts diferentes
-- permissões de tabela
CREATE, ALTER, DROP
-- Permissões de dados
SELECT, INSERT, UPDATE, DELETE
-- outras permissões
ALL PRIVILEGES,
GRANT OPTION -- dexa um user dar permissões para outros
-- dar permissões
GRANT permissao1, permissao2, ... ON database.table
TO &amp;#39;username&amp;#39;@&amp;#39;host&amp;#39;
IDENTIFIED BY &amp;#39;password&amp;#39;;
FLUSH PRIVILEGES; -- para limpar o cache de permissões
SHOW GRANTS FOR &amp;#39;username&amp;#39;@&amp;#39;host&amp;#39;; -- mostra as permissões de um user
-- remover permissões
REVOKE permissao1, permissao2, ... ON database.table
FROM &amp;#39;username&amp;#39;@&amp;#39;host&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 166</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-166-4g30fa6d49j/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-166-4g30fa6d49j/</guid><description>&lt;p&gt;Dentro das memórias do computador (memória RAM), podemos ter vários
tipos de interligação de bancos de memórias para alcançarmos o tamanho
desejado.&lt;/p&gt;
&lt;p&gt;Mais precisamente, há dois formatos de ligação, série e paralelo.&lt;/p&gt;
&lt;p&gt;A ligação em paralelo, aumenta o tamanho de bits que uma palavra pode
ter, mas mantem a quantidade de palavras que a memória pode suportar
(aumenta o barramento de dados e não o de endereços).&lt;/p&gt;
&lt;p&gt;Já a ligação em série age de forma inversa, aumentando a quantidade de
palavras que uma memória pode suportar, mas mantendo o tamanho dessas
palavras.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 167</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-167-jfj8b6hf9hee/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-167-jfj8b6hf9hee/</guid><description>&lt;ul&gt;
&lt;li&gt;ao converter (diminuir) um autômato finito não deterministico(AFND),
você transforma ele em um autômato finito deterministico(AFD);&lt;/li&gt;
&lt;li&gt;o autômato menor sempre será um AFD.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 168</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/</guid><description>&lt;p&gt;Dado ε &amp;gt; 0, existe um δ &amp;gt; 0 tal que:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/image_262.png"&gt;&lt;/p&gt;
&lt;p&gt;sempre que&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/image_263.png"&gt;&lt;/p&gt;
&lt;h4 id="unicidade-doslimites"&gt;Unicidade dos limites&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/image_264.png"&gt;&lt;/p&gt;
&lt;h4 id="outras-propriedades"&gt;Outras propriedades&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/image_265.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/image_266.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/image_267.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/image_268.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/image_269.png"&gt;&lt;/p&gt;
&lt;h4 id="notas"&gt;Notas&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-168-69ja7g160cd5/image_270.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 169</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-169-328a8ai46j01/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-169-328a8ai46j01/</guid><description>&lt;h4 id="sequence"&gt;Sequence&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;objeto presente em alguns SGBD(o Oracle tem)&lt;/li&gt;
&lt;li&gt;usado para a criação de valores sequênciais (como aquele AUTO
INCREMENT do MYSQL).&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;CREATE SEQUENCE sequence_name
START WITH 0 --valor para começar
INCREMENT BY 1 --valor do increment, pode ser negativo para fazer uma sequência inversa
MAXVALUE 10 --valor maximo
CYCLE --quando chegar no 10 ele volta para o minimo (padrao do min é 1)
CACHE 2; --já aloca os dois proximos valores em cache
-- de preferência a usar NO CYCLE e NO CACHE
INSER INTO table (id, name)
VALUES(sequence_name.NextVal, &amp;#39;test&amp;#39;); -- sequence.NextVal pega o próximo valor da sequência
SELECT * FROM sys.user_sequences; -- mostra as sequences criadas
SELECT sequence_name.NextVal,
sequence_name.currval; -- valor atual da sequence
FROM dual;
CREATE SEQUENCE inverse_sequence
START WITH 10
INCREMENT BY -1
MAXVALUE 0
NO CYCLE
NO CACHE;
SELECT * from dba_sequences; -- todas as sequences do banco
-- necessario ser DBA
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 17</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-17-248ciegc099b/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-17-248ciegc099b/</guid><description>&lt;p&gt;Aristóteles (322 a.C. &amp;mdash; 384 a.C.)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;abiogênese → coisas sem vida dão origem a coisas com vida (teoria de
350 a.C. até 1862 d.C.)&lt;/li&gt;
&lt;li&gt;Pai da escola aristoteliana → antes as pessoas que queriam aprender
algo elas iam atrás de filósofos e ficavam andando com ele, agora
com a escola aristoteliana você fica em um local parada e um grupo
de pessoas ficam discutindo sobre coisas, modelo usado até hoje&lt;/li&gt;
&lt;li&gt;Pai da lógica → silogismo → uma premissa (informação) e a partir
dessa premissa se faz uma inferência (interpretação)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;sofismas → mentiras → uma interpretação pode gerar&lt;/p&gt;</description></item><item><title>Ciências da computação dia 170</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-170-4f1c7bib1i41/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-170-4f1c7bib1i41/</guid><description>&lt;h4 id="limites-laterais"&gt;Limites laterais&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;limite pensando em valores maiores do que a (lateral pela direita
+), ou menores que a (lateral pela esquerda -);&lt;/li&gt;
&lt;li&gt;caso ambos os limites laterais deem o mesmo resultado, então o
limite de &lt;em&gt;x&lt;/em&gt; tendendo à &lt;em&gt;a&lt;/em&gt; existe.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-170-4f1c7bib1i41/image_271.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-170-4f1c7bib1i41/image_272.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 171</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-171-fa40fhb2ed1c/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-171-fa40fhb2ed1c/</guid><description>&lt;h4 id="mysql"&gt;MYSQL&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;não possui transactions por padrão&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="oracle"&gt;Oracle&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;usa transactions por padrão&lt;/li&gt;
&lt;li&gt;comandos internos são tratados atomicamente, ou seja, caso a
transaction não seja concluída, tudo será descartado&lt;/li&gt;
&lt;li&gt;transaction inicia com o primeiro DML e termina ao: COMMIT,
ROLLBACK, comando DDL, quando o user sai ou quando o sistema cai&lt;/li&gt;
&lt;li&gt;voce pode criar savepoints e dar rollback para pontos especificos
desfazendo alterações&lt;/li&gt;
&lt;li&gt;duas sessões diferentes não conseguem editar a mesma parte do banco
até que uma delas dé um COMMIT ou ROLLBACK&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;DELETE + COMMIT -- deleta definitivamente
START TRANSACTION;
...
...
SAVEPOINT savepoint_name;
...
COMMIT;
ROLLBACK TO SAVEPOINT savepoint_name;
-----
-- da tablespace ilimitado para o user
ALTER user user_name QUOTA UNLIMITED ON tablescape;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 172</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-172-d8i5cc9e1003/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-172-d8i5cc9e1003/</guid><description>&lt;h4 id="tipos-dememórias"&gt;Tipos de memórias&lt;/h4&gt;
&lt;p&gt;ROM → read only&lt;/p&gt;
&lt;p&gt;PROM → programmable ROM&lt;/p&gt;
&lt;p&gt;EPROM → necessário apagar tudo para modificar&lt;/p&gt;
&lt;p&gt;EEPROM → bits individuais podem ser apagados&lt;/p&gt;
&lt;p&gt;FLASH → EEPROM que não precisa de equipamentos especiais para manipular&lt;/p&gt;
&lt;h4 id="operação-deins"&gt;Operação de INS&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;verifica overflow&lt;/li&gt;
&lt;li&gt;insere na onde está o ponteiro de INS&lt;/li&gt;
&lt;li&gt;atualiza o ponteiro&lt;/li&gt;
&lt;li&gt;verifica se a fila está vazia (ponteiro REM no limite inferior)&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="operação-rem"&gt;Operação REM&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;verifica underflow&lt;/li&gt;
&lt;li&gt;remove o elemento do ponteiro REM&lt;/li&gt;
&lt;li&gt;atualiza o ponteiro&lt;/li&gt;
&lt;li&gt;verifica se a fila está cheia (ponteiro INS no limite superior)&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="operação-push"&gt;Operação PUSH&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;verifica se não atingiu o limite superior&lt;/li&gt;
&lt;li&gt;coloca o valor na posição do ponteiro&lt;/li&gt;
&lt;li&gt;atualiza o ponteiro&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="operação-pop"&gt;Operação POP&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;verifica se não atingiu o limite inferior&lt;/li&gt;
&lt;li&gt;remove do topo&lt;/li&gt;
&lt;li&gt;decrementa o ponteiro&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Ciências da computação dia 173</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-173-ga397h5fgf4c/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-173-ga397h5fgf4c/</guid><description>&lt;p&gt;Para minimizar o nosso AFND, podemos fazer a conversão dele para um AFD.
Para isso faça:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-173-ga397h5fgf4c/image_273.png"&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;liste todas as transições que um estado faz para outro como um
conjunto único, em seguida use esse conjunto como sendo o próximo
estado a ser observado na tabela:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-173-ga397h5fgf4c/image_274.png"&gt;&lt;/p&gt;
&lt;p&gt;você para de testar novas combinações quando nenhuma combinação nova
aparece como transição. Além disso, todo conjunto que tiver um estado
final, também sera considerado um estado final (*).&lt;/p&gt;</description></item><item><title>Ciências da computação dia 174</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-174-4bgf560390ii/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-174-4bgf560390ii/</guid><description>&lt;p&gt;Durante a manipulação de limites, algumas indeterminações podem
aparecer:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-174-4bgf560390ii/image_277.png"&gt;&lt;/p&gt;
&lt;p&gt;obs: lembre-se que infinito é uma idea/conceito, não um número&lt;/p&gt;
&lt;p&gt;em alguns casos conseguimos nos livrar facilmente deles:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-174-4bgf560390ii/image_278.png"&gt;&lt;/p&gt;
&lt;p&gt;mas em outros precisamos de alguns truques:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-174-4bgf560390ii/image_279.png"&gt;&lt;/p&gt;
&lt;p&gt;nesse caso, podemos pegar o conjugado do numerador, fazendo com que seja
possível reduzi-lo à 1, removendo a indeterminação do tipo algo/0.&lt;/p&gt;
&lt;h4 id="notas"&gt;Notas&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-174-4bgf560390ii/image_280.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 175</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-175-cffi68ddjb4b/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-175-cffi68ddjb4b/</guid><description>&lt;h4 id="diagrama-de-sequência"&gt;Diagrama de sequência&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;representa o ciclo de vida de um caso de uso&lt;/li&gt;
&lt;li&gt;usado para casos de uso complexos (dos quais envolvem varias classes
e métodos)&lt;/li&gt;
&lt;li&gt;comunicação entre objetos (troca de mensagens)&lt;/li&gt;
&lt;li&gt;métodos/classes precisam estar previstos no diagrama de classes&lt;/li&gt;
&lt;li&gt;parte sempre de um ator&lt;/li&gt;
&lt;li&gt;define objetos já instanciados e novos que serão instanciados
durante a execução&lt;/li&gt;
&lt;li&gt;* → indica que uma mensagem pode ser ativada varias vezes&lt;/li&gt;
&lt;li&gt;quem recebe a mensagem é quem executa o método&lt;/li&gt;
&lt;li&gt;parâmetros e seus retornos também também podem ser representados nas
mensagens&lt;/li&gt;
&lt;li&gt;condições são configuradas dentro de → []&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-175-cffi68ddjb4b/image_281.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 176</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-176-35fi6g7g876f/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-176-35fi6g7g876f/</guid><description>&lt;h4 id="autômato-depilha"&gt;Autômato de pilha&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Quando há a necessidade de contar&lt;/li&gt;
&lt;li&gt;segue a ideia de um valor fazer empilhar e outro faz desempilhar&lt;/li&gt;
&lt;li&gt;geralmente começa com uma marca (por exemplo #)&lt;/li&gt;
&lt;li&gt;Toda palavra começa com ε(vazio) e termina com ε&lt;/li&gt;
&lt;li&gt;Se você tentar desempilhar e o valor não estiver no topo da pilha
haverá um erro (programa termina, palavra não é aceita)&lt;/li&gt;
&lt;li&gt;transições seguem o seguinte padrão → (lê o valor, desempilha o
valor -&amp;gt; empilha o valor), por exemplo (x, ε -&amp;gt; 1), poderíamos
entender que ele vai ler da palavra de entrada o valor x, e se for x
ele vai desempilhar nenhum valor e empilhar o valor 1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-176-35fi6g7g876f/image_283.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 177</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-177-ah874af1985d/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-177-ah874af1985d/</guid><description>&lt;ul&gt;
&lt;li&gt;você não pode ler ε mais de uma vez seguida&lt;/li&gt;
&lt;li&gt;a pilha sempre deve terminar vazia para a palavra ser aceita&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 178</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-178-jfa2d71g7j3g/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-178-jfa2d71g7j3g/</guid><description>&lt;h4 id="limites-noinfinito"&gt;Limites no infinito&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;quando x tende ao infinito&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-178-jfa2d71g7j3g/image_284.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-178-jfa2d71g7j3g/image_285.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-178-jfa2d71g7j3g/image_286.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-178-jfa2d71g7j3g/image_287.png"&gt;&lt;/p&gt;
&lt;h4 id="limite-infinito"&gt;Limite infinito&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;quando o resultado de f(x) é infinito&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-178-jfa2d71g7j3g/image_288.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-178-jfa2d71g7j3g/image_289.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 179</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-179-fiade82cca51/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-179-fiade82cca51/</guid><description>&lt;ul&gt;
&lt;li&gt;procedures não precisam retornar algo (diferente das funções)&lt;/li&gt;
&lt;li&gt;trigger reage a uma ação sem a necessidade de chama-lo diretamente&lt;/li&gt;
&lt;li&gt;cada SGBD tem sua linguagem para criar esses objetos (PL/SQL é o da
ORACLE)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="plsql"&gt;PL/SQL&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;bloco que utiliza SQL para executar coisas&lt;/li&gt;
&lt;li&gt;3 partes → declaração (opcional), execução, tratamento de erros
(opcional)&lt;/li&gt;
&lt;li&gt;adiciona mais coisas ao SQL (como loops, if, etc.)&lt;/li&gt;
&lt;li&gt;oracle por padrão, se você nãos tratar os erros, ele exibe o erro e
para a execução&lt;/li&gt;
&lt;li&gt;dentro da declaração você pode declarar → constantes, variáveis,
cursores(objetos que definem um DQL dentro)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;DECLARE
-- declara os elementos
-- variavel
-- nome tipo [NOT NULL] := valor
exemplo_1 NUMBER(4) NOT NULL := 4;
exemplo_2 CHAR(1);
-- ROWTYPE pega o tipo de uma linha de uma tabela (deixa mais rapido, usando cursors)
-- TYPE pega o mesmo tipo de uma coluna de uma tabela
exemplo_3 Tabela.coluna%Type;
BEGIN
-- execucao
--exemplo
SELECT idade, sexo
INTO exemplo_1, exemplo_2
FROM Tabela
WHERE id=1;
-- aqui a Tabela precisa retornar exatemente 1 elemento
-- uso do if
IF ... THEN
...
ELSE IF ... THEN
...
ELSE
...
END IF;
EXCEPTION
-- excecoes
END;
-- coloca algo no console
-- || concatena elementos
dbms_output.put_line(&amp;#39;test&amp;#39; || a || &amp;#39; test&amp;#39;);
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 18</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-18-036f1eg6faec/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-18-036f1eg6faec/</guid><description>&lt;p&gt;&lt;strong&gt;Áreas&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;área do circulo = pi * r²&lt;/p&gt;
&lt;p&gt;área do triângulo = b * h / 2&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;potências de 10 vs notação científica&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;potencia de 10 não importa o numero que vem antes do *10^n (tbm
chamado de mantissa)&lt;/p&gt;
&lt;p&gt;já em notação científica esse número deve ser ≥ 1 e &amp;lt; 10&lt;/p&gt;
&lt;p&gt;então&lt;/p&gt;
&lt;p&gt;90 * 10⁵ em potência de 10 está correto&lt;/p&gt;
&lt;p&gt;90 * 10⁵ em notação científica está errado (o certo seria 9*10⁶)&lt;/p&gt;</description></item><item><title>Ciências da computação dia 180</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-180-a2iad3f9bfg8/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-180-a2iad3f9bfg8/</guid><description>&lt;h4 id="pontos-defunção"&gt;pontos de função&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;com base no tamanho da entrada e saída de uma função, qual a
pontuação dela&lt;/li&gt;
&lt;li&gt;estimativa&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="esforço"&gt;esforço&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;quantidade de pessoas para fazer o software&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 181</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-181-71b530cjeeb/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-181-71b530cjeeb/</guid><description>&lt;h4 id="hierarquia-dechomsky"&gt;Hierarquia de Chomsky&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Descreve os tipos de autômatos e o que eles conseguem fazer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://en.wikipedia.org/wiki/Chomsky_hierarchy\"&gt;wikipedia&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-181-71b530cjeeb/image_290.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 182</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-182-7i1h21d4i7if/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-182-7i1h21d4i7if/</guid><description>&lt;h4 id="exceptions"&gt;Exceptions&lt;/h4&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;NO_DATA_FOUND -- exceção que informa que nenhum dado foi encontrado
CASE_NOT_FOUND -- variavel do case não existe
TOO_MANY_ROWS -- quando um SELECT INTO retorna varias linhas
OTHERS -- error generico
DECLARE
...
BEGIN
-- se voce tiver varios inserts, e você quer que a alteração já seja salva
-- use o commit depois dele, lembrando que se for apenas um comando, não
-- há necessidade de fazer isso
INSERT ....
COMMIT;
INSERT ...
EXCEPTION
WHEN &amp;lt;error&amp;gt; THEN
...
WHEN NO_DATA_FOUND THEN
...
WHEN CASE_NOT_FOUND THEN
...
WHEN TOO_MANY_ROWS THEN
...
WHEN OTHERS THEN --erro generico
...
END;
-- para levantar um erro use o seguinte comando
raise application_error(&amp;lt;number&amp;gt;, &amp;lt;message&amp;gt;, [TRUE|FALSE]);
-- o numero vai de -20000 ate -20999
-- e o TRUE/FALSE diz se é pegar pegar todos os erros (TRUE) ou só
-- o primeiro (FALSE)
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="cursor"&gt;Cursor&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;cursor implícito → consultas em PL/SQL que retorna 1 linha&lt;/li&gt;
&lt;li&gt;cursor explicito → usado quando for retornar várias rows&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;CURSOR &amp;lt;cursor_name&amp;gt; [parametro1, parametro2, ...] IS SELECT ...;
OPEN cursor_name; -- executa a query do cursor e faz com que os valores
-- virem um array
FETCH cursor_name INTO variavel1, variavel2; -- pega uma linha do cursor
CLOSE cursor_name; -- finaliza o cursor
cursor_name%FOUND -- TRUE quando o fetch retorna sucesso
cursor_name%NOTFOUND -- TRUE quando não foi possivel pegar mais nada (ultimo fetch)
cursor_name%ISOPEN -- TRUE quando o cursor esta em uso
cursor_name%ROWCOUNT -- total de fetchs com sucesso
cursor_name%status -- status/eventos do cursor
RAPD(value, total, pad); -- padding de texto
%ROWTYPE -- deixa mais pesad a execucao
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 183</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-183-bf6j6a9j66ef/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-183-bf6j6a9j66ef/</guid><description>&lt;h4 id="qualidade-desoftware"&gt;Qualidade de software&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;modelos de qualidade (semelhante ao ISO) → CMMI, MPS.BR&lt;/li&gt;
&lt;li&gt;trabalho com qualidade = produto de qualidade&lt;/li&gt;
&lt;li&gt;implica: um software confiável, sem defeitos, acessível, seguro,
portável, interoperável(sistema capaz de se comunicar com outros)&lt;/li&gt;
&lt;li&gt;pode ser algo subjetivo ao cliente, sendo necessário estipular as
expectativas e tentar quebra-las&lt;/li&gt;
&lt;li&gt;gerenciamento total da qualidade → atender as expectativas do
cliente; desenvolver processos para melhoria constante&lt;/li&gt;
&lt;li&gt;para garantir a qualidade → usar métodos, técnicas, ferramentas,
versionamento, padrões, métricas, registros, etc.&lt;/li&gt;
&lt;li&gt;controle de qualidade → evitar que produtos defeituosos sejam
entregues&lt;/li&gt;
&lt;li&gt;garantia de qualidade → fazer o software com o minimo de defeitos&lt;/li&gt;
&lt;li&gt;avaliação → classificação dos processos/produtos&lt;/li&gt;
&lt;li&gt;auditoria → verificar se o produto segue os padrões/normas através
de evidências de testes, observações, medições, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="teste-desoftware"&gt;Teste de software&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;objetivo é encontrar erros, e não fazer os testes passarem&lt;/li&gt;
&lt;li&gt;Falha → software não consegue executar sua função (aparente ao
usuário)&lt;/li&gt;
&lt;li&gt;Falta → causa de uma falha&lt;/li&gt;
&lt;li&gt;Erro → instabilidade que vem de uma falta e pode se tornar uma falha&lt;/li&gt;
&lt;li&gt;Dados de teste → amostra do que seria uma entrada real&lt;/li&gt;
&lt;li&gt;Casos de teste → cenários de execução usando os dados de teste e sua
saída esperada&lt;/li&gt;
&lt;li&gt;Eficácia dos testes → quanto mais erros você consegue descobrir com
o menor esforço&lt;/li&gt;
&lt;li&gt;Teste funcional(caixa preta, black box) → coloca o software para
funcionar e vê como ele age com as entradas (analisa partes pequenas
do software, como funções, requisitos)&lt;/li&gt;
&lt;li&gt;Teste Estrutural(caixa branca, white box) → Baseado no código,
analisá o funcionamento interno (complexidade ciclomática, big O,
etc)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="técnicas-para-testes-blackbox"&gt;Técnicas Para testes black box&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;partição por equivalência → quando os possíveis dados de entrada
estão em blocos de válidos e inválidos, então pega-se alguns dados
validos e inválidos para avaliar&lt;/li&gt;
&lt;li&gt;análise de valor limite → quando seus dados também estão divididos
em blocos de válidos e inválidos, mas dessa vez você pega aqueles
que estão no limite entre um bloco e outro&lt;/li&gt;
&lt;li&gt;Tabela de decisão → tabela criada a partir das regras de negócio,
visando testar todos os casos possíveis (diferentes combinações de
entradas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="técnicas-para-testes-whitebox"&gt;Técnicas para testes White box&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;complexidade ciclomática → vê a quantida de desvios do fluxo
principal do programa (quantidade de ifs,for, while, etc). Nesses
casos é necessário criar testes para cada caminho possível. Para
isso podemos usar uma espécie de autômato, e o numero de caminhos é
= numero de transições (E) &amp;mdash; número de estados (N) + 2&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;V = E &amp;mdash; N + 2&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 184</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-184-jc0gib1ffc23/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-184-jc0gib1ffc23/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-184-jc0gib1ffc23/image_292.png"&gt;&lt;/p&gt;
&lt;p&gt;No exemplo acima, temos uma memoria genérica em série.&lt;/p&gt;
&lt;p&gt;Nesse exemplo, temos 4 bancos de memória (B0-B3), 3 barramentos (dados
(D), endereços(A) e saída de dados(O)), além de elementos como DE
(decodificador de endereços), e os componentes (parecidos com uma porta
not) ligados ao bus de saída, representando buffers com um trigger.&lt;/p&gt;
&lt;p&gt;Nesse circuito, podemos setar o valor que queremos no barramento de
dados, podemos configurar o endereço que o dado vai ser guardado no
barramento de endereços. Ao darmos pulsos no clock(do qual foi omitido
aqui), os dados passarão para os componentes, e quando ativarmos o
E(enable, para escrita), o decodificador de endereços usará uma logica
interna para determinar quais bancos serão necessários para guardar os
dados, fazendo com que dados diferentes fiquem em endereços diferentes,
fazendo então com que tenhamos mais endereços para guardar dados do que
em circuitos paralelo).&lt;/p&gt;</description></item><item><title>Ciências da computação dia 185</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/image_293.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/image_294.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/image_295.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/image_296.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/image_297.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/image_298.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/image_299.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/image_300.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/image_301.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-185-998f3hagh237/image_302.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 186</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-186-bic4e9a8j0c3/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-186-bic4e9a8j0c3/</guid><description>&lt;h4 id="estratégias-deteste"&gt;Estratégias de teste&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;teste de unidade → testa a menor unidade do software (classes,
funções, etc) de forma independente&lt;/li&gt;
&lt;li&gt;teste de integração → testa a comunicação entre as partes (entre
classes, por exemplo)&lt;/li&gt;
&lt;li&gt;teste de validação → testa os requisitos&lt;/li&gt;
&lt;li&gt;teste de sistema → coloca o projeto em um sistema próximo do real e
testa-se , por exemplo, requisitos não funcionais&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 187</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-187-d84d396d5aeb/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-187-d84d396d5aeb/</guid><description>&lt;h4 id="procedures"&gt;Procedures&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;procedimentos armazenados (como uma função sem retorno)&lt;/li&gt;
&lt;li&gt;pode ser escrito em PL/SQL, C, JAVA, etc.&lt;/li&gt;
&lt;li&gt;podem ser chamadas por softwares externos&lt;/li&gt;
&lt;li&gt;são compilados&lt;/li&gt;
&lt;li&gt;podem ser agendados&lt;/li&gt;
&lt;li&gt;não é permitido COMMIT, ROLLBACK, SAVEPOINT dentro deles&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;CREATE OR REPLACE procedure_name [parametros] AS
[variaveis]
&amp;lt;bloco PL/SQL&amp;gt;;
-- parâmetros podem ser de entrada(IN) ou de saida(OUT)
-- por padrao ele é IN
&amp;lt;name&amp;gt; IN &amp;lt;type&amp;gt;;
&amp;lt;name&amp;gt; OUT &amp;lt;type&amp;gt;;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="triggers"&gt;Triggers&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;gatilho atrelado à uma tabela&lt;/li&gt;
&lt;li&gt;pode ser atrelado ao evento de INSERT, UPDATE e/ou DELETE&lt;/li&gt;
&lt;li&gt;não necessita de privilégios&lt;/li&gt;
&lt;li&gt;não é permitido COMMIT, ROLLBACK, SAVEPOINT dentro deles&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;BEFORE, AFTER, statement, row -- trigger type
INSERT, UPDATE, DELETE -- trigger event
BEFORE INSERT OR UPDATE OF salario, funcao ON empregado
-- type colunas tabela
-- WHEN pode ser usado para dar uma restrição de quando o trigger vai ser
-- rodado, exemplo:
BEFORE INSERT OR UPDATE OF salario, funcao ON empregado WHEN salario &amp;gt; 10000
-- ao usar o BEFORE, você pode pegar os novos dados passados pela query usando
-- o :NEW. essa clausula dara para você acesso à todos os novos dados
-- para a clausula WHEN no inicio, não é necessário usar :NEW basta usar NEW
BEFORE INSERT OR UPDATE OF salario, funcao ON empregado
WHEN NEW.salario &amp;gt; 10000
...
IF(:NEW.salario == 2000) THEN ....
....
-- como certas queries podem modificar varias linhas
-- pode ser necessário utilizar a clausula FOR EACH ROW, aplicando o trigger
-- para cada row modificada
CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT OR UPDATE
OF salario, funcao ON empregado FOR EACH ROW
WHEN NEW.salario &amp;gt; 1000
....;
-- alem do NEW, há também o OLD, quando você vai deletar ou modificar algo
-- sendo assim:
-- INSERT: NEW
-- UPDATE: NEW OLD
-- DELETE: OLD
-- obs: apenas os dados adicionados/editados são acessíveis por essas clausulas
CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT OR UPDATE
OF salario, funcao ON empregado FOR EACH ROW
WHEN NEW.salario &amp;gt; 1000 AND OLD.funcao = &amp;#39;RH&amp;#39;
....;
-- se um trigger possui mais de um evento atrelado a ele, você possui três
-- variaveis para verificar qual foi o evento:
INSERTING, UPDATING e DELETING
CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT OR UPDATE
OF salario, funcao ON empregado FOR EACH ROW
WHEN NEW.salario &amp;gt; 1000 AND OLD.funcao = &amp;#39;RH&amp;#39;
BEGIN
IF INSERTING THEN
...
ELSE
...
END IF;
....;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 187</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-187-he82626j24gc/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-187-he82626j24gc/</guid><description>&lt;h4 id="generalização-dos-limites-fundamentais"&gt;Generalização dos limites fundamentais&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-187-he82626j24gc/image_303.png"&gt;&lt;/p&gt;
&lt;h4 id="continuidade"&gt;Continuidade&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;funções deriváveis&lt;/li&gt;
&lt;li&gt;uma função pode no geral não ser continua, mas em algum pode ela
pode ser&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="função continua em\u00a0a" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-187-he82626j24gc/image_304.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="algumas funções não continuas" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-187-he82626j24gc/image_305.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;você até pode simplificar a função original, mas sempre pense se
isso não implicará em mudanças no domínio&lt;/li&gt;
&lt;li&gt;existem casos onde a função é definida em sf(a), mas em f(a) não&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-187-he82626j24gc/image_306.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 188</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-188-2c1fc6ij698b/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-188-2c1fc6ij698b/</guid><description>&lt;h4 id="maquina-deturing"&gt;Maquina de Turing&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;automato capaz de representar qualquer algoritmo computacional&lt;/li&gt;
&lt;li&gt;é um AFD&lt;/li&gt;
&lt;li&gt;não precisa de transições para todos os estados&lt;/li&gt;
&lt;li&gt;ele começa a ler a fita a partir de um símbolo inicial (como um
&lt;strong&gt;δ)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;cada transição tem 3 parâmetros(leia -&amp;gt; escreva, vá)&lt;/li&gt;
&lt;li&gt;vá pode ser direita ou esquerda&lt;/li&gt;
&lt;li&gt;quando você não quer escrever outro valor, você coloca o mesmo (A
-&amp;gt; A)&lt;/li&gt;
&lt;li&gt;pense em uma fita infinita, do qual uma cabeça de leitura pode ler,
modificar valores e ir para a direita ou esquerda&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-188-2c1fc6ij698b/image_307.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 19</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-19-4dgh0g4gb5i2/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-19-4dgh0g4gb5i2/</guid><description>&lt;h3 id="continuando-códigos-ponderados"&gt;continuando códigos ponderados&lt;/h3&gt;
&lt;p&gt;código auto-complementável → quando um código ponderado tem o valor 1111
para o decimal 9 e quando você faz 9 &amp;mdash; n é só você inverter n
(inverter 0 com 1 e 1 com 0)&lt;/p&gt;
&lt;p&gt;ex:&lt;/p&gt;
&lt;p&gt;pesos respectivos(3, -1, 1, 6)&lt;/p&gt;
&lt;p&gt;1 | 0 0 1 0&lt;/p&gt;
&lt;p&gt;2 | 1 1 0 0&lt;/p&gt;
&lt;p&gt;7 | 0 0 1 1 (9&amp;ndash;2 (2 é o n))&lt;/p&gt;
&lt;p&gt;8 | 11 0 1 (9&amp;ndash;1)&lt;/p&gt;</description></item><item><title>Ciências da computação dia 190</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-190-bjcb630h1f5d/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-190-bjcb630h1f5d/</guid><description>&lt;h4 id="scriptinterpretado"&gt;Script(interpretado)&lt;/h4&gt;
&lt;p&gt;Em linguagens de script, os comados são interpretados e executados linha
a linha pelo interpretador.&lt;/p&gt;
&lt;h4 id="compilação"&gt;Compilação&lt;/h4&gt;
&lt;p&gt;Todo o código é escrito e depois o compilador procura por erros e traduz
os comandos para linguagem de máquina.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-190-bjcb630h1f5d/image_308.png"&gt;&lt;/p&gt;
&lt;h3 id="partes-do-compilador"&gt;Partes do compilador&lt;/h3&gt;
&lt;h4 id="análise"&gt;Análise&lt;/h4&gt;
&lt;p&gt;Na parte da análise, o compilador verifica se o código está
sintaticamente e semanticamente correto, caso negativo os erros são
mostrados para o usuário.&lt;/p&gt;
&lt;p&gt;Além disso, aqui é criado uma representação intermediária do programa em
formato de árvore, assim como uma tabela com os símbolos usados.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 191</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-191-73bf5d54b5aj/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-191-73bf5d54b5aj/</guid><description>&lt;h4 id="sistemas-de-informação"&gt;Sistemas de informação&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;qualquer sistema (digital ou não) que armazena, coleta, processa e
distribui informações para a tomada de decisão.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="elementos de um sistema de informação" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-191-73bf5d54b5aj/image_311.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;O ambiente pode ser visto como o local onde o sistema está rodando&lt;/li&gt;
&lt;li&gt;o feedback pode ser visto como o estímulo de retorno do usuário&lt;/li&gt;
&lt;li&gt;benefícios → aumento da eficiência, monitoramento, coleta de
informações, etc.&lt;/li&gt;
&lt;li&gt;componente do SI → pessoas, hardware, software, dados, rede&lt;/li&gt;
&lt;li&gt;tipos de usuários do SI → especialista (quem conhece as Tecnologias)
e usuário final (quem não sabe nada de tecnologia, mas precisa usar
o sistema)&lt;/li&gt;
&lt;li&gt;Pessoas de culturas diferentes usam os sistemas de maneiras
diferentes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dimensões-do-sistema-de-informação"&gt;Dimensões do sistema de informação&lt;/h3&gt;
&lt;h4 id="organização"&gt;organização&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;como a empresa está organizada&lt;/li&gt;
&lt;li&gt;Para isso existem 2 tipos de sistemas: sob medida para a empresa e o
de prateleira (comprado no mercado e a empresa precisa se moldar a
ele)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tecnologia"&gt;Tecnologia&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Tudo envolvendo tecnologia dentro da empresa, desde software ate
hardware&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pessoas"&gt;Pessoas&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;tudo envolvendo as pessoas do projeto&lt;/li&gt;
&lt;li&gt;cultura, organização, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="notas"&gt;Notas&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;SAP é um ERP&lt;/li&gt;
&lt;li&gt;Monolito → sistema funciona como um bloco único&lt;/li&gt;
&lt;li&gt;Microserviços → sistema quebrado em pequenos serviços realizando uma
única função, possuindo seus próprios recursos, como Banco de dados&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 192</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-192-224hjjigdh2i/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-192-224hjjigdh2i/</guid><description>&lt;h4 id="mobile"&gt;Mobile&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;API de android mais antigos dão suporte para mais aparelhos, contudo
os recursos disponíveis nativamente são menores&lt;/li&gt;
&lt;li&gt;sempre melhor usar APIs da própria SDK do que de terceiros&lt;/li&gt;
&lt;li&gt;package name define o nome do app na loja &amp;ldquo;com.meu.exemplo&amp;rdquo;&lt;/li&gt;
&lt;li&gt;nativo → usa a SDK oficial da plataforma (Kotlin/Java em android e
Objective-C/Swift em IOS)&lt;/li&gt;
&lt;li&gt;hibrido → uma única base de dados consegue criar apps para ambas as
plataformas (Xamarin, IONIC, React Native, Flutter, etc.)&lt;/li&gt;
&lt;li&gt;UI → geralmente é fornecido um padrão pela própria SDK&lt;/li&gt;
&lt;li&gt;UX → experiencia do usuário, geralmente também é seguido um padrão
da plataforma em questão (leva em consideração o contexto do uso do
APP também)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="business"&gt;Business&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;mobile é nichado&lt;/li&gt;
&lt;li&gt;Quando você não quer que algo seja usado (muito) você
dificulta/esconde&lt;/li&gt;
&lt;li&gt;Churn → perca de usuários&lt;/li&gt;
&lt;li&gt;Taxa de retenção → quantos usuários ficam/usam o app&lt;/li&gt;
&lt;li&gt;sessão → quantos users entram no app diariamente&lt;/li&gt;
&lt;li&gt;ARR/FTE (quanto faturo no ano / número de funcionários) → quanto
maior maior o prejuizo (por isso de alguns layoffs)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 193</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-193-748fif6hef4a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-193-748fif6hef4a/</guid><description>&lt;h4 id="derivada"&gt;Derivada&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-193-748fif6hef4a/image_312.png"&gt;&lt;/p&gt;
&lt;p&gt;Se fizermos uma curva e passarmos uma linha secante (que toca apenas
dois pontos) com os pontos P e Q nessa curva, teremos um triângulo
retângulo. Com isso, podemos descobrir a tangente desse angulo, usando
as coordenadas x e y relativos aos pontos P e Q.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-193-748fif6hef4a/image_313.png"&gt;&lt;/p&gt;
&lt;p&gt;para encontrarmos então a reta tangente(reta que encosta em apenas um
ponto), podemos aproximar o ponto Q do ponto P. Com isso, a razão cada
vez mais se aproxima da indefinição 0/0.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 194</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-194-093iahb882c6/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-194-093iahb882c6/</guid><description>&lt;h3 id="registradores"&gt;Registradores&lt;/h3&gt;
&lt;p&gt;Para um registrador geral com entrada serial ou paralela podemos fazer o
seguinte:&lt;/p&gt;
&lt;h4 id="guardar-valor-de-formaparalela"&gt;guardar valor de forma paralela&lt;/h4&gt;
&lt;p&gt;seta o LOAD=1, ENABLE=X, e coloca-se os dados no barramento de dados,
precisando por fim apenas de um pulso do clock para inserir os dados.&lt;/p&gt;
&lt;h4 id="guardar-valor-de-formaserial"&gt;guardar valor de forma serial&lt;/h4&gt;
&lt;p&gt;seta o LOAD=0, ENABLE=1. Então, configura-se o tipo de shift, LEFT=1
para shift left e LEFT=0 para shift right, lembrando que shift left
multiplica o valor por 2 e shift right divide o valor por 2.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 195</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-195-dd0fdj8ihah5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-195-dd0fdj8ihah5/</guid><description>&lt;h4 id="compilador"&gt;Compilador&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;é difícil reinventar a sintaxe de uma linguagem, por isso várias
linguagens utilizam estruturas semelhantes, como if, for, etc.&lt;/li&gt;
&lt;li&gt;métodos formais → especificação sintática (autômatos com regras pré
definidas)&lt;/li&gt;
&lt;li&gt;métodos informais → semântica (necessário entender o contexto do
programa para identificar os erros)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="expressões"&gt;Expressões&lt;/h4&gt;
&lt;p&gt;poderíamos configurar regras de expressões da seguinte maneira&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;E = conjunto das expressões
1 - a e b são expressões (a,b ∈ E)
2 - se a e b são expressões então a+b e a*b também são(a+b, a*b ∈ E)
3 - (a) também é uma expressão ((a) ∈ E)
sendo assim E pode ser --&amp;gt; a | b | E+E | E*E | (E)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;com essas regras podemos montar uma árvore para, por exemplo, a seguinte
expressão, a + (a * b)&lt;/p&gt;</description></item><item><title>Ciências da computação dia 196</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-196-73di3i75g5g2/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-196-73di3i75g5g2/</guid><description>&lt;h4 id="tipos-desi"&gt;Tipos de SI&lt;/h4&gt;
&lt;p&gt;cada tipo de SI tem uma tarefa especifica que é executada&lt;/p&gt;
&lt;p&gt;&lt;img alt="camadas de uma organização" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-196-73di3i75g5g2/image_322.png"&gt;&lt;/p&gt;
&lt;p&gt;Transacional → realiza transações (vendas, reservas, folha de pagamento,
etc.)&lt;/p&gt;
&lt;p&gt;Especialista → armazena dados que geram conhecimento para a empresa
(como dados de pesquisa de satisfação), podendo então uma AI ser
utilizada aqui para dar insights. a parte operacional da organização
alimenta o sistema enquanto a gerancial usa&lt;/p&gt;
&lt;p&gt;Gerenciais → gera relatórios para a gerencia, trabalhando com problemas
estruturados, sendo ferramentas analíticas&lt;/p&gt;</description></item><item><title>Ciências da computação dia 197</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-197-gh75e25g9gh/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-197-gh75e25g9gh/</guid><description>&lt;ul&gt;
&lt;li&gt;para publicar um app usando login de terceiros, você precisa ter
também o login da apple&lt;/li&gt;
&lt;li&gt;para acessar internet e outras coisas, você precisa pedir permissão
para o usuário, no caso do android isso está no AndroidManifest.xml&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 198</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-198-j020jh573i6h/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-198-j020jh573i6h/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Toda função continua em um ponto x1 é derivável naquele ponto&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="regra-da-função-constante"&gt;regra da função constante&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-198-j020jh573i6h/image_323.png"&gt;&lt;/p&gt;
&lt;h4 id="regra-dapotência"&gt;Regra da potência&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-198-j020jh573i6h/image_324.png"&gt;&lt;/p&gt;
&lt;h4 id="regra-do-produto-por-uma-constante"&gt;Regra do produto por uma constante&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-198-j020jh573i6h/image_325.png"&gt;&lt;/p&gt;
&lt;h4 id="regra-dasoma"&gt;Regra da soma&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-198-j020jh573i6h/image_326.png"&gt;&lt;/p&gt;
&lt;h4 id="regra-doproduto"&gt;Regra do produto&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-198-j020jh573i6h/image_327.png"&gt;&lt;/p&gt;
&lt;h4 id="regra-dadivisão"&gt;Regra da divisão&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-198-j020jh573i6h/image_328.png"&gt;&lt;/p&gt;
&lt;h4 id="regra-da-potêncianegativa"&gt;Regra da potência negativa&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-198-j020jh573i6h/image_329.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 199</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-199-67hdf595dh1i/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-199-67hdf595dh1i/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-199-67hdf595dh1i/image_330.png"&gt;&lt;/p&gt;
&lt;p&gt;Para interconectarmos dois registradores acumuladores de entrada
serial/paralela, primeiro precisamos interconectar o barramento de
entrada e saída e repartir parte dos dados para cada registrador. Dessa
forma, conseguimos fazer com que a entrada paralela funcione
adequadamente usando os dois registradores em conjunto.&lt;/p&gt;
&lt;p&gt;Já para a entrada serial, precisamos de uma lógica a mais. Para o shift
left, começamos no registrador menos significativo (registrador 0), e
então pegamos a saída mais significava dele e jogamos para o próximo
registrador (nesse caso o registrador 1), ligando o na entrada de
shift_left. Assim toda vez que ultimo dado for 1, esse dado será
repassado para o próximo registrado e o ciclo poderá ser feito. Já no
caso do shift_right, tomamos ações semelhantes, mas dessa vez pegamos do
registrador mais significativo (registrador 1), e do valor menos
significativo da saída dele, interligamos com o shift_right do próximo
registrador.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 2</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-2-b5jcj2979j5a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-2-b5jcj2979j5a/</guid><description>&lt;p&gt;o hardware e a história da computação de uma forma geral.&lt;/p&gt;
&lt;h3 id="um-pedaçohistória-da-computação-emordem"&gt;(um pedaço)História da computação em ordem&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Pessoas começaram a fazer contas para a troca de mercadorias&lt;/li&gt;
&lt;li&gt;Passaram a escrever e fazer cálculos usando a base decimal&lt;/li&gt;
&lt;li&gt;Criaram o ábaco para cálculos mais rápidos e fáceis (300 A.C.)&lt;/li&gt;
&lt;li&gt;Primeira calculadora (em 1642 criada por Blaise Pascal da qual se
chamava Pascaline)&lt;/li&gt;
&lt;li&gt;calculo do censo dos EUA (1890, pela atual IBM)&lt;/li&gt;
&lt;li&gt;calculo da trajetória de misseis (ENIAC, 1945)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="conceitos-passados"&gt;&lt;strong&gt;Conceitos passados&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Computador → máquina repleta de circuitos lógicos digitais que executam
programas lógicos&lt;/p&gt;</description></item><item><title>Ciências da computação dia 20</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-20-42ebhdc8fcai/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-20-42ebhdc8fcai/</guid><description>&lt;p&gt;tautologia → quando todos os elementos de uma tabela verdade ou de uma
coluna da tabela verdade são &lt;strong&gt;verdadeiros&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;contradição → quanto todos os elementos de uma tabela verdade ou de uma
coluna da tabela verdade são &lt;strong&gt;falsos&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 201</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-201-30fdjdh89961/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-201-30fdjdh89961/</guid><description>&lt;h4 id="arquitetura"&gt;Arquitetura&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ajuda na manutenção de sistemas complexos&lt;/li&gt;
&lt;li&gt;certas linguagens podem não funcionar bem com certas arquiteturas&lt;/li&gt;
&lt;li&gt;técnicas e estruturas para organizar componentes e suas interações&lt;/li&gt;
&lt;li&gt;interações entre as partes é feito de forma padrão (interface)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="componentes"&gt;Componentes&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;uma abstração do mundo real no sistema&lt;/li&gt;
&lt;li&gt;precisam ser específicos&lt;/li&gt;
&lt;li&gt;se crio um componente cliente, em todas as camadas eu tenho q ter um
componente cliente também&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="camada"&gt;Camada&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;parte usada para gerenciar a arquitetura&lt;/li&gt;
&lt;li&gt;separação de acordo com os interesses, em partes comuns do código&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Um sistema é um conjunto de subsistemas;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 202</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-202-h17j6de48g16/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-202-h17j6de48g16/</guid><description>&lt;h4 id="4-componentes-de-um-appandroid"&gt;4 componentes de um app android&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;atividade → o que está sendo executado no momento. ao transicionar
de uma atividade (tela) para outra, a anterior é fechada. Para
transicionar de uma atividade para outra é necessário criar uma
intenção (Intent).&lt;/li&gt;
&lt;li&gt;serviços → tudo que roda em plano de fundo&lt;/li&gt;
&lt;li&gt;broadcast receivers → app é notificado quando algo ocorrer no
sistema&lt;/li&gt;
&lt;li&gt;provedores de conteúdo → API, BD, internet, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="layout"&gt;Layout&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;constraint layout → posiciona um elemento baseado em outro&lt;/li&gt;
&lt;li&gt;você pode ter diferentes tipos de layouts dentro de outro layout&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="context"&gt;Context&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;passa para o sistema android, quem está chamando uma certa função
(tela)&lt;/li&gt;
&lt;li&gt;isso deixa possível um app conversar com outro&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pilha-devolta"&gt;Pilha de volta&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;toda vez que uma nova atividade é aberta, ela é empilhada&lt;/li&gt;
&lt;li&gt;quando você clica para voltar a atividade do topo é desempilhada e
você volta para a atividade anterior&lt;/li&gt;
&lt;li&gt;A primeira atividade da pilha é o próprio Android&lt;/li&gt;
&lt;li&gt;Para não deixar o usuário voltar à uma certa tela, você deve
destrui-la&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 203</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-203-835e0a68532g/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-203-835e0a68532g/</guid><description>&lt;ul&gt;
&lt;li&gt;view não interage com o banco de dados&lt;/li&gt;
&lt;li&gt;relação com banco de dados deve ser feita através de controllers&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 204</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-204-9dj4e5jcd32d/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-204-9dj4e5jcd32d/</guid><description>&lt;ul&gt;
&lt;li&gt;nunca coloque textos puros, sempre utilize as labels configuradas em
strings.xml, pois assim fica mais de fazer traduções depois&lt;/li&gt;
&lt;li&gt;ciclo de vida de atividades → como a atividade vai iniciar e
terminar(oncreate, onpause, onresume, ondestroy, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="https://developer.android.com/guide/components/activities/activity-lifecycle" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-204-9dj4e5jcd32d/image_331.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;banco de dados padrão é o sqlite(local)&lt;/li&gt;
&lt;li&gt;cache é feito através do SharedPreferences (chave-valor)&lt;/li&gt;
&lt;li&gt;Pensando em como o app deve agir em relação a login, depende de que
tipo de app é e deve ser levado em consideração que é algo pessoal.
Sendo assim, apps de bancos pendem para logar a cada certo período
de tempo, já apps como redes sociais não vale a pena, já que,
teoricamente, só o dono irá usar&lt;/li&gt;
&lt;li&gt;Jetcompose → nova maneira de criar widgets usando código kotlin&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 205</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-205-1gj106i0h8ja/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-205-1gj106i0h8ja/</guid><description>&lt;p&gt;a reta normal é uma reta que faz 90° com a tangente.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-205-1gj106i0h8ja/image_332.png"&gt;&lt;/p&gt;
&lt;p&gt;é possível ver que a reta normal e tangente são inversas e opostas uma a
outra.sendo assim, o fato m das retas segue a relação:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-205-1gj106i0h8ja/image_333.png"&gt;&lt;/p&gt;
&lt;p&gt;Com isso, podemos encontrar a equação da reta usando os dados da reta
tangente e essa relação.&lt;/p&gt;
&lt;p&gt;Retas paralelas significa que possuem a mesma inclinação m.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 206</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-206-h7j6dfgb1i6b/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-206-h7j6dfgb1i6b/</guid><description>&lt;p&gt;Uma gramatica é composta de uma tupla com 4 items:&lt;/p&gt;
&lt;p&gt;G = N, Σ, P, S&lt;/p&gt;
&lt;p&gt;onde G é a gramática, N são os símbolos não terminais, Σ o alfabeto
(simbolos terminais), P são as regras de derivação e S o símbolo
inicial.&lt;/p&gt;
&lt;p&gt;os símbolos terminais são aqueles que não possuem qualquer derivação, já
os simbolos não terminais são aqueles que podem ser derivados para
outros símbolos (ex: A(não terminal)-&amp;gt; b(terminal))&lt;/p&gt;</description></item><item><title>Ciências da computação dia 207</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-207-ab13jbch6ige/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-207-ab13jbch6ige/</guid><description>&lt;h4 id="scaffolding-dotnet"&gt;Scaffolding dotnet&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;cria um CRUD em poucos comandos a partir de um model.&lt;/li&gt;
&lt;li&gt;liga com banco de dados, cria controller, views, etc.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 208</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-208-d13d08188h04/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-208-d13d08188h04/</guid><description>&lt;h4 id="derivadas-laterais"&gt;derivadas laterais&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;uma função é derivavel em x se suas derivadas laterias são iguais&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-208-d13d08188h04/image_336.png"&gt;&lt;/p&gt;
&lt;h4 id="derivada-de-funções-compostas"&gt;Derivada de funções compostas&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-208-d13d08188h04/image_337.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 209</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-209-4aj176afj959/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-209-4aj176afj959/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-209-4aj176afj959/image_338.png"&gt;&lt;/p&gt;
&lt;h4 id="úteis"&gt;Úteis&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-209-4aj176afj959/image_339.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 21</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-21-2df18fj29677/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-21-2df18fj29677/</guid><description>&lt;p&gt;while →geralmente usado quando você não tem uma quantidade determinada
de loops que você vai ter que fazer (quando por exemplo você precisa de
uma condição para parar)&lt;/p&gt;
&lt;p&gt;for → quando você sabe exatamente a quantidade de vezes que você precisa
rodar um bloco de código&lt;/p&gt;
&lt;p&gt;No entanto esses dois podem ser usados também dependendo da natureza do
problema e da sua lógica&lt;/p&gt;</description></item><item><title>Ciências da computação dia 210</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-210-7205j03g7j7d/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-210-7205j03g7j7d/</guid><description>&lt;h4 id="análise-sintática"&gt;Análise sintática&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;segunda fase da compilação&lt;/li&gt;
&lt;li&gt;usa gramática livre de contexto (por permitir recursões e outras
coisas)&lt;/li&gt;
&lt;li&gt;dada uma gramática G e uma sentença S, o analisador identifica se S
∈ G&lt;/li&gt;
&lt;li&gt;recebe a lista de tokens da primeira fase&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="métodos-de-derivação"&gt;Métodos de derivação&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;a esquerda → faz a substituição do simbolo não terminal a partir do
lado esquerdo&lt;/li&gt;
&lt;li&gt;a direita → faz a substituição do simbolo não terminal a partir do
lado direito&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# a esquerda
S -&amp;gt; S * S
S -&amp;gt; a * S
S -&amp;gt; a * a
# a direita
S -&amp;gt; S * S
S -&amp;gt; S * a
S -&amp;gt; a * a
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;pode ser visto em formato de árvore (AST (arvore sintatica
abstrata)) ou parse tree&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="ast"&gt;AST&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;símbolos não terminais criam os ramos da árvore&lt;/li&gt;
&lt;li&gt;símbolos terminais são as folhas&lt;/li&gt;
&lt;li&gt;raiz é o símbolo inicial&lt;/li&gt;
&lt;li&gt;niveis mais baixos da árvore determinam qual a ordem de prescedencia
das operaçoes (de baixo para cima)&lt;/li&gt;
&lt;li&gt;deve seguir todo o código fonte sem dar erros antes de analisar tudo&lt;/li&gt;
&lt;li&gt;apresenta a hierarquia de S&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="exmplo de árvore para\u00a0a+a+a" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-210-7205j03g7j7d/image_340.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 211</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-211-eee0ce04b7i/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-211-eee0ce04b7i/</guid><description>&lt;h4 id="migrations"&gt;Migrations&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Nome padrão da primeira migration é InitialCreate&lt;/li&gt;
&lt;li&gt;seta a configuração do banco (tabelas, permissões etc)&lt;/li&gt;
&lt;li&gt;consegue voltar à migrações antigas caso algo de errado&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="visões-dosistema"&gt;Visões do sistema&lt;/h3&gt;
&lt;h4 id="lógica"&gt;lógica:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;descrição de requisitos comportamentais do sistema&lt;/li&gt;
&lt;li&gt;abstrações&lt;/li&gt;
&lt;li&gt;diagrama de classes e diagrama de sequência&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="implementação"&gt;implementação&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;descrição de modulos&lt;/li&gt;
&lt;li&gt;diagrama de módulos&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="implantação-física"&gt;implantação (física)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;hardware usado, redes&lt;/li&gt;
&lt;li&gt;como será instalado&lt;/li&gt;
&lt;li&gt;requisitos não funcionais&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="processos"&gt;processos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;como o processos de um sistema se comunicam&lt;/li&gt;
&lt;li&gt;diagrama de atividade&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="casos-deuso"&gt;casos de uso&lt;/h4&gt;
&lt;p&gt;Desde o começo, pense em como o sistema vai funcionar&lt;/p&gt;</description></item><item><title>Ciências da computação dia 212</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-212-510h6j3d4ce4/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-212-510h6j3d4ce4/</guid><description>&lt;ul&gt;
&lt;li&gt;Flutter segue a mesma ideia de pilhas de atividades, por isso para
mudar de tela é usado o push e para voltar o pop&lt;/li&gt;
&lt;li&gt;ter um PWA é estratégico para certas empresas&lt;/li&gt;
&lt;li&gt;é mais fácil primeiro pensar em mobile e depois ir para
desktop(mobile first)&lt;/li&gt;
&lt;li&gt;PWA de empresas grandes são pensados para ter operações básicas e
forçar o usuário a baixar o app&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 213</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-213-8ca4ii56g02i9/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-213-8ca4ii56g02i9/</guid><description>&lt;h4 id="acréscimo"&gt;Acréscimo&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-213-8ca4ii56g02i9/image_343.png"&gt;&lt;/p&gt;
&lt;p&gt;O acréscimo pode ser visto o quanto x varia e o quanto y varia em um
certo intervalo. Sendo assim Δx e Δy são os acréscimos em x e y
respectivamente.&lt;/p&gt;
&lt;h4 id="diferencial"&gt;Diferencial&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-213-8ca4ii56g02i9/image_344.png"&gt;&lt;/p&gt;
&lt;p&gt;O diferencial pode ser visto então como a relação entre o acréscimos.&lt;/p&gt;
&lt;p&gt;Podemos ver também que ao correlacionar os diferenciais, encontramos a
notação de Leibniz para derivadas.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-213-8ca4ii56g02i9/image_345.png"&gt;&lt;/p&gt;
&lt;p&gt;Com o diferencial podemos aproximar raízes:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-213-8ca4ii56g02i9/image_346.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 214</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-214-d489egfc42b4/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-214-d489egfc42b4/</guid><description>&lt;h3 id="asd-com-retrocesso"&gt;ASD com retrocesso&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;começa pela raiz da árvore e vai até as folhas&lt;/li&gt;
&lt;li&gt;visita os ramos da esquerda para a direita&lt;/li&gt;
&lt;li&gt;A → &lt;strong&gt;α&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="processo"&gt;Processo&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;expande o simbolo não terminal&lt;/li&gt;
&lt;li&gt;emparelha com a entrada e verifica se a regra pode se encaixar, se
não ele retrocede e tenta a próxima&lt;/li&gt;
&lt;li&gt;tenta todas as possibilidades&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-214-d489egfc42b4/image_349.png"&gt;&lt;/p&gt;
&lt;h4 id="características"&gt;Características&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;difícil de manter os estados para retrocesso&lt;/li&gt;
&lt;li&gt;mais lento&lt;/li&gt;
&lt;li&gt;mais poderoso&lt;/li&gt;
&lt;li&gt;ineficiente na maioria dos casos&lt;/li&gt;
&lt;li&gt;implementação complicada&lt;/li&gt;
&lt;li&gt;problemas para gerenciar a tabela de símbolos&lt;/li&gt;
&lt;li&gt;número de operação cresce exponencialmente&lt;/li&gt;
&lt;li&gt;não permite recursão à esquerda&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="para-remover-o-retrocesso"&gt;Para remover o retrocesso&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;A → xA (terminal sempre no começo)&lt;/li&gt;
&lt;li&gt;deixar terminais distintos para a produção (mais fácil de
identificar qual o próximo, baseado no caractere atual)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-214-d489egfc42b4/image_350.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 215</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-215-g1030i8i3d9c/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-215-g1030i8i3d9c/</guid><description>&lt;h4 id="diferencial"&gt;Diferencial&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-215-g1030i8i3d9c/image_351.png"&gt;&lt;/p&gt;
&lt;h4 id="taxa-devariação"&gt;Taxa de variação&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;uma das aplicações de derivadas&lt;/li&gt;
&lt;li&gt;usa as derivadas para encontrar a variação instantânea&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-215-g1030i8i3d9c/image_352.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 216</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-216-44253564ihjc/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-216-44253564ihjc/</guid><description>&lt;h4 id="ll1"&gt;LL(1)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;gramática da esquerda para a direita&lt;/li&gt;
&lt;li&gt;de cima para baixo (top-down) ou bottom-up&lt;/li&gt;
&lt;li&gt;pega sempre o primeiro símbolo não terminal mais à esquerda&lt;/li&gt;
&lt;li&gt;não aceita recursão à esquerda&lt;/li&gt;
&lt;li&gt;o analisador utiliza uma estrutura de pilha para verificar a
entrada, além de uma tabela first-follow&lt;/li&gt;
&lt;li&gt;O sistema da pilha começa com um determinado símbolo de controle
($) e vai empilhando e desempilhando os caracteres conforme as
regras, a entrada é válida quando sobra apenas o caractere de
controle na pilha&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="first"&gt;First&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;primeiro caractere que uma regra pode ter&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;S -&amp;gt; AB
A -&amp;gt; b | empty
B -&amp;gt; a
First - table
S | {a,b}
A | {b, empty}
B | {a}
repare que em S, não temos só o b, uma vez que A pode ser vazio também,
sendo assim, caso A seja vazio, o primeiro caractere será a
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="follow"&gt;Follow&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;próximo caractere após certo simbolo não terminal a direta&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;S -&amp;gt; AB
A -&amp;gt; b | empty
B -&amp;gt; a
S | {$}
A | {a}
B | {$}
De uma forma algoritmica, podemos representar o padrão do follow da
seguinte forma:
```
adicionar $ para o conjunto do simbolo inicial
para cada regra existente faça
se termina com o B (A -&amp;gt; αB) então
Follow de B tem tudo do Follow de A
senão (A -&amp;gt; αBβ)
Follow de B possui o First de β
se &amp;#39;empty&amp;#39; está em First de β então
Follow de B tem tudo do Follow de A
```
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 217</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-217-ei0494ch681j/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-217-ei0494ch681j/</guid><description>&lt;h4 id="integral-indefinida-antiderivada"&gt;Integral indefinida (antiderivada)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;função inversa da derivada&lt;/li&gt;
&lt;li&gt;uma função é chamada de primitiva quando tomamos a integral de uma
função que foi derivada previamente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-217-ei0494ch681j/image_353.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;uma integral pode ter infinitas funções primitivas&lt;/li&gt;
&lt;li&gt;toda integral sempre haverá um termo no final +c, isso pois ao fazer
a derivada de algo as constantes são eliminadas, e para voltar a
função original precisamos ter as constantes lá&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-217-ei0494ch681j/image_354.png"&gt;&lt;/p&gt;
&lt;p&gt;Dessa forma, sempre que tivermos uma função primitiva e adicionarmos uma
constante, essa nova função também será uma primitiva. Assim como se
fizermos a diferença entre duas primitivas, essa será a constante.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 218</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-218-125947b37fjf/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-218-125947b37fjf/</guid><description>&lt;h4 id="tabela-deanálise"&gt;Tabela de Análise&lt;/h4&gt;
&lt;p&gt;Dada uma gramatica, é analisado o conjunto First e Follow de cada regra&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-218-125947b37fjf/image_358.png"&gt;&lt;/p&gt;
&lt;p&gt;Após isso, podemos utilizar esses símbolos de First e Follow para
descrever qual a próxima regra quando encontrar certo token na sequência
de entrada&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-218-125947b37fjf/image_359.png"&gt;&lt;/p&gt;
&lt;p&gt;Nessa tabela, adicionamos todas as regras de baseando-se nos caracteres
de First, contudo ao encontrar ε, é necessário preencher todas os
símbolos de Follow com &lt;em&gt;simbolo → ε&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 219</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-219-3ai97e4ie8ag/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-219-3ai97e4ie8ag/</guid><description>&lt;ul&gt;
&lt;li&gt;A cor da Status Bar é baseada na cor da App Bar&lt;/li&gt;
&lt;li&gt;Arquitetura da informação em UX é basicamente quais dados serão
mostrados para o usuário&lt;/li&gt;
&lt;li&gt;Login manual → email e senha&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 22</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-22-bhbdb6188d4b/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-22-bhbdb6188d4b/</guid><description>&lt;p&gt;Para detectar e corrigir um erro e necessário que o código utilizado
tenha distância mínima de 3&lt;/p&gt;
&lt;p&gt;maneiras de detectar um erro:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;quando o código recebido não está na tabela&lt;/li&gt;
&lt;li&gt;quando a paridade do código recebido é diferente da usada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;código 2 em 5&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;no código 2 em 5, o valor zero é representado por 0 0 0 11, isso pois os
dois uns tem os pesos 4 e 7 respectivamente, e quando somados dão o
valor 11, por representar um número maior que 10 (que é base que esta
sendo representada pelo código) ele interpreta como 0&lt;/p&gt;</description></item><item><title>Ciências da computação dia 220</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-220-e608i9iiigi6/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-220-e608i9iiigi6/</guid><description>&lt;h4 id="princípios-de-arquitetura"&gt;Princípios de arquitetura&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;usado para criar aplicações limpas e de fácil manutenção&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="separação-de-interesses"&gt;Separação de interesses&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;separa as partes de acordo com o que cada um executa(especialização)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="design-de-arquitetura"&gt;Design de arquitetura&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;sempre siga a arquitetura escolhida a risca&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="encapsulamento"&gt;Encapsulamento&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;elementos privados&lt;/li&gt;
&lt;li&gt;parte encapsulada recebe interfaces para se comunicar com o resto&lt;/li&gt;
&lt;li&gt;não é necessário saber como as partes agem por dentro&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="inversão-de-dependência"&gt;Inversão de dependência&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;um módulo que depende de outro, não pode ter detalhes de
implementação desse outro, esse deve ser mais genérico&lt;/li&gt;
&lt;li&gt;módulos se comunicam através de uma interface padrão, assim as
classes vão ficar dependentes das interfaces, mas não dos detalhes
da outra classe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://learn.microsoft.com/pt-br/dotnet/architecture/modern-web-apps-azure/architectural-principles\"&gt;sem inversão de\ndependência&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-220-e608i9iiigi6/image_361.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 221</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-221-ddc7hajfdfef/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-221-ddc7hajfdfef/</guid><description>&lt;h4 id="compiladores"&gt;Compiladores&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;são divididos em duas partes: análise e síntese&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 222</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-222-jd760a0a6344/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-222-jd760a0a6344/</guid><description>&lt;h4 id="core-núcleos-dos-processadores"&gt;Core (núcleos dos processadores)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;No começo dos Pentium, a intel usava um truque de software para
simular como se houvessem mais núcleos (como as threads)&lt;/li&gt;
&lt;li&gt;depois do core 2 duo começaram a ser usados multicores reais&lt;/li&gt;
&lt;li&gt;processadores com muitos núcleos não necessariamente são melhores,
já que há a possibilidade de um core atrapalhar o outro&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="cisc"&gt;CISC&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;complex instructions set computers&lt;/li&gt;
&lt;li&gt;ampla variedade de instruções&lt;/li&gt;
&lt;li&gt;executa muitas instruções complexas em sequência (tempo maior, mais
pulsos de clock)&lt;/li&gt;
&lt;li&gt;antiga, mas ainda usada&lt;/li&gt;
&lt;li&gt;executa muito bem as tarefas&lt;/li&gt;
&lt;li&gt;mais métodos de endereçamento(direto, indireto, relativo, etc.)&lt;/li&gt;
&lt;li&gt;maior flexibilidade para o dev&lt;/li&gt;
&lt;li&gt;maior complexidade para o hardware&lt;/li&gt;
&lt;li&gt;tamanhos de instrução são variados&lt;/li&gt;
&lt;li&gt;pode se criar microcódigo sequenciando múltiplas instruções em
linguagem de máquina, dando mais flexibilidade mais aumentando a
latência&lt;/li&gt;
&lt;li&gt;maior possibilidade de CACHE&lt;/li&gt;
&lt;li&gt;x86(intel, amd, 68k da motorola, etc.)&lt;/li&gt;
&lt;li&gt;ajuda na otimização de código&lt;/li&gt;
&lt;li&gt;é complexo de fazer&lt;/li&gt;
&lt;li&gt;difícil de dizer qual será o desempenho&lt;/li&gt;
&lt;li&gt;maior dificuldade para o compilador&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="cache"&gt;CACHE&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;l1,l2 e l3 dizem respeito à distância dos módulos de cache&lt;/li&gt;
&lt;li&gt;sendo assim o processador busca informações na seguinte ordem: L1,
L2, L3, RAM, HD&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="risc"&gt;RISC&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;reduced instructions set computers&lt;/li&gt;
&lt;li&gt;operações mais limitadas&lt;/li&gt;
&lt;li&gt;poucas instruções&lt;/li&gt;
&lt;li&gt;mais simples&lt;/li&gt;
&lt;li&gt;operações básicas e repetitivas&lt;/li&gt;
&lt;li&gt;poucos modos de endereçamento&lt;/li&gt;
&lt;li&gt;instruções de tamanho fixo dando resultados mais precisos&lt;/li&gt;
&lt;li&gt;simplifica o processo de compilação&lt;/li&gt;
&lt;li&gt;usa pipelines → quebra a instrução em instruções menores e executa
elas em paralelo&lt;/li&gt;
&lt;li&gt;muitos registradores de uso geral&lt;/li&gt;
&lt;li&gt;pode ter problemas durante a execução, uma vez que é mais rápida que
a CISC, e faz operações em paralelo ao invés de sequencial&lt;/li&gt;
&lt;li&gt;necessita de menos energia&lt;/li&gt;
&lt;li&gt;menor flexibilidade&lt;/li&gt;
&lt;li&gt;maior carga para os compiladores&lt;/li&gt;
&lt;li&gt;usado em ARM, MIPS, POWERPC, etc.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 223</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-223-772i4hi85hb59/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-223-772i4hi85hb59/</guid><description>&lt;ul&gt;
&lt;li&gt;protótipo é tudo que tem interação&lt;/li&gt;
&lt;li&gt;UX deve guiar o dev&lt;/li&gt;
&lt;li&gt;protótipo é feito primeiro em escala de cinza, para, ao mostrar ao
cliente, ele não se preocupe com cores e tipografia, apenas
funcionalidade&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 224</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-224-5gh9gdbe5j66/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-224-5gh9gdbe5j66/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-224-5gh9gdbe5j66/image_363.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 225</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-225-cgbe65815bab/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-225-cgbe65815bab/</guid><description>&lt;ul&gt;
&lt;li&gt;Hoje, Intel e AMD usam um modelo híbrido de CISC e RISC&lt;/li&gt;
&lt;li&gt;A vida útil de um processador, em condições ideais, é de 10 à 15
anos&lt;/li&gt;
&lt;li&gt;3Ghz → 3 bilhões de instruções por segundo&lt;/li&gt;
&lt;li&gt;multicore → particiona a tarefa em varias menores, e executa em
ciclos diferentes juntando tudo no final&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="unidade-decontrole"&gt;Unidade de controle&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Controla as comunicações com o hardware&lt;/li&gt;
&lt;li&gt;Controla onde é necessário levar uma instrução ou o que acionar
durante uma instrução&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="arquitetura-de-vonneumann"&gt;Arquitetura de Von Neumann&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;base para todas as arquiteturas&lt;/li&gt;
&lt;li&gt;CPU executa coisas&lt;/li&gt;
&lt;li&gt;Possui sistema de E/S&lt;/li&gt;
&lt;li&gt;Usa barramentos para comunicação&lt;/li&gt;
&lt;li&gt;MP armazena dados e programas de forma contiguá&lt;/li&gt;
&lt;li&gt;Instruções são executadas uma depois da outra&lt;/li&gt;
&lt;li&gt;dentro da CPU há uma unidade de controle, os registradores e a ULA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-225-cgbe65815bab/image_364.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 226</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-226-31d0djbi00j/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-226-31d0djbi00j/</guid><description>&lt;h4 id="modelo-complexo"&gt;Modelo Complexo&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;modelo que une dois outros modelos, não no sentido de colocar tudo
de implementação em um, mas sim interliga-los em formato de
relacionamento&lt;/li&gt;
&lt;li&gt;como um relacionamento de BD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-226-31d0djbi00j/image_368.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 226</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-226-c168heg2040cb/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-226-c168heg2040cb/</guid><description>&lt;h4 id="método-da-substituição"&gt;Método da substituição&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;realiza alguma manipulação (método de integração) na função&lt;/li&gt;
&lt;li&gt;semelhante à regra da cadeia para derivadas&lt;/li&gt;
&lt;li&gt;Se Temos f(x) = F&amp;rsquo;(x) e g(x) seja uma função que sua imagem esteja
contida em F(x)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-226-c168heg2040cb/image_366.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-226-c168heg2040cb/image_367.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 227</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-227-bh78i473g635/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-227-bh78i473g635/</guid><description>&lt;ul&gt;
&lt;li&gt;Siga sempre o mesmo padrão de espaçamento e ações no app&lt;/li&gt;
&lt;li&gt;se você pediu pra clicar em salvar, você precisa perdir pra
confirmação a remoção de algo também&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 228</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-228-j60ah36fg6b99/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-228-j60ah36fg6b99/</guid><description>&lt;h4 id="análise-sintática-ascendente-shift-reduce"&gt;Análise sintática ascendente (shift-reduce)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;de baixo para cima (folha para a raiz)&lt;/li&gt;
&lt;li&gt;reduz(reduce) ao invés de derivar&lt;/li&gt;
&lt;li&gt;vai do terminal reduzindo a cadeia para um não terminal (chegando no
símbolo não terminal inicial da cadeia, se a entrada for válida)&lt;/li&gt;
&lt;li&gt;gramática LR(K)&lt;/li&gt;
&lt;li&gt;por utilizar gramáticas LR(K), podemos verificar qualquer quantidade
de simbolos a frente K, sendo 0 ou 1 os mais comuns e o suficiente
para a maioria dos casos&lt;/li&gt;
&lt;li&gt;São eficientes&lt;/li&gt;
&lt;li&gt;podem ser usadas com uma grande variedade de gramáticas&lt;/li&gt;
&lt;li&gt;aceita recursão à esquerda e ambiguidade&lt;/li&gt;
&lt;li&gt;Por aceitar ambiguidade há várias maneiras de reduzir uma unica
expressão, mas o resultando sempre deve ser o mesmo&lt;/li&gt;
&lt;li&gt;usado por diversas linguagens&lt;/li&gt;
&lt;li&gt;vai empilhando(shift) os símbolos e a partir da tabela sintática
(dos produtos da expansão), o conjunto de símbolos(handle) é
convertido para um único não terminal&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;S -&amp;gt; [L] | a
L -&amp;gt; L;S | S
entrada = [a;a]
| Pilha | Entrada | Ação |
|--------|----------|---------|
| $ | [a;a]$ | shift [ |
| $[ | a;a]$ | shift a |
| $[a | ;a]$ | reduce a to S |
| $[S | ;a]$ | reduce S to L |
| $[L | ;a]$ | shift ; |
| $[L; | a]$ | shift a |
| $[L;a | ]$ | reduce a to S |
| $[L;S | ]$ | reduce L;S to S |
| $[L | ]$ | shift ] |
| $[L] | $ | reduce [L] to S |
| $S | $ | reduce S to L |
| $L | $ | ACCEPT |
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 229</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-229-f7dj0hi3772d/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-229-f7dj0hi3772d/</guid><description>&lt;p&gt;Mobile systems &amp;mdash; tabela de esforço/valor&lt;/p&gt;
&lt;p&gt;Primeiro são enumeradas as tarefas e são coladas em uma tabela como
essa:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-229-f7dj0hi3772d/image_369.png"&gt;&lt;/p&gt;
&lt;p&gt;quanto maior o valor e menor o esforço melhor&lt;/p&gt;</description></item><item><title>Ciências da computação dia 23</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-23-dd288i7h9agg/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-23-dd288i7h9agg/</guid><description>&lt;p&gt;Nas outras aulas vimos como transformar proposições lógicas em tabelas e
expressões matemáticas, agora vamos fazer circuitos com isso&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;obs: as operações lógicas foram feitas por Boole em 1850 e as portas
lógicas e sua simbologia foi feita em 1938&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cada operador lógico possui uma certa simbologia&lt;/p&gt;
&lt;p&gt;&lt;img alt="AND (porta\u00a0E)" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-23-dd288i7h9agg/image_19.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="OR (porta\u00a0ou)" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-23-dd288i7h9agg/image_20.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="not (porta\u00a0não)" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-23-dd288i7h9agg/image_21.png"&gt;&lt;/p&gt;
&lt;p&gt;lembrando que você também pode negar proposições ou a saída delas&lt;/p&gt;
&lt;p&gt;&lt;img alt="porta NOR" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-23-dd288i7h9agg/image_22.png"&gt;&lt;/p&gt;
&lt;p&gt;por exemplo a porta nor, que basicamente pega todo o valor resultante da
porta OR e inverte&lt;/p&gt;</description></item><item><title>Ciências da computação dia 230</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-230-f666d7b7d28/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-230-f666d7b7d28/</guid><description>&lt;p&gt;para fazer subtrações em binário, podemos fazer da seguinte forma&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; 10 -&amp;gt; 2
- 01 -&amp;gt; 1
-----
1
00 --&amp;gt; o zero mais a direita pega 1 empresato e fica 10 (2 em decimal)
- 01
-----
01 -&amp;gt; 1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Com isso, podemos fazer a seguinte tabela verdade para um meio subtrator&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-230-f666d7b7d28/image_370.png"&gt;&lt;/p&gt;
&lt;p&gt;usando os mintermos de S e VOUT, podemos criar uma expressão usando a
soma de produtos da seguinte forma:&lt;/p&gt;</description></item><item><title>Ciências da computação dia 231</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-231-6jaa2ee786b3/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-231-6jaa2ee786b3/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-231-6jaa2ee786b3/image_374.png"&gt;&lt;/p&gt;
&lt;p&gt;Usando essa formulação, podemos pegar integrais que não eram passiveis
de serem resolvidas usando substituição e agora resolve-las.&lt;/p&gt;
&lt;p&gt;Contudo, precisamos entender qual parte chamar de &lt;em&gt;u&lt;/em&gt; e qual de &lt;em&gt;dv&lt;/em&gt;,
para isso podemos usar um artificio&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-231-6jaa2ee786b3/image_375.png"&gt;&lt;/p&gt;
&lt;p&gt;usando o LIATE, podemos identificar quais tipos de função temos em uma
integral, e, com base no seu tipo, encontrar u e dv. Nesse método, &lt;em&gt;u&lt;/em&gt;
sempre será o tipo de função mais a esquerda e &lt;em&gt;dv&lt;/em&gt; o mais a direita.
Caso sejam do mesmo tipo, podemos escolher o que fica mais fácil de
integrar e derivar.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 232</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-232-9g5fj5fcggc2/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-232-9g5fj5fcggc2/</guid><description>&lt;h4 id="micro-serviço"&gt;Micro-serviço&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;mais fácil de escalar&lt;/li&gt;
&lt;li&gt;mais custoso para infra&lt;/li&gt;
&lt;li&gt;API comunica a aplicação com os micro-serviços&lt;/li&gt;
&lt;li&gt;micro-serviço não se importa com a aplicação em si, eles
simplesmente fazem a tarefa e retornam algo, dai a aplicação se
encarrega de como lidar com ela. Fazendo assim com que seja possível
reutilizar os micro-serviços em outras aplicações&lt;/li&gt;
&lt;li&gt;Não possui Views&lt;/li&gt;
&lt;li&gt;com base nas finalidades do projeto, é constituído um padrão para
essas APIs&lt;/li&gt;
&lt;li&gt;pode have uma camada para padronização de dados usando os DTOs
(camada DTL)&lt;/li&gt;
&lt;li&gt;usa chamadas HTTP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="tabela de chamadas\u00a0http" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-232-9g5fj5fcggc2/image_377.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 233</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-233-9432gjf22i7fb/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-233-9432gjf22i7fb/</guid><description>&lt;h4 id="micro-serviço"&gt;micro-serviço&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;cada micro-serviço deve ser único, especializado e individual&lt;/li&gt;
&lt;li&gt;Não pode haver mais de um serviço com a mesma funcionalidade,
removendo assim, conflitos&lt;/li&gt;
&lt;li&gt;se um micro-serviço não for especializado, ele se torna um monólito&lt;/li&gt;
&lt;li&gt;cada micro-serviço deve pensar em si mesmo, sem pensando no que há
fora, por isso individual&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 234</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-234-2fg9706h0ii6a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-234-2fg9706h0ii6a/</guid><description>&lt;p&gt;A&amp;rsquo;.B + A.B&amp;rsquo; → isso representa uma XOR, para diminuir isso poderiamos
fazer: (A ⊕ B)&lt;/p&gt;
&lt;p&gt;A&amp;rsquo; B&amp;rsquo; + A.B → representa uma XNOR(ou consequente), que é o mesmo que uma
XOR barrada (XOR&amp;rsquo;) podendo ser reduzido para: (A⊙B)&lt;/p&gt;
&lt;h4 id="exemplo-deuso"&gt;exemplo de uso:&lt;/h4&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;S = B&amp;#39;(A⊕C) + B(A⊙C)
S = B&amp;#39;(A⊕C) + B(A⊕C)&amp;#39;
X = A⊕C
S = B&amp;#39;X + BX&amp;#39;
S = B⊕X
S = B⊕A⊕C
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Ciências da computação dia 235</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-235-d895f46dbe45/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-235-d895f46dbe45/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-235-d895f46dbe45/image_379.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 236</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-236-31f06ch278h8/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-236-31f06ch278h8/</guid><description>&lt;ul&gt;
&lt;li&gt;O melhor é ter um core que é monolito e ligar as partes com
microserviços&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 237</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-237-de88fcjgei3/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-237-de88fcjgei3/</guid><description>&lt;h4 id="analisador-semântico"&gt;Analisador semântico&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;usa a AST&lt;/li&gt;
&lt;li&gt;verificas diversos erros, como o de escopo&lt;/li&gt;
&lt;li&gt;você define as regras e como analisa-las (não é bem formalizado)&lt;/li&gt;
&lt;li&gt;possui uma tabela de simbolos, contendo dados como simbolo, tipo,
valor, escopo, etc.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 238</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-238-fic1jahi5288/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-238-fic1jahi5288/</guid><description>&lt;p&gt;Uma ULA age como um seletor (multiplexador) de operações, quando certo
valor chega no seletor ele pega os resultados da operação&lt;/p&gt;
&lt;p&gt;&lt;img alt="from:https://www.cs.emory.edu/~cheung/Courses/355/Syllabus/1-circuits/alu.html" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-238-fic1jahi5288/image_380.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="from:https://www.cs.emory.edu/~cheung/Courses/355/Syllabus/1-circuits/alu.html" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-238-fic1jahi5288/image_381.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 239</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-239-7f85igfadj39/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-239-7f85igfadj39/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-239-7f85igfadj39/image_382.png"&gt;&lt;/p&gt;
&lt;p&gt;Para calcular a área da região em vermelho, poderíamos usar o método da
exaustão e um pouco de geometria.&lt;/p&gt;
&lt;p&gt;Nesse método, dividimos a região que queremos encontrar a área em formas
geométricas menores que conseguimos encontrar seus lados, nesse caso
usaremos triângulos.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-239-7f85igfadj39/image_383.png"&gt;&lt;/p&gt;
&lt;p&gt;Com isso, podemos aproximar a área que queremos usando vários triângulos
menores. Assim, a área pode ser expressa como:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-239-7f85igfadj39/image_384.png"&gt;&lt;/p&gt;
&lt;p&gt;sendo assim, ao aumentar a quantidade de triângulos, conseguimos
aproximar ao máximo a área.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 24</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-24-b5ecgi5g870b/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-24-b5ecgi5g870b/</guid><description>&lt;p&gt;&lt;strong&gt;Números primos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;para calcular números primos, sabemos que temos que dividir todos os
antecessores de certo numero e ele for divisível por apenas ele e o
numero 1(que lembrando não é primo),ele é um número primo, mas há uma
maneira um pouco menos demorada de se saber se um número é primo ou não&lt;/p&gt;
&lt;p&gt;1 &amp;mdash; você não precisa checar se o número é divisível por ele, ou pelo
número 1, já que logicamente ele é&lt;/p&gt;</description></item><item><title>Ciências da computação dia 240</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-240-c61ea1aac81j/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-240-c61ea1aac81j/</guid><description>&lt;ul&gt;
&lt;li&gt;DTO → ao invés de enviar o modelo do banco, você pega DTOs, dos
quais mapeiam apenas os dados necessários que o usuário pode ver do
banco e coloca em uma classe.&lt;/li&gt;
&lt;li&gt;A camada DATA de micro serviços também é conhecida como DAO Layer&lt;/li&gt;
&lt;li&gt;DAO → design pattern da camada de dados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-240-c61ea1aac81j/image_388.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 241</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-241-i9i1ed646ed7/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-241-i9i1ed646ed7/</guid><description>&lt;pre tabindex="0"&gt;&lt;code&gt;S -&amp;gt; Aa
A -&amp;gt; bA | b
entrada: bba
Pilha Entrada Ação
$ bba$ push b
$b ba$ reduce b -&amp;gt; A
$A ba$ push b
$Ab a$ reduce Ab -&amp;gt; A
$A a$ push a
$Aa $ reduce Aa -&amp;gt; S
$S $ ENTRADA ACEITA
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;Por aceitar gramáticas com recursão à esquerda e ambiguidade, o
analisador shift-reduce pode reduzir tanto bA -&amp;gt; A como Ab -&amp;gt; A&lt;/li&gt;
&lt;li&gt;O compilador tenta reduzir tudo de uma vez, caso não de certo ele
tenta novamente&lt;/li&gt;
&lt;li&gt;Podemos, por exemplo, ir empilhando tudo, e depois ir juntando e
reduzindo&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 242</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-242-0626f96b6f96/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-242-0626f96b6f96/</guid><description>&lt;ul&gt;
&lt;li&gt;obs: ao usar integrais para calcular a área, você calcula a area a
baixo da curva&lt;/li&gt;
&lt;li&gt;no geral, você deve analisar como as funções se interceptam e como a
área em si é formada&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="área-dasenoide"&gt;Área da senoide&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-242-0626f96b6f96/image_389.png"&gt;&lt;/p&gt;
&lt;h3 id="área-entre-duasfunções"&gt;Área entre duas funções&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-242-0626f96b6f96/image_390.png"&gt;&lt;/p&gt;
&lt;h3 id="área-entre-múltiplas-funções"&gt;Área entre múltiplas funções&lt;/h3&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-242-0626f96b6f96/image_391.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 243</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-243-dbjf37567ehh/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-243-dbjf37567ehh/</guid><description>&lt;ul&gt;
&lt;li&gt;DDD → o foco principal é o dominio (dominio é a representação de
algo da vida real)&lt;/li&gt;
&lt;li&gt;clean archicteture → beaseado no DDD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="from:\n&lt;a href=\"https://medium.com/@aboutcoding/clean-architecture-the-essence-of-the-dependency-rule-969f1e8417f6\"&gt;aboutcoding&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-243-dbjf37567ehh/image_392.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-243-dbjf37567ehh/image_393.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Domain/Core → regras de negócios (modelos também entram aqui)&lt;/li&gt;
&lt;li&gt;App → parte que se comunica com o Core (APIS, LIB, Interfaces, etc.)&lt;/li&gt;
&lt;li&gt;Presentation → fala com o USER (web/MVC)&lt;/li&gt;
&lt;li&gt;Infra → liga a aplicação com o mundo externo&lt;/li&gt;
&lt;li&gt;A comunicação acontece de fora para dentro&lt;/li&gt;
&lt;li&gt;IOc (inversão de controle) → uma parte exterior pede uma coisa
especifica para uma área que sabe fazer aquilo muito bem&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="dependencias-entrecamadas"&gt;Dependencias entre camadas&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-243-dbjf37567ehh/image_394.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 244</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-244-73044j44b03f/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-244-73044j44b03f/</guid><description>&lt;h4 id="ucunidade-de-controle"&gt;UC(unidade de controle)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;garante a sincronia e coordena as operações que serão repassadas
para a ULA&lt;/li&gt;
&lt;li&gt;interage com os dispositivos&lt;/li&gt;
&lt;li&gt;Busca as instruções na memória e guarda elas em registradores&lt;/li&gt;
&lt;li&gt;controla o tempo (Clock)&lt;/li&gt;
&lt;li&gt;gera sinais de controle (coordena os núcleos)&lt;/li&gt;
&lt;li&gt;Gerencia interrupções, caso seja necessário ele para a execução&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="buffer"&gt;Buffer&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;componentes que armazenam dados para serem processados rapidamente&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;não é considerado uma memória&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;é preciso limpar a entrada (opcode) da UC, por que caso contrário,
se não vier outra operação, ele pode continuar fazendo a operação
anterior de novo e de novo (mesma coisa do clock)&lt;/p&gt;</description></item><item><title>Ciências da computação dia 245</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-245-6267b1262e0e/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-245-6267b1262e0e/</guid><description>&lt;ul&gt;
&lt;li&gt;antes da década de 90 os aparelhos não possuíam protocolos para
padronizar a comunicação entre dispositivos&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="protocolos"&gt;Protocolos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;SMTP → protocolo para entrega de emails&lt;/li&gt;
&lt;li&gt;RDP → protocolo para área remota do windows&lt;/li&gt;
&lt;li&gt;DHCP → é responsável por entregar os IPs para as maquinas,
garantindo que não haja conflito&lt;/li&gt;
&lt;li&gt;SNMP → protocolo usado para coletar e enviar dados dos dispositivos
em uma rede&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tipos-deredes"&gt;Tipos de redes&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;PAN → tipo de rede que está sendo desenvolvida para sensores, e
coisas do tipo, para uma única pessoa&lt;/li&gt;
&lt;li&gt;CAN → rede para veículos&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="dispositivos"&gt;Dispositivos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Hub e switch tem a mesma função, só que o HUB divide a banda entre
os dispositivos conectados, já o switch entrega toda a banda para
todos os dispositivos (nominal)&lt;/li&gt;
&lt;li&gt;Nos dispositivos vem marcado 10/100/100. 10 significa que o
dispositivo suporta Ethernet (máximo 10Mib/s); 100 significa que o
dispositivo suporta Fast-Ethernet (máximo de 100 Mib/s); 1000
significa que o dispositivo suporta Giga-Ethernet (máximo de 1000
Mibs/s). Hoje em dia existem outras larguras de banda também, com
10Giga Ethernet, etc. Mas esse é geralmente para servidores e alguns
dispositivos móveis (notebooks)&lt;/li&gt;
&lt;li&gt;Saber se seu dispositivos suporta apenas Ethernet, ou Fast-Ethernet
ou ainda Giga-Ethernet, é importante para saber se seu plano vai ser
aproveitado pelos seus aparelhos, uma vez q caso você tenha um plano
de 1000Mb, mas seu roteador é Fast-Ethernet, você só conseguirá usar
100Mb (você sempre será limitado pelo menor valor)&lt;/li&gt;
&lt;li&gt;Cabo categoria 5e consegue trafegar Gigabit, mas não de forma pura,
ou seja, só consegue trafegar os dados em 4 dos cabos, e não nos 8.
A única maneira dele trafegar Gigabit é se a rede não estiver
fazendo mais nada, só recebendo ou enviando para um único ponto&lt;/li&gt;
&lt;li&gt;Cabo de categorial 6 consegue trafegar Gigabit puro&lt;/li&gt;
&lt;li&gt;Nos dispositivos wireless, algumas letras são usadas para descrever
a velocidade (a/b/c/g/n/ac, etc.)&lt;/li&gt;
&lt;li&gt;wifi com menor frequência consegue chegar mais longe, wifi com maior
frequência consegue trafegar mais coisas e uma curta distância.&lt;/li&gt;
&lt;li&gt;cabo categoria 5 consegue 10Gigabit&lt;/li&gt;
&lt;li&gt;existem padrões para comprimento, conectores(802A ou 802B), como
devem ser trançados&lt;/li&gt;
&lt;li&gt;existem outros conectores além do RJ-45, para categorias diferentes
de cabos (cabo 5e funciona com RJ-45)&lt;/li&gt;
&lt;li&gt;comprimento mínimo de cabo é 12m&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="modelo-cliente-servidor"&gt;Modelo Cliente-Servidor&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Uma rede interliga o cliente a um servidor&lt;/li&gt;
&lt;li&gt;Um processo na máquina do cliente faz um requisição para o servidor
e um processo rodando o servidor responde a essa requisição e
devolve o resultado via rede&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tipos-de-topologia"&gt;Tipos de Topologia&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Física → descreve como a rede é ligada fisicamente&lt;/li&gt;
&lt;li&gt;Lógica → regras para envio e recebimento de pacotes (protocolos)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="topologia-barramento"&gt;Topologia Barramento&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;mais antiga e não é usada mais&lt;/li&gt;
&lt;li&gt;utiliza um barramento de cabo coaxial&lt;/li&gt;
&lt;li&gt;máquinas são ligadas em série&lt;/li&gt;
&lt;li&gt;em cada extremidade há um terminador (resistor)&lt;/li&gt;
&lt;li&gt;vantagens: elimina o uso de switches&lt;/li&gt;
&lt;li&gt;desvantagens: caso uma placa de rede de problema, todo o resto para
de funcionar&lt;/li&gt;
&lt;li&gt;Não há possibilidade de remendar o cabo coaxial com outros cabos, já
que a placa de rede perceberá a mudança de impedância&lt;/li&gt;
&lt;li&gt;chegava no máximo a 10Mib/s (Ethernet)&lt;/li&gt;
&lt;li&gt;Usava repetidores, bridges e interfaces (placas de rede)&lt;/li&gt;
&lt;li&gt;Bridge era usado para duas redes funcionarem como uma&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://www.geeksforgeeks.org/advantages-and-disadvantages-of-bus-topology/\"&gt;geeksforgeeks&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-245-6267b1262e0e/image_395.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 246</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-246-g05f28gj5f3/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-246-g05f28gj5f3/</guid><description>&lt;h4 id="arredondamentos"&gt;Arredondamentos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ao arredondar por 5, se o valor da frente for diferente de 0,
aumenta-se 1 → 35,56 = 35,6&lt;/li&gt;
&lt;li&gt;ao arredondar por 5, se o valor da frente for igual a 0, deixa como
está se o valor anterior for par, se não aumenta 1 → 35,5 = 35,6;
34.5 = 34.5&lt;/li&gt;
&lt;li&gt;não faça arredondamentos sucessivos, faça apenas no final&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="termos-da-estatística"&gt;Termos da estatística&lt;/h3&gt;
&lt;h4 id="estatística"&gt;Estatística&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;estudo de fenômenos coletivos&lt;/li&gt;
&lt;li&gt;Estatística Descritiva → coleta, organiza e descreve os dados&lt;/li&gt;
&lt;li&gt;Estatística indutiva ou inferencial → interpreta e generaliza as
conclusões (usa probabilidade)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="variáveis"&gt;Variáveis&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;conjuntos de resultados possíveis de um fenômeno&lt;/li&gt;
&lt;li&gt;variáveis qualitativas → variável que é representada por classes
(sexo, cidade, etc.)&lt;/li&gt;
&lt;li&gt;variáveis quantitativas → variável representada por números (idade,
peso, etc.)&lt;/li&gt;
&lt;li&gt;variável continua → pode assumir qualquer valor dentro de certos
limites&lt;/li&gt;
&lt;li&gt;variável discreta → só pode assumir valores que estão no conjunto
possível&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="população"&gt;População&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;todo o grupo de dados&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="amostra"&gt;Amostra&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;parte (representativa) da população&lt;/li&gt;
&lt;li&gt;quando é dito representativo, significa pegar parte dos dados que
possuam características semelhantes, sem precisar pegar o todo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="dados-brutos"&gt;Dados Brutos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Dados coletados da pesquisa, sem qualquer tipo de tratamento&lt;/li&gt;
&lt;li&gt;dados que não organizados&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="rol"&gt;ROL&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;dados brutos colocados em ordem&lt;/li&gt;
&lt;li&gt;pode ser crescente ou decrescente&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="amostragem"&gt;Amostragem&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;técnicas para escolher a amostra&lt;/li&gt;
&lt;li&gt;Amostragem casual ou aleatória simples → amostragem por sorteio&lt;/li&gt;
&lt;li&gt;Amostragem proporcional estratificada → retirada da amostra através
de subgrupos (estratos) dos dados. Deve ser proporcional ao número
de elementos em cada subgrupo (se tiver mais eu pego mais dados, se
tiver menos eu pego menos). Para achar o numero de dados de cada
subgrupo faça:&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;total_para_retirar_subgrupo =
((total_subgrupo)(total_que_quero_da_amostra)) / (total_de_elementos)&lt;/p&gt;</description></item><item><title>Ciências da computação dia 247</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-247-4h89a16jie6ja/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-247-4h89a16jie6ja/</guid><description>&lt;ul&gt;
&lt;li&gt;Modo Kernel → acesso completo ao hardware e pode executar qualquer
instrução de máquina&lt;/li&gt;
&lt;li&gt;Modo usuário →instruções que o user pode executar (mais limitado)&lt;/li&gt;
&lt;li&gt;Programas de interface → parte que o usuário consegue mandar
instruções para a máquina (shell, programas GUI, etc.)&lt;/li&gt;
&lt;li&gt;SO básico → programa gigante que gerencia hardware e rotinas do
usuário. Funciona através de eventos que o usuário realiza&lt;/li&gt;
&lt;li&gt;MIPS = milhões de instruções por segundo&lt;/li&gt;
&lt;li&gt;ciclo de máquina = o PC executa 1 instrução de um ciclo&lt;/li&gt;
&lt;li&gt;Multi threading = simulação de mais núcleos, um thread é chaveado
para o outro&lt;/li&gt;
&lt;li&gt;multi-core = o SO deve manipular e gerenciar os cores (como se
fossem vários processadores)&lt;/li&gt;
&lt;li&gt;memória virtual = memória ram em disco&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="ibm-360"&gt;IBM 360&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;criação do MULTICS que serviu de base para o UNIX&lt;/li&gt;
&lt;li&gt;começa o uso de multi-programação (vários processos simultâneos)&lt;/li&gt;
&lt;li&gt;uso de SPOOLING → quando uma tarefa finaliza ele pega a próxima da
fila&lt;/li&gt;
&lt;li&gt;time sharing → executa um pouco de cada processo usando um único
núcleo&lt;/li&gt;
&lt;li&gt;terminais burros → vários users podem se conectar numa mesma máquina
que não faz nenhum processamento&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 248</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-248-388g4defc4ch/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-248-388g4defc4ch/</guid><description>&lt;ul&gt;
&lt;li&gt;diferente dos autômatos, grafos possuem vertices (o que era chamado
de estado) e arestas (o que eram as transições)&lt;/li&gt;
&lt;li&gt;arestas possuem pesos&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 249</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-249-4f954j561904a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-249-4f954j561904a/</guid><description>&lt;h4 id="topologias"&gt;Topologias&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;topologia barramento não era necessário todos os computadores
estarem ligados para funcionar&lt;/li&gt;
&lt;li&gt;a parte lógica da topologia estrela continua barramento&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tipos-derede"&gt;Tipos de rede&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;VLAN → rede LAN virtual, apenas dispositivos inseridos nessa rede
virtual se comunicam&lt;/li&gt;
&lt;li&gt;rede de difusão → os pacotes são enviados para todas as máquinas da
mesma rede, contendo dentro dele a origem e o destino, assim se a
placa de rede de cada máquina verifica se o destino é a maquina em
questão, se for ele pega e senão apenas descarta. Isso é usado para
redes menores (locais geralmente). Tanto na ida quando na volta dos
dados.&lt;/li&gt;
&lt;li&gt;Broadcasting → Sinais são enviados para todos os dispositivos da
rede. Muito usado para compartilhar coisas em rede, impressoras,
pastas, etc.&lt;/li&gt;
&lt;li&gt;Multicasting → Transmite os sinais para todas as máquinas de um
grupo especifico (mais de 1 máquina)&lt;/li&gt;
&lt;li&gt;Unicasting → Há apenas um transmissor e um receptor&lt;/li&gt;
&lt;li&gt;rede ponto a ponto → rede Unicast usada ara para transmitir de uma
máquina a outra por longas distâncias.&lt;/li&gt;
&lt;li&gt;PAN(até 1m) → Bluetooth, por exemplo, uma rede pequena, no máximo
uma mesa de trabalho&lt;/li&gt;
&lt;li&gt;LAN (até 1km) → redes locais, casa, campus, etc&lt;/li&gt;
&lt;li&gt;MAN (até 10km) → cidades (tv por exemplo). Necessário um local que
concentra e distribui a rede para caixas de junção, que vão para
casas, estabelecimentos, etc.&lt;/li&gt;
&lt;li&gt;WAN (até 1000km) → regiões geográficas. Composta por Hosts e
conectadas por subredes (ISPs, empresas de telefonia, etc.)&lt;/li&gt;
&lt;li&gt;internet (acima de 1000km)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="dispositivos"&gt;Dispositivos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Switch é gerenciável, com ele você pode criar uma VLAN, mandar
desligar certas portas, etc.&lt;/li&gt;
&lt;li&gt;RJ-11 é usado para telefonia (aceita apenas 2 pares, ou quatro fios)&lt;/li&gt;
&lt;li&gt;Cabo categoria 4 era Ethernet (max 10 Mbps)&lt;/li&gt;
&lt;li&gt;Cabo categoria 5 é fastethernet&lt;/li&gt;
&lt;li&gt;Cabo categoria 5e é Gigabit half duplex, ou seja, ele carrega dados
em Gigabit por todos os pares, sendo assim, para trafegar Gigabit eu
só posso ou mandar ou receber, não os dois ao mesmo tempo&lt;/li&gt;
&lt;li&gt;Cabo categoria 6 é Gigabit full duplex, ou seja, os dados trafegam
em Gigabit por apenas dois dos pares, podendo assim enviar e receber
ao mesmo tempo&lt;/li&gt;
&lt;li&gt;Quando se pensa em hardware para redes, pensa-se em como transmitir
os dados e em que escala&lt;/li&gt;
&lt;li&gt;se a placa de rede estiver em modo promiscuous, ela consegue
processar todos os pacotes, mesmo não sendo o destinado a ela (rede
de difusão)&lt;/li&gt;
&lt;li&gt;Roteador → interliga duas redes lógicas diferentes&lt;/li&gt;
&lt;li&gt;Switch → interliga dispositivos físicos&lt;/li&gt;
&lt;li&gt;Para empresas o roteador só faz rota, DHCP é feito por outro
dispositivo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="unidades"&gt;Unidades&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;em redes não são usados bytes, mas sim bits&lt;/li&gt;
&lt;li&gt;1Mbps = 1000000 bits por segundo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="componentes-desubrede"&gt;Componentes de Subrede&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;interligam o mundo&lt;/li&gt;
&lt;li&gt;possuem linhas de transmissão para ISPs (usando cobre, fibra óptica,
radio, torres de transmissão, satélites, etc.)&lt;/li&gt;
&lt;li&gt;possuem elementos de comutação → computadores que interligam 3 ou
mais linhas de transmissão&lt;/li&gt;
&lt;li&gt;Há também cabos submarinos (de fibra óptica) interligando
continentes, usando amplificadores para alcançar essas longas
distâncias. O mesmo cabo também é usado para telefone.&lt;/li&gt;
&lt;li&gt;PPOe → Uma espécie de Usario e senha que te deixa acessar a rede
provida pelo ISP&lt;/li&gt;
&lt;li&gt;gateway padrão → IP do roteador. Caso você tente acessar um IP que
não está dentro da subrede, o padrão é esse ip ser redirecionado
para o roteador que se encarregará de encontrar ele fora da rede&lt;/li&gt;
&lt;li&gt;Quando você tenta acessar algo de fora da rede, o maximo que ele
salta pra tentar encontrar o IP é 30&lt;/li&gt;
&lt;li&gt;Para haver conexão é necessário ter conexão física e lógica&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="máscara-desubrede"&gt;Máscara de subrede&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;/24 no fim do IP significa que o final da máscara é 0&lt;/li&gt;
&lt;li&gt;255 é o valor máximo para cada octeto, assim como 0 é o mínimo&lt;/li&gt;
&lt;li&gt;cada 255 na mascará significa que o número ali não mudara nos IPs, e
o 0 significa que aquele octeto pode ir de 1&amp;ndash;254&lt;/li&gt;
&lt;li&gt;final .0 e .255 dos IPS são reservados&lt;/li&gt;
&lt;li&gt;X.X.X.255 é o endereço de broadcasting&lt;/li&gt;
&lt;li&gt;X.X.X.0 é o IP de rede&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="protocolos"&gt;Protocolos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ICMP → usado para verificar os dispositivos na rede e verificar o
tempo de resposta, nome, etc.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 25</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-25-g464i12574e9/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-25-g464i12574e9/</guid><description>&lt;p&gt;Álgebra Booleana&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;criada por George Boole&lt;/li&gt;
&lt;li&gt;a partir dos conceitos de conjunto vazio(0) e conjunto universo(1)
ele criou essa álgebra&lt;/li&gt;
&lt;li&gt;possui 3 operações básicas → AND, OR, NOT&lt;/li&gt;
&lt;li&gt;No começo ela era usada apenas na filosofia, com proposições
lógicas(século 18), mas com o advento dos semicondutores ela passou
a ser usada também na eletrônica(a partir do século 20)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Ordem de precedência&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;NOT → AND → OR&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;POSTULADOS FUNDAMENTAIS&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;seguindo esses postulados se prova que a álgebra booleana é válida&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;axioma 1(fechamento)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 250</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-250-feb9a3312g4ha/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-250-feb9a3312g4ha/</guid><description>&lt;ul&gt;
&lt;li&gt;tabela de distribuição de frequência → tabela estatísticas relativas
a frequência dos valores na amostra (intervalo [ [ )&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-250-feb9a3312g4ha/image_397.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;classe(i) → intervalos&lt;/li&gt;
&lt;li&gt;limite inferior(li) → de cada intervalo, esse é o menor valor(150,
154, 158)&lt;/li&gt;
&lt;li&gt;limite superior(Li) → de cada intervalo, esse é o maior valor(154,
158, 162)&lt;/li&gt;
&lt;li&gt;amplitude(h) → tamanho do limite (Li &amp;mdash; li)&lt;/li&gt;
&lt;li&gt;Limite minimo(Lmin) → menor limite inferior(150)&lt;/li&gt;
&lt;li&gt;Limite máximo(Lmax) → maior limite superior (162)&lt;/li&gt;
&lt;li&gt;amplitude total (AT) → AT=Lmax-Lmin&lt;/li&gt;
&lt;li&gt;maior valor da amostra (Xmax)&lt;/li&gt;
&lt;li&gt;menor valor da amostra (Xmin)&lt;/li&gt;
&lt;li&gt;amplitude amostral (AA) → AA = Xmax &amp;mdash; Xmin&lt;/li&gt;
&lt;li&gt;ponto médio da classe (Xi) → média dos valores (valores da amostra)&lt;/li&gt;
&lt;li&gt;frequência absoluta(fi) → quantidade de aparições de um elemento
contido em certo intervalo&lt;/li&gt;
&lt;li&gt;frequência relativa(fri) → fi/ Σfi&lt;/li&gt;
&lt;li&gt;frequência relativa % (fri%) → fri*100&lt;/li&gt;
&lt;li&gt;frequência acumulada (fac) → frequência absoluta da classe atual,
somado com a frequência acumulada anterior&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-250-feb9a3312g4ha/image_398.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 251</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-251-fb2e997h2hjj/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-251-fb2e997h2hjj/</guid><description>&lt;h4 id="tipos-desistemas"&gt;Tipos de sistemas&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;multiprocessados → sistemas com múltiplos núcleos (múltiplas CPUS)&lt;/li&gt;
&lt;li&gt;tempo-real → sistemas de baixa latência (sem atrasos), ou que podem
ter atrasos, mas poucos (sistemas não críticos)&lt;/li&gt;
&lt;li&gt;servidor → sistema de alto desempenho. Podendo ter dimensões de um
computador de mesa ou de mainframes. Usado para atender a múltiplas
requisições&lt;/li&gt;
&lt;li&gt;embarcados → sistemas que fazem uma única coisa. O sistema não
permite a instalação de softwares externos (tudo está em uma ROM)&lt;/li&gt;
&lt;li&gt;cartões inteligentes → JAVA possuía uma plataforma para programar
para esses sistemas, contendo dentro de si uma JVM&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="computadores-de-grandeporte"&gt;Computadores de grande porte&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;para processamento de muitas coisas ao mesmo tempo(time sharing) e
grande volume de dados&lt;/li&gt;
&lt;li&gt;OS/390 da IBM era o OS mais usado, hj o LINUX tem crescido pra isso&lt;/li&gt;
&lt;li&gt;Mainframes só processavam os dados&lt;/li&gt;
&lt;li&gt;Mainframes possuíam terminais burros q recolhiam os valores e
repassavam para o mainframe&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="oses"&gt;OSes&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Linux foi baseado no MINIX&lt;/li&gt;
&lt;li&gt;Ecos → usado para sistemas embarcados de tempo real para aplicações
criticas&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="arquitetura"&gt;Arquitetura&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-251-fb2e997h2hjj/image_399.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 252</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-252-8i4afba2h3d1/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-252-8i4afba2h3d1/</guid><description>&lt;ul&gt;
&lt;li&gt;um grafo pode ser composto de subgrafos&lt;/li&gt;
&lt;li&gt;há a possibilidade de um grafo não ter arestas&lt;/li&gt;
&lt;li&gt;grafos podem ter loops&lt;/li&gt;
&lt;li&gt;como o grafo é, depende do contexto&lt;/li&gt;
&lt;li&gt;grau de um vértice → quantas arestas saem dele&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="problema-daspontes"&gt;Problema das pontes&lt;/h4&gt;
&lt;p&gt;No problema das pontes, há quatro regiões, e 7 pontes que as interligam.
A ideia aqui é descobrir se há alguma maneira de sair de um ponto,
passar por todas as pontes, sem repetir nenhuma, e voltar ao ponto
inicial.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 253</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-253-31cg14j07d36/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-253-31cg14j07d36/</guid><description>&lt;h4 id="imperativo"&gt;Imperativo&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;mais antigo&lt;/li&gt;
&lt;li&gt;mais próximo de assembly&lt;/li&gt;
&lt;li&gt;segue a sequência do código&lt;/li&gt;
&lt;li&gt;lista de instruções que modificam valores na memória até atingir o
estado final&lt;/li&gt;
&lt;li&gt;sem loops, ou similares, apenas estados sendo modificados e GOTOs
sendo realizado quando uma certa condição é verdadeira&lt;/li&gt;
&lt;li&gt;baseado na arquitetura de Jon Von Neumann&lt;/li&gt;
&lt;li&gt;não possui blocos, aqui, para realizar &amp;ldquo;sub-operações&amp;rdquo;, é necessário
usar GOTO, para ir para certas regiões do código&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="turing-complete"&gt;Turing complete&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;quando uma linguagem possui todas as peças necessárias para executar
qualquer coisa que seja computacionalmente computável&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="abstração-de-células-dememória"&gt;Abstração de células de memória&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;simples → variáveis&lt;/li&gt;
&lt;li&gt;sofisticadas → matrix, arrays, etc.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 254</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-254-9ec7g0c5a7gc/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-254-9ec7g0c5a7gc/</guid><description>&lt;h4 id="paradigma-declarativo"&gt;Paradigma declarativo&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;não há sequência de ordens&lt;/li&gt;
&lt;li&gt;Usado para fazer perguntas sobre os dados&lt;/li&gt;
&lt;li&gt;SQL, Prolog são exemplos de linguagem&lt;/li&gt;
&lt;li&gt;paradigmas baseados neste são: Funcional, Lógica e descritivo&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 255</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-255-79f4fb319h1f/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-255-79f4fb319h1f/</guid><description>&lt;h4 id="linhas-poligonais"&gt;linhas poligonais&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;linhas que não possuem curva&lt;/li&gt;
&lt;li&gt;polígonos (apenas lados retos)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="histograma"&gt;Histograma&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Mostra a frequência dos dados&lt;/li&gt;
&lt;li&gt;o valor do meio da barra é o ponto médio do intervalo&lt;/li&gt;
&lt;li&gt;barras são postas lado a lado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://www.investopedia.com/terms/h/histogram.asp\"&gt;investopedia&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-255-79f4fb319h1f/image_408.png"&gt;&lt;/p&gt;
&lt;h4 id="gráfico-de-polígonos-de-frequência"&gt;Gráfico de polígonos de frequência&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;espécie de histograma mas feito com linhas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://byjus.com/maths/frequency-polygons/\"&gt;BYJUS&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-255-79f4fb319h1f/image_409.png"&gt;&lt;/p&gt;
&lt;h4 id="pictograma"&gt;Pictograma&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;utiliza figuras ao invés de barras&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://venngage.com/blog/pictogram/\"&gt;Venngage&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-255-79f4fb319h1f/image_410.png"&gt;&lt;/p&gt;
&lt;h4 id="cartograma"&gt;Cartograma&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;gráficos usando o mapa&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://pt.wikipedia.org/wiki/Cartograma\"&gt;wikipedia&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-255-79f4fb319h1f/image_411.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 256</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-256-jg1abc0a9d349/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-256-jg1abc0a9d349/</guid><description>&lt;h4 id="pipeline"&gt;Pipeline&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;quebra uma instrução em partes menores que serão executadas de
formas diferentes para ser mais rápido&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="processos"&gt;Processos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;programa em execução&lt;/li&gt;
&lt;li&gt;e sistemas multiprocessados, você não sabe qual processo entrará
primeiro&lt;/li&gt;
&lt;li&gt;é imprevisível qual processo o escalonador escolherá para executar&lt;/li&gt;
&lt;li&gt;tudo do programa fica junto de seu processo, incluindo variáveis e
afins&lt;/li&gt;
&lt;li&gt;processo sequencial → um processo é executado por vez&lt;/li&gt;
&lt;li&gt;processo paralelo → varias processos são executados de uma só vez.
Pode ser executado tudo de um programa, ou executa uma parte de cada
por vez&lt;/li&gt;
&lt;li&gt;Um programa pode ter mais de um processo, mas no mínimo 1&lt;/li&gt;
&lt;li&gt;Reentrância ajuda um programa a ser paralelo&lt;/li&gt;
&lt;li&gt;Para criar um processo, é feita uma chamada ao Kernel(como com o
fork) e é criado um processo pai e filho com o mesmo endereçamento,
depois o filho recebe um novo&lt;/li&gt;
&lt;li&gt;Processos podem terminar de forma voluntaria (exit) ou
involuntária(forçar parada, error, KILL)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="processo sequencial" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-256-jg1abc0a9d349/image_412.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 257</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-257-e46h943f7e5g/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-257-e46h943f7e5g/</guid><description>&lt;h4 id="grafos"&gt;Grafos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;representado por um conjunto de vertices e nós → G(V,E) (E=edges)&lt;/li&gt;
&lt;li&gt;pares de nós não ordenados&lt;/li&gt;
&lt;li&gt;sempre são pares&lt;/li&gt;
&lt;li&gt;não há necessidade de retas, podem haver curvas&lt;/li&gt;
&lt;li&gt;redução de um caminho&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="relações"&gt;Relações&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Incidência → aresta que ligam dois nós&lt;/li&gt;
&lt;li&gt;adjacência → dois nós ligados por uma aresta incidente&lt;/li&gt;
&lt;li&gt;vizinhos → todos os nós ligados diretamente à um certo nó&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-257-e46h943f7e5g/image_417.png"&gt;&lt;/p&gt;
&lt;p&gt;Todas as arestas são incidentes, dessa forma AC são adjacentes e AB
também.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 258</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-258-0cae1j9cfi65/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-258-0cae1j9cfi65/</guid><description>&lt;h4 id="ips"&gt;IPs&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;IANA → responsável por distribuir IPs&lt;/li&gt;
&lt;li&gt;existem 3 tipos de IPs não roteáveis → 10.0.0.0/8, 172.168.0.0/16 e
192.168.0.0/24. Todos os outros IPS são roteáveis (maquinas externas
ligadas a internet podem receber)&lt;/li&gt;
&lt;li&gt;8, 16, 24 são as mascaras de IP, elas dizem quais números são
estáticos. Dado que um IPv4 tem 32 bits, se dividirmos 32/4 = 8,
sendo assim cada parte equivale a 8 bits. Com isso, quando temos
IP/8, apenas o primeiro número é fixo, IP/16, os dois primeiros são
fixos e IP/24 os três primeiros são&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="dispositivos"&gt;Dispositivos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Você pode ter uma rede só com um switch, não necessariamente um
roteador&lt;/li&gt;
&lt;li&gt;Em Ethernet, quando tem muito trafego, a rede pode se atrapalhar com
a pilha de pacotes a serem entregues e acabar dando colisão&lt;/li&gt;
&lt;li&gt;Para um pacote passar é necessário que a rede esteja totalmente
livre&lt;/li&gt;
&lt;li&gt;Uma das maneiras de resolver a colisão é utilizar um delay para a
entrega de cada pacote (há um protocolo para isso)&lt;/li&gt;
&lt;li&gt;O hub enviar as informações para todos os dispositivos. Já o Switch,
com o uso ele descobre qual o ip de cada maquina e assimila elas a
cada porta, dessa forma, ao mandar algo para um IP especifico, ele
envia diretamente para aquela porta do switch que ele já conhece&lt;/li&gt;
&lt;li&gt;Cascateamento → interliga dois uma mais switches&lt;/li&gt;
&lt;li&gt;cabo crossover → uma ponta é diferente da outra. Geralmente
utilizada para ligar computadores diretamente&lt;/li&gt;
&lt;li&gt;Ao fazer o cascateamento, ambos os switches devem ter o mesmo
endereço de rede (como o 192.168.0.0). Se estiverem com endereços
diferentes, ao tentarem se comunicar, mesmo estando fisicamente
ligados a parte lógica não está. Para resolver isso, você pode
colocar um roteador no meio, e configurar o Gateway Padrão para os
switches, apontando para o roteador&lt;/li&gt;
&lt;li&gt;Roteadores são necessários configurações antes de usar, já o switch
já vem pronto&lt;/li&gt;
&lt;li&gt;Firewall pode ser para dispositivo ou para uma rede toda&lt;/li&gt;
&lt;li&gt;NAT → usando o IP da internet, há uma dispositivo que pega os
pacotes e redireciona de fora para uma maquina internet a rede.
Sendo assim usado para servidores (isso também é um firewall)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="serviços"&gt;Serviços&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;IIS → serviços para WEB da Microsoft&lt;/li&gt;
&lt;li&gt;Quando você acessa algo .com.br, ele bate no DNS do registro.br e
retorna o IP do servidor da aplicação WEB&lt;/li&gt;
&lt;li&gt;VPN ponto a ponto → conecta dois ponto de forma barata e
criptografada&lt;/li&gt;
&lt;li&gt;VPN também é instalado em firewalls&lt;/li&gt;
&lt;li&gt;Há também VPN que age como um túnel para criptografar a comunicação
com a internet&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="proxy"&gt;Proxy&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;nasceu para interligar faculdades, exercitos, empresas, etc.&lt;/li&gt;
&lt;li&gt;é um meio que pega uma copia (cache) de algo que varias pessoas vão
acessar e ao invés do resto acessar na internet ele acessa do proxy
(economiza internet) → uso mais antigo, já que a internet hoje é
mais rápida e não é necessário esse tipo de cache&lt;/li&gt;
&lt;li&gt;usado também como um ACL(lista de controle de acesso) para bloquear
coisas que passam pela rede&lt;/li&gt;
&lt;li&gt;há também como configurar um proxy externo para pegar algo que está
sendo bloqueado na rede atual&lt;/li&gt;
&lt;li&gt;proxy reverso → você configura uma porta da sua aplicação dai alguém
de fora acessa em uma outra porta, mas quando vai trafegar para a
aplicação o proxy faz esse redirecionamento de portas&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 259</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-259-4b4j0gcg1ij5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-259-4b4j0gcg1ij5/</guid><description>&lt;h4 id="padrão-ethernet"&gt;Padrão Ethernet&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;quando foi inventado era utilizado barramento com cabo coaxial&lt;/li&gt;
&lt;li&gt;começou com a ideia de ser suportado por qualquer computador&lt;/li&gt;
&lt;li&gt;começou como uma transmissão simplex (um envia o resto aguarda)&lt;/li&gt;
&lt;li&gt;Ethernet checa em certos períodos de tempo se o pacote foi entregue,
caso não tenha ele retransmite&lt;/li&gt;
&lt;li&gt;Padrão Ethernet é 802&lt;/li&gt;
&lt;li&gt;camadas física e de enlace&lt;/li&gt;
&lt;li&gt;cada pacote tem de 64 &amp;ndash; 1518bytes&lt;/li&gt;
&lt;li&gt;não é possível enviar pacotes maiores do que isso, para enviar mais
dados é necessário adicionar mais pacotes&lt;/li&gt;
&lt;li&gt;MAC → 3 primeiros é o fabricante e o resto é a placa&lt;/li&gt;
&lt;li&gt;ao usar DHCP, se queremos enviar um pacote para a mesma máquina
sempre é necessário usar o endereço MAC&lt;/li&gt;
&lt;li&gt;MAC controla a transmissão e recepção com o meio físico&lt;/li&gt;
&lt;li&gt;CSMA/CD → controla se pode ou não transmitir no half duplex, também
checa colisão e retransmite (usando um intervalo de tempo
aleatório).&lt;/li&gt;
&lt;li&gt;possui um formato especifico para o pacote (quadro Ethernet)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="quadro-ethernet"&gt;Quadro Ethernet&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;destination address → MAC do destinatário&lt;/li&gt;
&lt;li&gt;source address → MAC do remetente&lt;/li&gt;
&lt;li&gt;Type/Length → tamanho do campo Data&lt;/li&gt;
&lt;li&gt;Data → dados (de 46&amp;ndash;1500 bytes)&lt;/li&gt;
&lt;li&gt;FCS → CRC&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="estados-csmacd"&gt;Estados CSMA/CD&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;transmitindo&lt;/li&gt;
&lt;li&gt;disputando → houve colisão&lt;/li&gt;
&lt;li&gt;inativo → ninguém está transmitindo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="rádio-amador"&gt;Rádio amador&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;é Simplex&lt;/li&gt;
&lt;li&gt;A palavra câmbio era usado como uma palavra chave para dizer que um
lado pararia de enviar para o outro então para de receber e começar
a enviar&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="simplex"&gt;Simplex&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;apenas um lado transmite e o outro recebe&lt;/li&gt;
&lt;li&gt;assim que ninguém está enviando, o outro lado pode começar a enviar
e o outro receber&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="camada-deenlace"&gt;Camada de Enlace&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;camada que fecha a conexão entre as partes&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="fast-ethernet"&gt;Fast Ethernet&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;mudou a velocidade de transmissão de 10 → 100mbps e o modo que agora
pode ser half ou full duplex&lt;/li&gt;
&lt;li&gt;em full duplex foi criado os passive trans → avisa a uma máquina de
que deve pausar a transmissão por um tempo, removendo assim o
CSMA/CD. Com isso, o Fast Ethernet não precisa ficar checando se há
silêncio na rede para outro dispositivo começar a enviar dados&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="cabos-de-partrançado"&gt;Cabos de par trançado&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Unshielded Twisted Pair (UTP) → cabo sem blindagem. 4 pares de fios
entrelaçados e revestidos com PVC (verão mais barata) (possui 100R)&lt;/li&gt;
&lt;li&gt;Shielded Twisted Pair(STP) → cabo com blindagem. Possui uma malha
envolta que protege. Necessita de aterramento. Diminui a
interferência. Mais caro.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="categoria-decabos"&gt;Categoria de cabos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;cat. 5 → frequência até 100Mhz e 100Mbps&lt;/li&gt;
&lt;li&gt;Cat. 5e → frequência até 125Mhz para redes 1000Base-T GigaEthernet&lt;/li&gt;
&lt;li&gt;Cat. 6 → frequência até 250Mhz até Gigabit (norma ANSI TIA/EIA
568B-2 ← cabo não pode ser feito manualmente, deve ser comprado de
uma fábrica)&lt;/li&gt;
&lt;li&gt;Cat. 6A → até 10Gb/s para redes 10GBase-T&lt;/li&gt;
&lt;li&gt;Cat. 7 → até 10Gb/s para 100m com frequência até 600Mhz&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="cores-dosfios"&gt;Cores dos fios&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;par 1 → azul e branco; azul&lt;/li&gt;
&lt;li&gt;par 2 → laranja e branco; laranja&lt;/li&gt;
&lt;li&gt;par 3 → verde e branco; verde&lt;/li&gt;
&lt;li&gt;par 4 → marrom e branco; marrom&lt;/li&gt;
&lt;li&gt;Padrão T568A → B-V; V; B-L; A; B-A; L; B-M; M&lt;/li&gt;
&lt;li&gt;Padrão T568B → B-L; L; B-V; A; B-A; V; B-M; M&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://canaltech.com.br/produtos/como-fazer-um-cabo-de-rede-209886/\"&gt;canaltech&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-259-4b4j0gcg1ij5/image_418.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 26</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-26-1ded8ag6ec16/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-26-1ded8ag6ec16/</guid><description>&lt;p&gt;na eletrônica temos diversas portas lógicas que são derivadas de outras,
nesse caso o XOR é uma porta derivada da porta OR&lt;/p&gt;
&lt;p&gt;&lt;img alt="XOR simbolo, fonte: Wikipedia" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-26-1ded8ag6ec16/image_30.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="OR simbolo, fonte: Wikipedia" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-26-1ded8ag6ec16/image_31.png"&gt;&lt;/p&gt;
&lt;p&gt;assim como na vida real o ou exclusivo (ou, ou excludente) leva uma
característica excludente de sua operação. Na vida real, se dizermos ou
um ou outro, você poderia escolher apenas um dos elementos, no entanto a
porta or ela não segue esse padrão, sendo também verdadeiro quando os
dois valores forem verdadeiros, dai que vem a porta XOR, ela só será
verdadeira quando só uma das entradas forem verdadeiras.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 260</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-260-1b7iaba10d7b/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-260-1b7iaba10d7b/</guid><description>&lt;ul&gt;
&lt;li&gt;média, moda e mediana podem ser usados para dados → não agrupados,
agrupados sem intervalos de classe e agrupados com intervalos de
classe&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="média-aritmética-simples"&gt;Média aritmética simples&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-260-1b7iaba10d7b/image_419.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sendo &lt;em&gt;n&lt;/em&gt; o total de elementos da amostra&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="média-aritmética-ponderada"&gt;Média aritmética ponderada&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;valores possuem pesos diferentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-260-1b7iaba10d7b/image_420.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sendo &lt;em&gt;w&lt;/em&gt; o pesos de cada elemento&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="medianamd"&gt;Mediana(Md)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;valor do meio do ROL (tanto faz crescente ou decrescente)&lt;/li&gt;
&lt;li&gt;para n ímpar → (n+1)/2 é o índice do elemento do meio que representa
a mediana&lt;/li&gt;
&lt;li&gt;para n par → x1=(n/2) e x2=(n/2)+1 representa os indices dos dois
elementos centrais, após pega-los basta fazer: (x1+x2)/2 e assim
teremos a mediana&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="média-e-medianausos"&gt;Média e Mediana usos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;dão uma ideia de qual valor você encontrará se você tirar um
elemento ao acaso&lt;/li&gt;
&lt;li&gt;quando há outliers nos dados, mediana representa melhor o conjunto
de dados do que a média&lt;/li&gt;
&lt;li&gt;Mediana é usada também quando quer-se dividir a distribuição em
partes iguais&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="moda"&gt;Moda&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;valor(es) que mais aparece(m)&lt;/li&gt;
&lt;li&gt;amodal → não há moda no conjunto&lt;/li&gt;
&lt;li&gt;unimodal → apenas um valor (uma moda)&lt;/li&gt;
&lt;li&gt;bimodal → dois valores aparecem o mesmo tanto de vezes e ambos são
modas&lt;/li&gt;
&lt;li&gt;trimodal → 3 modas&lt;/li&gt;
&lt;li&gt;polimodal → mais de 3 modas&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;{1, 2, 5, 5, 6, 6, 7, 8} → bimodal, pois 5 e 6 aparecem duas vezes&lt;/p&gt;</description></item><item><title>Ciências da computação dia 261</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-261-15hf7fg9g77a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-261-15hf7fg9g77a/</guid><description>&lt;h4 id="tratamento-de-interrupção"&gt;Tratamento de interrupção&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;empilha o contador de programa atual&lt;/li&gt;
&lt;li&gt;carrega o novo contador de programa&lt;/li&gt;
&lt;li&gt;procedimento em assembly salva os registradores&lt;/li&gt;
&lt;li&gt;procedimento em assembly configura uma nova pilha&lt;/li&gt;
&lt;li&gt;executa serviço de interrupção escrito em C (lê e armazena a
entrada)&lt;/li&gt;
&lt;li&gt;procedimento em C volta para o procedimento em asm&lt;/li&gt;
&lt;li&gt;procedimento em assembly inicia o novo processo&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="classificação-de-processos"&gt;Classificação de processos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;CPU Bound&lt;/li&gt;
&lt;li&gt;I/O Bound&lt;/li&gt;
&lt;li&gt;Sabendo o tipo do processo, é possível implementar rotinas no
escalonador para otimizar o tempo ocioso&lt;/li&gt;
&lt;li&gt;Para otimizar é possível utilizar: buffer, paralelismo real, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="cpu-bound"&gt;CPU Bound&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;utiliza muita CPU&lt;/li&gt;
&lt;li&gt;tempo de execução é dado por ciclos da CPU que foram(serão) usados&lt;/li&gt;
&lt;li&gt;tem sensibilidade ao escalonador (performance depende dele, já que
ele dirá quando o processo pode usar a CPU)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="io-bound"&gt;I/O Bound&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;realiza muito I/O&lt;/li&gt;
&lt;li&gt;tempo de execução dado pela operação de Entrada e saída&lt;/li&gt;
&lt;li&gt;é menos afetado pelo escalonador&lt;/li&gt;
&lt;li&gt;tempo de espera da entrada ou saída é o limitante&lt;/li&gt;
&lt;li&gt;Banco de dados, web server, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="escalonador"&gt;Escalonador&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;sua função é não deixar a CPU ociosa&lt;/li&gt;
&lt;li&gt;mudança de contexto (processo) → tarefa custosa&lt;/li&gt;
&lt;li&gt;o escalonamento é necessário quando → um processo é criado,
bloqueado e terminou a execução.&lt;/li&gt;
&lt;li&gt;quando há um bloqueio, o escalonador pode decidir continuar
esperando pelo I/O ou seguir para outro processo mais rápido&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tipos-de-algoritmos-do-escalonador"&gt;Tipos de algoritmos do Escalonador&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Preemptivo → suspende o processo que está sendo executado&lt;/li&gt;
&lt;li&gt;Não preemptivo → executa tudo até o programa acabar ou houver um
bloqueio&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="preemptivo"&gt;Preemptivo&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;muita troca de contexto&lt;/li&gt;
&lt;li&gt;suporta melhor a responsividade&lt;/li&gt;
&lt;li&gt;processos com prioridade são executados na hora&lt;/li&gt;
&lt;li&gt;fila prioritária&lt;/li&gt;
&lt;li&gt;bom para sistemas em tempo real&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="não-preemptivo"&gt;Não preemptivo&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;era usado em sistemas uni-core&lt;/li&gt;
&lt;li&gt;há menos tempo desperdiçado devido a menor troca de contexto&lt;/li&gt;
&lt;li&gt;mais previsível o tempo de execução&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="características-para-um-escalonador"&gt;Características para um Escalonador&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;justiça → cada processo tem uma parcela de tempo justa para usar a
CPU&lt;/li&gt;
&lt;li&gt;balanceamento → diminuir a ociosidade do sistema&lt;/li&gt;
&lt;li&gt;cumprimento da política do sistema → uso da prioridade, etc.&lt;/li&gt;
&lt;li&gt;deve ser encaixar ao tipo de ambiente (batch, interativo, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="sistemas-batch"&gt;Sistemas BATCH&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;vários dados ao mesmo tempo para processar&lt;/li&gt;
&lt;li&gt;sem muito I/O&lt;/li&gt;
&lt;li&gt;necessário maximizar o uso da CPU&lt;/li&gt;
&lt;li&gt;não precisa de respostas rápidas&lt;/li&gt;
&lt;li&gt;pouca troca de contexto&lt;/li&gt;
&lt;li&gt;escalonador vai para aquele com menor tempo de execução ou menor uso
de memória&lt;/li&gt;
&lt;li&gt;escalonador também pode seguir a ordem do user ou através da pilha
de tarefas&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="sistemas-interativos"&gt;Sistemas Interativos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;alta interação com o user&lt;/li&gt;
&lt;li&gt;alta troca de contexto&lt;/li&gt;
&lt;li&gt;responsividade para o user&lt;/li&gt;
&lt;li&gt;escalonador precisa se adaptar a carga de trabalho e manter
equilíbrio entre responsividade e uso de CPU&lt;/li&gt;
&lt;li&gt;escalonador deve ter baixo tempo de resposta (fatias de tempo menor
pra cada um), preempção (dar chance para outro processo executar),
prioridade para processos interativos, aumentar a prioridade para
processo a muito tempo na fila&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="sistemas-de-temporeal"&gt;Sistemas de tempo real&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;tarefas precisam ser executadas dentro do deadline&lt;/li&gt;
&lt;li&gt;maior tempo para cada processo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="jitter"&gt;Jitter&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;variação entre o tempo de resposta e o tempo ideal&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="overhead"&gt;Overhead&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;tempo não utilizado&lt;/li&gt;
&lt;li&gt;troca de contexto&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="algoritmos-de-escalonador-para-sistemasbatch"&gt;Algoritmos de escalonador para sistemas BATCH&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;three level&lt;/li&gt;
&lt;li&gt;FIFO&lt;/li&gt;
&lt;li&gt;Shortest job first&lt;/li&gt;
&lt;li&gt;shortest remaining time next&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="three-level"&gt;Three Level&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;3 escalonadores (CPU, memória e admissão)&lt;/li&gt;
&lt;li&gt;admissão → processos menores primeiro; leva em consideração menor
acesso a CPU e maior uso de I/O&lt;/li&gt;
&lt;li&gt;memória → verifica quanto tempo está esperando, tempo de CPU,
tamanho, importância&lt;/li&gt;
&lt;li&gt;CPU → executa o próximo&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="fifo"&gt;FIFO&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;segue a ordem de requisição dos processos&lt;/li&gt;
&lt;li&gt;não preemptivo&lt;/li&gt;
&lt;li&gt;vai empilhando os processos&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="shortest-jobfirst"&gt;Shortest Job First&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;menor é executado primeiro&lt;/li&gt;
&lt;li&gt;não preemptivo&lt;/li&gt;
&lt;li&gt;menor turnaround médio&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Turnaround médio é o tempo médio de execução de todos os processos.
Nesse método, vê-se a combinação de processos que minimizam o tempo.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 262</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-262-67b42b81h8eh/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-262-67b42b81h8eh/</guid><description>&lt;h4 id="grafos"&gt;Grafos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Conjunto de elementos de um grafo são as vertices (V = A, B, C, D)
e o conjunto de suas relações (E = A,C, B, D, C,B)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-262-67b42b81h8eh/image_421.png"&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;//dot program
graph{
beautify=true
layout=&amp;#34;sfdp&amp;#34;
A [color=green]
B [color=red]
C [color=blue]
D [color=purple]
A -- C
B -- D
C -- B
}
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="tipos-degrafos"&gt;Tipos de grafos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;dígrafo → grafo direcionado (com seta) (A,B é diferente de B,A,
sendo assim colocarei apenas aquele que será usado no conjunto), não
possui self loop (um vértice vai para ele mesmo)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://en.wikipedia.org/wiki/Directed_graph\"&gt;wikipedia&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-262-67b42b81h8eh/image_422.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 263</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-263-03cahed62e9f/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-263-03cahed62e9f/</guid><description>&lt;p&gt;Linguagem C pode ser considerada de médio nível. Já que consegue
conversar com o hardware e ainda ser fácil de ler.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 264</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-264-2j69b526e0f3/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-264-2j69b526e0f3/</guid><description>&lt;h4 id="média-sem-intervalos-declasse"&gt;Média (sem intervalos de classe)&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-264-2j69b526e0f3/image_425.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-264-2j69b526e0f3/image_426.png"&gt;&lt;/p&gt;
&lt;h4 id="medianasem-intervalos-declasse"&gt;Mediana(sem intervalos de classe)&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-264-2j69b526e0f3/image_427.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;essa mesma fórmula é usada para quantidade ímpar e par.&lt;/li&gt;
&lt;li&gt;a classe que possui o valor mediano é chamada de classe mediana.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="moda-sem-intervalos-declasse"&gt;Moda (sem intervalos de classe)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;o valor com a maior frequência (fi) → nesse caso 8.5&lt;/li&gt;
&lt;li&gt;a classe com o valor da moda é chamada de classe modal&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="média-com-intervalos-declasse"&gt;Média (com intervalos de classe)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;é feito da mesma forma que a sem intervalos de classe é feito&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="mediana-com-intervalos-declasse"&gt;Mediana (com intervalos de classe)&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-264-2j69b526e0f3/image_428.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 265</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-265-418j1ceifd3e/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-265-418j1ceifd3e/</guid><description>&lt;h3 id="escalonadores-para-sistemas-iobound"&gt;Escalonadores para sistemas I/O Bound&lt;/h3&gt;
&lt;h4 id="round-robin"&gt;Round Robin&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;execução de processos de maneira justa e eficiente&lt;/li&gt;
&lt;li&gt;tempo compartilhado&lt;/li&gt;
&lt;li&gt;preemptivo&lt;/li&gt;
&lt;li&gt;dá uma fatia de tempo para cada processo&lt;/li&gt;
&lt;li&gt;fila de prontos é cíclica → após o processo terminar de usar sua
fatia, ele vai para o final, caso não tenha terminado de executar
tudo&lt;/li&gt;
&lt;li&gt;tempo de resposta rápido, já que os processos recebem CPU
frequentemente&lt;/li&gt;
&lt;li&gt;Overhead de comutação (troca de contexto)&lt;/li&gt;
&lt;li&gt;desempenho variável → processos longos são prejudicados quando
fatias de tempo (quantum) pequenos são usados&lt;/li&gt;
&lt;li&gt;utilizar quantum muito grande, faz ele se tornar uma FIFO&lt;/li&gt;
&lt;li&gt;quantum muito pequeno faz aumentar o overhead&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Para encontrar o melhor quantum (Q) é interessante manter o equilibrio entre o
overhead e um tempo razoavel de execução
chaveamento = 1ms
Q = 4ms
total = 4ms + 1ms = 5ms
nesse caso, 20% do tempo é perdido para o overhead com o chaveamento
de processos
Q = 99ms
total = 99ms + 1ms = 100ms
nesse segundo caso, só 1% do tempo é perdido com a troca de contexto,
mas há muito tempo de espera para a troca de procesos
Levando em consideração esses exemplos, escolher um quantum Q intermediario,
como 20ms seria uma opção viavel
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="baseado-em-prioridade"&gt;Baseado em prioridade&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;varias filas para cada nível de prioridade&lt;/li&gt;
&lt;li&gt;processos de prioridade maior irão antes&lt;/li&gt;
&lt;li&gt;pode utilizar o round-robin para gerenciar a fila&lt;/li&gt;
&lt;li&gt;executa primeiro toda a fila de maior prioridade e depois vai
descendo os níveis&lt;/li&gt;
&lt;li&gt;pode ser tanto preemptivo como não preemptivo, dependendo do
algoritmo escolhido&lt;/li&gt;
&lt;li&gt;pode ajustar a prioridade dinamicamente, para evitar inanição
(starvation, processos que nunca seriam executados devido a sua
baixa prioridade)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="múltiplas-filas"&gt;Múltiplas filas&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;cada fila pode ter características distintas (processos para
processamento em lote, processos interativos, processos com
prioridade, etc.)&lt;/li&gt;
&lt;li&gt;cada fila pode ter um algoritmo diferente para gerenciamento&lt;/li&gt;
&lt;li&gt;cada fila terá uma prioridade diferente&lt;/li&gt;
&lt;li&gt;pode ser preemptivo quando processos de maior prioridade entram&lt;/li&gt;
&lt;li&gt;pode dar-se um tempo de execução limitado para cada fila&lt;/li&gt;
&lt;li&gt;pode mover processos entre filas&lt;/li&gt;
&lt;li&gt;possui overhead no gerenciamento das filas&lt;/li&gt;
&lt;li&gt;pode sofrer de starvation&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="loteria"&gt;Loteria&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;cada processo recebe um ticket&lt;/li&gt;
&lt;li&gt;a cada troca de processo um ticket é sorteado, assim o processo
sorteado por ocupar a CPU&lt;/li&gt;
&lt;li&gt;pode dar mais tickets para um processo para aumentar a chance dele
ser sorteado(prioridade)&lt;/li&gt;
&lt;li&gt;é mais justo&lt;/li&gt;
&lt;li&gt;não é preemptivo&lt;/li&gt;
&lt;li&gt;possui variabilidade no tempo de resposta&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="fair-share"&gt;Fair-Share&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;leva em consideração quem é o dono do processo (user, sistema, etc.)&lt;/li&gt;
&lt;li&gt;cada dono possui uma fração de tempo para usar a CPU, escalonando os
processos a partir dai&lt;/li&gt;
&lt;li&gt;se um user possui mais processos ele terá mais tempo&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="escalonadores-para-sistemas-de-temporeal"&gt;Escalonadores para sistemas de tempo real&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;hard real time → não pode atrasar (critico)&lt;/li&gt;
&lt;li&gt;soft real time → alguns atrasados são tolerados&lt;/li&gt;
&lt;li&gt;eventos (periódicos ou aperiódicos) causam execução de processos&lt;/li&gt;
&lt;li&gt;algoritmos preemptivos&lt;/li&gt;
&lt;li&gt;algoritmos usados podem ser: estáticos (define a ordem de execução
antes) ou dinâmicos (avalia qual será executado em tempo de
execução)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="earliest-deadlinefirst"&gt;Earliest deadline first&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;preemptivo e dinâmico&lt;/li&gt;
&lt;li&gt;tarefa com menor deadline tem prioridade&lt;/li&gt;
&lt;li&gt;se chegar um com menor deadline ele chaveia para este com menor&lt;/li&gt;
&lt;li&gt;possui overhead&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="rate-monotonic-scheduling"&gt;Rate monotonic scheduling&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;preemptivo e estático&lt;/li&gt;
&lt;li&gt;prioridade é dada pela frequência de execução&lt;/li&gt;
&lt;li&gt;ótimo para sistemas periódicos e com processos independentes&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="least-laxity-first-last-stack-timefirst"&gt;Least laxity first (last stack time first)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;escalona com base na folga (tempo restante até o deadline &amp;mdash; tempo
restante para completar a tarefa )&lt;/li&gt;
&lt;li&gt;processo com menor folga vai primeiro&lt;/li&gt;
&lt;li&gt;pode ter bastante overhead&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 266</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-266-j4c6dab6520c/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-266-j4c6dab6520c/</guid><description>&lt;h4 id="graus-d"&gt;Graus (d)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;grau de um vértice → número de arestas incidentes a ele&lt;/li&gt;
&lt;li&gt;grau do grafo(grau máximo) → maior grau dos vertices&lt;/li&gt;
&lt;li&gt;grau de vertices isolados é 0 (também chamado só de isolado)&lt;/li&gt;
&lt;li&gt;d(v) = 1 → chamado de pendente, folha ou terminal&lt;/li&gt;
&lt;li&gt;menor grau do grafo é chamado de grau mínimo e é representado por
δ(G)&lt;/li&gt;
&lt;li&gt;maior grau de um grafo é chamado de grau máximo e é representado por
Δ(G)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-266-j4c6dab6520c/image_433.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 267</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-267-b46086aeg599/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-267-b46086aeg599/</guid><description>&lt;h4 id="wwams"&gt;WWAMS&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;para telefones&lt;/li&gt;
&lt;li&gt;2g → cdma x gsm&lt;/li&gt;
&lt;li&gt;3g → cdma2000 x umts/hspa&lt;/li&gt;
&lt;li&gt;4g → (baseado em IP) wimax x LTE&lt;/li&gt;
&lt;li&gt;5g → agora tem outras tecnologias como beamforming, massive MIMO,
etc.&lt;/li&gt;
&lt;li&gt;LTE advanced(4g+ ou 4.5g) → mantém 4g em diversas frequências e
depois junta em uma única&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="camadas"&gt;Camadas&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;redes são organizadas em camadas (pilha de camadas)&lt;/li&gt;
&lt;li&gt;O numero, nome, conteúdo e função de cada camada deferência uma rede
de outra&lt;/li&gt;
&lt;li&gt;camada N de A se comunica com a N de B (comunicação lógica) → isso
quer dizer q os protocolos para essas camadas são as mesmas&lt;/li&gt;
&lt;li&gt;regras e convenções de cada camada são conhecidas como o protocolo
da camada n&lt;/li&gt;
&lt;li&gt;comunicação física ocorre entre as camadas de um mesmo host (pra
cima ou para baixo)&lt;/li&gt;
&lt;li&gt;dados de um host é passado de uma camada mais alta até chegar ao
meio físico e depois sobe do mais baixo ao mais alto no host alvo&lt;/li&gt;
&lt;li&gt;conjunto de camadas e protocolos definem a arquitetura de uma rede&lt;/li&gt;
&lt;li&gt;lista de protocolos é chamada de pilha de protocolos&lt;/li&gt;
&lt;li&gt;ao passar por cada camada (de cima para baixo) mais dados são
adicionados. Ao fazer o caminho inverso os dados são removidos e a
mensagem cru começa a aparecer novamente&lt;/li&gt;
&lt;li&gt;toda camada precisa identificar receptor e emissor (endereçamento)&lt;/li&gt;
&lt;li&gt;camadas precisam controlar error, pedindo reenvio caso necessário
(no modelo TCP)&lt;/li&gt;
&lt;li&gt;necessário possuir controle de fluxo, já que o emissor pode enviar
mais pacotes do que um receptor mais lento pode processar&lt;/li&gt;
&lt;li&gt;necessário traçar o roteamento. algumas vezes isso é feito por mais
de duas camadas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://en.wikipedia.org/wiki/OSI_model\"&gt;wikipedia&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-267-b46086aeg599/image_438.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 268</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-268-0a370bbhdcb0a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-268-0a370bbhdcb0a/</guid><description>&lt;h4 id="threads"&gt;Threads&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;fluxo de controle dentro de um processo (linha de execução)&lt;/li&gt;
&lt;li&gt;possui um inicio e um fim, como um programa em sequência&lt;/li&gt;
&lt;li&gt;permite paralelismo → permite utilizar vários cores&lt;/li&gt;
&lt;li&gt;permite que o programa seja responsivo → faz com que outras tarefas
continuem em execução&lt;/li&gt;
&lt;li&gt;Pode ajudar a simplificar o código, dividindo-o em partes menores e
independentes&lt;/li&gt;
&lt;li&gt;pode usar memória compartilhada para trocada de informações e etc&lt;/li&gt;
&lt;li&gt;pode haver conexão inter-threads (usando memória compartilhada e
mecanismos de sincronia)&lt;/li&gt;
&lt;li&gt;representa a execução de um programa também&lt;/li&gt;
&lt;li&gt;menor unidade agendavel de um processo&lt;/li&gt;
&lt;li&gt;todos os threads dentro de um processo compartilham dos mesmo
recursos do processo&lt;/li&gt;
&lt;li&gt;executado a partir de um processo&lt;/li&gt;
&lt;li&gt;mais leve e eficiente que processos, já que compartilha recursos ao
invés de pedir novos&lt;/li&gt;
&lt;li&gt;contexto é menor, já que utiliza apenas parte do contexto do
processo em si&lt;/li&gt;
&lt;li&gt;Troca de contexto é mais rápida e eficiente&lt;/li&gt;
&lt;li&gt;criação é mais rápida&lt;/li&gt;
&lt;li&gt;contexto é composto por → conjunto de registradores, pilha, PC,
ponteiro para tabela de processos, ponteiro para arquivos, etc.
Apenas o especifico para cada tarefa de cada thread&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="estados-de-umthread"&gt;Estados de um thread&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;new → criado, mas não iniciado&lt;/li&gt;
&lt;li&gt;runnable → pronto para ser executado&lt;/li&gt;
&lt;li&gt;running → está em execução&lt;/li&gt;
&lt;li&gt;waiting → aguardando recurso externo&lt;/li&gt;
&lt;li&gt;terminated → acabou a execução&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="transições-de-estados-de-umthread"&gt;Transições de estados de um thread&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;execução para aguardando&lt;/li&gt;
&lt;li&gt;aguardando para pronto&lt;/li&gt;
&lt;li&gt;execução para terminated&lt;/li&gt;
&lt;li&gt;execução para pronto → foi interrompido&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://www.geeksforgeeks.org/lifecycle-and-states-of-a-thread-in-java/\"&gt;geeksforgeeks&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-268-0a370bbhdcb0a/image_445.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 268</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-268-ed5262bggbfg/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-268-ed5262bggbfg/</guid><description>&lt;h4 id="medidas-separatórias"&gt;Medidas separatórias&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;divide a sequência ordenada em partes iguais&lt;/li&gt;
&lt;li&gt;mediana também é uma medida dessas (divide em 2 parte de 50%)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="quartis-q"&gt;Quartis (Q)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;divide em 4 partes de 25% cada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-268-ed5262bggbfg/image_442.png"&gt;&lt;/p&gt;
&lt;h4 id="decis-d"&gt;Decis (D)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;divide em 10 partes de 10% cada&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="percentis-p"&gt;Percentis (P)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;divide em 100 partes de um 1% cada&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="quintil-k"&gt;Quintil (K)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;divide em 5 partes de 20% cada&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="relações"&gt;Relações&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;podemos relacionar cada um deles com outros&lt;/li&gt;
&lt;li&gt;ex: Q1 = P25, D1 = P10, K2 = D4, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="qk-dk-pkkk"&gt;QK, DK, PK, KK&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;essas fórmulas nos dizem qual o elemento K dentro das separações em
dados com intervalos de classe&lt;/li&gt;
&lt;li&gt;caso o dataset não esteja divido em intervalos de classe, é possível
utilizar as técnicas ditas anteriormente e um pouco de lógica para
encontrar tal elemento&lt;/li&gt;
&lt;li&gt;formula derivada da formula da mediana para dados com intervalos de
classe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-268-ed5262bggbfg/image_443.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 27</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-27-3i0c68jjig3g/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-27-3i0c68jjig3g/</guid><description>&lt;p&gt;&lt;strong&gt;Para esta aula você precisará lembrar da&lt;/strong&gt; &lt;a href="https://dpbm.medium.com/ci%C3%AAncias-da-computa%C3%A7%C3%A3o-dia-25-c8b4a9a1ae47"&gt;&lt;strong&gt;aula
25&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Um circuito simplificado é feito para diminuir a quantidade de
componentes, que, por consequência, diminui o tempo de execução, custo
para ser construido (tanto em mão de obra, como em dinheiro) e também
economiza espaço em um chip.&lt;/p&gt;
&lt;p&gt;Um fator importante a se saber,é que nem sempre o circuito que tem menos
componentes ele é necessariamente melhor&lt;/p&gt;
&lt;p&gt;&lt;img alt="circuito 1" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/image/image_34.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="circuito 2" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/image/image_35.png"&gt;&lt;/p&gt;
&lt;p&gt;veja esses dois circuitos.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 270</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-270-j9320hi22i5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-270-j9320hi22i5/</guid><description>&lt;h4 id="grafo-completokn"&gt;Grafo completo (Kn)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;todas as vertices são interligadas entre si&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-270-j9320hi22i5/image_446.png"&gt;&lt;/p&gt;
&lt;h4 id="subgrafo"&gt;Subgrafo&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;grafo gerado a partir de um subset do grafo original&lt;/li&gt;
&lt;li&gt;é dito que o grafo H é um subconjunto de G ( H ⊆ G)&lt;/li&gt;
&lt;li&gt;só é um subgrafo se: V(H)⊆V(G) e E(H) ⊆ E(G)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="grafo (G)" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-270-j9320hi22i5/image_447.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="subgrafo (H)" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-270-j9320hi22i5/image_448.png"&gt;&lt;/p&gt;
&lt;h4 id="passeio"&gt;Passeio&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;sequência de arestas no formato → (V0, V1), (V1, V2), (V2, V3), &amp;hellip;,
(Vs-1, Vs)&lt;/li&gt;
&lt;li&gt;sendo s o tamanho do passeio(no caso, grafo)→ total de arestas que
foram usadas ((L,M), (M, L), (L,R) → s=3)&lt;/li&gt;
&lt;li&gt;é permitido repetir arestas → (C, M), (M, L), (L, C), (C, M)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-270-j9320hi22i5/image_449.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 271</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-271-05199a0h4bfc/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-271-05199a0h4bfc/</guid><description>&lt;h4 id="isoosi"&gt;ISO/OSI&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;comunicação feita com 7 camadas&lt;/li&gt;
&lt;li&gt;PDU → protocol data unit&lt;/li&gt;
&lt;li&gt;cada camada N de um host se comunica com a N do outro host
virtualmente&lt;/li&gt;
&lt;li&gt;protocolo de sub-rede interna faz a parte da comunicação e
tratamento entre as camadas físicas dos dois hosts&lt;/li&gt;
&lt;li&gt;não necessariamente todas as camadas são usadas em um padrão de
rede, isso é apenas uma referência&lt;/li&gt;
&lt;li&gt;cada camada deve ter uma função bem definida&lt;/li&gt;
&lt;li&gt;camadas são usadas para criar abstrações&lt;/li&gt;
&lt;li&gt;quantidade de camadas não pode ser muito grande nem muito pequeno
para assim ter camadas com características distintas e ainda ser
fácil de gerir&lt;/li&gt;
&lt;li&gt;limite das camadas deve minimizar o fluxo&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="camadas"&gt;Camadas&lt;/h3&gt;
&lt;h4 id="camada-física1"&gt;Camada Física (1)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;bit a bit&lt;/li&gt;
&lt;li&gt;tensão representa os bits&lt;/li&gt;
&lt;li&gt;intervalos de nano segundos dividem um bit de outro&lt;/li&gt;
&lt;li&gt;dita a direção da comunicação&lt;/li&gt;
&lt;li&gt;interfaces mecânicas, elétricas e de sincronização&lt;/li&gt;
&lt;li&gt;garantia do envio e recebimento do dado&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="camada-de-enlace2"&gt;Camada de Enlace (2)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Transformação dos dados brutos (bits)&lt;/li&gt;
&lt;li&gt;verifica erros não detectados na camada de rede&lt;/li&gt;
&lt;li&gt;divide dados em quadros(frames) que serão transmitidos
sequencialmente&lt;/li&gt;
&lt;li&gt;rede de difusão controla a colisão aqui&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="camada-de-rede3"&gt;Camada de Rede (3)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;usa pacotes&lt;/li&gt;
&lt;li&gt;IP&lt;/li&gt;
&lt;li&gt;como os pacotes são roteados (estático ou dinâmico)&lt;/li&gt;
&lt;li&gt;controla a sub-rede&lt;/li&gt;
&lt;li&gt;trata da a qualidade do serviço, tempo em transito, instabilidade,
etc&lt;/li&gt;
&lt;li&gt;trata da qualidade usando retardo → ao enviar dados, o buffer de um
dos lados pode encher, assim essa camada da um delay para esperar
esvaziar para enviar novamente&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="camada-de-transporte-4"&gt;Camada de Transporte (4)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;aceita dados de uma camada acima e divide em partes menores, caso
necessário. Então, repassa para a camada de rede garante que
chegarão corretamente&lt;/li&gt;
&lt;li&gt;uso de TPDU&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="camada-de-sessão5"&gt;Camada de Sessão(5)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;usa SPDU&lt;/li&gt;
&lt;li&gt;oferece serviços&lt;/li&gt;
&lt;li&gt;serviço de controle de dialogo → controla quem vai transmitir&lt;/li&gt;
&lt;li&gt;serviço de gerenciamento de token → impede que as partes façam a
mesma função critica ao mesmo tempo&lt;/li&gt;
&lt;li&gt;serviço de sincronização → caso ocorra uma falha, ele volta do ponto
que estava, usando tokens para realizar isso (muito utilizado para
resumir downloads, por exemplo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="camada-de-apresentação6"&gt;Camada de apresentação(6)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;usa PPDU&lt;/li&gt;
&lt;li&gt;sintaxe e semântica das informações&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="camada-de-aplicação7"&gt;Camada de Aplicação(7)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;usa APDU&lt;/li&gt;
&lt;li&gt;uso de protocolos pelo user&lt;/li&gt;
&lt;li&gt;DNS, SMTP, FTP, HTTP (protocolos da camada de aplicação)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://www.alura.com.br/artigos/conhecendo-o-modelo-osi\"&gt;alura&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-271-05199a0h4bfc/image_454.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 272</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-272-jjbe5beh27h5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-272-jjbe5beh27h5/</guid><description>&lt;h4 id="threads-emjava"&gt;Threads em JAVA&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;gerenciado pela JVM&lt;/li&gt;
&lt;li&gt;modo user&lt;/li&gt;
&lt;li&gt;pode ser criado estendendo Threads ou implementando um Runnable&lt;/li&gt;
&lt;li&gt;todo app java possui no mínimo 1 thread (main thread)&lt;/li&gt;
&lt;li&gt;main pode criar novas threads&lt;/li&gt;
&lt;li&gt;cada thread é uma instância da classe Thread&lt;/li&gt;
&lt;li&gt;classe precisa ter o método run&lt;/li&gt;
&lt;li&gt;.start() → inicia o thread&lt;/li&gt;
&lt;li&gt;.sleep() → pausa o thread por um certo tempo&lt;/li&gt;
&lt;li&gt;.join() → espera o thread acabar para rodar o resto do fluxo
principal&lt;/li&gt;
&lt;li&gt;.interrup() → para o thread&lt;/li&gt;
&lt;li&gt;.interrupted() → checa se o thread foi interrompido&lt;/li&gt;
&lt;li&gt;ao usar memória compartilhada, é interessante o primeiro que
utilizar bloquear o recurso, para não haver sobreescrita&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="jvm"&gt;JVM&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;JVM suporta um único processo (programa)&lt;/li&gt;
&lt;li&gt;JVM possui → loader, verifier e o runtime interpreter&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 273</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-273-8dfgehe5dii/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-273-8dfgehe5dii/</guid><description>&lt;h4 id="ips"&gt;IPs&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;uma parte do IP identifica o host e a outra a rede&lt;/li&gt;
&lt;li&gt;endereço de rede serve para identificar a rede&lt;/li&gt;
&lt;li&gt;endereço de broadcast é usado quando é necessário mandar algo para
todos os endereços IP da rede&lt;/li&gt;
&lt;li&gt;máscara de sub-rede ajuda a determinar a parte que representa o host
e a classe dos IPs&lt;/li&gt;
&lt;li&gt;cada classe há um limite de Hosts e Redes&lt;/li&gt;
&lt;li&gt;endereços frios → IPs locais, não roteáveis&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="classes-deips"&gt;Classes de IPs&lt;/h3&gt;
&lt;h4 id="classe-a"&gt;Classe A&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;bit mais a direita é sempre 0 (valores vão de 1 ate 126/127)&lt;/li&gt;
&lt;li&gt;127 é um número reservado para referenciar o próprio computador
(localhost &amp;mdash; 127.0.0.1)&lt;/li&gt;
&lt;li&gt;máscara → 255.0.0.0 (8 bits para a rede e 24 para a máquina/host)&lt;/li&gt;
&lt;li&gt;128 redes possíveis (2⁷ &amp;mdash; 2)&lt;/li&gt;
&lt;li&gt;16777214 hosts (2²⁴- 2) ← total de hosts que serão atingidos no
broadcast&lt;/li&gt;
&lt;li&gt;endereços frios são → 10.0.0.0 à 10.255.255.255&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="classe-b"&gt;Classe B&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;dois primeiros bits são 10 (primeiro octeto vai de 128 ate 191)&lt;/li&gt;
&lt;li&gt;máscara → 255.255.0.0&lt;/li&gt;
&lt;li&gt;16382 redes possíveis (2¹⁴-2)&lt;/li&gt;
&lt;li&gt;65534 hosts (2¹⁶ &amp;mdash; 2)&lt;/li&gt;
&lt;li&gt;endereços frios são → 172.16.0.0 à 172.31.255.255&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="classe-c"&gt;Classe C&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;primeiros bits são 110 (primeiro octeto vai de 192 até 223)&lt;/li&gt;
&lt;li&gt;máscara → 255.255.255.0&lt;/li&gt;
&lt;li&gt;2097150 redes possíveis (2²¹-2)&lt;/li&gt;
&lt;li&gt;254 hosts (2⁸-2)&lt;/li&gt;
&lt;li&gt;endereços frios são → 192.168.0.0 à 192.168.255.255&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="classe-d"&gt;Classe D&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;primeiros bits 1110&lt;/li&gt;
&lt;li&gt;usados para endereços multicast&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="classe-e"&gt;Classe E&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;primeiros bits 1111&lt;/li&gt;
&lt;li&gt;reservado para o futuro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esses IPs são conhecidos como IPs roteáveis&lt;/p&gt;</description></item><item><title>Ciências da computação dia 274</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-274-05503ad1cca5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-274-05503ad1cca5/</guid><description>&lt;h4 id="medidas-de-dispersão"&gt;Medidas de dispersão&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;às vezes, medidas de tendência central não representam corretamente
os dados. Então precisamos utilizar esses tipos de medidas para
entender como os dados estão dispersos entre si&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="desvio-médio"&gt;Desvio médio&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;distância entre os dados (sempre positivo)&lt;/li&gt;
&lt;li&gt;desvio em relação a média da sequência&lt;/li&gt;
&lt;li&gt;pouca precisão&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-274-05503ad1cca5/image_456.png"&gt;&lt;/p&gt;
&lt;h4 id="variância"&gt;Variância&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;utiliza-se o quadrado do valor ao invés do modulo&lt;/li&gt;
&lt;li&gt;σ² ou S²&lt;/li&gt;
&lt;li&gt;ao utilizar todos os valores, isso é chamado de variância
populacional, caso contrário é chamado de variância amostral&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-274-05503ad1cca5/image_457.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 275</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-275-j70cbah71ege/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-275-j70cbah71ege/</guid><description>&lt;h4 id="ips"&gt;IPs&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;número de hosts segue a formula 2^n-2, sendo &lt;em&gt;n&lt;/em&gt; o numero de bits
(o menos dois remove os dois números reservados .0 e .255)&lt;/li&gt;
&lt;li&gt;IP do roteador geralmente é o primeiro, mas pode ser qualquer outro
na prática&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="roteadores"&gt;Roteadores&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;também são chamados de gateway&lt;/li&gt;
&lt;li&gt;ao acessar um IP fora da rede ele vai para o roteador e vai pulando
de roteador em roteador até chegar no ponto que tenha o que você
procura&lt;/li&gt;
&lt;li&gt;LAN é sempre por difusão, mesmo usando switch (o switch ainda usa
difusão, mas ele também consegue enviar diretamente dependendo do
seu tempo de uso)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="sub-redes"&gt;Sub-redes&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;você pode pegar um IP especifico e dividi-lo em sub-redes, basta
configurar a máscara de sub-rede&lt;/li&gt;
&lt;li&gt;ao dividir um IP em sub-redes, cada sub-rede terá seu IP de
broadcast e de rede. Por exemplo, se tivermos 192.168.0.0 até
192.168.0.31, os IPs usáveis vão d e 192.168.0.1 até 192.168.0.30&lt;/li&gt;
&lt;li&gt;na máscara você começa a adicionar bits da esquerda para direita no
ultimo octeto disponível (você não conta em binário, vai apenas
mudando o bit menos significativo para 1) ex: 255.255.255.0 →
255.255.255.128&lt;/li&gt;
&lt;li&gt;não há mudanças na classe de IP&lt;/li&gt;
&lt;li&gt;nḿero de sub redes é 2^n sendo n o numero de bits adicionados&lt;/li&gt;
&lt;li&gt;não pode haver máscara 255.255.255.255, já que essa rede teria
apenas número de broadcast&lt;/li&gt;
&lt;li&gt;quantidade de IPs de cada sub rede também segue o padrão 2^n-2,
sendo n o número de bits do host&lt;/li&gt;
&lt;li&gt;ao adicionar bits na sub rede, a máscara também aumenta ex:
192.168.0.0/24 → 192.168.0.0/26 (adicionando mais 2 bits)&lt;/li&gt;
&lt;li&gt;computadores com mascaras diferentes não pertencem a mesma rede(não
conseguem se comunicar entre si)&lt;/li&gt;
&lt;li&gt;Para saber se dois IPs estão na mesma rede faça: transforme os IPs e
mascaras de cada um em binário, depois faça uma operação AND entre o
IP e sua respectiva máscara. Se ao final eles forem iguais, eles
pertencem a mesma rede&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 276</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-276-2i3ff1e20d58/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-276-2i3ff1e20d58/</guid><description>&lt;h4 id="interrupção"&gt;Interrupção&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;evento externo que faz com que a execução pare para executar uma
rotina de interrupção&lt;/li&gt;
&lt;li&gt;após o tratamento ela volta&lt;/li&gt;
&lt;li&gt;quando menos, melhor&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="maneiras-de-fazer-processos-paralelos"&gt;Maneiras de fazer processos Paralelos&lt;/h3&gt;
&lt;h4 id="co-routines"&gt;co-routines&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;semelhante a sub rotinas (métodos)&lt;/li&gt;
&lt;li&gt;marca vários pontos intermediários de entrada e saída da rotina&lt;/li&gt;
&lt;li&gt;endereçamento especifico do tipo TRANSFER&lt;/li&gt;
&lt;li&gt;não possui retorno&lt;/li&gt;
&lt;li&gt;ao chamar uma co rotina ela vai seguindo até encontrar um TRANSFER&lt;/li&gt;
&lt;li&gt;executa um pequeno código e depois volta&lt;/li&gt;
&lt;li&gt;não bloqueante&lt;/li&gt;
&lt;li&gt;async/await&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="forkjoin"&gt;FORK/JOIN&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;cria-se um novo processo (FORK)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;2. segue executando o pai&lt;/p&gt;</description></item><item><title>Ciências da computação dia 277</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-277-5650idfc069/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-277-5650idfc069/</guid><description>&lt;p&gt;Endereço de rede é usado para saber se dois IPs estão na mesma rede, se
não, então é necessário usar um router&lt;/p&gt;</description></item><item><title>Ciências da computação dia 278</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-278-13hh3g7580gi/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-278-13hh3g7580gi/</guid><description>&lt;h3 id="análise-combinatória"&gt;Análise combinatória&lt;/h3&gt;
&lt;h4 id="fatorial"&gt;fatorial&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;não funciona para números negativos&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;n! = n*(n-1)*(n-2)*&amp;hellip;*1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;0! = 1! = 1&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Ciências da computação dia 279</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-279-dj1640d255d/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-279-dj1640d255d/</guid><description>&lt;h4 id="sleepwake-up"&gt;Sleep/Wake Up&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;bloqueante&lt;/li&gt;
&lt;li&gt;para problemas bounded buffer(limitado pelo buffer)&lt;/li&gt;
&lt;li&gt;problema do produtor/consumidor (produtor adiciona no buffer,
consumidor tira do buffer)&lt;/li&gt;
&lt;li&gt;o problema do produtor/consumidor acontece quando o produtor quer
adicionar no buffer, mas ele está cheio, ou o consumidor quer tirar
do buffer, mas ele está vazio&lt;/li&gt;
&lt;li&gt;para resolver isso, o sleep/wake up coloca o processo para dormir&lt;/li&gt;
&lt;li&gt;dois processos acessam o buffer ao mesmo tempo&lt;/li&gt;
&lt;li&gt;buffer age como uma fila circular&lt;/li&gt;
&lt;li&gt;exclusão mutua deve ser aplicada&lt;/li&gt;
&lt;li&gt;há a possibilidade de usar uma variável para dizer se um pode
consumir e se o outro pode adicionar, contudo, o scheduler pode
interromper antes da variável ser modificada, podendo então causar a
dissincronia e consequentemente um deadlock&lt;/li&gt;
&lt;li&gt;um processo pode colocar outro para dormir (sleep) ou acordar (wake
up)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="semáforo"&gt;Semáforo&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;armazena o numero de wake ups enviados, começando em 1&lt;/li&gt;
&lt;li&gt;se o número for 0, o recurso está sendo usado, se não ele está livre&lt;/li&gt;
&lt;li&gt;operação down executa sempre que um processo quer utilizar o recurso
e up para liberar o recurso&lt;/li&gt;
&lt;li&gt;operações são atômicas&lt;/li&gt;
&lt;li&gt;aplica a exclusão mutua&lt;/li&gt;
&lt;li&gt;bloqueante&lt;/li&gt;
&lt;li&gt;quando um processo acessa a região crítica, ele da um comando down,
se o valor for 0 ele entra numa fila e fica bloqueado até chegar a
vez dele de usar, se não ele executa&lt;/li&gt;
&lt;li&gt;Semáforo full → conta no buffer quantos espaços estão sendo usados
(começa com o numero de elementos)&lt;/li&gt;
&lt;li&gt;Semáforo empty → conta o numero de espaços vazios no buffer (começa
com 0)&lt;/li&gt;
&lt;li&gt;soluciona o mesmo problema do produtor/consumidor&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="monitor"&gt;Monitor&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;há somente um processo ativo dentro do monitor o restante é
bloqueado&lt;/li&gt;
&lt;li&gt;semelhante ao semáforo, só que mais fácil de controlar&lt;/li&gt;
&lt;li&gt;bloco programático&lt;/li&gt;
&lt;li&gt;compilador que garante a exclusão mutua&lt;/li&gt;
&lt;li&gt;dentro de um bloco monitor há procedimentos a serem executados,
antes de executar ele vê se não há nada que estava sendo executado
antes&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="mensagem"&gt;Mensagem&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;processos podem estar em diferentes máquinas&lt;/li&gt;
&lt;li&gt;envia e recebe mensagens ao invés de usar memória compartilhada&lt;/li&gt;
&lt;li&gt;pode usar as primitivas SEND e RECIEVE para sincronia&lt;/li&gt;
&lt;li&gt;pode ser bloqueante ou não (usando outra THREAD por exemplo)&lt;/li&gt;
&lt;li&gt;por usar rede, há diversos problemas que podem acontecer&lt;/li&gt;
&lt;li&gt;para resolver a perda de mensagens, é usado ACK para dizer que a
info chegou corretamente&lt;/li&gt;
&lt;li&gt;para resolver a perda do ACK, as mensagens são todas numeradas,
assim, caso um envie a mesma mensagem 2 vezes, entende-se que ele
não recebeu o ACK então, você descarta a mensagem e envia o ACK de
novo&lt;/li&gt;
&lt;li&gt;pode haver combinação de bloqueante e não bloqueante (emissor x
receptor)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;emissor bloqueante e receptor bloqueante = síncrono&lt;/p&gt;</description></item><item><title>Ciências da computação dia 28</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-28-4358h92d47e3/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-28-4358h92d47e3/</guid><description>&lt;p&gt;&lt;strong&gt;Lógica simples&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;probabilidade usada apenas para um caso único&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;P = n de casos satisfatórios / n de todos os casos (conjunto U)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Teorema do OU&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;soma de probabilidades&lt;/li&gt;
&lt;li&gt;deixa mais fácil o evento desejado&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;P(1) + P(2) +P(3) &amp;hellip;. + P(n)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Teorema do E&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;multiplicação de probabilidades&lt;/li&gt;
&lt;li&gt;deixa mais difícil o evento desejado&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;P(1) * P(2) * P(3) &amp;hellip; * P(n)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Além disso, em alguns tipos de eventos você pode ter devolução ou não
(dependendo do caso, claro), com devolução você manterá a mesma
probabilidade para todos os eventos&lt;/p&gt;</description></item><item><title>Ciências da computação dia 280</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-280-h85a38g06d3h/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-280-h85a38g06d3h/</guid><description>&lt;h4 id="matriz-de-adjacência"&gt;Matriz de adjacência&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;cada vértice é representada por um element na linha i e coluna j&lt;/li&gt;
&lt;li&gt;elemento aij representa a quantidade de ligações que um vértice tem&lt;/li&gt;
&lt;li&gt;cada intersecção entre linha e coluna diz se eles possuem ligações&lt;/li&gt;
&lt;li&gt;Podem ocorrer espelhos na matriz, formando dois triângulos. Dessa
forma é possível armazenar só um dos triângulos e economizar memória&lt;/li&gt;
&lt;li&gt;matriz densa = poucos zeros; matriz dispersa = muitos zeros (poucas
arestas)&lt;/li&gt;
&lt;li&gt;ótimo para dígrafos e grafos densos no geral&lt;/li&gt;
&lt;li&gt;no grafo não direcionado, cada elemento aij pode ser maior do que 1,
sendo assim, cada vértice pode ter mais de uma ligação&lt;/li&gt;
&lt;li&gt;no dígrafo, cada elemento vai de 0 até 1, contando a aresta que sai
de um nó. Nesse caso é necessário manter todos os elementos. Aqui
pode não haver os espelhos.&lt;/li&gt;
&lt;li&gt;matriz booleana = diagonal principal é 0. Não há arestas
múltiplas(loops, etc). tudo é 0 ou 1. possui os dois triângulos
espelhados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-280-h85a38g06d3h/image_461.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 281</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-281-fbj00bajgfce/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-281-fbj00bajgfce/</guid><description>&lt;h3 id="portas"&gt;Portas&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;tanto TCP como UDP utilizam portas para passar informações para
camadas superiores&lt;/li&gt;
&lt;li&gt;são usadas para manter diferentes conversações ao mesmo tempo&lt;/li&gt;
&lt;li&gt;IANA → órgão que define portas padrão para serviços&lt;/li&gt;
&lt;li&gt;FTP → 20 é para dados, 21 é para controle&lt;/li&gt;
&lt;li&gt;Aplicações especificas recebem portas padrão abaixo de 1024&lt;/li&gt;
&lt;li&gt;Aplicações genéricas recebem portas randômicas acima de 1023&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="domínio"&gt;Domínio&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;conjunto de máquinas (hosts) que agrupam um conjunto de serviços&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dns"&gt;DNS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;tipo A → aponta para um IP&lt;/li&gt;
&lt;li&gt;tipo CNAME → aponta para um nome&lt;/li&gt;
&lt;li&gt;tipo MX → usado para email&lt;/li&gt;
&lt;li&gt;tipo TXT → usado para texto puro&lt;/li&gt;
&lt;li&gt;é um banco de dados distribuído&lt;/li&gt;
&lt;li&gt;usa a porta 53&lt;/li&gt;
&lt;li&gt;de primeiro nível (.br, .it, .io, .uk, &amp;hellip;)&lt;/li&gt;
&lt;li&gt;de segundo nível (.edu, .gov, .com, &amp;hellip;)&lt;/li&gt;
&lt;li&gt;para aumentar os níveis, é necessário mais de DNS para dizer quem
vai apontar para cada domínio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://pt.wikipedia.org/wiki/Sistema_de_Nomes_de_Dom%C3%ADnio\"&gt;wikipedia&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-281-fbj00bajgfce/image_465.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 282</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-282-j06dfba12bb6a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-282-j06dfba12bb6a/</guid><description>&lt;h3 id="socket"&gt;Socket&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;comunicação usando TCP/UDP&lt;/li&gt;
&lt;li&gt;troca de dados em tempo real&lt;/li&gt;
&lt;li&gt;escalável&lt;/li&gt;
&lt;li&gt;multi-usuário&lt;/li&gt;
&lt;li&gt;mais difícil de implantar&lt;/li&gt;
&lt;li&gt;mais vulnerável&lt;/li&gt;
&lt;li&gt;resposta rápida&lt;/li&gt;
&lt;li&gt;modelo cliente servidor&lt;/li&gt;
&lt;li&gt;ocorre um three-way handshake no começo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="&lt;a href=\"https://www.geeksforgeeks.org/socket-in-computer-network/\"&gt;geeksforgeeks&lt;/a&gt;" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-282-j06dfba12bb6a/image_467.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fluxo é bidirecional, ambos os lados podem tanto enviar como receber
ao mesmo tempo, basta escolher qual operação realizar&lt;/li&gt;
&lt;li&gt;Server espera por múltiplas conexões, cada uma é um novo socket&lt;/li&gt;
&lt;li&gt;server usa várias threads para os sockets&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 283</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-283-21hcb6364e3a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-283-21hcb6364e3a/</guid><description>&lt;h4 id="principio-fundamental-dacontagem"&gt;Principio fundamental da contagem&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-283-21hcb6364e3a/image_468.png"&gt;&lt;/p&gt;
&lt;p&gt;Para saber as combinações do conjunto podemos fazer: 4*3*2*1 = 4!&lt;/p&gt;
&lt;h4 id="arranjo-simples"&gt;Arranjo Simples&lt;/h4&gt;
&lt;p&gt;Agrupamento sem repetição em que um grupo é diferente de outro por ordem
ou por natureza dos elementos&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-283-21hcb6364e3a/image_469.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 284</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-284-3fb84cfii26h/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-284-3fb84cfii26h/</guid><description>&lt;h4 id="aws"&gt;AWS&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Na AWS tudo parte de uma VPC(rede virtual)&lt;/li&gt;
&lt;li&gt;cada VPC pode estar associada a uma região e cada região a uma
subrede&lt;/li&gt;
&lt;li&gt;toda VPC pode ser publica, sendo disponibilizada para todo mundo, ou
privada, um IP interno usado para coisas internas da aplicação, como
banco de dados etc&lt;/li&gt;
&lt;li&gt;0.0.0.0/0 é o default gateway&lt;/li&gt;
&lt;li&gt;tabela de rotas interligam subredes&lt;/li&gt;
&lt;li&gt;ao derrubar um server da cloud, o DNA ainda funciona&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="ttl"&gt;TTL&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;é o tempo em que um pacote vai ficar vivo(usado para DNS, CDN, etc.)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 285</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-285-94fe7fc8hfha/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-285-94fe7fc8hfha/</guid><description>&lt;h4 id="permutação-simples"&gt;Permutação Simples&lt;/h4&gt;
&lt;p&gt;Quantidade de combinações&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-285-94fe7fc8hfha/image_470.png"&gt;&lt;/p&gt;
&lt;h4 id="arranjo-simples"&gt;Arranjo Simples&lt;/h4&gt;
&lt;p&gt;A cada arranjo cria-se um grupo distinto dos outros&lt;/p&gt;
&lt;h4 id="combinação-simples"&gt;Combinação Simples&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Este não cria novos grupos&lt;/li&gt;
&lt;li&gt;Tanto faz a ordem (AB=BA)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-285-94fe7fc8hfha/image_471.png"&gt;&lt;/p&gt;
&lt;h4 id="permutação-com-elementos-repetidos"&gt;Permutação com elementos repetidos&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-285-94fe7fc8hfha/image_472.png"&gt;&lt;/p&gt;
&lt;p&gt;Usado para anagramas&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-285-94fe7fc8hfha/image_473.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 286</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-286-4c2582ea9f3c/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-286-4c2582ea9f3c/</guid><description>&lt;h4 id="gerenciamento-dememória"&gt;Gerenciamento de Memória&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Lei de Parkinson &amp;mdash; Programa sempre se expande para preencher a
memória disponível para ele&lt;/li&gt;
&lt;li&gt;gerencia da hierarquia de memória&lt;/li&gt;
&lt;li&gt;SWAP&lt;/li&gt;
&lt;li&gt;alocação e liberação de espaço&lt;/li&gt;
&lt;li&gt;localização de dados&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="classes-de-gerenciamento-dememória"&gt;Classes de gerenciamento de memória&lt;/h3&gt;
&lt;h4 id="mono-tarefa"&gt;Mono tarefa&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;toda memória é alocada para o próximo programa&lt;/li&gt;
&lt;li&gt;inclui área para o OS&lt;/li&gt;
&lt;li&gt;erros de execução podem prejudicar o OS que está na memória&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="esquemas de organização mono\u00a0tarefa" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-286-4c2582ea9f3c/image_474.png"&gt;&lt;/p&gt;
&lt;h4 id="multiprogramação"&gt;Multiprogramação&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Divide a memória em varias partições de tamanhos diferentes&lt;/li&gt;
&lt;li&gt;Ao adicionar um job ele entra na fila para pegar um espaço da
memória&lt;/li&gt;
&lt;li&gt;Diminui o tempo ocioso da CPU, já que você pode fazer várias coisas
ao mesmo tempo&lt;/li&gt;
&lt;li&gt;Para resolver problemas de limites das partições, o processador vem
equipado com uma MMU&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="mmu-memory-management-unit"&gt;MMU (memory management unit)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Hardware presente no processador&lt;/li&gt;
&lt;li&gt;transforma endereço virtual em físico&lt;/li&gt;
&lt;li&gt;user nunca acessa endereços físicos&lt;/li&gt;
&lt;li&gt;aponta um espaço virtual para um físico&lt;/li&gt;
&lt;li&gt;software não pode ser compilado com endereços absolutos, por isso
usa-se offsets de endereços. Com isso, endereços de limite são
colocados para auxiliar commandos JMP&lt;/li&gt;
&lt;li&gt;o endereço base e limite superior são usados para não fazer com o
que programa saia dos limites, além do endereço base ser usado para
o calculo do offset&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="tipos-departição"&gt;Tipos de partição&lt;/h3&gt;
&lt;h4 id="estática"&gt;Estática&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;tamanho e número de partições fixa&lt;/li&gt;
&lt;li&gt;suscetível a fragmentação&lt;/li&gt;
&lt;li&gt;mais fácil de gerenciar&lt;/li&gt;
&lt;li&gt;espaços podem não ser usados totalmente (fragmentação interna)&lt;/li&gt;
&lt;li&gt;pode usar filas múltiplas para adicionar processos nas partições
(cada fila é designada para um tamanho especifico, mas pode
acarretar em filas não balanceadas)&lt;/li&gt;
&lt;li&gt;pode usar fila única para adicionar processos nas partições, assim
cada processo pega a melhor partição livre, mas seria mais lento&lt;/li&gt;
&lt;li&gt;pode haver fragmentação externa (se juntar duas partições livres
elas dariam o tamanho para caber um processo maior que precisa ser
executado). Esse problema é menor no caso da estática&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="variável"&gt;Variável&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;menor fragmentação interna&lt;/li&gt;
&lt;li&gt;alocado dinamicamente&lt;/li&gt;
&lt;li&gt;problema de fragmentação externa, uma vez que conforme o espaço vai
sendo liberado, buracos ficarão no meio. Para resolver esse problema
pode ser usado a compactação da memória (OS mantêm uma lista dos
espaços vazios, mas é custoso para a CPU)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="técnicas-dealocação"&gt;Técnicas de alocação&lt;/h3&gt;
&lt;h4 id="bitmap"&gt;Bitmap&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;divide a memória em pequenos pedaços (em Kb por exemplo)&lt;/li&gt;
&lt;li&gt;cada pedaço recebe o valor 1, se estiver ocupado, e 0 se estiver
livre&lt;/li&gt;
&lt;li&gt;unidades não podem ser nem muito grandes nem pequenas demais&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="linked-lists"&gt;Linked lists&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Lista encadeada marca se é um espaço vazio ou não, a onde começa e o
tamanho da partição&lt;/li&gt;
&lt;li&gt;pode ser usada mais de uma lista, para dizer por exemplo o que está
vazio e o que esta sendo usado&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="algoritmos-dealocação"&gt;Algoritmos de alocação&lt;/h3&gt;
&lt;h4 id="first-fit"&gt;First Fit&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;o primeiro segmento livre é usado (dessa forma os espaços vazios vão
para o final)&lt;/li&gt;
&lt;li&gt;+ rápido&lt;/li&gt;
&lt;li&gt;pode levar a fragmentação&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="next-fit"&gt;Next Fit&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;usa o primeiro segmento livre, guarda essa informação e para o
próximo ele continua da onde parou&lt;/li&gt;
&lt;li&gt;desempenho inferior ao First Fit&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="best-fit"&gt;Best Fit&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;procura na lista toda o melhor espaço para o processo&lt;/li&gt;
&lt;li&gt;mais lento&lt;/li&gt;
&lt;li&gt;menor fragmentação&lt;/li&gt;
&lt;li&gt;após um bom tempo ele pode deixar vários espaços pequenos inúteis
(fragmentação)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="worst-fit"&gt;Worst Fit&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;aloca o maior espaço disponível para evitar os espaços pequenos
inúteis&lt;/li&gt;
&lt;li&gt;tende a espalhar porções não utilizadas para áreas não contíguas,
sendo difícil de alocar jobs grandes depois&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="quick-fit"&gt;Quick Fit&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;mantém listas para tamanhos mais usados e pega o que se encaixa para
o processo&lt;/li&gt;
&lt;li&gt;tenta encontrar os espaços vazios vizinhos ao dealocar para fazer a
união entre eles&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="dispositivos-dememória"&gt;Dispositivos de memória&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;massive tape storage &amp;mdash; fitas para backup&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 287</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-287-353fgd87caa5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-287-353fgd87caa5/</guid><description>&lt;h4 id="roteamento-estático"&gt;Roteamento estático&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;configuração manual das rotas entre roteadores&lt;/li&gt;
&lt;li&gt;para redes menores e mais simples&lt;/li&gt;
&lt;li&gt;definição dos IPs de destino, mascará de rede e próximos saltos&lt;/li&gt;
&lt;li&gt;mais seguros (não depende de protocolos)&lt;/li&gt;
&lt;li&gt;requer muita manutenção&lt;/li&gt;
&lt;li&gt;não é escalável&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-287-353fgd87caa5/image_475.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-287-353fgd87caa5/image_476.png"&gt;&lt;/p&gt;
&lt;h3 id="roteamento-dinâmico"&gt;Roteamento Dinâmico&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;utiliza protocolos como OSPF, EIGRP e BGP&lt;/li&gt;
&lt;li&gt;protocolos monitoram mudanças na topologia&lt;/li&gt;
&lt;li&gt;roteamento se baseia em algoritmos para travessia de grafos (como
Dijkstra) levando em consideração coisas como banda, número de
saltos, latência, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="protocolo-rip"&gt;Protocolo RIP&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;baseado em vetor de distância&lt;/li&gt;
&lt;li&gt;antigo&lt;/li&gt;
&lt;li&gt;suporta até 15 saltos&lt;/li&gt;
&lt;li&gt;verifica atualização na rota a cada 30s&lt;/li&gt;
&lt;li&gt;para redes simples&lt;/li&gt;
&lt;li&gt;leva em consideração o número de saltos para definir a melhor rota&lt;/li&gt;
&lt;li&gt;pode gerar loops em redes grandes&lt;/li&gt;
&lt;li&gt;convergência lenta (para trocar de rota)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="eigrp"&gt;EIGRP&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;da CISCO&lt;/li&gt;
&lt;li&gt;baseado no algoritmo DUAL&lt;/li&gt;
&lt;li&gt;híbrido entre vetor de distância e estado de enlace (vê se a conexão
está boa)&lt;/li&gt;
&lt;li&gt;rápida convergência, suporta vários protocolos, tolerância a falhas,
utiliza várias métricas&lt;/li&gt;
&lt;li&gt;capaz de entregar as informações na ordem certa&lt;/li&gt;
&lt;li&gt;envia por outras rotas caso uma falhe&lt;/li&gt;
&lt;li&gt;balanceamento de carga&lt;/li&gt;
&lt;li&gt;escalável&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="ospf"&gt;OSPF&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Open Shortest Path First&lt;/li&gt;
&lt;li&gt;protocolo com estado de enlace (link-state)&lt;/li&gt;
&lt;li&gt;suporta sub-redes e área&lt;/li&gt;
&lt;li&gt;entrega na ordem&lt;/li&gt;
&lt;li&gt;balanceamento de carga&lt;/li&gt;
&lt;li&gt;atualiza rapidamente a rota em resposta a mudanças na topologia
(caso algum cabo rompa, ou algum aparelho quebre, etc.)&lt;/li&gt;
&lt;li&gt;usa o algoritmo de Dijkstra&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="bgp"&gt;BGP&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Border Gateway Protocol (interno)&lt;/li&gt;
&lt;li&gt;EBGP para externo&lt;/li&gt;
&lt;li&gt;roteamento para sistemas autônomos&lt;/li&gt;
&lt;li&gt;para políticas de roteamento complexos&lt;/li&gt;
&lt;li&gt;suporta propagação de rotas entre diferentes domínios&lt;/li&gt;
&lt;li&gt;métricas: número de saltos, confiabilidade e preferência local
(roteadores locais)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 288</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-288-aci7g55hi70i/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-288-aci7g55hi70i/</guid><description>&lt;h4 id="overlays"&gt;Overlays&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;divide o processo em partes menores&lt;/li&gt;
&lt;li&gt;swap chaveia essas partes&lt;/li&gt;
&lt;li&gt;antigamente o programador era obrigado a quebrar manualmente o
programa em overlays&lt;/li&gt;
&lt;li&gt;hoje em dia é usado memória virtual, sendo o OS responsável por
gerenciar as overlays&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="swap"&gt;SWAP&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;chaveamento de processos entre MP e disco&lt;/li&gt;
&lt;li&gt;pode usar partições fixas ou variáveis&lt;/li&gt;
&lt;li&gt;swap-out → da MP para o disco&lt;/li&gt;
&lt;li&gt;swap-in → do disco para a MP&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="endereçamento"&gt;Endereçamento&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;espaço de endereçamento virtual (EEV) → todos os endereços virtuais
que um processo pode gerar&lt;/li&gt;
&lt;li&gt;espaço de endereçamento real → todos os endereços de um processo que
a MP aceita&lt;/li&gt;
&lt;li&gt;um endereço virtual é traduzido em um real (mapeamento)&lt;/li&gt;
&lt;li&gt;MMU aplica técnicas de paginação e segmentação para fazer o
mapeamento&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="segmentação"&gt;Segmentação&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;blocos de tamanho arbitrário&lt;/li&gt;
&lt;li&gt;EEV é dividido em segmentos virtuais&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="paginação"&gt;Paginação&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;blocos de tamanho fixo&lt;/li&gt;
&lt;li&gt;espaço de endereçamento real é dividido em páginas&lt;/li&gt;
&lt;li&gt;MP e MS (memória secundária) são dividias em blocos de tamanhos
iguais&lt;/li&gt;
&lt;li&gt;página é a unidade básica de transferência de dados&lt;/li&gt;
&lt;li&gt;tabela de páginas → armazena as informações sobre elas&lt;/li&gt;
&lt;li&gt;page frame → memória física utilizada pela página&lt;/li&gt;
&lt;li&gt;MMU define o tamanho das páginas&lt;/li&gt;
&lt;li&gt;pode gerar fragmentação interna&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-288-aci7g55hi70i/image_477.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 289</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-289-6def6gg5j6fc/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-289-6def6gg5j6fc/</guid><description>&lt;h4 id="memória-virtual"&gt;Memória virtual&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;há a sensação de ter mais memória disponível&lt;/li&gt;
&lt;li&gt;muitas vezes é implementado em hardware&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-289-6def6gg5j6fc/image_478.png"&gt;&lt;/p&gt;
&lt;h4 id="paginação"&gt;Paginação&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-289-6def6gg5j6fc/image_479.png"&gt;&lt;/p&gt;
&lt;p&gt;Como os endereços virtuais de estão paginados, ao usar algo de dentro da
EEV de A, a tabela de páginas dirá o endereço da MP em que aquela parte
especifica está&lt;/p&gt;
&lt;h4 id="tabela-depáginas"&gt;Tabela de páginas&lt;/h4&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-289-6def6gg5j6fc/image_480.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;bit presente/ausente diz se a página está mapeada para um endereço
físico&lt;/li&gt;
&lt;li&gt;cache da MMU é chamado de TLB&lt;/li&gt;
&lt;li&gt;page fault → quando tenta-se acessar dados que não estão na RAM
devido ao SWAP ou coisa do gênero&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="algoritmos-para-a-substituição-depáginas"&gt;Algoritmos para a substituição de páginas&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;para performance é melhor não remover uma página usada com
frequência&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="algoritmo-nru"&gt;Algoritmo NRU&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;usa os bits de status Reference e modified&lt;/li&gt;
&lt;li&gt;ao receber um page fault ele classifica as paginas em:&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;classe 0 → R=0, M=0&lt;/p&gt;</description></item><item><title>Ciências da computação dia 29</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-29-0a3a142190bg/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-29-0a3a142190bg/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Algoritmos melhores são aqueles que resolvem um problema com uma
quantidade menor de instruções e com uma menor gasto computacional&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Variáveis compostas&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;variáveis que armazenam mais de um valor&lt;/li&gt;
&lt;li&gt;ela é homogênea quando todos os seus valores são do mesmo tipo&lt;/li&gt;
&lt;li&gt;listas em Python é um exemplo de variável composta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Observações&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;o penúltimo divisor de um número é sempre sua metade, o último é sempre
ele mesmo&lt;/p&gt;
&lt;p&gt;a = [0] * 10 ← cria-se uma lista com 10 valores 0 (em python)&lt;/p&gt;</description></item><item><title>Ciências da computação dia 290</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-290-51ehj683j59ca/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-290-51ehj683j59ca/</guid><description>&lt;ul&gt;
&lt;li&gt;Topologia Token Ring → proprietário da IBM&lt;/li&gt;
&lt;li&gt;cabos vão de 17 a 100m, nem mais nem menos, pela norma&lt;/li&gt;
&lt;li&gt;passou de 100m o cabo de par trançado pode perder suas propriedades&lt;/li&gt;
&lt;li&gt;IPV4 → 32 bits&lt;/li&gt;
&lt;li&gt;IPV6 → 128 bits&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 291</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-291-ddb1e10806ba/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-291-ddb1e10806ba/</guid><description>&lt;h4 id="árvores"&gt;Árvores&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;grafo conexo acíclico com um nó especial (root)&lt;/li&gt;
&lt;li&gt;cresce para baixo sem voltar&lt;/li&gt;
&lt;li&gt;árvores com n nós possuem n-1 arestas e 2n-2 extremidades (2 para
cada aresta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="árvore-livre"&gt;Árvore livre&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;grafo conexo acíclico sem uma raiz especificada&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="floresta"&gt;Floresta&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;conjunto de árvores&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="ancestralidade"&gt;Ancestralidade&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ancestral → nó y anterior em algum nível de z&lt;/li&gt;
&lt;li&gt;descendente → nó z que tem y como ancestral&lt;/li&gt;
&lt;li&gt;filho → x é um ancestral direto de y&lt;/li&gt;
&lt;li&gt;pai → y é descendente direto de x&lt;/li&gt;
&lt;li&gt;folha → nó sem filhos&lt;/li&gt;
&lt;li&gt;nó interno → qualquer nó não folha&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="alturaprofundidade-daárvore"&gt;Altura/profundidade da árvore&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;maior profundidade dentre os nós&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="altura-de-umnó"&gt;Altura de um nó&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Raiz = 0&lt;/p&gt;</description></item><item><title>Ciências da computação dia 3</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-3-2h49gg41jibj/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-3-2h49gg41jibj/</guid><description>&lt;p&gt;coisas sobre matemática e alguns truques para fazer algumas contas mais
rápido&lt;/p&gt;
&lt;h3 id="um-pouco-dehistória"&gt;Um pouco de história&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;matemática era no principio considerada uma religião, já que o
conhecimento era escasso e caro&lt;/li&gt;
&lt;li&gt;A partir do ano de 1500/1600 começaram a aparecer as primeiras
gráficas que ajudaram a popularizar e baratear o conhecimento com
livros e afins&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="truques-de-matemática"&gt;Truques de matemática&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;multiplicação por 11 com 2 dígitos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;25 * 11 = (primeiro numero)(primeiro + segundo numero)(segundo numero)&lt;/p&gt;</description></item><item><title>Ciências da computação dia 30</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-30-6hc60i60f86g/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-30-6hc60i60f86g/</guid><description>&lt;p&gt;&lt;strong&gt;Representação de funções lógicas&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;até agora representamos uma função lógica com tabela verdade, expressões
matemáticas e circuitos lógicos, vamos agora ver mais algumas maneiras
de se representar uma função lógica.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;formas canônicas&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;soma de produtos&lt;/li&gt;
&lt;li&gt;produto de somas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;nessas duas representações temos os conceitos de maxtermos e mintermos&lt;/p&gt;
&lt;p&gt;maxtermos → linhas de uma tabela verdade das quais o resultado é 0&lt;/p&gt;
&lt;p&gt;mintermos → linhas de uma tabela verdade das quais o resultado é 1&lt;/p&gt;</description></item><item><title>Ciências da computação dia 31</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-31-9e1je1i5h35g/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-31-9e1je1i5h35g/</guid><description>&lt;p&gt;quando você usa print(*L) para uma lista L em Python, por causa desse
* ele remove os &amp;ldquo;[]&amp;rdquo; e as &amp;ldquo;,&amp;rdquo; da tela&lt;/p&gt;
&lt;p&gt;algoritmos com programação dinâmica → quando você usa os valores para
gerarem os próximos valores&lt;/p&gt;
&lt;p&gt;ex: a[i] = a[i-1] * 5&lt;/p&gt;
&lt;p&gt;produto escalar → soma entre os produtos de cada valor de mesma posição,
sendo assim pe = A[0]*B[0] + A[1]*B[1] + A[2]*B[2]
+ &amp;hellip;. + A[n]*B[n]&lt;/p&gt;</description></item><item><title>Ciências da computação dia 32</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-32-1e200234g03b/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-32-1e200234g03b/</guid><description>&lt;p&gt;Bom, no &lt;a href="https://dpbm.medium.com/ci%C3%AAncias-da-computa%C3%A7%C3%A3o-dia-30-b23df9168493"&gt;último artigo que fiz sobre
simplificação&lt;/a&gt;
de expressões e circuitos, disse sobre o mapa de karnaugh, mas tem um
detalhe que nos foi explicado só na ultima aula que foi: &lt;em&gt;quando nós
barramos (negamos, complementamos) uma variável na expressão final?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;para isso devemos entender algumas coisas:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;quando um implicante primo esta totalmente em uma região → a variável
referente a essa região ficará em sua forma padrão na expressão final&lt;/p&gt;</description></item><item><title>Ciências da computação dia 33</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-33-28j41ha58f46/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-33-28j41ha58f46/</guid><description>&lt;p&gt;bubble sort → você compara valores de dois em dois, deixando a esquerda
os menores e a direita os maiores, você deve rodar esse algoritmo até
que não exista nenhuma troca a ser feita em toda a lista.&lt;/p&gt;
&lt;p&gt;select sort → percorre o array uma vez, pega o menor e joga no começo,
depois faz o menos com o próximo menor e joga em segundo lugar, e assim
sucessivamente&lt;/p&gt;</description></item><item><title>Ciências da computação dia 34</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-34-02f5i462714e/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-34-02f5i462714e/</guid><description>&lt;p&gt;&lt;strong&gt;Implicantes não essenciais&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;no artigo passado sobre esse mesmo tema, dei uma breve explicação do que
serião implicantes não essenciais, mas agora vamos um pouco mais a fundo
neles&lt;/p&gt;
&lt;p&gt;os implicantes nãos essenciais, são implicantes que todos os 1 são
cobertos por outros implicantes&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Implicantes essenciais&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;o implicante essencial é aquele em que pelo uma célula pertence a apenas
esse implicante&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;obs: quando falo que pertence a um implicante, lembre-se sempre de que
pensamos em pegar os maiores implicantes possíveis, já que se fôssemos
pegar de 1 em 1 todos serão essenciais&lt;/p&gt;</description></item><item><title>Ciências da computação dia 35</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-35-h60cbg881c18/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-35-h60cbg881c18/</guid><description>&lt;p&gt;algoritmos lineares →algoritmos que mexem com arrays(listas)&lt;/p&gt;
&lt;p&gt;matrizes → uma lista com várias listas dentro&lt;/p&gt;
&lt;p&gt;caso você crie uma matriz ainda assim na memória do computador serão
dados lineares&lt;/p&gt;
&lt;p&gt;em Python quando você trabalha com listas, uma lista nada mais é do que
um ponteiro na memória, como se você usa-se um malloc em c&lt;/p&gt;</description></item><item><title>Ciências da computação dia 36</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-36-cd6f69ie68a2/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-36-cd6f69ie68a2/</guid><description>&lt;p&gt;Para criarmos um somador de binário com portas lógicas precisaremos de
dois circuitos, um para a soma em si e outro para o carry bit(também
chamado de vai 1)&lt;/p&gt;
&lt;p&gt;para isso, faremos uma tabela verdade com todas as possibilidades de
carry bit e de somas&lt;/p&gt;
&lt;p&gt;&lt;img alt="tabela verdade para a\u00a0soma" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-36-cd6f69ie68a2/image_74.png"&gt;&lt;/p&gt;
&lt;p&gt;repare que o actualCarry é o valor que será somado junto com A e B, e o
carry é quando na ultima soma o resultado excede a base e seria
necessário mais um bit para colocar o valor na frente&lt;/p&gt;</description></item><item><title>Ciências da computação dia 37</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-37-hgj5fg33b821/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-37-hgj5fg33b821/</guid><description>&lt;p&gt;&lt;strong&gt;combinação&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;quando for para quebrar algo em conjuntos em que a ordem não importa, ou
seja A e B é a mesma coisa que B e A&lt;/p&gt;
&lt;p&gt;formula → C total, conjuntos = total! / conjuntos! *
(total &amp;mdash; conjuntos)!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Arranjo sem repetição&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Arranjo é usado quando a ordem importa&lt;/p&gt;
&lt;p&gt;A total, posições = total! / (total &amp;mdash;posições)!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Arranjo com repetição&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ar total, posições = total^(posições)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Molde Binômio de Newton&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-37-hgj5fg33b821/image_82.png"&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 38</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-38-50ba5eeedfa4/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-38-50ba5eeedfa4/</guid><description>&lt;p&gt;e quando uma cresce a outra cresce&lt;/p&gt;
&lt;p&gt;grandezas inversamente proporcionais → quando uma diminui a outra
aumenta&lt;/p&gt;
&lt;p&gt;para regras de 3, quando você tem grandezas inversas, você deve inverter
a segunda fração&lt;/p&gt;</description></item><item><title>Ciências da computação dia 39</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-39-4639d7e5a9i5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-39-4639d7e5a9i5/</guid><description/></item><item><title>Ciências da computação dia 4</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-4-7917efffd3d8/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-4-7917efffd3d8/</guid><description>&lt;blockquote&gt;
&lt;p&gt;ensina como pensar&amp;quot; -Steve Jobs&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No quarto dia de ciências da computação tivemos uma aula pratica usando
Python. Nessa aula aprendemos o básico da linguagem como print, input,
operadores aritméticos, formatação dos prints, etc.&lt;/p&gt;
&lt;p&gt;Antes de entrar para a parte pratica da aula, vimos alguns problemas de
lógica, e o que mais gostei foi um denominado de missionários e canibais
(disponível no site rachacuca). Nesse game você deve passar todos os
canibais e todos os missionários de uma margem para a outra de um rio,
no entanto você deve prestar a atenção nas regras:&lt;/p&gt;</description></item><item><title>Ciências da computação dia 40</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-40-jhe7c3j17i539/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-40-jhe7c3j17i539/</guid><description>&lt;p&gt;em circuitos lógicos ou seja, vale quando apenas um ou todos forem
verdadeiros&lt;/p&gt;
&lt;p&gt;você usa o binômio de Newton, quando a ordem não importa&lt;/p&gt;
&lt;p&gt;quando você estiver fazendo um exercício de probabilidade, e tiver que
pensar em duas pessoas juntas, pense como se fossem apenas uma pessoa&lt;/p&gt;
&lt;p&gt;0! = 1! = 1&lt;/p&gt;
&lt;p&gt;O nome Rh do sange, vem do nome de um macaco chamado Rhesus que tinha
essa proteina&lt;/p&gt;
&lt;p&gt;Rh- é quando a pessoa não tem a proteína Rh&lt;/p&gt;</description></item><item><title>Ciências da computação dia 41</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-41-cdccc8f5f253/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-41-cdccc8f5f253/</guid><description>&lt;p&gt;&lt;strong&gt;Triângulo de Pascal&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A Triângulo de pascal, nada mais é do que um triangulo infinito, formado
em uma matriz (n x n).&lt;/p&gt;
&lt;figure&gt;
&lt;img src="https://cdn-images-1.medium.com/max/800/0*DcwQO0TV77emEBdX"
alt="triângulo de Pascal, forma padrão de uma triângulo seguindo a progressão numérica" /&gt;
&lt;figcaption&gt;triângulo de Pascal, fonte: todamateria&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;para a criação do triângulo é uma boa ideia ver sua representação
matricial&lt;/p&gt;
&lt;figure&gt;
&lt;img src="image_84.png"
alt="transformando o triângulo de pascal em um triângulo em uma matriz 5x5" /&gt;
&lt;figcaption&gt;representação matricial do triângulo de pascal&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;repare que o primeiro valor é 1, o segundo valor é 1 pois 1 que é o
valor anterior mais o anterior que é 0 é 1, o próximo é 1 também, pois 1
mais 0 é igual a 1, o próximo também é 1 pelo mesmo motivo e o seguinte
é 2, e assim vai.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 42</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-42-a76f1hffaida/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-42-a76f1hffaida/</guid><description>&lt;p&gt;O padrão se repete, o que mudará agora é a quantidade de células
vizinhas e a quantidade de regiões&lt;/p&gt;
&lt;figure&gt;
&lt;img src="image_91.png"
alt="mapa de karnaugh com 4 variaveis e suas células vizinhas" /&gt;
&lt;figcaption&gt;vizinhança&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img src="image_92.png" alt="mapa de karnaugh de 4 variáveis" /&gt;
&lt;figcaption&gt;células do mapa de Karnaugh de 4 variáveis&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Errata&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Algum tempo atrás disse sobre maneiras de representar uma expressão
booleana, e nisso disse sobre somatório e produtório, no entanto acabei
me confundindo e invertendo as coisas&lt;/p&gt;</description></item><item><title>Ciências da computação dia 43</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-43-e7cj58f33704/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-43-e7cj58f33704/</guid><description>&lt;p&gt;&lt;img alt="Créditos:\n&lt;a href=\"https://unsplash.com/@cdr6934\"&gt;Chris\u00a0Ried&lt;/a&gt;" loading="lazy" src="https://cdn-images-1.medium.com/max/800/0*fsbuVzuMEL3-nn1K"&gt;&lt;/p&gt;
&lt;p&gt;strings&lt;/p&gt;
&lt;p&gt;substring → um pedaço de uma string (texto)&lt;/p&gt;
&lt;p&gt;slicing → fatiar uma string em substrings&lt;/p&gt;
&lt;p&gt;funcão list (em Python), transforma uma string em uma lista de
caracteres&lt;/p&gt;
&lt;p&gt;função join (também em Python), pega uma lista de caracteres e junta
tudo em uma string separando cada letra pelo caractere que você passou
para a função join&lt;/p&gt;
&lt;p&gt;ex:&lt;/p&gt;
&lt;p&gt;c = [&amp;ldquo;b&amp;rdquo;, &amp;ldquo;o&amp;rdquo;, &amp;ldquo;m&amp;rdquo;, &amp;quot; &amp;ldquo;, &amp;ldquo;d&amp;rdquo;, &amp;ldquo;i&amp;rdquo;, &amp;ldquo;a&amp;rdquo;]&lt;/p&gt;
&lt;p&gt;&amp;ldquo;&amp;quot;.join(c) → &amp;lsquo;bom dia&amp;rsquo;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 44</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-44-48h93bfa8a3i/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-44-48h93bfa8a3i/</guid><description>&lt;h4 id="na-ultima-aula-dessa-matéria-começamos-a-ver-um-pouco-sobre-mapas-de-karnaugh-de-quatro-variáveis-que-de-maneira-geral-é-a-mesma-coisa-do-que-o-mapa-com-3-variáveis-com-apenas-uma-região-amais"&gt;Na &lt;a href="https://dpbm.medium.com/ci%C3%AAncias-da-computa%C3%A7%C3%A3o-dia-42-1938109eeca"&gt;ultima aula dessa matéria&lt;/a&gt;, começamos a ver um pouco sobre mapas de Karnaugh de quatro variáveis, que de maneira geral, é a mesma coisa do que o mapa com 3 variáveis, com apenas uma região a mais.&lt;/h4&gt;
&lt;h4 id="no-entanto-na-aula-seguinte-aprendemos-um-conceito-novo-do-qual-se-denomina-termo-irrelevante"&gt;No entanto, na aula seguinte, aprendemos um conceito novo, do qual se denomina, &lt;em&gt;&lt;strong&gt;termo irrelevante&lt;/strong&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Termo irrelevante&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;O termo irrelevante, é, como o nome já supõe, um termo em que seu valor
não importa, sendo assim, podemos utiliza-lo como bem entendermos,
adicionando 0 ou 1 como seu valor para deixar mais fácil nossa vida.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 45</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-45-he4f8bdcicb1/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-45-he4f8bdcicb1/</guid><description>&lt;p&gt;&lt;img src="image_99.png"
alt="um grafico, com uma curva simetrica, subindo e no ponto máximo descendo." /&gt;
créditos: &lt;a href="https://www.inf.ufsc.br/~andre.zibetti/probabilidade/normal.html"&gt;andre zibetti&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Distribuição normal&lt;/p&gt;
&lt;p&gt;Nesta aula, começamos a ver sobre distribuição normal, do qual é um
método utilizado para descrever probabilidades em conjuntos de espaços
contínuos.&lt;/p&gt;
&lt;p&gt;Antes de começar vamos ver alguns símbolos e termos que serão usados:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Algo não pontual&lt;/strong&gt; → Algo que pode ser descrito de diversas maneiras
para que seja verdade, exemplo: P(produzir mais de 100 quilos de farinha
de trigo em uma hora), esse mais de 100 quilos, pode ser 100.01,
100.00000001, 101, etc. existem diversos valores que satisfazem esse
requerimento;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 46</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-46-046bcjbb0fdc/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-46-046bcjbb0fdc/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://cdn-images-1.medium.com/max/800/0*xSVYVIZpbty6_I97"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Calculo de ângulos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Na escola geralmente aprendemos sobre o triângulo retângulo e junto com
o teorema de Pitágoras começamos a ver sobre funções trigonométricas
(seno, cosseno, tangente).&lt;/p&gt;
&lt;p&gt;sendo assim as funções que estamos acostumados a ver são:&lt;/p&gt;
&lt;p&gt;Sen(α) = cateto oposto / hipotenusa&lt;/p&gt;
&lt;p&gt;Cos(α) = cateto adjacente / hipotenusa&lt;/p&gt;
&lt;p&gt;Tg(α) = cateto oposto / cateto adjacente&lt;/p&gt;
&lt;p&gt;No entanto, caso quiséssemos encontrar o inverso, ou seja qual ângulo
possui certo valor como Tg, Sen ou Cos, teríamos que usar tabelas como
as seguintes:&lt;/p&gt;</description></item><item><title>Ciências da computação dia 47</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-47-a5a808chdj02/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-47-a5a808chdj02/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://cdn-images-1.medium.com/max/800/0*zlKa5GMb08o7yokz"&gt;&lt;/p&gt;
&lt;p&gt;algoritmos gulosos&lt;/p&gt;
&lt;p&gt;Os algoritmos gulosos, são algoritmos usados para escolher sempre o
melhor valor, seja este o maior/menor, mais rápido, etc (tudo dependendo
do seu objetivo).&lt;/p&gt;
&lt;p&gt;Mesmo parecendo muito bom, temos um problema, o algoritmo ele não pensa
no futuro e muito menos volta passos para trás (não possui
backtracking), ou seja, a cada vez que o programa iterar o algoritmo vai
enxergar apenas os dados disponíveis naquele momento e pegar aquele que
parece mais apetitoso (melhor para o objetivo dele).&lt;/p&gt;</description></item><item><title>Ciências da computação dia 48</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-48-238jb4e9h3j7/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-48-238jb4e9h3j7/</guid><description>&lt;p&gt;Bem, no artigo do &lt;a href="https://dpbm.medium.com/ci%C3%AAncias-da-computa%C3%A7%C3%A3o-dia-45-fd92587002a6"&gt;dia
45&lt;/a&gt;
comecei a falar sobre distribuição normal. No entanto ainda faltaram
alguns detalhes.&lt;/p&gt;
&lt;p&gt;Digamos que você queira calcular a área que está na beira do gráfico,
para isso faça 50-x dessa forma:&lt;/p&gt;
&lt;figure&gt;
&lt;img src="image_122.png"
alt="faça 50-x para calcular a parte que esta saindo do gráfico, lembrando que x é a area da parte que você achou com a fórmula de Z" /&gt;
&lt;figcaption&gt;calcular a parte de fora&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Lembrando que a formula de z antes descrita calcula do zero até o
resultado, então x sempre será do zero para frente/trás.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 49</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-49-d2ff00a9jjf/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-49-d2ff00a9jjf/</guid><description>&lt;p&gt;&lt;img alt="MARK I\u200a&amp;mdash;\u200acomputerhistory.org" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-49-d2ff00a9jjf/image_126.png"&gt;&lt;/p&gt;
&lt;p&gt;Iniciando uma nova matéria&lt;/p&gt;
&lt;p&gt;No quadragésimo nono dia de ciências da computação começamos a ver um
pouco sobre o que seria a matéria de &lt;strong&gt;sistemas digitais&lt;/strong&gt; e já
começamos a ver os subsistemas que estão presentes nos computadores.&lt;/p&gt;
&lt;p&gt;Antes de tudo, vamos pensar em como os sistemas que antes aqui
apresentei eram formados.&lt;/p&gt;
&lt;p&gt;Em sua totalidade, os sistemas que aqui mostrei eram todos
&lt;strong&gt;combinacionais&lt;/strong&gt;, ou seja a saída de cada circuito dependia
&lt;strong&gt;exclusivamente&lt;/strong&gt; de suas entradas.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 5</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-5-9g1j91cgc4ic/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-5-9g1j91cgc4ic/</guid><description>&lt;p&gt;usando algoritmos e pensamos levemente sobre como escrever um código
bom.&lt;/p&gt;
&lt;h3 id="melhorando-ocódigo"&gt;Melhorando o código&lt;/h3&gt;
&lt;p&gt;Toda vez que você invoca alguma variável isso consome 1 pulso de clock,
sendo assim, sempre que possível tente reduzir seu código exemplo:&lt;/p&gt;
&lt;p&gt;perimetro = 2 * comprimento + 2 * largura&lt;/p&gt;
&lt;p&gt;esse exemplo a cima consome 5 pulsos de clock sendo 2 para invocar cada
variável e 3 para cada operação aritmética&lt;/p&gt;
&lt;p&gt;perimetro = 2 *(comprimento + largura)&lt;/p&gt;</description></item><item><title>Ciências da computação dia 50</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-50-dc2j7cbej85e/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-50-dc2j7cbej85e/</guid><description>&lt;p&gt;No quinquagésimo dia de ciências da computação relembramos algumas
conceitos matemáticos, dos quais listarei abaixo.&lt;/p&gt;
&lt;h3 id="soma-e-subtração-dentro-de-umradical"&gt;Soma e subtração dentro de um radical&lt;/h3&gt;
&lt;p&gt;Sempre que houver uma soma ou subtração dentro de uma raiz, sempre
calcule primeiro o que está dentro e depois faça a raiz desse valor.&lt;/p&gt;
&lt;p&gt;exemplo: √3+1 = √4 = 2&lt;/p&gt;
&lt;h3 id="multiplicação-e-divisão-dentro-de-umradical"&gt;Multiplicação e divisão dentro de um radical&lt;/h3&gt;
&lt;p&gt;Quando você tiver uma multiplicação ou uma divisão dentro de um radical,
você pode separar os elementos.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 51</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-51-546443448j2f/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-51-546443448j2f/</guid><description>&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://cdn-images-1.medium.com/max/800/0*gQmtBwdT9ruw4CF5"&gt;&lt;/p&gt;
&lt;p&gt;Em meio ao quinquagésimo primeiro dia de ciências da computação, foi
iniciada uma nova matéria, &lt;strong&gt;comunicação e pensamento crítico&lt;/strong&gt;, por ser
uma matéria um pouco mais reflexiva acabei não fazendo muitas anotações,
mas aquilo que achei importante listarei abaixo, aproveite :)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Cerca de 70% das pessoas que pediram demissão de seus empregos são
por questões de relacionamento no trabalho&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="alguns-termos"&gt;Alguns termos&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Senso comum&lt;/strong&gt; &amp;mdash; fazer algo que foi muito difundido pela sociedade
mesmo sem saber o porque.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 52</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-52-a65998jdbb46/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-52-a65998jdbb46/</guid><description>&lt;p&gt;&lt;img alt="foto por &lt;a href=\"https://unsplash.com/@hansjurgen007\"&gt;Hans-Jurgen\nMager&lt;/a&gt;" loading="lazy" src="https://cdn-images-1.medium.com/max/800/0*jvlgR4FjoUiFK4yy"&gt;&lt;/p&gt;
&lt;p&gt;Seguindo na aula de sistemas digitais, continuamos a ver sobre a UCP, no
entanto com um pouco mais de detalhes.&lt;/p&gt;
&lt;h3 id="trafego-dosdados"&gt;Trafego dos dados&lt;/h3&gt;
&lt;p&gt;Primeiramente é necessário entender como os dados trafegam até serem
processador pela ULA. Bom, antes de tudo, um programa deve estar rodando
na memória principal, a partir daí a UCP fará o trabalho pesado. Em seu
&lt;strong&gt;registrador de instrução&lt;/strong&gt; a primeira instrução deste programa estará
armazenado, assim como em seu &lt;strong&gt;contador de programa&lt;/strong&gt; estará a
referência para a próxima instrução a ser executada(o endereço da
memória). Com isso, a cada pulso do &lt;strong&gt;clock&lt;/strong&gt; uma ação será executada
pela UCP. Quando a instrução for de salvar algo no acumulador para a
realização de um cálculo, os operandos trafegaram pelo barramento de
dados até chegarem aos &lt;strong&gt;registradores gerais&lt;/strong&gt; e o operador chegará
pelo barramento de controle, dessa forma ao passar pela ULA ela terá as
informações de o que operar e como.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 53</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-53-3cidi9d67a069/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-53-3cidi9d67a069/</guid><description>&lt;p&gt;&lt;img alt="&lt;a href=\"https://unsplash.com/@vlado\"&gt;Vlado\nPaunovic&lt;/a&gt;" loading="lazy" src="https://cdn-images-1.medium.com/max/800/0*A1_rrmX0knE05S69"&gt;&lt;/p&gt;
&lt;p&gt;No quinquagésimo terceiro dia de ciências da computação, entramos
novamente em matemática, mas dessa vez vimos matrizes e algumas
operações que podemos fazer com elas.&lt;/p&gt;
&lt;p&gt;Uma matriz é representada por uma tabela de &lt;em&gt;&lt;strong&gt;m&lt;/strong&gt;&lt;/em&gt; linhas por &lt;em&gt;&lt;strong&gt;n&lt;/strong&gt;&lt;/em&gt;
colunas, possuindo um total de elementos dado por &lt;em&gt;&lt;strong&gt;m*n.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Sua representação gráfica pode ser dada por uma tabela de elementos
envolvidos por [], () ou ainda || || (note que são dois |, se
fosse apenas um você estaria calculando o determinante do que está
dentro deles).&lt;/p&gt;</description></item><item><title>Ciências da computação dia 54</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-54-g2869i3153h9/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-54-g2869i3153h9/</guid><description>&lt;p&gt;Durante a aula do dia 54 de ciências da computação, voltamos a pensar na
comunicação dentro de corporações, desta vez, pensando também em alguns
fatores que podem ajudar em uma boa comunicação e o que pode acontecer
quando há uma má comunicação.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A comunicação é a parte crucial para uma boa convivência no meio de
trabalho, sem ela os projetos não andam, as pessoas não confiarão umas
nas outras e a empresa pode desabar se uma má comunicação se
estabelecer. Contudo, quando pensamos em comunicação, sempre vem em
nossa mente a escrita e a fala, mas ela é muito mais do que isso. A
comunicação se estabelece de N maneiras, seja com simples gesto, com
um simples olhar, um certo posicionamento do seu corpo, toques, etc.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 55</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-55-37b49a0a230a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-55-37b49a0a230a/</guid><description>&lt;p&gt;O contador de programa guarda apenas o endereço do próximo comando;&lt;/p&gt;
&lt;p&gt;Quando você declara uma variável, o sistema reserva um espaço na memória
(cada um desses espaços são registradores);&lt;/p&gt;
&lt;p&gt;A memória principal possui áreas: a primeira é a do sistema operacional,
onde tudo que o sistema precisa deixar rodando de segundo plano estará
lá, o segundo é a área de APPS, onde os programas em execução ficam
guardados e por fim a área de dados, onde os dados de input e output de
programas ficam guardados.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 56</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-56-43jajbjb174e9/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-56-43jajbjb174e9/</guid><description>&lt;p&gt;Nesta aula, entramos em algumas operações que podem ser feitas com
matrizes (como soma e subtração), veja a seguir.&lt;/p&gt;
&lt;h3 id="soma-dematrizes"&gt;Soma de matrizes&lt;/h3&gt;
&lt;p&gt;uma soma de matrizes pode ser presentado da seguinte forma:&lt;/p&gt;
&lt;p&gt;A &lt;em&gt;m*n&lt;/em&gt; + B &lt;em&gt;m*n =&lt;/em&gt; C &lt;em&gt;m*n&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;ou seja&lt;/p&gt;
&lt;p&gt;cij = aij + bij&lt;/p&gt;
&lt;p&gt;Que traduzindo quer dizer que, para somar duas matrizes basta criar uma
terceira onde cada posição é resultado da soma dos elementos das mesmas
posições das outras duas matrizes.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 57</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-57-391239g9b6dg/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-57-391239g9b6dg/</guid><description>&lt;p&gt;Na aula 57, vimos alguns fatores da comunicação e seus significados.
Veja a seguir.&lt;/p&gt;
&lt;p&gt;&lt;img alt="kotler e keller diagrama da\ncomunicação" loading="lazy" src="https://cdn-images-1.medium.com/max/800/0*eKI_Zx7-HTGxqosn"&gt;&lt;/p&gt;
&lt;p&gt;Segundo o diagrama feito por &lt;em&gt;Kotler e Keller&lt;/em&gt;, um emissor gera uma
mensagem e a transmite usando algum meio. Ao chegar no receptor ele
decodifica e gera uma resposta que também é transmitida para a outra
pessoa, mas ainda assim no caminho ela é prejudicada pelos ruídos que
podem estar presentes.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 58</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-58-9i12bdd64f4e/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-58-9i12bdd64f4e/</guid><description>&lt;p&gt;Na última aula de sistemas digitais, começamos a ver como os circuitos
de memórias são construidos.&lt;/p&gt;
&lt;p&gt;De maneira básica, os circuitos de memória são constituídos por
flip-flops. Esses circuitos em sua forma mais padrão e básica são
construídos com duas portas NAND com uma saída interligada em uma das
entradas do outro.&lt;/p&gt;
&lt;figure&gt;
&lt;img src="image_130.png"
alt="flip-flop RS, duas portas NAND e duas portas NOT na entrada" /&gt;
&lt;figcaption&gt;Flip-flop RS — filipeflop&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Neste modelo de flip-flop temos duas entradas, set e reset, ao adicionar
1 no set, o valor 1 será salvo no Q e o valor 0 no ~Q e ao adicionar 0
o inverso acontece. Contudo ao adicionar 1 ao reset, a saída Q se
transformará automaticamente em 0, resetando/limpando a saída.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 59</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-59-f7d72e0dd05da/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-59-f7d72e0dd05da/</guid><description>&lt;h3 id="multiplicação-matrix-x-númeroreal"&gt;Multiplicação Matrix x número real&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Multiplique todos os números da matriz pelo número real.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2 * [1 2 3] = [2 4 6]&lt;/p&gt;
&lt;h3 id="multiplicação-matrix-xmatrix"&gt;Multiplicação Matrix x Matrix&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;faça a soma da multiplicação de uma linha por uma coluna.&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;
&lt;img src="image_131.png" alt="duas matrizes (A e B)" /&gt;
&lt;figcaption&gt;brasilescola&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;com essas duas matrizes em mãos podemos descobrir duas coisas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Se elas podem ser multiplicadas;&lt;/li&gt;
&lt;li&gt;A dimensão da matriz final.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Para descobrir se uma matrix é multiplicável por outra, basta ver se o
número de linhas de uma é igual ao de colunas da outra.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 6</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-6-h00ac7j1gd3a/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-6-h00ac7j1gd3a/</guid><description>&lt;p&gt;vez com algumas coisas a mais.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;base numérica&lt;/strong&gt; → toda vez que você conta até certo número e volta
depois dele para o zero exemplo: horas em um dia → base 24&lt;/p&gt;
&lt;p&gt;Cada numero em um base possui um peso exemplo&lt;/p&gt;
&lt;p&gt;1001 → 1(2³) 0(2²) 0(2¹) 1(2⁰) → 2^n é um peso&lt;/p&gt;
&lt;p&gt;o mesmo vale para outras bases numéricas&lt;/p&gt;
&lt;p&gt;712(base 10) → 7(10²) 1(10¹) 2(10⁰)&lt;/p&gt;
&lt;p&gt;esses pesos são representados por → base^n&lt;/p&gt;</description></item><item><title>Ciências da computação dia 60</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-60-1aj7d0iigf76/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-60-1aj7d0iigf76/</guid><description>&lt;p&gt;Um dos fatores que agrega muito para uma má comunicação dentro de
empresas é o afastamento entre funcionários e chefe.&lt;/p&gt;
&lt;p&gt;Um chefe para acabar com isso, deve ser uma pessoa mais acessível, deve
ser mais humano e se manter mais próximo de seus colaboradores, tentando
sempre manter uma relação de igual para igual.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 61</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-61-d3f9f2919gjc/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-61-d3f9f2919gjc/</guid><description>&lt;h3 id="flip-flops"&gt;Flip-flops&lt;/h3&gt;
&lt;p&gt;Como visto anteriormente, a memória principal de um computador possui
milhões/bilhões de flip-flops, que ao serem agrupados formam
registradores. Vimos também o flip-flop RS, o mais convencional de
todos.&lt;/p&gt;
&lt;p&gt;A partir desta aula, vimos um novo modelo de flip-flop, o JK. Este
modelo é o mais utilizado em circuitos, devido a suas melhorias perante
as entrada proibidas (quando as duas entradas recebem o valor 1, já que
se o set e o reset ficar como um, a cada ciclo ele ficará trocando o
valor).&lt;/p&gt;</description></item><item><title>Ciências da computação dia 62</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-62-i16g0je4e083/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-62-i16g0je4e083/</guid><description>&lt;p&gt;Ter um ambiente organizado é a chave para poder começar a escrever de
maneira conexa, correta e coesa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fases da escrita&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1 &amp;mdash; primeiro você joga as ideias&lt;/p&gt;
&lt;p&gt;2 &amp;mdash; depois você organiza&lt;/p&gt;
&lt;p&gt;3 &amp;mdash; por fim você faz os retoques&lt;/p&gt;
&lt;p&gt;Para você escrever de maneira correta você deve reescrever pelo menos 3
vezes (o mesmo para a leitura)&lt;/p&gt;
&lt;p&gt;Produção acadêmica → tudo que é feito dentro de academias(faculdades,
universidades), sempre escrito de maneira impessoal.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 63</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-63-29g56d6d00aj/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-63-29g56d6d00aj/</guid><description>&lt;p&gt;&lt;img alt="&lt;a href=\"https://unsplash.com/@harrisonbroadbent\"&gt;Harrison\nBroadbent&lt;/a&gt;" loading="lazy" src="https://cdn-images-1.medium.com/max/800/0*EbHGCP_jOdFYfQ4I"&gt;&lt;/p&gt;
&lt;p&gt;do autômato ao circuito&lt;/p&gt;
&lt;p&gt;Nas últimas aulas de Sistemas digitais, vimos muito sobre flip-flops e
autômatos, e hoje finalmente saímos desses conceitos para aplicar em um
circuito real. Nesta aula, fizemos uma série de passos para conseguir
transformar um grafo dirigido, em um circuito digital.&lt;/p&gt;
&lt;h3 id="criação-do-grafodirigido"&gt;Criação do grafo dirigido&lt;/h3&gt;
&lt;p&gt;Antes de tudo, precisamos entender quais são os estados do nosso grafo.
No exemplo que mostrarei será feito um grafo dirigido para um contador
BCD.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 64</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-64-b600c10hdff/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-64-b600c10hdff/</guid><description>&lt;p&gt;Na programação, recursão é basicamente uma função que chama ela mesma.
Fazendo uma analogia com a vida real, podemos pensar em, por exemplo,
uma Matrioska, onde dentro da primeira boneca há outra dentro, que há
outra dentro, e assim sucessivamente.&lt;/p&gt;
&lt;figure&gt;
&lt;img src="image_148.png"
alt="Matrioska — “uma série de bonecas de tamanhos variados que são colocadas uma dentro das outras” (significados.com.br)" /&gt;
&lt;figcaption&gt;significados.com.br&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Com essa analogia podemos pensar como isso na programação pode ser
aplicado.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 65</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-65-icjb77e1c1ig/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-65-icjb77e1c1ig/</guid><description>&lt;ul&gt;
&lt;li&gt;Um determinante é um número resultante de uma matriz quadrada;&lt;/li&gt;
&lt;li&gt;Pode ser representado como: |A| ou det(A);&lt;/li&gt;
&lt;li&gt;Podem também ajudar a resolver sistemas de equações.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O determinante de uma matriz 2x2 pode ser calculado da seguinte forma&lt;/p&gt;
&lt;h3 id="a--a11--a22a21-a12"&gt;|A| = a11 * a22 &amp;mdash; a21 * a12&lt;/h3&gt;
&lt;p&gt;exemplo:&lt;/p&gt;
&lt;p&gt;| 2 3 |&lt;/p&gt;
&lt;p&gt;| 4 5 |&lt;/p&gt;
&lt;p&gt;|A| = 2 * 5&amp;ndash;4 * 3 = 10&amp;ndash;12 = -2&lt;/p&gt;
&lt;p&gt;em inequações:&lt;/p&gt;
&lt;p&gt;| 2 x |&lt;/p&gt;
&lt;p&gt;| 4 5 |&lt;/p&gt;</description></item><item><title>Ciências da computação dia 66</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-66-g87deb8dbh3c/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-66-g87deb8dbh3c/</guid><description>&lt;h3 id="projeto-depesquisa"&gt;Projeto de pesquisa&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Documento que descreve o que você pesquisou;&lt;/li&gt;
&lt;li&gt;Descreve como isso funciona;&lt;/li&gt;
&lt;li&gt;Descreve o que isso pode ajudar na empresa;&lt;/li&gt;
&lt;li&gt;Descrição detalhada dos resultados da pesquisa.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="projeto-denegócio"&gt;Projeto de negócio&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Detalhes de tudo que será necessário para a implementação do projeto
baseado na pesquisa;&lt;/li&gt;
&lt;li&gt;Detalhes de tudo, preços, materiais, pessoas, conhecimento, etc.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Ciências da computação dia 67</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-67-g1595ij0j128/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-67-g1595ij0j128/</guid><description>&lt;p&gt;Na última aula de sistema digitais, vimos como era possível utilizar
flip-flops e alguns outros componentes para criar um circuito que seguia
uma certa sequência de valores. Agora, vamos ver um pouco sobre circuito
que podem reconhecer padrões em cadeias de bits.&lt;/p&gt;
&lt;p&gt;Digamos que você queira reconhecer dentre vários bits, uma sequência de
exatamente 3 zeros.&lt;/p&gt;
&lt;p&gt;Podemos pensar nesse problema da seguinte forma.&lt;/p&gt;
&lt;p&gt;Imagine que a entrada será essa sequência de bits&lt;/p&gt;</description></item><item><title>Ciências da computação dia 68</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-68-0c0b63995f6g/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-68-0c0b63995f6g/</guid><description>&lt;h3 id="menor-complementar"&gt;Menor complementar&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;representador por Dij&lt;/li&gt;
&lt;li&gt;Para cada valor você elimina a linha e a coluna relativos a ele e
faz o determinante do restante&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;exemplo:&lt;/p&gt;
&lt;h4 id="1-04"&gt;1 0 4&lt;/h4&gt;
&lt;h4 id="9-81"&gt;9 8 1&lt;/h4&gt;
&lt;h4 id="7-33"&gt;7 3 3&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;D11:&lt;/em&gt;&lt;/p&gt;
&lt;h4 id="8-1"&gt;8 1&lt;/h4&gt;
&lt;h4 id="3-3"&gt;3 3&lt;/h4&gt;
&lt;p&gt;24&amp;ndash;3 → 19&lt;/p&gt;
&lt;h3 id="cofator"&gt;cofator&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;para cada elemento da matriz você faz (-1)^i+j * Dij&lt;/li&gt;
&lt;li&gt;representado por Aij&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;exemplo:&lt;/p&gt;
&lt;h4 id="1-04-1"&gt;1 0 4&lt;/h4&gt;
&lt;h4 id="9-81-1"&gt;9 8 1&lt;/h4&gt;
&lt;h4 id="7-33-1"&gt;7 3 3&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;D11:&lt;/em&gt;&lt;/p&gt;
&lt;h4 id="8-1-1"&gt;8 1&lt;/h4&gt;
&lt;h4 id="3-3-1"&gt;3 3&lt;/h4&gt;
&lt;p&gt;24&amp;ndash;3 → (-1)² * 19 → 1 * 19 → 19&lt;/p&gt;</description></item><item><title>Ciências da computação dia 69</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-69-5g0623a62519/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-69-5g0623a62519/</guid><description>&lt;p&gt;Bem, na última aula sobre circuitos digitais, vimos como montar desde um
grafo dirigido até um circuito com flip-flop e portas lógicas. Contudo,
falta ainda um detalhe.&lt;/p&gt;
&lt;p&gt;No último que montamos, utilizamos flip-flops do tipo JK e um flip-flop
do tipo D para montarmos a saída. No entanto, podemos substituir todos
os flip-flops JK por flip-flops do tipo D, teremos menos trabalho ao
montar os mapas de Karnaugh (já que cada flip-flop D possui apenas uma
entrada), mas possivelmente teremos que usar mais portas lógicas.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 7</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-7-a56382j5hc01/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-7-a56382j5hc01/</guid><description>&lt;p&gt;precisará gastar mais também para conseguir produzir mais.&lt;/p&gt;
&lt;h3 id="função"&gt;Função&lt;/h3&gt;
&lt;p&gt;é uma regra / fórmula para algo.&lt;/p&gt;
&lt;p&gt;a imagem nada mais é do que os elementos que você pode possuem um
correspondente no contradomínio(B), apenas um correspondente, caso
contrário não é um função.&lt;/p&gt;
&lt;p&gt;&lt;img alt="fonte: mundoeducacao" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-7-a56382j5hc01/image_2.png"&gt;&lt;/p&gt;
&lt;h3 id="função-quadrática"&gt;Função quadrática&lt;/h3&gt;
&lt;p&gt;sempre que seu a de uma função quadrática for &amp;lt; 0, sua parábola ficará
para baixo (a boca dela)&lt;/p&gt;
&lt;p&gt;&lt;img alt="fonte:\ntodamateria" loading="lazy" src="https://cdn-images-1.medium.com/max/800/0*qnMwtJWGhvtq7TxJ"&gt;&lt;/p&gt;
&lt;p&gt;os pontos em que x é igual a zero são seus pontos encontrados ao
utilizar Bhaskara&lt;/p&gt;</description></item><item><title>Ciências da computação dia 70</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-70-g5b9c3fdhji9/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-70-g5b9c3fdhji9/</guid><description>&lt;p&gt;determinantes de matrizes n&amp;gt;3&lt;/p&gt;
&lt;p&gt;Na ultima vez que falamos sobre determinantes, vimos o teorema de Sarrus
e de La Place. No entanto, os exemplos que mostrei eram apenas com
matrizes quadradas de ordem 3, e você pode estar pensando, o que faço
com matrizes maiores?&lt;/p&gt;
&lt;p&gt;Bem, o teorema de La Place não se limita a matrizes de ordem 3, ele pode
ser utilizado em qualquer tamanho de matriz, sendo necessário apenas
acrescentar mais termos na equação geral.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 71</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-71-1a53diabgecj/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-71-1a53diabgecj/</guid><description>&lt;h3 id="equação-linear"&gt;Equação Linear&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Uma equação linear, é qualquer equação de grau 1.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;exemplo: 10x + 3y &amp;mdash; 5z = 12&lt;/p&gt;
&lt;h3 id="equação-linear-homogênea"&gt;Equação Linear Homogênea&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Uma Equação linear Homogênea é a equação que tem como resultado o
valor 0, sendo assim uma das soluções possíveis para essa equação é
todos as incógnitas como 0.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;exemplo: 2x + 3y = 0 (um dos resultados será, (0, 0))&lt;/p&gt;
&lt;h3 id="maneiras-de-resolver-uma-equaçãolinear"&gt;Maneiras de resolver uma Equação Linear&lt;/h3&gt;
&lt;h4 id="1-incógnita"&gt;1 incógnita&lt;/h4&gt;
&lt;p&gt;como 1 incógnita você pode usar a lógica e um pouco de matemática básica
para resolver, como no exemplo a seguir&lt;/p&gt;</description></item><item><title>Ciências da computação dia 72</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-72-8dia14e91ba9/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-72-8dia14e91ba9/</guid><description>&lt;p&gt;Para terminar a matéria de Sistemas digitias, nos foi passado alguns
circuitos de registradores e suas devidas nomenclaturas.&lt;/p&gt;
&lt;h3 id="nomenclatura"&gt;Nomenclatura&lt;/h3&gt;
&lt;p&gt;Nosso professor passou para nós uma nomenclatura, não sei se é algo
&amp;ldquo;oficial&amp;rdquo;/padrão, mas ela funciona da seguinte maneira:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;R (indicando que é um registrador)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;e (indicando entrada)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;S e ou P ( S para entrada serial e P para entrada paralela, podendo
ser uma combinação das duas)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;s (indicando saída)&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 73</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-73-8ff99544604d/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-73-8ff99544604d/</guid><description>&lt;p&gt;No último dia da matéria de geometria analítica e algebra linear, vimos
algumas técnicas para resolver sistemas.&lt;/p&gt;
&lt;p&gt;A primeira mostrada foi a regra de escalonamento, usando esse nome pode
parecer algo muito diferente, mas na verdade isso já foi visto no começo
do curso em pré-calculo com o nome de eliminação de gauss. Como esse
tema já foi abordado, não vou repeti-lo aqui, caso você tenha vontade de
aprender sobre ele clique
&lt;a href="https://medium.com/@dpbm/ci%C3%AAncias-da-computa%C3%A7%C3%A3o-dia-46-4b8254ad510b"&gt;aqui&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 74</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-74-32cj257233d1/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-74-32cj257233d1/</guid><description>&lt;p&gt;Após um longo período de férias, voltamos a programação normal. Agora no
terceiro semestre, abrimos com chave de ouro, Engenharia de Software I.
Aqui vão alguns termos que anotei.&lt;/p&gt;
&lt;p&gt;Linked Data → a capacidade de interconectar dados de uma forma que uma
máquina consiga entender&lt;/p&gt;
&lt;p&gt;Ontologia → grafo que explica o que cada coisa é&lt;/p&gt;
&lt;p&gt;UML → linguagem de modelagem&lt;/p&gt;
&lt;p&gt;ciclo em cascata → pega-se todos os requisitos para um projeto,
implementa tudo e entrega tudo&lt;/p&gt;</description></item><item><title>Ciências da computação dia 75</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-75-3fj7heccfbii/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-75-3fj7heccfbii/</guid><description>&lt;p&gt;Nessa aula, começamos a ver maneiras melhores de manipular e organizar a
memória do computador.&lt;/p&gt;
&lt;p&gt;Quando usamos o computador, raramente paramos para pensar como algo
funciona, como é possível rodar diversos apps em um mesmo computador ao
mesmo tempo.&lt;/p&gt;
&lt;p&gt;Essa capacidade se dá, pela maneira como a RAM é estruturada e pela a
alocação dinâmica desta.&lt;/p&gt;
&lt;p&gt;Se pensarmos na RAM como um bloco único, dificilmente conseguiríamos
rodar mais de uma aplicação.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 76</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-76-89883ff8j7j1/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-76-89883ff8j7j1/</guid><description>&lt;p&gt;No dia 76 de ciências da computação, começamos mais uma matéria,
modelagem de banco de dados.&lt;/p&gt;
&lt;p&gt;Nessa matéria, veremos como estruturar bancos, criar relações entre
entidades e como tudo isso deve ser padronizado.&lt;/p&gt;
&lt;p&gt;Nessa primeira aula, entendemos que a modelagem de um banco, se dá, em
partes, na limitação dos tipos de dados e em seus valores que podem ser
inseridos no banco.&lt;/p&gt;
&lt;p&gt;Digamos que em uma aplicação queremos criar um cadastro de usuários e
precisamos das informações de cidade e estado.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 77</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-77-dia1529a2783/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-77-dia1529a2783/</guid><description>&lt;p&gt;competência é ter:&lt;/p&gt;
&lt;p&gt;C &amp;mdash; conhecimento(saber)&lt;/p&gt;
&lt;p&gt;H &amp;mdash; habilidade (saber fazer)&lt;/p&gt;
&lt;p&gt;A &amp;mdash; atitude(querer fazer)&lt;/p&gt;
&lt;p&gt;V &amp;mdash; valor(moral,ética)&lt;/p&gt;
&lt;p&gt;E &amp;mdash; inteligência emocional&lt;/p&gt;
&lt;h4 id="ética"&gt;ética&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;normas universais de convivência&lt;/li&gt;
&lt;li&gt;acordos preestabelecidos pela sociedade&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="moral"&gt;moral&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;individual&lt;/li&gt;
&lt;li&gt;definição interna de o que é certo e o que é errado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;amor para Plantão é o desejo por aquilo que você não possui&lt;/p&gt;
&lt;p&gt;amor para Aristóteles é amar aquilo que está ao seu redor, seus
parentes, seus amigos, etc.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 78</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-78-gg732hfeg9h2/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-78-gg732hfeg9h2/</guid><description>&lt;p&gt;linguagem procedural → tem uma parte principal (como a função main) que
vai chamando as outras funções, pensamos geralmente quais são as funções
de um programa;&lt;/p&gt;
&lt;p&gt;POO → enxerga-se quais objetos compõem um problema;&lt;/p&gt;
&lt;h3 id="java"&gt;JAVA&lt;/h3&gt;
&lt;p&gt;A linguagem Java foi desenvolvida para substituir o C++ no
desenvolvimento de sistemas embarcados, já que o o mesmo apresentou
problemas dentro da sun microsystems.&lt;/p&gt;
&lt;p&gt;Esse projeto que eles estavam trabalham se chamava *7(star 7). Esse
projeto era basicamente um tablet que você poderia controlar sua casa
através dele.
em 1993 a Sun viu que o Java poderia ser usado também para a Web&lt;/p&gt;</description></item><item><title>Ciências da computação dia 79</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-79-i90329jd794c/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-79-i90329jd794c/</guid><description>&lt;p&gt;Para um engenheiro de software, é muito melhor que um cliente de um
problema, do que diga como deve ser a solução, uma vez que o cliente nem
sempre sabe o que ele quer de fato, muito menos como resolver de fato o
problema dele.&lt;/p&gt;
&lt;p&gt;O principal esforço do engenheiro é entender bem o problema.&lt;/p&gt;
&lt;p&gt;Segundo a IEEE, engenharia de software é uma área de estudos e também a
aplicação de técnicas e metodologias.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 8</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-8-7c12a2d2ig63/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-8-7c12a2d2ig63/</guid><description>&lt;p&gt;algoritmos, dessa vez estruturas de controle.&lt;/p&gt;
&lt;p&gt;obs: Python trabalha com endereços físicos da memória, então quando você
precisa trocar variáveis de lugar você pode fazer a,b=b,a pois ele
apenas vai apontar &amp;ldquo;a&amp;rdquo; para o endereço de &amp;ldquo;b&amp;rdquo; e vice versa.&lt;/p&gt;
&lt;p&gt;programas de estrutura sequencial → programas que executam de cima para
baixo&lt;/p&gt;
&lt;p&gt;estrutura de controle (seleção)(comando if)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;usado para escolher qual bloco será executado&lt;/li&gt;
&lt;li&gt;executa algo caso a instrução for verdadeira&lt;/li&gt;
&lt;li&gt;caso a condição seja falsa ele ignora e continua com que está de
baixo do bloco do if&lt;/li&gt;
&lt;li&gt;o que está dentro é dependente da condição&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;seleção composta (comando, if, elif e else)&lt;/p&gt;</description></item><item><title>Ciências da computação dia 80</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-80-fj745fi6fh92/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-80-fj745fi6fh92/</guid><description>&lt;p&gt;Ao fazer &lt;em&gt;*p++&lt;/em&gt;, o resultado não será o esperado. Para fazer isso use
&lt;em&gt;(*p)++&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;todo vetor é um endereço de memória do primeiro valor guardado&lt;/p&gt;
&lt;p&gt;sendo assim se usar&lt;/p&gt;
&lt;p&gt;&lt;em&gt;printf(&amp;quot;%c&amp;quot;, x[0]);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;p&gt;&lt;em&gt;printf(&amp;quot;%c&amp;quot;, *x);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;terá o mesmo resultado&lt;/p&gt;
&lt;p&gt;O buffer é uma pequena memória temporária.&lt;/p&gt;
&lt;p&gt;No momento que você faz um leitura do teclado em C, o buffer dele fica
poluído com o valor(es) digitados, para limpa-los use &lt;em&gt;fflush(stdin)&lt;/em&gt; e
após isso você pode voltar a ler do teclado sem maiores problemas.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 81</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-81-g78c3bjfif4da/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-81-g78c3bjfif4da/</guid><description>&lt;p&gt;Modelo lógico baseado em objeto → entidade-relacionamento&lt;/p&gt;
&lt;p&gt;Modelo lógico baseado em registro → relacional&lt;/p&gt;
&lt;h3 id="entidade-relacionamento"&gt;Entidade-relacionamento&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;baseia-se na percepção do mundo real&lt;/li&gt;
&lt;li&gt;coleção de objetos, denominados entidades (tabelas) e seus
relacionamentos&lt;/li&gt;
&lt;li&gt;modelagem utiliza o diagrama de estrutura de dados&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="símbolos"&gt;&lt;strong&gt;Símbolos&lt;/strong&gt;&lt;/h3&gt;
&lt;figure&gt;
&lt;img src="image_171.png"
alt="Apenas um retangulo com o nome da entidade no meio" /&gt;
&lt;figcaption&gt;Símbolo para entidade&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img src="image_172.png"
alt="algumas linhas puxadas a apartir do retângulo, com o texto atributo1 e atributo2" /&gt;
&lt;figcaption&gt;símbolo de Atributos&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img src="image_173.png" alt="um losango interligando duas entidades" /&gt;
&lt;figcaption&gt;símbolo de relacionamento&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id="atributos"&gt;Atributos&lt;/h3&gt;
&lt;p&gt;São as Características das entidades (colunas da tabela)&lt;/p&gt;</description></item><item><title>Ciências da computação dia 82</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-82-f3jf835f99hi/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-82-f3jf835f99hi/</guid><description>&lt;p&gt;Uma organização possui 3 pilares:&lt;/p&gt;
&lt;p&gt;Recursos → ferramentas, máquinas, tempo, tecnologia, etc.&lt;/p&gt;
&lt;p&gt;Processos → O que cada um/coisa faz na empresa&lt;/p&gt;
&lt;p&gt;Pessoas(o mais importante) → A parte que entra em todas as outras e sem
ela a empresa não vive&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;EMPRESAS CRESCEM QUANDO PESSOAS CRESCEM&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Ciências da computação dia 83</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-83-hb8i02bcdd6c/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-83-hb8i02bcdd6c/</guid><description>&lt;p&gt;cada comando &lt;em&gt;case&lt;/em&gt; precisa de um &lt;em&gt;break&lt;/em&gt;, se não, todos os comandos
case a baixo do que for verdadeiro serão executados.&lt;/p&gt;
&lt;p&gt;o comando &lt;em&gt;continue&lt;/em&gt; ele termina uma iteração e vai para a próxima,
diferente do &lt;em&gt;break&lt;/em&gt;, que quebra o loop&lt;/p&gt;
&lt;p&gt;em Java, precisamos pré-alocar espaço para um array&lt;/p&gt;
&lt;p&gt;como em&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;int[] a = new int[99];
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ou&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;int[] a = {1, 2, 3};
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Além disso, não é possível acessar espaços além do alocado para o array,
diferente de C.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 84</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-84-51i6g9e5ccdf/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-84-51i6g9e5ccdf/</guid><description>&lt;p&gt;escopo → conjunto de features de um software&lt;/p&gt;
&lt;p&gt;product vision box → pense no software como um produto que será exposto
e vendido na prateleira de uma loja. A frente da caixa precisa ser algo
chamativo que mostre o nome e algumas frases marcantes, mostrando o
diferencial do produto e seu objetivo. Enquanto isso, atrás você precisa
colocar mais informações, como as funções principais.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 85</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-85-083e0i4c736da/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-85-083e0i4c736da/</guid><description>&lt;p&gt;constantes em C&lt;/p&gt;
&lt;p&gt;Para criar structs em c você pode fazer:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;typedef struct {
//...
} Name;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ou ainda&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;struct{
//...
} Name;
typedef struct Name Name;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Após instanciar uma struct você pode acessar os valores usando&lt;/p&gt;
&lt;p&gt;Name.atributo&lt;/p&gt;
&lt;p&gt;ou se você instanciar usando um pointer&lt;/p&gt;
&lt;p&gt;Name-&amp;gt;atributo&lt;/p&gt;
&lt;h3 id="lista-contígua"&gt;Lista contígua&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Cada elemento tem uma posição especifica. Com isso, tenho acesso
direto ao elemento que preciso, uma vez sabendo sua posição&lt;/li&gt;
&lt;li&gt;Possui tamanho fixo, preestabelecido.&lt;/li&gt;
&lt;li&gt;Cada elemento é chamado de nó.&lt;/li&gt;
&lt;li&gt;suscetível à overflow ou desperdício de espaço.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para definir constantes em C faça:&lt;/p&gt;</description></item><item><title>Ciências da computação dia 86</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-86-ecj45i484cc5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-86-ecj45i484cc5/</guid><description>&lt;h3 id="dicionário-dedados"&gt;Dicionário de dados&lt;/h3&gt;
&lt;p&gt;explicação de todos os campos da tabela, tipo de dados, limites, etc.&lt;/p&gt;
&lt;p&gt;&lt;img alt="exemplo de dicionário de\u00a0dados" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-86-ecj45i484cc5/image_185.png"&gt;&lt;/p&gt;
&lt;h3 id="diagrama-de-estrutura-dedados"&gt;Diagrama de estrutura de dados&lt;/h3&gt;
&lt;p&gt;tradução do modelo entidade-relacionamento para algo semelhante ao que
seria usado no realidade&lt;/p&gt;
&lt;p&gt;&lt;img alt="exemplo diagrama de estrutura de\u00a0dados" loading="lazy" src="https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-86-ecj45i484cc5/image_186.png"&gt;&lt;/p&gt;
&lt;h3 id="regras-deformação"&gt;Regras de formação&lt;/h3&gt;
&lt;p&gt;1 &amp;mdash; modelo entidade-relacionamento se transforma em diagram de
estrutura de dados com os mesmo atributos&lt;/p&gt;
&lt;p&gt;2 &amp;mdash; no relacionamento 1:N, o atributo determinante da entidade 1
passar para o N&lt;/p&gt;</description></item><item><title>Ciências da computação dia 87</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-87-286hcibci89i/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-87-286hcibci89i/</guid><description>&lt;p&gt;Se fizermos 5/0 em Java, isso retornará um erro&lt;/p&gt;
&lt;p&gt;Se fizermos 5/0.0, isso retornará Infinity.&lt;/p&gt;
&lt;p&gt;Isso acontece pois 0.0 é um double muito próximo de zero, mas não um
zero absoluto, então ele dará um decimal muito pequeno como resultado.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 88</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-88-25604c2g28g7/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-88-25604c2g28g7/</guid><description>&lt;p&gt;A arte da engenharia de software, é entender o problema. Para isso o
engenheiro deve saber quais são os interessados (quem está envolvido),
quais as incógnitas, etc.&lt;/p&gt;
&lt;p&gt;Uma das técnicas utilizadas para entender o problema, é fazer o ambos
(cliente e engenheiro) desenhar/anotar, uma vez que, quando anotamos,
nosso cérebro assimila e organiza as ideias.&lt;/p&gt;
&lt;p&gt;No momento do planejamento, busque um modelo. 99% das vezes seu problema
já foi resolvido, e você pode reaproveitar algo que alguém já fez.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 89</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-89-i7bdieibga5d/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-89-i7bdieibga5d/</guid><description>&lt;h3 id="linked-list"&gt;Linked List&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Não precisa definir o tamanho em sua instância, sendo assim, a
memória é alocada dinamicamente;&lt;/li&gt;
&lt;li&gt;Para fazer inserções, você precisa se deslocar pela lista;&lt;/li&gt;
&lt;li&gt;Cada elemento da lista (nó), possui dois elementos, o valor e o
endereço do próximo nó, no caso do último elemento, como não possui
próximo é atribuído NULL;&lt;/li&gt;
&lt;li&gt;Nesse caso você tem problemas para acessar valores, uma vez que eles
não possuem acesso direto aos seus endereços, ou seja, para acessar
um certo nó &lt;em&gt;i&lt;/em&gt; você precisa passar por todos os que antecedem &lt;em&gt;i&lt;/em&gt; ;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-emc"&gt;** em C&lt;/h3&gt;
&lt;p&gt;Você utiliza ** em C para passar um endereço de um ponteiro&lt;/p&gt;</description></item><item><title>Ciências da computação dia 9</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-9-39h664fj785d/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-9-39h664fj785d/</guid><description>&lt;p&gt;Toda vez que você fizer uma soma em alguma base e ela estourar, ou seja
passar o maior numero da base(decimal: 10, binário: 10 ou 11) você sobe
1 (carry).&lt;/p&gt;
&lt;p&gt;a soma é sempre feita do digito menos significativo (da direita) para o
mais significativo(da esquerda).&lt;/p&gt;
&lt;p&gt;a soma é feita da mesma forma em binário como em decimal, o que muda é
que você vai subir 1 quando a soma for 111 (deixando um em baixo) e
11(deixando 0 em baixo), o mesmo vale para números com vírgula, você faz
igual decimal e coloca os números depois da vírgula igual ao original.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 90</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-90-bh20g3c3i5cc/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-90-bh20g3c3i5cc/</guid><description>&lt;h3 id="estrutura-dedados"&gt;Estrutura de dados&lt;/h3&gt;
&lt;p&gt;Na estrutura de dados, quando você tem uma relação N:M, você pode ter
uma coluna na tabela da relação que pertence só a relação e não as
tabelas que fazem o relacionamento.&lt;/p&gt;
&lt;h3 id="como-escolher-qual-bdusar"&gt;Como escolher qual BD usar?&lt;/h3&gt;
&lt;p&gt;1 &amp;mdash; A capacidade de dados que o banco aguenta&lt;/p&gt;
&lt;p&gt;2 &amp;mdash; A velocidade do banco&lt;/p&gt;
&lt;p&gt;3 &amp;mdash; Licenças&lt;/p&gt;
&lt;p&gt;Cada linha de um banco de dados pode ser chamado de instância da
entidade, enquanto cada coluna é um atributo da entidade. Sendo assim
cada intersecção entre linha x coluna é um dado.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 91</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-91-gee4ibbhadce/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-91-gee4ibbhadce/</guid><description>&lt;h3 id="empreendedorismo-é"&gt;Empreendedorismo é&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Soma das competências (C.H.A.V.E) para fazer algo dar certo;&lt;/li&gt;
&lt;li&gt;o objeto de estudo é o empreendedor, não a empresa.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dimensões-do-empreendedorismo"&gt;Dimensões do empreendedorismo&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Empresas;&lt;/li&gt;
&lt;li&gt;Autônomos;&lt;/li&gt;
&lt;li&gt;Intra-empreendedorismo (empregados);&lt;/li&gt;
&lt;li&gt;Comunitário (ONGs, por exemplo);&lt;/li&gt;
&lt;li&gt;Políticas públicas (governo, concurso, politico, etc.).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Empresário → cara que possui o nome no CNPJ&lt;/p&gt;
&lt;p&gt;Empreendedor → cara que possui aquelas competências/características para
fazer algo acontecer&lt;/p&gt;
&lt;h3 id="joseph-schumpeter"&gt;Joseph Schumpeter&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Deu uma definição de empreendedorismo;&lt;/li&gt;
&lt;li&gt;empreendedor é alguém versátil que possui habilidades para fazer
coisas acontecerem.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="empreendedor"&gt;Empreendedor&lt;/h3&gt;
&lt;p&gt;é alguém que sabe como realizar seus objetivos.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 92</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-92-c8g42ih4ddb7/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-92-c8g42ih4ddb7/</guid><description>&lt;blockquote&gt;
&lt;p&gt;POO possui foco nos dados (objetos) do sistema, não em suas funções!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="classes"&gt;Classes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Métodos e atributos que o objeto terá;&lt;/li&gt;
&lt;li&gt;Determina o tipo do objeto;&lt;/li&gt;
&lt;li&gt;Pode ser instanciado N vezes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="objeto"&gt;Objeto&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Uma instância de uma classe;&lt;/li&gt;
&lt;li&gt;Possui os métodos e atributos da classe encapsulado dentro dele;&lt;/li&gt;
&lt;li&gt;Armazena um endereço de onde ele foi instanciado.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="método"&gt;Método&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Funções dentro da classe que manipulam os atributos.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="atributos"&gt;Atributos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Dados pertencentes à uma classe;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="método-construtor"&gt;Método construtor&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Função que é executada assim que o objeto é instanciado;&lt;/li&gt;
&lt;li&gt;Em java essa função tem o mesmo nome da classe, ele também não
possui tipo e no geral é public;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;public class Example{
public Example(){ //construtor
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="encapsulamento"&gt;Encapsulamento&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;visa esconder detalhes de implementação;&lt;/li&gt;
&lt;li&gt;objeto deve possui uma parte privada que só pode ser acessado
internamente na classe;&lt;/li&gt;
&lt;li&gt;a parte privada, só pode ser acessada por métodos públicos
(interface) que trata a entrada antes;&lt;/li&gt;
&lt;li&gt;atributos, no geral, devem ser private;&lt;/li&gt;
&lt;li&gt;fazendo isso o objeto só se comporta de uma certa maneira, já
pensada.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="sobrecarga-demétodos"&gt;Sobrecarga de métodos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;uso de múltiplos métodos com o mesmo nome;&lt;/li&gt;
&lt;li&gt;isso é possível desde que possuam argumentos diferentes;&lt;/li&gt;
&lt;li&gt;se uma classe possui tipos diferentes, mesmo nome, mas argumentos
diferentes, isso retorna um erro;&lt;/li&gt;
&lt;li&gt;Você pode ter outras funções com o nome da classe além do método
construtor, basta você atribuir um tipo à função que assim ela não
será mais considerada método construtor;&lt;/li&gt;
&lt;li&gt;Se você tiver o constructor e outra função com o nome da classe,
isso não se encaixa em sobrecarga de métodos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quando você não adiciona public, private ou protected, o elemento é
considerado &amp;ldquo;default&amp;rdquo; em java.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 93</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-93-94h69daag98c9/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-93-94h69daag98c9/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Uma feature não é uma qualidade software. Ou seja, o software ser
rápido não é uma feature!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="requisito-desoftware"&gt;Requisito de software&lt;/h3&gt;
&lt;p&gt;Uma funcionalidade/característica que o software tem. Sendo assim um
software é um conjunto de requisitos.&lt;/p&gt;
&lt;h3 id="engenharia-de-requisitos"&gt;Engenharia de requisitos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Vai da primeira ação da engenharia de software até a modelagem;&lt;/li&gt;
&lt;li&gt;não faça apenas um conversa com o cliente;&lt;/li&gt;
&lt;li&gt;Estabelece uma base sólida para o projeto;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="requisitos-de-usuário-ou-história-deusuário"&gt;Requisitos de usuário (ou história de usuário)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;O que o usuário pede do sistema.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="requisito-desistema"&gt;Requisito de sistema&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;feito a partir do Requisitos de usuário;&lt;/li&gt;
&lt;li&gt;Descrições mais detalhadas;&lt;/li&gt;
&lt;li&gt;Aquilo que vai ser implementado;&lt;/li&gt;
&lt;li&gt;Quebra do requisito do usuário em partes mais detalhadas, que
explica o que o sistema vai fazer, fazendo isso de forma que um
desenvolvedor consiga entender e implementar no sistema de forma
mais fácil.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="especificação-de-requisitos-desistema"&gt;Especificação de requisitos de sistema&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;listagem dos requisitos do sistema.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="regras-denegócio"&gt;Regras de negócio&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Regras que o sistema segue;&lt;/li&gt;
&lt;li&gt;O que o sistema faz e como ele faz;&lt;/li&gt;
&lt;li&gt;Consigo pegar através do levantamento dos requisitos de usuário e
transformação para requisitos de sistema.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="7-tarefas-da-engenharia-desoftware"&gt;7 tarefas da engenharia de software&lt;/h3&gt;
&lt;h4 id="1concepção"&gt;1 &amp;mdash; concepção&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;onde nasce a ideia/problema.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2levantamento"&gt;2 &amp;mdash; levantamento&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Pega os requisitos de usuário e começa a extrair os requisitos de
sistema.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3elaboração"&gt;3 &amp;mdash; elaboração&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Refinamento dos requisitos;&lt;/li&gt;
&lt;li&gt;Criar diagramas para que sejam entendidos de uma forma mais fácil.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="4negociação"&gt;4 &amp;mdash; negociação&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Ver com o cliente quais requisitos são mais importantes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="5especificação"&gt;5 &amp;mdash; especificação&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Documentação de requisitos;&lt;/li&gt;
&lt;li&gt;Uso do SRS por exemplo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="6validação"&gt;6 &amp;mdash; validação&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Apresenta à documentação ao cliente para ele verificar se é o que
ele quer mesmo;&lt;/li&gt;
&lt;li&gt;Documentação precisa estar clara.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="7gestão"&gt;7 &amp;mdash; gestão&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Gerenciamento da lista de requisitos, sempre negociada com o
cliente.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="backlog"&gt;Backlog&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Lista de requisitos.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Se o cliente fala que seria legal ter algo no sistema. É por que você
não é tão importante.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 94</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-94-28246ig4548/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-94-28246ig4548/</guid><description>&lt;p&gt;Ao utilizar ponteiros em C, precisamos sempre limpar essa memória quando
ela não está sendo mais utilizada. Para isso use a função &lt;em&gt;free&lt;/em&gt;
presente em &lt;em&gt;stdlib.h.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;No caso das linked lists, podemos utilizar essa função para remover
nodes da lista.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Obs: lembre sempre que ao remover um node, você deve atualizar a
referência do next, ou ou do node inicial dos nodes ao redor do que foi
removido.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Ciências da computação dia 95</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-95-g602170jj7e2/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-95-g602170jj7e2/</guid><description>&lt;h3 id="tipos"&gt;Tipos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;entre bancos, os formatos (nome, tamanho, etc.) não são
padronizados;&lt;/li&gt;
&lt;li&gt;datetime → hora e data;&lt;/li&gt;
&lt;li&gt;blob → grande volume de dados, como imagens, etc;&lt;/li&gt;
&lt;li&gt;nulo → valor inexistente, não vazio;&lt;/li&gt;
&lt;li&gt;decimal(9, 2) → quantidade total de números é 9, e o total de casas
decimais é 2, sendo assim tenho 7 dígitos antes da vírgula (isso em
MYSQL).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para um ip ter mais de um serviço rodando, são utilizadas portas.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 96</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-96-i8gbgai3ch33/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-96-i8gbgai3ch33/</guid><description>&lt;h3 id="mandamentos-do-empreendedor"&gt;Mandamentos do empreendedor&lt;/h3&gt;
&lt;p&gt;1 &amp;mdash; tenha iniciativa e curiosidade&lt;/p&gt;
&lt;p&gt;2 &amp;mdash; seja persistente nas metas e flexível nas estratégias&lt;/p&gt;
&lt;p&gt;3 &amp;mdash; calcule os riscos&lt;/p&gt;
&lt;p&gt;4 &amp;mdash; persiga sempre a máxima eficiência (fazer o melhor com o que você
tem)&lt;/p&gt;
&lt;p&gt;5 &amp;mdash; comprometa-se com seu projeto&lt;/p&gt;
&lt;p&gt;6 &amp;mdash; estude o mercado&lt;/p&gt;
&lt;p&gt;7 &amp;mdash; estabeleça metas(longo prazo ~3anos, médio prazo ~1.5ano, curto
prazo ~1ano)&lt;/p&gt;
&lt;p&gt;8 &amp;mdash; faça um plano de negócios&lt;/p&gt;
&lt;p&gt;9 &amp;mdash; desenvolva seu espírito de liderança&lt;/p&gt;</description></item><item><title>Ciências da computação dia 97</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-97-15g2c45ghf8g/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-97-15g2c45ghf8g/</guid><description>&lt;p&gt;Quando há mais de uma classe em um arquivo .java, apenas 1 delas deve
ser public e essa deve ter o mesmo nome do arquivo.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 98</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-98-h3a7j7e7e9j8/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-98-h3a7j7e7e9j8/</guid><description>&lt;p&gt;requisitos)&lt;/p&gt;
&lt;h3 id="requisito-deusuário"&gt;requisito de usuário&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;uma primeira escrita de qual vai ser a solução;&lt;/li&gt;
&lt;li&gt;feito pelo engenheiro de software, de forma que seja fácil de
qualquer pessoa entender.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="requisitos-desistema"&gt;requisitos de sistema&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;escritos pelos e para os desenvolvedores.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;login e senha pode ser um requisito não funcional, uma vez que você
descreve-lo como &amp;ldquo;estar protegido por login e senha&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Para fazer um sistema ser fácil de usar, siga o padrão de outros apps
mais usados.&lt;/p&gt;</description></item><item><title>Ciências da computação dia 99</title><link>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-99-ga67eg77c7i5/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/ciencias-da-computacao-dia-99-ga67eg77c7i5/</guid><description>&lt;h3 id="sql-structured-query-language"&gt;SQL (Structured query language)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;geralmente usado em bancos relacionais;&lt;/li&gt;
&lt;li&gt;feito pela IBM para implementar o modelo relacional;&lt;/li&gt;
&lt;li&gt;SQL é padronizado pela ANSI e ISO, sendo que a versão padrão é
chamada de SQL ANSI.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ddl"&gt;DDL&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;linguagem que define a estrutura do banco;&lt;/li&gt;
&lt;li&gt;comandos: create, alter, drop, comment;&lt;/li&gt;
&lt;li&gt;os comandos são usados para manipular objetos como: tables,
procedures, views, functions, triggers, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dml"&gt;DML&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;manipulação dos dados;&lt;/li&gt;
&lt;li&gt;comandos: insert, update, delete, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dql"&gt;DQL&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;consulta dos dados;&lt;/li&gt;
&lt;li&gt;comando: select.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dcl-data-control-language"&gt;DCL (data control language)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;controla acessos;&lt;/li&gt;
&lt;li&gt;comandos: grant, revoke;&lt;/li&gt;
&lt;li&gt;isso pode ser usado para deixar um usuário acessar, apenas um table,
apenas algumas colunas, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dtl-data-transaction-language"&gt;DTL (data transaction language)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;define um escopo de transformações do banco que só seria aplicado
quando todas as transações forem feitas com sucesso;&lt;/li&gt;
&lt;li&gt;comandos: Begin transaction, commit, rollback.&lt;/li&gt;
&lt;li&gt;Isso garante que todas as transações sejam feitas de forma integra,
mesmo que aconteçam problemas, como falta de energia.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#cria um banco
CREATE DATABASE test;
#ou
CREATE SCHEMA test; #(a partir da V8 do mysql)
# muda para o banco criado
USE test;
# criando tabelas
CREATE TABLE test1 (
id INT UNSIGNED NOT NULL,
name VARCHAR(80) NOT NULL,
age INT UNSIGNED NULL,
sex CHAR(1) NULL &amp;#39;M&amp;#39;,
#chaves
CONSTRAINT pk_test1_id PRIMARY KEY(id),
CONSTRAINT chk_test1_age CHECK(age &amp;gt; 18), #garante que todos sejam 18+
CONSTRAINT fk_test1_test2 FOREIGN KEY(id) #chave estrangeira
REFERENCES test2(id)
);
CREATE TABLE test2 (
id INT UNSIGNED NOT NULL,
card_number CHAR(16) NOT NULL
);
#Mostra os tipos das colunas e suas configurações
DESCRIBE test1;
DESCRIBE test2;
#ou
DESC test1;
DESC test2;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="unique"&gt;UNIQUE&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;constraint semelhante à PK;&lt;/li&gt;
&lt;li&gt;não aceita valores duplicados;&lt;/li&gt;
&lt;li&gt;aceita NULL.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="check"&gt;CHECK&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;constraint;&lt;/li&gt;
&lt;li&gt;defini uma relação entre uma coluna e um valor (que pode ser o de
outra coluna também).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="alguns-tipos-dedados"&gt;Alguns tipos de dados&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;TINYINT → 1 byte;&lt;/li&gt;
&lt;li&gt;SMALLINT → 2 bytes;&lt;/li&gt;
&lt;li&gt;MEDIUMINT → 3 bytes;&lt;/li&gt;
&lt;li&gt;INT → 4 bytes;&lt;/li&gt;
&lt;li&gt;BIGINT → 8 bytes;&lt;/li&gt;
&lt;li&gt;DECIMAL → DECIMAL(N, M), N é total de números com default em 10, M é
o total de números depois da vírgula com default em 0;&lt;/li&gt;
&lt;li&gt;FLOAT → possui mesmo formato do DECIMAL;&lt;/li&gt;
&lt;li&gt;DOUBLE;&lt;/li&gt;
&lt;li&gt;DATE → formato YYYY-MM-DD;&lt;/li&gt;
&lt;li&gt;DATETIME → data e hora no formato YYYY-MM-DD HH:MI:SS&lt;/li&gt;
&lt;li&gt;CHAR → string com tamanho fixo( CHAR(N) );&lt;/li&gt;
&lt;li&gt;VARCHAR → string com tamanho variável ( VARCHAR(N) ), apenas os
espaços ocupados serão usados;&lt;/li&gt;
&lt;li&gt;TEXT;&lt;/li&gt;
&lt;li&gt;BLOB → binários;&lt;/li&gt;
&lt;li&gt;BIGBLOB;&lt;/li&gt;
&lt;li&gt;BIGTEXT;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Classes</title><link>https://personal-website-phi-seven-36.vercel.app/posts/classes-d776e5ig3ed6/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/classes-d776e5ig3ed6/</guid><description>&lt;ul&gt;
&lt;li&gt;Características e comportamentos de um objeto&lt;/li&gt;
&lt;li&gt;Representa algo que seja abstrato, um substantivo (pessoa, lugar,
objeto real, etc)&lt;/li&gt;
&lt;li&gt;Molde de algum objeto, uma representação genérica para coisas de
mesmo tipo&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="características"&gt;Características&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Visibilidade → público, privado, protegido&lt;/li&gt;
&lt;li&gt;Membros → características e ações&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ex:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Main.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Main&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(String args&lt;span style="color:#f92672"&gt;[]&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Person Jorge &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; Person();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Jorge.&lt;span style="color:#a6e22e"&gt;name&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#960050;background-color:#1e0010"&gt;“&lt;/span&gt;Jorge&lt;span style="color:#960050;background-color:#1e0010"&gt;”&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Jorge.&lt;span style="color:#a6e22e"&gt;age&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 40;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Jorge.&lt;span style="color:#a6e22e"&gt;weight&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 92.&lt;span style="color:#a6e22e"&gt;30&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Jorge.&lt;span style="color:#a6e22e"&gt;height&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 2.&lt;span style="color:#a6e22e"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;out&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;println&lt;/span&gt;(Jorge.&lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Jorge.&lt;span style="color:#a6e22e"&gt;sayYourName&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Person.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Person&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; String name;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; age;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;double&lt;/span&gt; weight;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;double&lt;/span&gt; height;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;sayYourName&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;out&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;printf&lt;/span&gt;(&lt;span style="color:#960050;background-color:#1e0010"&gt;“&lt;/span&gt;hello my name is: &lt;span style="color:#f92672"&gt;%&lt;/span&gt;s&lt;span style="color:#960050;background-color:#1e0010"&gt;\&lt;/span&gt;n&lt;span style="color:#960050;background-color:#1e0010"&gt;”&lt;/span&gt;, name);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="objetos"&gt;Objetos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Instância de uma classe&lt;/li&gt;
&lt;li&gt;Todos os atributos estados&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="atributos"&gt;Atributos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Variáveis ou campos de uma classe&lt;/li&gt;
&lt;li&gt;Características do objeto&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="métodos"&gt;Métodos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ações que o objeto pode fazer&lt;/li&gt;
&lt;li&gt;Ações que podem interagir entre objetos e seus atributos&lt;/li&gt;
&lt;li&gt;Verbos&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="construtor"&gt;Construtor&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Função que inicializa os atributos de uma classe ao ser instanciada&lt;/li&gt;
&lt;li&gt;Ao instanciar você coloca os atributos iniciais&lt;/li&gt;
&lt;li&gt;_init em python, nome da classe em formato de função em java,
constructor() em js&lt;/li&gt;
&lt;li&gt;Por padrão o compilador cria um construtor com valores nulos, sendo
assim quando você usa new ClassName() ← você está usando o
construtor padrão&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://www.devmedia.com.br/introducao-a-programacao-orientada-a-objetos-em-java/26452"&gt;&lt;strong&gt;Programação Orientada a Objetos em Java&lt;/strong&gt;&lt;br&gt;
*Artigos Java Introdução à Programação Orientada a Objetos em Java Nos
desenvolvimentos de sistemas, existem
alguns&amp;hellip;*www.devmedia.com.br&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Links uteis para quem quer criar um sistema operacional</title><link>https://personal-website-phi-seven-36.vercel.app/posts/links-uteis-para-quem-quer-criar-um-sistema-operacional-j3h47faf5g1e/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><author>dpbm136@gmail.com (Dpbm)</author><guid>https://personal-website-phi-seven-36.vercel.app/posts/links-uteis-para-quem-quer-criar-um-sistema-operacional-j3h47faf5g1e/</guid><description>&lt;p&gt;&lt;a href="https://digital.com/best-software-development-companies/program-your-own-os"&gt;https://digital.com/best-software-development-companies/program-your-own-os&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf"&gt;https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://os.phil-opp.com"&gt;https://os.phil-opp.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://0xc0d1.com/learning/writing-an-os-in-rust"&gt;https://0xc0d1.com/learning/writing-an-os-in-rust&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jvns.ca/blog/2014/03/12/the-rust-os-story"&gt;https://jvns.ca/blog/2014/03/12/the-rust-os-story&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.knoldus.com/os-in-rust-custom-target-to-build-kernel-for-a-bare-metal-part-3"&gt;https://blog.knoldus.com/os-in-rust-custom-target-to-build-kernel-for-a-bare-metal-part-3&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://wiki.osdev.org/Getting_Started"&gt;https://wiki.osdev.org/Getting_Started&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/nsadisha/build-your-own-operating-system-2implementingc-5aa9"&gt;https://dev.to/nsadisha/build-your-own-operating-system-2implementingc-5aa9&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://medium.com/@iam_vinojan/build-your-own-operating-system-os-431e7716a1d1"&gt;https://medium.com/@iam_vinojan/build-your-own-operating-system-os-431e7716a1d1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.freecodecamp.org/news/free-tutorial-mega-list-how-to-build-your-own-cryptocurrency-operating-system-programming-d72593cfa75d"&gt;https://www.freecodecamp.org/news/free-tutorial-mega-list-how-to-build-your-own-cryptocurrency-operating-system-programming-d72593cfa75d&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/screen01.html"&gt;https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/screen01.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/input01.html"&gt;https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/input01.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os"&gt;https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/ok01.html"&gt;https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/ok01.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Operating_system"&gt;https://en.wikipedia.org/wiki/Operating_system&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Bring_your_own_operating_system"&gt;https://en.wikipedia.org/wiki/Bring_your_own_operating_system&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.linuxfromscratch.org"&gt;https://www.linuxfromscratch.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://joebergeron.io/posts/post_two.html"&gt;http://joebergeron.io/posts/post_two.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/index.html"&gt;http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=ZjwvMcP3Nf0&amp;amp;list=PLU94OURih-CiP4WxKSMt3UcwMSDM3aTtX"&gt;https://www.youtube.com/watch?v=ZjwvMcP3Nf0&amp;amp;list=PLU94OURih-CiP4WxKSMt3UcwMSDM3aTtX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tuhdo.github.io/os01"&gt;https://tuhdo.github.io/os01&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://littleosbook.github.io"&gt;https://littleosbook.github.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://jamesmolloy.co.uk/tutorial_html"&gt;http://jamesmolloy.co.uk/tutorial_html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kernel"&gt;https://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kernel&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://arjunsreedharan.org/post/99370248137/kernel-201-lets-write-a-kernel-with-keyboard"&gt;https://arjunsreedharan.org/post/99370248137/kernel-201-lets-write-a-kernel-with-keyboard&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/jserv/mini-arm-os"&gt;https://github.com/jserv/mini-arm-os&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/cfenollosa/os-tutorial"&gt;https://github.com/cfenollosa/os-tutorial&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://danluu.com/malloc-tutorial"&gt;https://danluu.com/malloc-tutorial&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.holbertonschool.com/hack-the-virtual-memory-c-strings-proc"&gt;https://blog.holbertonschool.com/hack-the-virtual-memory-c-strings-proc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/s-matyukevich/raspberry-pi-os"&gt;https://github.com/s-matyukevich/raspberry-pi-os&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://medium.com/@lduck11007/operating-systems-development-for-dummies-3d4d786e8ac"&gt;https://medium.com/@lduck11007/operating-systems-development-for-dummies-3d4d786e8ac&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M"&gt;https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://3zanders.co.uk/2017/10/13/writing-a-bootloader"&gt;http://3zanders.co.uk/2017/10/13/writing-a-bootloader&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://pacman128.github.io/pcasm"&gt;http://pacman128.github.io/pcasm&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cupola.gettysburg.edu/cgi/viewcontent.cgi?article=1001&amp;amp;context=oer"&gt;https://cupola.gettysburg.edu/cgi/viewcontent.cgi?article=1001&amp;amp;context=oer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chortle.ccsu.edu/assemblytutorial/index.html"&gt;https://chortle.ccsu.edu/assemblytutorial/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.utdallas.edu/~pervin/RPiA/RPiA.pdf"&gt;https://www.utdallas.edu/~pervin/RPiA/RPiA.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://rofi.roger-ferrer.org"&gt;https://rofi.roger-ferrer.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/rofirrim"&gt;https://github.com/rofirrim&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://thinkingeek.com/2013/01/09/arm-assembler-raspberry-pi-chapter-1"&gt;https://thinkingeek.com/2013/01/09/arm-assembler-raspberry-pi-chapter-1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.tutorialspoint.com/operating_system/index.htm"&gt;https://www.tutorialspoint.com/operating_system/index.htm&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.tutorialspoint.com/assembly_programming/index.htm"&gt;https://www.tutorialspoint.com/assembly_programming/index.htm&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.egr.unlv.edu/~ed/x86.html"&gt;http://www.egr.unlv.edu/~ed/x86.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.ic.unicamp.br/~pannain/mc404/aulas/pdfs/Art%20Of%20Intel%20x86%20Assembly.pdf"&gt;https://www.ic.unicamp.br/~pannain/mc404/aulas/pdfs/Art%20Of%20Intel%20x86%20Assembly.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://webster.cs.ucr.edu"&gt;http://webster.cs.ucr.edu&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://beginners.re"&gt;https://beginners.re&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cs.lmu.edu/~ray/notes/x86assembly"&gt;https://cs.lmu.edu/~ray/notes/x86assembly&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.ic.unicamp.br/~pannain/mc404/aulas/pdfs/asm%20-%20windows%20assembly%20language%20and%20systems%20programming.pdf"&gt;https://www.ic.unicamp.br/~pannain/mc404/aulas/pdfs/asm%20-%20windows%20assembly%20language%20and%20systems%20programming.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://index-of.co.uk/SISTEMAS-OPERATIVOS/PaulOS%20-%20A%20Real%20Time%20OS%20for%208051%20%28part%20I%29.pdf"&gt;http://index-of.co.uk/SISTEMAS-OPERATIVOS/PaulOS%20-%20A%20Real%20Time%20OS%20for%208051%20(part%20I).pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.egr.unlv.edu/~ed/mips.html"&gt;http://www.egr.unlv.edu/~ed/mips.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chortle.ccsu.edu/assemblytutorial/index.html"&gt;https://chortle.ccsu.edu/assemblytutorial/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www-cs-faculty.stanford.edu/~knuth/taocp.html"&gt;https://www-cs-faculty.stanford.edu/~knuth/taocp.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/jagregory/abrash-black-book"&gt;https://github.com/jagregory/abrash-black-book&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.davidsalomon.name/assem.advertis/AssemAd.html"&gt;https://www.davidsalomon.name/assem.advertis/AssemAd.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.z80.info/zip/zaks_book.pdf"&gt;http://www.z80.info/zip/zaks_book.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www-cs-faculty.stanford.edu/~knuth/mmixware.html"&gt;https://www-cs-faculty.stanford.edu/~knuth/mmixware.html&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="encontre-maisem"&gt;Encontre mais em:&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://build-your-own-x.vercel.app/"&gt;&lt;strong&gt;Build Your Own X&lt;/strong&gt;&lt;br&gt;
*This repo is forked from awesome anistefanovic/build-your-own-x , site
is created and maintained by Kalan
which&amp;hellip;*build-your-own-x.vercel.app&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>