<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on A Blog with No Name</title><link>/posts/</link><description>A Blog with No Name (Posts)</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 08 May 2022 17:51:04 -0700</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>The Batman (2022) Review</title><link>/posts/batman-2022/</link><pubDate>Sun, 08 May 2022 17:51:04 -0700</pubDate><guid>/posts/batman-2022/</guid><description>&lt;p>Warner Bros. has consistently had trouble with trying to make their own cinematic universe competitor to Marvel&amp;rsquo;s own. I think part of the problem lies in not giving one writer or a team of writers the reigns to the work, and instead relying on something being a hit so that it can tie into other films. I&amp;rsquo;m not a huge DC comics fan, but it&amp;rsquo;s frustrating that the studio doesn&amp;rsquo;t let a series happen for more than a film or two before rebooting it completely.&lt;/p>
&lt;p>And so, here we are, with the third iteration of the modern film Batman&amp;ndash;after Bale&amp;rsquo;s serious, action-oriented playbot interpretation and Affleck&amp;rsquo;s approach (which I will admit I have not seen, so I can&amp;rsquo;t make any good comment about it)&amp;ndash;Robert Pattinson takes on a new approach to the character, diverting greatly from those who came before to explore a quieter but still focused and troubled version of the character. I don&amp;rsquo;t consider myself a major fan of any DC superheroes, so I was curious more than anything to see how the movie would turn out.&lt;/p>
&lt;p>What really stands out to me about Pattinson&amp;rsquo;s Batman is just how much more reclusive he is, how very little he talks to people. In his alter ego, he is still quiet but takes on a more confident and capable attitude. Bruce, meanwhile, seems like the kind of guy you&amp;rsquo;d sooner expect to see lurking around in his own house wishing for people to leave him be than a man who wants constant parties when he&amp;rsquo;s not fighting crime. It brings an element to the character that is both unexpected and welcome. As opposed to the overly zealous, sarcastic and downright bombastic RDJ Tony Stark, who wants every moment of the use of his tech to be a whole presentation in of itself, this version of Batman lets the tech speak for itself. In the few instances where he uses his gadgets, none of them have the &amp;ldquo;Stark&amp;rdquo; quality that fans of the MCU are at this point used to in superhero movies.&lt;/p>
&lt;p>The soundtrack is absolutely killer. Michael Giacchino did an excellent job with such a simple two-note theme. It&amp;rsquo;s immediately catchy and I just keep humming it. The use of &amp;ldquo;Something in the Way&amp;rdquo; by Nirvana is also done very well.&lt;/p>
&lt;p>One major criticism I have is how little light is in this movie. Being a Batman film, it&amp;rsquo;s typical that a major focus would be on darkness. Batman fights during the nighttime, when crime spikes in Gotham. But this movie is just &lt;em>dark&lt;/em>. I struggle to see things if I have the lights on&amp;ndash;and yes, I&amp;rsquo;m the kind of person to watch movies with the lights on. With that said, it&amp;rsquo;s mostly a small gripe that is otherwise outweighed by a well-written movie.&lt;/p>
&lt;p>I usually give ratings in conversation with other people, but in the case of a written review I will simply give my recommendation or my warning. If you&amp;rsquo;re a fan of Batman, or even superhero films in general, I think you&amp;rsquo;ll enjoy this movie. There&amp;rsquo;s just enough action to make it &amp;ldquo;Batman&amp;rdquo;, without so much that it becomes every other superhero movie in existence. A lot more focus is placed on the drama and mystery of the story; the action merely assists it. There&amp;rsquo;s little I can say that makes it bad, besides the darkness. I look forward to a sequel, and possibly tie-ins/shared universes. I&amp;rsquo;ll be pretty disappointed if Batman sees yet another reboot&amp;ndash;I would very much like to see Pattinson&amp;rsquo;s Bruce Wayne interact with other superheroes instead of in his hero persona. The end of the movie also hints that we may soon see a new Joker. It&amp;rsquo;s hard to beat Heath Ledger&amp;rsquo;s performance but I would certainly like to see someone else try to make an effective act from that character.&lt;/p></description></item><item><title>The Case Against Crypto</title><link>/posts/case-against-crypto/</link><pubDate>Thu, 17 Mar 2022 14:11:23 -0700</pubDate><guid>/posts/case-against-crypto/</guid><description>&lt;p>It may help to watch this video, for an even more thorough explanation of the problems inherent in this technology:&lt;/p>
&lt;p>&lt;a href="https://www.youtube.com/watch?v=YQ_xWvX1n9g">Line Goes Up – The Problem With NFTs - YouTube&lt;/a>&lt;/p>
&lt;h2 id="understanding-my-grudge">Understanding my grudge&lt;/h2>
&lt;p>Sometime last year, I had only just heard of NFTs and didn&amp;rsquo;t even know what it meant. Even now, my understanding is not completely concrete, but not for lack of trying. It&amp;rsquo;s hard to focus on the actual detail of the technology when much of it is muddled in the speculation and rabid fanboyism of the community that surrounds it. Much like Star Citizen, there are those who are thoroughly invested&amp;ndash;both economically and socially&amp;ndash;in the thing, and there are those who have already recognized the grift or will eventually. I shouldn&amp;rsquo;t blame them; I was in that mindset, too, once.&lt;/p>
&lt;p>The issue I take is rooted in a hobby of mine, in the general &lt;em>diaspora&lt;/em> of the part of the world and the internet that this technolgy inhabits, and in its impact on our environment. Were it not for these aspects, I would consider NFTs and crypto in general as &amp;ldquo;just another fad&amp;rdquo; I could ignore.&lt;/p>
&lt;h2 id="the-gpu-market">The GPU Market&lt;/h2>
&lt;p>PC building and especially PC gaming is a huge hobby of mine, stemming all the way back to 2009 when Cartoon Network&amp;rsquo;s FusionFall was released, and earlier than that, when ToonTown Online was popular. Since then, I have played and enjoyed so many games, and the new releases that come out push the boundaries of what is possible visually in the medium. Fantastic worlds realized by equally fantastic GPU technology.&lt;/p>
&lt;p>There&amp;rsquo;s just one issue&amp;ndash;crypto miners want those GPUs just as badly.&lt;/p>
&lt;p>I really shouldn&amp;rsquo;t blame them. I should blame the manufacturers, but even they aren&amp;rsquo;t at fault because they need silicon to produce GPUs. COVID-19 hit everything, including all the necessary supply chains to ensure continual market availability. That in itself created a huge drop in stock, but that in itself shouldn&amp;rsquo;t have been such a huge issue. There were likely more than enough cards out there for every major hobbyist who wanted to upgrade their PC. But we weren&amp;rsquo;t the only ones who were in demand of what was available. In addition to crypto miners, scalpers and bots plagued our retail space. The former wanted to earn a quick profit hoping to sell to whatever sucker would take their shitty deal. The bots may have originated from the scalpers or the crypto enthusiasts, but whoever was operating them, they managed to snatch up any cards that remained in-stock.&lt;/p>
&lt;p>Still, we&amp;rsquo;re in a GPU rut, and with most of the popular cryptocurrencies relying on proof of work we&amp;rsquo;re seeing a continual shortage of GPUs. Therefore, I feel I have to point my finger at the rise of crypto for the reason the majority of consumers are GPU-poor.&lt;/p>
&lt;h2 id="nfts-and-cryptoart">NFTs and &amp;ldquo;cryptoart&amp;rdquo;&lt;/h2>
&lt;p>Cryptocurrency can be used to buy a great multitude of things online, but the latest trend is buying cryptoart, in the form of NFTs. Non-Fungible Tokens, or NFTs, are a technology essentially used as a kind of verifier that something is unique. The term &amp;lsquo;fungible&amp;rsquo; refers to a thing&amp;rsquo;s replaceability; non-fungible things, therefore, cannot be replaced or substituted. The &amp;lsquo;token&amp;rsquo; part is a cryptographic hash, a component of what is referred to as a &amp;lsquo;smart contract&amp;rsquo; which verifies the legitimacy and ownership of whatever it is attached to. In short, as someone once explained it to me:&lt;/p>
&lt;pre>&lt;code>You don't own the image. You don't own copyright of the image.
You don't even own a receipt for the image. You own a link to a receipt
for the transaction, which might point to a copy of the image on a
server somewhere, with no guarantee that it will continue to be hosted.
&lt;/code>&lt;/pre>&lt;p>NFTs, then, are not the image itself nor the rights to the image, simply a link to the proof of payment. Silly, but let&amp;rsquo;s continue.&lt;/p>
&lt;p>Cryptoart is&amp;hellip;shall we say&amp;hellip;odd and nonsensical at best, and perhaps ugly and incredibly unappealing at worst. That&amp;rsquo;s just my opinion, though. Many dozens more buy them en masse with the idea that they will be worth a fortune later, so the art has &lt;em>some&lt;/em> appeal to &lt;em>some people&lt;/em>. I won&amp;rsquo;t be posting any examples of cryptoart itself, but if you search for any of the following:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Bored Ape Yacht Club&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Mutant Ape&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Lazy Lions&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Cryptopunks&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>You will find many examples of some of the most popular collections available. Most of the issue I have in these collections of &amp;ldquo;art&amp;rdquo; stems from the endless replicability of their base form. Among the several thousand items, not one is so completely unique from the rest to make it truly &amp;lsquo;unique.&amp;rsquo; Yes, every item may have a unique quality to it, but not so much that overlaying two items from the same collection wouldn&amp;rsquo;t reveal a clear base template. In that regard, I would give Beeple&amp;rsquo;s art&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> more value as a collection of NFTs since each piece actually ends up being very unique.&lt;/p>
&lt;h2 id="the-environment">The Environment&lt;/h2>
&lt;h3 id="internet">Internet&lt;/h3>
&lt;p>The communities formed around this trend could be considered today&amp;rsquo;s stock market gamblers, hoping to strike &amp;lsquo;crypto gold&amp;rsquo; when they buy an NFT. Equally so is the crowd I chose, who are varying ranges of hell-bent on espousing the scam of crypto or merely peeved at its popularity. I was introduced to the latter crowd first, but it was my own research and judgement of the thing that brought me to the overall conclusion that I have seen this sort of thing before (in Star Citizen), and I wanted no part of it. Continual promises of something great, but no payoff emotionally or financially.&lt;/p>
&lt;h3 id="earth">Earth&lt;/h3>
&lt;p>The planet&amp;rsquo;s pretty clearly giving us a message that we&amp;rsquo;ve spewed out too much carbon. Increasingly hostile temperature fluctuations and weather patterns are evidence that we&amp;rsquo;re doing too much to our environment. The power consumption of several hundred thousand GPUs chugging away for the sole purpose of furthering the crypto market is, in my opinion, a wasted effort. I seriously doubt that this fad will be anything more than such. I will be happy to be proven wrong, because that would mean that people did not waste their money on what currently seems a silly and environmentally disgusting investment. Ultimately, if this trend is to continue, I would very much like to see a shift towards a proof of stake system&amp;ndash;not only because it would mean GPUs are less likely to go towards such a huge scam, but also because it might mean less overall power consumption. More efficiency, less energy, (marginally) happier planet.&lt;/p>
&lt;h2 id="the-future">The Future&lt;/h2>
&lt;p>Though my general disposition of the technology is negative, I will admit that if a time comes when crypto is spread throughout and proves itself to be of some use beyond schemes and grifts, there will be little else to do but embrace it. I doubt anyone could have predicted bitcoin&amp;rsquo;s astronomical rise in value; but so many seem assured that the same will happen to their investment, that they don&amp;rsquo;t consider the alternative: terrible disappointment, or perhaps even debt.&lt;/p>
&lt;section class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1" role="doc-endnote">
&lt;p>&lt;a href="https://www.instagram.com/beeple_crap/">https://www.instagram.com/beeple_crap/&lt;/a> &lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/section></description></item><item><title>Why I Use Linux</title><link>/posts/why-i-use-linux/</link><pubDate>Sat, 07 Aug 2021 14:07:45 -0700</pubDate><guid>/posts/why-i-use-linux/</guid><description>&lt;p>January 2022 Edit: Despite my best efforts to stick with Linux, I found
the convienience of using Windows too great. I still hold the opinions
below, but until such a time that Linux is just as usable as Windows for my
use case, I will continue to use Windows. I still encourage the usage of Linux
because the more that use it, the more incentive software developers and
their bosses will have to make everything Linux-compatible.&lt;/p>
&lt;hr>
&lt;p>Let&amp;rsquo;s make one thing clear: I don&amp;rsquo;t hate Windows. I hate not having control
over my own computer, and even more so my data being collected without
my wanting.&lt;/p>
&lt;p>After using Windows for the better part of half my life, I decided it was finally time
to move to Linux. Part of it had to do with my career&amp;ndash;I use Linux for all of my programming,
and felt that there was no real reason to stick with Windows now that almost all GUI frameworks
are cross-platform. Web programming especially is device-agnostic. As long as you have a
modern web browser, of which all of the major ones are available for Linux, you don&amp;rsquo;t
have to consider all of the device-specific issues. Another part was privacy.&lt;/p>
&lt;p>Windows 10 was seemingly built from the ground-up to spy on you. Installation of the OS
asks you whether you wish to disable several aspects of the software designed to collect your data.
Checking &amp;lsquo;no&amp;rsquo; on all of these doesn&amp;rsquo;t actually do much of anything. So much of Windows 10 is ingrained with
tracking and telemetry that the &amp;lsquo;Ameliorated&amp;rsquo; edition (a community project that removes
all said issues) has to use several workarounds to prevent the OS from ever phoning home.
So much of this and more&amp;ndash;I was fed up. Microsoft&amp;rsquo;s solution to the Linux developer issue
was to offer a type of integrated VM. My personal opinion is that they should have gone
a new route, and created some kind of Linux distribution that would work with Windows software
natively. I guess I expected too much; Windows 11 is looking to be more of the same.&lt;/p>
&lt;p>I can&amp;rsquo;t deny the convienience of using Windows for most tasks. Everything&amp;rsquo;s built for it.
Games especially. Luckily, the Linux community has been presented with a godsend in
the form of Valve&amp;rsquo;s Proton compatibility layer, which uses Wine to help players start
their games on Linux.&lt;/p>
&lt;p>Linux is actually a perfectly workable operating system, even for those less technically inclined.
Usually, you don&amp;rsquo;t even have to touch the dreaded terminal. However, what makes using Linux a hassle
is the general lack of support from software developers who spend most of their time testing for Windows.
I can&amp;rsquo;t blame them. They&amp;rsquo;re only following the market share. You obviously wouldn&amp;rsquo;t
learn to use rollerskates and assume everything there translates to skateboarding.
The real issue is the proprietary software, and frameworks.&lt;/p>
&lt;p>At the very core of all consumer computer software, are instructions. The computer is
simply told what to do. Linux, like any other OS, can do things based on the instructions given to it.
But what happens when the instructions make no sense? The software simply doesn&amp;rsquo;t run.
Any program made to run in Windows fundamentally cannot run on Linux due to differences in the
instruction set. A compatibility layer like Wine can solve this, but the optimal outcome
is not translation but native compatibility. A few developers are now offering a Linux-compatible
version of their software but the vast majority simply do not, either because they don&amp;rsquo;t care
or don&amp;rsquo;t think the effort will be worth it, or perhaps even both.&lt;/p>
&lt;p>I know that Linux will likely never see widespread use as a consumer operating system,
but so long as Windows remains the way it currently is&amp;ndash;bloated spyware&amp;ndash;I cannot in any
good conscience use it at home.&lt;/p></description></item><item><title>A New Interactive Experience, Part 1</title><link>/posts/interactive-experience-pt1/</link><pubDate>Tue, 06 Jul 2021 20:48:11 -0700</pubDate><guid>/posts/interactive-experience-pt1/</guid><description>&lt;p>For a while, I&amp;rsquo;ve wanted to create a kind of &amp;ldquo;game&amp;rdquo;, but not in the
typical game sense.&lt;/p>
&lt;p>Most would consider a game to consist of something like 2D or 3D
graphics, with emphasis on more than just text. Older folks who
remember the MUD days, or those who ever played Zork might consider
a game to be something as simple as text on a screen.&lt;/p>
&lt;p>Ever since I played the &lt;a href="https://xra.itch.io/memory-of-a-broken-dimension">Memory of a Broken Dimension&lt;/a> demo, I wanted
to try my hand at making something where you&amp;rsquo;re faced with nothing
but a terminal window. It would be a virtual Rubik&amp;rsquo;s cube, trying to unscrable whatever mystery
lies within. There are a lot of challenges ahead, but I&amp;rsquo;ll cover what I&amp;rsquo;ve done so far.&lt;/p>
&lt;p>First was grabbing user input, to emulate a terminal window.
Pretty easy, just set up a JavaScript event handler that does
something every time a key is pressed. Now I have to show the user that
when they press a key, it shows up on the screen. That&amp;rsquo;s a bit more logic
to handle, plus any extra keys like the modifiers. Those are placed into
a reserved list to interate over. If any reserved keys are pressed, an action is
taken if one is assigned. Otherwise, if any regular keys are pressed, we just
send that to the input element to be displayed.&lt;/p>
&lt;p>Next steps are to make the user interface look slightly better and
ensure that, after a certain number of commands are entered, the screen
properly handles the text overflow.&lt;/p>
&lt;p>Keep an eye out.&lt;/p>
&lt;p>&lt;em>&lt;u>&amp;gt; XV.io&lt;/u>&lt;/em>&lt;/p></description></item><item><title>Building a Blog</title><link>/posts/building-blog/</link><pubDate>Mon, 05 Jul 2021 21:44:36 -0700</pubDate><guid>/posts/building-blog/</guid><description>&lt;p>Creating a blog is easy enough if you want to use something like
Weebly or Wix, but I&amp;rsquo;m the kind of person who wants such granular
control over everything that I would rather create a blog
programmatically than have something else do it for me. On the plus side, I get
to flex my programming skills while having something to show off
that isn&amp;rsquo;t professionally related.&lt;/p>
&lt;p>As a site generator, Hugo is actually quite nice. It&amp;rsquo;s versatile,
but it doesn&amp;rsquo;t get in your way. In some sense, it&amp;rsquo;s actually the perfect
site generator. The only real holdup is how difficult it seems to be
to make your own theme from scratch, but that&amp;rsquo;s why the community has
made so many themes. You can then just overwrite whatever bits you want and
Hugo does the rest.&lt;/p>
&lt;p>The name &lt;em>is&lt;/em> a little eh *hand waves*, in my opinion. Not a huge fan of it,
if only because Hugo&amp;rsquo;s never been a name to fully appeal to me.&lt;/p>
&lt;p>If your name is Hugo, don&amp;rsquo;t take that as an offence. Just means I won&amp;rsquo;t name my own kid Hugo.&lt;/p></description></item><item><title>Rust, Part One</title><link>/posts/rust-part-one/</link><pubDate>Thu, 04 Mar 2021 20:39:45 -0800</pubDate><guid>/posts/rust-part-one/</guid><description>&lt;h2 id="what-is-rust">What is Rust?&lt;/h2>
&lt;p>In short, a programming language focused on memory safety. Compiled
like C/C++. Has a lot of neat features. Let&amp;rsquo;s talk about that.&lt;/p>
&lt;h2 id="why-rust">Why Rust?&lt;/h2>
&lt;p>Among other things, Rust is built to be modern. It has its own dependency
manager (cargo) which allows you to easily get the modules and components you need.&lt;/p>
&lt;p>I used to thoroughly dislike Rust, but that was because
I wasn&amp;rsquo;t approaching it the right way. You see, Rust&amp;rsquo;s whole
philosophy is built around making safe code from the get-go.
Evidently, the C++ code I was writing wasn&amp;rsquo;t safe, at least
from Rust&amp;rsquo;s perspective. So I suppose I ought to explain Rust&amp;rsquo;s
whole approach to memory management.&lt;/p>
&lt;p>Suppose you have two variables, each initialized with the same
value.&lt;/p>
&lt;div class="highlight">&lt;pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4">&lt;code class="language-rust" data-lang="rust">&lt;span style="color:#66d9ef">let&lt;/span> x &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">2&lt;/span>;
&lt;span style="color:#66d9ef">let&lt;/span> y &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">2&lt;/span>;
&lt;/code>&lt;/pre>&lt;/div>&lt;p>Both &lt;code>x&lt;/code> and &lt;code>y&lt;/code> now own their own respective values of 2. Now,
say we do this:&lt;/p>
&lt;div class="highlight">&lt;pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4">&lt;code class="language-rust" data-lang="rust">&lt;span style="color:#66d9ef">let&lt;/span> y &lt;span style="color:#f92672">=&lt;/span> x;
&lt;/code>&lt;/pre>&lt;/div>&lt;p>At this point, &lt;code>x&lt;/code> may as well have gone out of scope. Rust has a
particularly fickle way of dealing with memory, and insists that
when you use a variable somewhere, unless you &amp;lsquo;borrow&amp;rsquo; it, that
variable is no longer of use outside of where it got used. This
confused and frustrated me greatly; C and C++ don&amp;rsquo;t have this problem,
because memory isn&amp;rsquo;t constantly treated like a resource that needs
to be tracked (unless you&amp;rsquo;re doing things with threads, in which
case if you&amp;rsquo;re not using mutexes or semaphores, I would highly recommend
looking into how that works).&lt;/p>
&lt;p>So, if you wish to give a variable another variable&amp;rsquo;s value without
moving said value, you must explicitly declare so:&lt;/p>
&lt;div class="highlight">&lt;pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4">&lt;code class="language-rust" data-lang="rust">&lt;span style="color:#66d9ef">let&lt;/span> x &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">2&lt;/span>;
&lt;span style="color:#66d9ef">let&lt;/span> y &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#f92672">&amp;amp;&lt;/span>x;
&lt;/code>&lt;/pre>&lt;/div>&lt;p>As a programmer coming from C++ to Rust, this convention is not immediately
clear.&lt;/p>
&lt;h2 id="classes">Classes&lt;/h2>
&lt;p>Rust doesn&amp;rsquo;t have object-oriented support in the &amp;lsquo;typical&amp;rsquo; sense (typical
meaning having tokens such as &lt;code>class&lt;/code>). Much like C, &amp;lsquo;classes&amp;rsquo; are simply structs.
Coming from a C++ perspective, the inability to define proper classes becomes
jarring, but realistically, Rust&amp;rsquo;s structs are effectively the same thing.&lt;/p>
&lt;p>Defining a struct in Rust is somewhat similar to JavaScript, except that instead
of defining values when you define the struct, you define the types:&lt;/p>
&lt;div class="highlight">&lt;pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4">&lt;code class="language-rust" data-lang="rust">&lt;span style="color:#66d9ef">struct&lt;/span> &lt;span style="color:#a6e22e">computer&lt;/span> {
ram: &lt;span style="color:#66d9ef">i8&lt;/span>,
cpu: String,
gpu: String
};
&lt;/code>&lt;/pre>&lt;/div>&lt;p>Then, when initializing an instance (object) of said struct, you can then
define the values:&lt;/p>
&lt;div class="highlight">&lt;pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4">&lt;code class="language-rust" data-lang="rust">&lt;span style="color:#66d9ef">let&lt;/span> p &lt;span style="color:#f92672">=&lt;/span> computer {
ram: &lt;span style="color:#ae81ff">16&lt;/span>,
cpu: String::from(&lt;span style="color:#e6db74">&amp;#34;some cpu&amp;#34;&lt;/span>),
gpu: String::from(&lt;span style="color:#e6db74">&amp;#34;some gpu&amp;#34;&lt;/span>)
};
&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here&amp;rsquo;s where we run into another fun (frustrating) aspect of Rust: types.&lt;/p>
&lt;h2 id="types">Types&lt;/h2>
&lt;p>C++ and like languages don&amp;rsquo;t usually care how you deal with types because,
for the most part, everything&amp;rsquo;s the same. Numbers can be interchangably compared with
other numbers of different types, and strings are not considered different types
(unless you&amp;rsquo;re using C-style strings, but maybe that will be for the next post).
The developers of Rust, in their infinite wisdom and endless pedantry, decided
that the strings &lt;code>&amp;quot;this&amp;quot;&lt;/code> and &lt;code>&amp;quot;this&amp;quot;&lt;/code> are not the same if the former is of type &lt;code>&amp;amp;str&lt;/code> (a
string slice), and the latter of type &lt;code>String&lt;/code> (a string object). The difference
here comes down to how each is allocated in memory. A string slice, much like a C-style
string, is a fixed size allocated on the stack and cannot be expanded or shrunk,
only altered in its original size. A string object, on the other hand is allocated
on the heap, meaning that you can expand or shrink it as you please, messing around
with it without fear of messing around with other memory. This has the practial
upshot of &lt;code>???&lt;/code>.&lt;/p>
&lt;p>I haven&amp;rsquo;t even gotten into the different integer types in Rust. There are separate
bit sizes for each amount of memory you could want to allocate to a given integer
variable. I presume this is a memory-saving measure, since sometimes you don&amp;rsquo;t
need to use 16 bits just for one number. However, this has the effect of making
my life harder because I just want to type &lt;code>int&lt;/code> when specifying a struct
data member&amp;rsquo;s type. Wah.&lt;/p>
&lt;p>Comparing data between variables of different types is only a slight hassle, if
only because you have to explicitly cast one variable to the other&amp;rsquo;s type. Most other
languages make some base assumptions about comparing types, but as Rust wants to
be safe and not cause bugs that can occur in these situations, it forces explicit
casting.&lt;/p>
&lt;p>That&amp;rsquo;s about all I have to say for Rust for the time being. Since I started writing this
post, I moved on to building a website using Node. Keep an eye out for a post about
that.&lt;/p></description></item></channel></rss>