Initial commit.
This commit is contained in:
commit
5e0cbb070b
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# ignore generated site
|
||||
output/
|
15
Makefile
Normal file
15
Makefile
Normal file
@ -0,0 +1,15 @@
|
||||
.PHONY: pages blog all clean
|
||||
|
||||
pages:
|
||||
mkdir -p output
|
||||
find pages -type f -name '*.cfg' -print0 | sort -zr | xargs -0 saait
|
||||
cp nicolas@ortegas.org_pub.asc style.css favicon.png output/
|
||||
|
||||
blog:
|
||||
mkdir -p output/blog
|
||||
find blog/posts -type f -name '*.cfg' -print0 | sort -zr | xargs -0 saait -o output/blog/ -t blog/templates/
|
||||
|
||||
all: pages blog
|
||||
|
||||
clean:
|
||||
rm -rf output
|
5
blog/posts/2016-05-18-hello-world.cfg
Normal file
5
blog/posts/2016-05-18-hello-world.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-05-18-hello-world.html
|
||||
title = Hello, World!
|
||||
description = A brief introduction to my blog.
|
||||
created = 2016-05-18
|
||||
updated = 2016-05-18
|
4
blog/posts/2016-05-18-hello-world.html
Normal file
4
blog/posts/2016-05-18-hello-world.html
Normal file
@ -0,0 +1,4 @@
|
||||
<p>Welcome to my blog. In the most recent update of my website I decided to create a blog along with all my other content. I hope to keep this blog less personal and more oriented towards technology, but we will see how things play out.</p>
|
||||
|
||||
<p>All my normal content will still be available on the website, I'm just adding a blog to the list.</p>
|
||||
|
5
blog/posts/2016-05-19-ethical-giving.cfg
Normal file
5
blog/posts/2016-05-19-ethical-giving.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-05-19-ethical-giving.html
|
||||
title = Ethical Giving
|
||||
description = Ethical tech gifts from the FSF.
|
||||
created = 2016-05-19
|
||||
updated = 2016-05-19
|
10
blog/posts/2016-05-19-ethical-giving.html
Normal file
10
blog/posts/2016-05-19-ethical-giving.html
Normal file
@ -0,0 +1,10 @@
|
||||
<p>Recently I came across this link on 'ethical giving' by the <a href="http://fsf.org/" target="_blank" >FSF</a>. This is a rather good gift guide for those of us who are advocates for Free Software, as it gives a basic guide to those we love who may be a little less knowledgable in terms of technology.</p>
|
||||
|
||||
<p>I believe that it does a very good job at covering various types of devices from routers, to laptops, to 3D printers, and so on. The site is also very simple and easy to understand for our less techy loved ones, and has an amazing feature for when you look at the 'buy' section of each category the non-free option has the 'avoid' button, which has the great functionality of not being functional, helping the visitor, as thick-headed as they may be, <b>avoid</b> buying the non-free option.</p>
|
||||
|
||||
<p>Therefore, I fully encourage all of you to use this as a definitive gift guide for your loved ones.</p>
|
||||
|
||||
<a href="https://www.fsf.org/givingguide/v6/" target="_blank" >FSF Ethical Tech Giving Guide</a>
|
||||
|
||||
<p><b>EDIT 2016/12/02:</b> It turns out that this is an annual thing (or something of the sort) so here's a link to the <a href="https://www.fsf.org/givingguide/v7/" target="_blank" >2016 FSF Ethical Tech Giving Guide</a>. I do not plan on updating this again, so be sure to look for it yourself next year. Also, notice how in the URL for the previous year it put <code>`v6'</code> and this one says <code>`v7'</code>? That probably means that next year's will be <code>`v8'</code>.</p>
|
||||
|
@ -0,0 +1,5 @@
|
||||
filename = 2016-05-20-do-you-like-it-better-here-or-there?.html
|
||||
title = Do You Like It Better Here or There?
|
||||
description = My take on a stupid question.
|
||||
created = 2016-05-20
|
||||
updated = 2016-05-20
|
@ -0,0 +1,38 @@
|
||||
<p>Having lived in both the U.S. and Spain for quite some time I receive the
|
||||
very popular question that anyone who has lived in another country knows
|
||||
and dreads: "Do you like it better here or there?". Given, you might get
|
||||
this question even if you have just visited another country or (if you live
|
||||
in the U.S.) simply having lived in another state. It really is an annoying
|
||||
question, so please stop asking it. Unless we went to a literal dump we
|
||||
are going to like different parts of each.</p>
|
||||
|
||||
<p>That aside, there is something I would like to say about when people ask
|
||||
this to me in Spain specifically. I have received that question in both the
|
||||
U.S. and in Spain, but it feels a little different when they ask in Spain.
|
||||
This is mostly because of the Spanish inferiority-complex. Most Spanish
|
||||
people feel (even if they do not tell you directly) that Spain is behind
|
||||
the rest of the world in just about every way possible, when that simply
|
||||
isn't true, every country has its pros and cons. So when they ask me "Do
|
||||
you like it better here or there?" I can always hear a tone of
|
||||
self-disappointment, which pisses me off. They don't know what I'm going to
|
||||
say! I might say that both the U.S. and Spain suck balls! But no, they
|
||||
assume that I'm going to say that the U.S. and just about every other
|
||||
country is better than them in just about everything except flamenco...
|
||||
Which doesn't make sense because some of the best flamenco dancers,
|
||||
singers, and guitarists are actually <b>Japanese</b>. Damn, if you're going to
|
||||
find something that your country is good at, at least make sure it's
|
||||
correct! Hey, Spain is 3rd in tourism world-wide! So every time a Spaniard
|
||||
asks me this question it makes me feel bad. Mostly since one of the only
|
||||
good things I can say about Minnesota (the state I lived in while I was in
|
||||
the U.S.) is that its nice and quiet even in the city (most likely because
|
||||
everyone has frozen to death or defected to Canada at the thought of a
|
||||
Trump presidency, that or their all drooling about a 'First Woman
|
||||
President'). How am I supposed to meet your expectation that Spain is so
|
||||
terrible when I don't have many bad things to say? Sure, things could be
|
||||
better (a <b>lot</b> better), but I hate this self-hatred bullshit.</p>
|
||||
|
||||
<p>Basically, stop asking these questions, and don't think your country is
|
||||
better or worse than others at almost everything just because your economy
|
||||
is shitty or doing well because you import Asians to do all the mentally
|
||||
challenging work (U.S. *nudge, nudge*).</p>
|
||||
|
5
blog/posts/2016-05-23-the-television-is-cancer.cfg
Normal file
5
blog/posts/2016-05-23-the-television-is-cancer.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-05-23-the-television-is-cancer.html
|
||||
title = The Television is Cancer
|
||||
description = A rant about the damn TV.
|
||||
created = 2016-05-23
|
||||
updated = 2016-05-23
|
50
blog/posts/2016-05-23-the-television-is-cancer.html
Normal file
50
blog/posts/2016-05-23-the-television-is-cancer.html
Normal file
@ -0,0 +1,50 @@
|
||||
<p>If there is one thing that I have noticed in both the U.S. and Spain which
|
||||
annoys me the most, it's the addiction there is to the television. Of
|
||||
course, by television I am not only referring to the physical TV unit but
|
||||
also when watching TV programmes (or YouTube series for that matter) on an
|
||||
electronic device such as the TV, phone, laptop, or whatever you can watch
|
||||
endless hours of meaningless content on. It has reached the point that
|
||||
the television basically controls most peoples' lives. People will change
|
||||
their daily routine <b>just to watch a series</b>, something that I find
|
||||
extremely excessive. People let the TV series control their lives and let
|
||||
it determine when they eat, when they sleep, what activities they do, it's
|
||||
basically like a job... except you get nothing out of it except for a
|
||||
temporary numbness that distracts you from your real-life problems (huh,
|
||||
sounds like an addiction, doesn't it?).</p>
|
||||
|
||||
<p>However, I personally don't care if someone wants to do such a thing to
|
||||
themselves, it's your choice how much you want to destroy your life on
|
||||
pointless content which won't help you get anywhere in life. My issue is
|
||||
when people want to impose it as part of the already pathetic _small talk_
|
||||
which consists of nothing more than pointless statements that just about
|
||||
anyone can agree with because they're extremely objective! (unless you are
|
||||
talking to a 'Social Justice Warrior' in which case whatever you say is
|
||||
somehow disagreeable and makes you a horrible person). So since people have
|
||||
finally discovered that 'small talk' has a lack of substance to it
|
||||
(seriously, how much substance can you get from sports and other extremely
|
||||
simple topics of conversation) they decided that it should be filled with
|
||||
even more insubstancial information by saying how amazing a TV series is
|
||||
and how great a certain scene was, how much they hate a certain character,
|
||||
and how the newer season isn't as good as the older one. Again, stuff that,
|
||||
for the most part, <b>everyone agrees with!</b></p>
|
||||
|
||||
<p>So, how does this affect me? Because when I meet someone new <b>the first
|
||||
thing</b> they try to talk to me about is the newest season of who knows what
|
||||
show that everyone likes nowadays, and I have to respond with "What's your
|
||||
favorite GNU/Linux distro?" or "What's your opinion on the Chinese
|
||||
economy?" (you know, topics with a little more relevance and importance in
|
||||
the world).</p>
|
||||
|
||||
<p>Now, of course, this isn't <b>all</b> TV programmes, there are some (mostly
|
||||
documentaries) which have a lot of interesting and important content, and
|
||||
it's not that I hate anything that doesn't teach you something either, I
|
||||
love anime, there's very little material of importance in most anime.
|
||||
My issue is when people make their lives revolve around what they watch and
|
||||
force me into it because that's the only thing they know enough about to
|
||||
have a so-called 'in-depth conversation' about (when in reality it's not
|
||||
even in-depth considering their level of knowledge of the actual shows
|
||||
they're watching in terms of cinematography).</p>
|
||||
|
||||
<p>So, please, keep your bad TV habits to yourselves unless mutual interest is
|
||||
explicitly stated, in which case go full throttle ahead.</p>
|
||||
|
5
blog/posts/2016-05-25-small-talk.cfg
Normal file
5
blog/posts/2016-05-25-small-talk.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-05-25-small-talk.html
|
||||
title = Small Talk
|
||||
description =
|
||||
created = 2016-05-25
|
||||
updated = 2016-05-25
|
31
blog/posts/2016-05-25-small-talk.html
Normal file
31
blog/posts/2016-05-25-small-talk.html
Normal file
@ -0,0 +1,31 @@
|
||||
<p>In my post about the television I mentioned very briefly the issue of
|
||||
'small talk'. First, I would like to make it clear that I am not talking
|
||||
about <a href="https://en.wikipedia.org/wiki/Smalltalk" target="_blank" >SmallTalk</a>
|
||||
language, but rather the social phenomenon where two or more people begin
|
||||
a conversation on some of the most pointless and dull topics ever. It's
|
||||
always a topic that for the most part <b>everyone can agree with</b> and is
|
||||
therefore a <b>pointless conversation</b>. It's always about the weather, who
|
||||
won the latest sports event, what popular events are coming up, and (if
|
||||
you're Spanish) the most recent corruption scandal. Never any analysis,
|
||||
never any discussion, and most of all <b>there should never be
|
||||
disagreement!</b> Because for some reason disagreeing on something with
|
||||
someone else is 'a bad thing'. I disagree with people all the time, these
|
||||
people mostly being my friends! So how are you going to tell me that
|
||||
disagreeing with someone on something will make a relationship between two
|
||||
people go downhill? I'd rather discuss and disagree with someone on an
|
||||
in-depth topic than constantly agree with someone that it's a rainy day
|
||||
outside and that the forecast is looking better for next week.</p>
|
||||
|
||||
<p>Of course, I do understand that you can't just go up to someone and start
|
||||
talking about Keynesian economics, you have to find out if they have any
|
||||
interest in economics first. What I hate is when people start using small
|
||||
talk for <b>all</b> their conversations with another individual. By the
|
||||
second time we meet we should already be able to get started with the
|
||||
deeper stuff. We don't need to keep rescratching the surface, it's time
|
||||
to get the shovel and dig deep.</p>
|
||||
|
||||
<p>But for some reason people are afraid of disagreement, they don't want to
|
||||
march into uncharted waters where their opinions are at stake of being
|
||||
disproven by reason and evidence (in which case your opinions are most
|
||||
likely either wrong, incomplete, or unfounded to begin with).</p>
|
||||
|
5
blog/posts/2016-05-26-the-new-era-of-script-kiddies.cfg
Normal file
5
blog/posts/2016-05-26-the-new-era-of-script-kiddies.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-05-26-the-new-era-of-script-kiddies.html
|
||||
title = The New Era of Script Kiddies
|
||||
description = Rant about scripting languages and the people that use them.
|
||||
created = 2016-05-26
|
||||
updated = 2016-05-26
|
53
blog/posts/2016-05-26-the-new-era-of-script-kiddies.html
Normal file
53
blog/posts/2016-05-26-the-new-era-of-script-kiddies.html
Normal file
@ -0,0 +1,53 @@
|
||||
<p>The world of technology has little by little been taken over by the web,
|
||||
which (in my opinion) isn't necessarily a bad thing. What I don't like is
|
||||
that the main languages in the web are scripting languages that allow bad
|
||||
practices and, to some extent, encourage them. It wouldn't be so bad (at
|
||||
least for me) if this were limited to JavaScript on the client-side. My
|
||||
issue is that scripting has advanced even to the servers. Sure, you can
|
||||
use JSP, which is nice because it's a compiled language and it's more or
|
||||
less strict as to its mentality and paradigm, but Java isn't that popular
|
||||
in the web, what's popular are languages such as Python, Ruby, and
|
||||
JavaScript (because someone thought it was a good idea to put JS on the
|
||||
server).</p>
|
||||
|
||||
<p>You see, at least at first when mobile phones started to become popular,
|
||||
they all use Java or some other stricter language, heck, you can program
|
||||
Android apps in C++ if you wanted to (although I wouldn't recommend it).
|
||||
Now companies figure that they can just make a web app and it will be just
|
||||
the same as having a mobile app, they'll just have to go to the website to
|
||||
see it. This, although true, limits the possible jobs of <b>all</b> developers
|
||||
to mostly web monkey work, where you pay less attention on functionality
|
||||
and more attention on aesthetics, which some people may enjoy, but <b>I</b>
|
||||
sure don't.</p>
|
||||
|
||||
<p>Essentially, scripting (and by scripting I mostly mean JavaScript, you
|
||||
Python and Ruby devs can calm down a bit) is allowing normies to begin
|
||||
entering our field without learning any good practices, or even the
|
||||
foundations of programming. Stop making it easier for people who don't care
|
||||
about the beauty of programming to get into programming, they don't deserve
|
||||
it. Why should someone who has no wish to learn of the beauty of painting
|
||||
enter a business where they will be painting?</p>
|
||||
|
||||
<p>Of course, I have no problem with them entering our industry, so long as
|
||||
they actually make an effort to learn good practices and choose a
|
||||
<b>standard</b> for their language. Otherwise you might be reading two
|
||||
JS projects from two different people, and the paradigms are so different
|
||||
you might think that's a whole different language! When I learn C++ I know
|
||||
that every C++ program will have essentially the same mentality to it.</p>
|
||||
|
||||
<p>I often get the impression that people who learn scripting languages are
|
||||
the same people who started off with game-makers because they didn't want
|
||||
to have to program the whole thing.</p>
|
||||
|
||||
<p>Of course, this is all a matter of opinion, I personally don't mind the
|
||||
essence of what scripting is, I just don't like the fact that it has
|
||||
basically no standards, and if it does, the language's interpreter doesn't
|
||||
enforce them (I believe the HTML & CSS are partly to blame for this, seeing
|
||||
that the browser often takes care of most errors your so lazy ass doesn't
|
||||
have to fix them). It's not the computer's (or in this case, the web
|
||||
browser's) to interpret what I mean (even though it is called an
|
||||
interpreter), its job is to read my code and if something is not standard
|
||||
or doesn't make sense, it doesn't fix it for me, it gives me a <b>big fat
|
||||
error in bold red text</b> that tells me "Hey, this code is shitty, you
|
||||
should change that!".</p>
|
||||
|
@ -0,0 +1,5 @@
|
||||
filename = 2016-06-05-resources-for-learning-x86_64-assembly.html
|
||||
title = Resources for Learning x86_64 Assembly
|
||||
description = Links for learning x86(_64) assembly.
|
||||
created = 2016-06-05
|
||||
updated = 2016-06-05
|
@ -0,0 +1,56 @@
|
||||
<p>I guess this will be a post of mine that will actually be useful for
|
||||
something...</p>
|
||||
|
||||
<p>So lately, if you've seen <a href="https://github.com/naortega/" target="_blank" >my Github</a> you
|
||||
can see that I've been learning some x86 assembly, specifically x86-64 (you
|
||||
know, because I run a 64-bit version of the Linux kernel). But I found that
|
||||
there aren't many people interested in x86-64 (which isn't saying much
|
||||
considering I'm talking about Assembly, much less x86-64 Assembly), but I
|
||||
was able to find some information, get some help, and a nice digital book
|
||||
that teaches you x86 Assembly (<b>not</b> x86-64, please keep that in mind).</p>
|
||||
|
||||
<p>The first of the resources is the book, which a friend of mine,
|
||||
<a href="https://github.com/ComradeKeys/" target="_blank" >@ComradeKeys</a> suggested to me, called
|
||||
<a href="http://mirrors.fe.up.pt/pub/nongnu//pgubook/ProgrammingGroundUp-1-0-booksize.pdf" target="_blank" >Programming from the Ground Up</a>
|
||||
by Jonathan Bartlett. This book will teach you a lot of the basics of the
|
||||
Assembly language and how to work with it, but it's only written for x86
|
||||
32-bit. However, that doesn't mean that it's hard to port to x86-64, in
|
||||
fact if you look at <a href="https://github.com/naortega/" target="_blank" >my Github</a> you'll see
|
||||
that I've been porting some of the examples to x86-64 using the new
|
||||
registers and word sizes (I've worked on getting some of the new x86-64 ABI
|
||||
in there but that's taking its time since I'm still new to Assembly in
|
||||
general). So you should be able to use that link for help.</p>
|
||||
|
||||
<p>Of course, something else that I noticed had changed were system calls. The
|
||||
first thing I should point out is that instead of doing the `int $0x80' you
|
||||
instead use the `syscall' command to call the Linux kernel. But you'll also
|
||||
notice thhat the registers to use aren't the same and that the call numbers
|
||||
aren't the same (yeah, 1 is no longer exit, but write), so I had to look
|
||||
this up and found <a href="http://blog.rchapman.org/post/36801038863/linux-system-call-table-for-x86-64" target="_blank" >this link</a>
|
||||
which gives a very nice and complete list of system calls, most of which
|
||||
you will most likely never use. This link also answers the question of
|
||||
which registers to use as parameters for the system calls, just look at the
|
||||
top of the table provided (%rax, %rdi, %rsi, etc.). With this you should
|
||||
have a pretty good idea of what's going on.</p>
|
||||
|
||||
<p>However, one problem that I came up with was when I tried using the stack,
|
||||
which is why I would like to point something out that is very important,
|
||||
<b>remember</b> that x86-64 uses quads which are 8 bytes instead of 4 like
|
||||
longs are (this means instead of using `movl' you use `movq'). I say this
|
||||
because I had this issue when porting one of the examples from the digital
|
||||
book mentioned earlier and I had to ask a question on StackOverflow about
|
||||
it that can be found <a href="https://stackoverflow.com/questions/37635864" target="_blank" >here</a>.</p>
|
||||
|
||||
<p>Of course, then there's the ABI, which you can pay attention to or not if
|
||||
it's just a small project, but it's a good idea to learn it. For this I
|
||||
have a couple links, one is the actual <a href="http://www.x86-64.org/documentation/abi.pdf" target="_blank" >x86-64 ABI</a>
|
||||
from the x86-64 website (yeah, I know right, these people have a website?)
|
||||
and another <b>much</b> smaller version which is a University of Chicago
|
||||
<a href="https://www.classes.cs.uchicago.edu/archive/2009/spring/22620-1/docs/handout-03.pdf" target="_blank" >x86-64 Instructions and ABI</a>
|
||||
handout. Both are nice resources, just that one is <b>a lot</b> shorter than
|
||||
the other.</p>
|
||||
|
||||
<p>With this you have some nice resources to start out with, and I'm pretty
|
||||
sure there are more, but this is what I have to offer you. I hope this
|
||||
post is helpful.</p>
|
||||
|
5
blog/posts/2016-06-06-why-i-hate-the-web.cfg
Normal file
5
blog/posts/2016-06-06-why-i-hate-the-web.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-06-06-why-i-hate-the-web.html
|
||||
title = Why I Hate the Web
|
||||
description = A rant about web technologies.
|
||||
created = 2016-06-06
|
||||
updated = 2016-06-06
|
60
blog/posts/2016-06-06-why-i-hate-the-web.html
Normal file
60
blog/posts/2016-06-06-why-i-hate-the-web.html
Normal file
@ -0,0 +1,60 @@
|
||||
<p>I would first like to point out a couple things before starting my rant,
|
||||
first of which is that I am talking about the web, <b>not</b> the internet. To
|
||||
simplify this distinction for the non-techies who might be reading this,
|
||||
the web is what you see in your browser (like this web page, unless you're
|
||||
RMS and you read this by downloading the HTML), while the internet is
|
||||
any sort of connection between two or more machines (including the web).
|
||||
Second is that there are parts I like about the web or more so being a user
|
||||
of the web, but what I'm focusing on here is mostly having to do with why I
|
||||
hate web development, not so much the web in and of itself.</p>
|
||||
|
||||
<p>So, to get straight to the point, I hate aesthetics, I much prefer to focus
|
||||
on functionality and the "Does this work?" of things rather than the
|
||||
"Does this look pretty?". That's not my job, in fact, I'd argue that it's
|
||||
no one's job, developers make something functional and marketing sells the
|
||||
half-assed hurried piece of shit as if it were the most important invention
|
||||
since the print-press. But for some reason in web development people seem
|
||||
to care a lot less about functionality and a lot more about aesthetics, and
|
||||
I believe that this has to do with the fact that the web is <b>purely
|
||||
graphical</b>. Being purely graphical it gets attention from a lot of people,
|
||||
including those who pay more attention to how their tool looks than "Is
|
||||
this working correctly?". Not only that, but it's impossible for you to
|
||||
create a CLI (command-line interface), that wonderful world where people
|
||||
can stop paying attention to X and Y locations of buttons and more on if
|
||||
the damn thing works correctly.</p>
|
||||
|
||||
<p>At least in fields such as C++ or even Java the focus is still a little
|
||||
more focused around functionality, but this is because both can be used to
|
||||
create plain CLI applications and are often used for that purpose. Heck,
|
||||
a lot of people even create engines, and there's no aesthetics there.
|
||||
Meanwhile, in languages such as JavaScript you can't do that, sure you can
|
||||
create an engine, but you can't create any CLI applications, can you.
|
||||
JavaScript was made to simply modify HTML from the client instead of the
|
||||
server doing it and sending it to the client, and all HTML does is markup a
|
||||
graphical environment in your browser.</p>
|
||||
|
||||
<p>However, another cause I can see for this is which is more probable is that
|
||||
the web has become popular. A lot of important and valuable inventions in
|
||||
history that ended up gaining popular use lost any value they had as they
|
||||
started to be used by idiots with no respect for the pain that went into
|
||||
the damn thing and complain when they see something that looks weird or
|
||||
they run into a small little bug that they could just avoid (yet, they
|
||||
never want to contribute and fix the thing), and they end up using it to do
|
||||
the same stupid things they did before but now with the new technology. You
|
||||
need not look any further than the TV that you most likely own. That bit of
|
||||
technology was created to educate people, to send information via video to
|
||||
thousands of people, and how are we using it? To watch the Kardashians...
|
||||
If I were the creator of the TV I would want to commit suicide for creating
|
||||
such a device that allows for such content that it lowers the IQ of the
|
||||
viewer a few points every time they see it. So what happened with the web?
|
||||
Well, it became popular, and the same idiots that made the TV what it is
|
||||
today decided to start invading the new frontier that was made for creators
|
||||
and intellectuals and turn it into a place where the only thing that
|
||||
matters is 'Muh convenience!' and 'Muh entertainment!'.</p>
|
||||
|
||||
<p>Now, putting that aside, I still use the web (obviously, I have a website)
|
||||
and there are still positives to the web if you know where to go to avoid
|
||||
'normies' who make into the hell-hole that it is currently. Want to know
|
||||
where those places are? Get off your Facebook and Twitter and start going
|
||||
to the less popular sites where your friends most likely don't hang out.</p>
|
||||
|
5
blog/posts/2016-07-04-game-website-app-creators.cfg
Normal file
5
blog/posts/2016-07-04-game-website-app-creators.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-07-04-game-website-app-creators.html
|
||||
title = Game/Website/App Creators
|
||||
description = Ranting about 'creator' software.
|
||||
created = 2016-07-04
|
||||
updated = 2016-07-04
|
57
blog/posts/2016-07-04-game-website-app-creators.html
Normal file
57
blog/posts/2016-07-04-game-website-app-creators.html
Normal file
@ -0,0 +1,57 @@
|
||||
<p>A topic that I am very disturbed about are Game/Website creators. These
|
||||
programs are what I consider is helping to destroy the technology industry.
|
||||
Not only is this causing for more people to be able to create mediocre apps
|
||||
(games, websites, or otherwise) and therefore lowering programming salaries
|
||||
and the chances <b>real programmers</b> have of obtaining a job, but it also
|
||||
promotes shitty code leading to bloated projects.</p>
|
||||
|
||||
<p>The first aspect is that these 'creators' are destroying the industry for
|
||||
<b>real programmers</b> (not people who think they're programmers because
|
||||
some mobile app creator helped them make a stupid clock app that they put
|
||||
on their phone). This is because it is allowing more people who have <b>no
|
||||
respect</b> for the field to enter and create shitty apps. More people
|
||||
entering the field means less work for <b>real programmers</b> and the little
|
||||
work that may be found will be for lower wages (something that for now the
|
||||
programmer master race has been able to avoid because of the few people
|
||||
who want to get involved in programming due to its intense logic and, in
|
||||
some cases, mathematics).</p>
|
||||
|
||||
<p>The second aspect is that it leads to shitty code and terrible performance.
|
||||
This is because these creators turn whatever is put into their GUI into a
|
||||
real programming language which then gets compiled or interpreted. The
|
||||
issue with this kind of cross-compiling is that it makes the code <b>a lot</b>
|
||||
uglier and <b>a lot</b> messier. A good example of this without even looking
|
||||
at creators is the <a href="http://haxe.org/" target="_blank" >HaXe Programming Language</a>, which I
|
||||
had used for a while to make Flash games (before thinking I'm stupid for
|
||||
using Flash please take into account that this was before JavaScript became
|
||||
such a powerful language that you could easily write games with it, before
|
||||
HTML5 came out). With HaXe you don't actually compile, you cross-compile
|
||||
into another language and that language then gets compiled or interpreted.
|
||||
Now, if you look at the code that is generated by HaXe in the other
|
||||
language (as I have) you will see that it is <b>very</b> unnecessarily messy.
|
||||
This isn't hard to understand why it creates something so messy, just think
|
||||
how you would actually do something like this, that cross-compiles to
|
||||
another language, it's not a very easy task. Same goes for the creators,
|
||||
they turn whatever you created in the GUI to a programming language and
|
||||
along with it comes a ton of unnecessary code that will just take up more
|
||||
memory and make performance slower. In this aspect, can I blame them? No.
|
||||
But that doesn't justify it being a replacement for the programming the
|
||||
damn app yourself.</p>
|
||||
|
||||
<p>Finally, even though one could say "It helps others get interested in the
|
||||
field.". This is wrong, very much so. How can one say that it will help
|
||||
others gain interest in the field if they're not even doing anything about
|
||||
the field (that is, <b>they're not programming</b>). If you're using a creator
|
||||
you obviously don't care about the field, since you're trying very hard to
|
||||
avoid all the hard stuff that goes along with creating decent apps. Instead
|
||||
of learning it all, hard and easy, you learn something that does the actual
|
||||
programming for you ('game maker make me a game') instead of having genuine
|
||||
interest in making something nice.</p>
|
||||
|
||||
<p>To put it this way, I'm fine if you use a website creator, for example, to
|
||||
make a personal website of yours (just don't expect me to debug that shit
|
||||
when things to wrong, 'cause I don't want to have to go through one <b>very
|
||||
long line</b> of HTML and CSS). Other than that, <b>no game creators</b> and
|
||||
<b>no app creators</b>. All these do is ruin the the programming industry and
|
||||
turn code quality down, performance down, and wages down.</p>
|
||||
|
5
blog/posts/2016-07-05-why-i-am-a-gpl-advocate.cfg
Normal file
5
blog/posts/2016-07-05-why-i-am-a-gpl-advocate.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-07-05-why-i-am-a-gpl-advocate.html
|
||||
title = Why I Am a GPL Advocate
|
||||
description = Why I support licenses like the GPL and the copyleft movement.
|
||||
created = 2016-07-05
|
||||
updated = 2016-07-05
|
69
blog/posts/2016-07-05-why-i-am-a-gpl-advocate.html
Normal file
69
blog/posts/2016-07-05-why-i-am-a-gpl-advocate.html
Normal file
@ -0,0 +1,69 @@
|
||||
<p>I am very much a GPL advocate, and the more I get into programming the more
|
||||
I favour the GPL licenses. I have many reasons for this, some of them
|
||||
applying to myself personally, but others that are applicable at a larger
|
||||
scale as to how it benefits software creation in general. However, I
|
||||
will start out with how I came to use Free Software and why I ended up
|
||||
with the mentality towards software licenses I have today.</p>
|
||||
|
||||
<p>For 15 years all I really used were Mac computers, which are Unix based
|
||||
systems but still proprietary. It's not practical to imagine I would know
|
||||
or care about something like licensing or ethics during this time, I don't
|
||||
believe I arrived at the age of reason until I was around 15, and although
|
||||
some of my personality and beliefs have changed since then, my thoughts
|
||||
have not strayed much from what they were at that age. When I was 15 I got
|
||||
my first personal laptop that I could use for my own purposes. It was an
|
||||
old laptop that my dad used to use for work, but for work he always used
|
||||
GNU/Linux, and the laptop did not have Windows, and even if it did it was
|
||||
an old 32-bit computer with 1GB of RAM (I ended up adding another GigaByte
|
||||
to that). Even if I wanted to use Windows on there I couldn't because it
|
||||
wouldn't run as quickly as GNU/Linux. So this was the first time I ran
|
||||
GNU/Linux as a main OS. At this point I didn't care too much about Free
|
||||
Software, but I was well on my way to being a Free Software advocate, as my
|
||||
political ideology had moved very much left-ward where Free Software can
|
||||
almost be considered the licenses of the left-wing.</p>
|
||||
|
||||
<p>After a few years of running GNU/Linux I started to get rid of all the
|
||||
Apple products I had (because Apple makes it hard as hell to use their shit
|
||||
with anything else that isn't their shit, mostly being the damn iPod I had
|
||||
which didn't like syncing with my GNU/Linux machine until I found a
|
||||
half-assed hack that got me to fix that shit). At one point I came to the
|
||||
conclusion that the reason why Apple products (along with others) did not
|
||||
play well with others is because they are non-free and do not allow people
|
||||
to create programs that work with their shit (because that means you're
|
||||
using someone else's stuff instead of their shit). After this pissed me off
|
||||
I personally decided to stop using non-free software as much as I could to
|
||||
the point where now the only non-free software on my computer are some
|
||||
wireless drivers that I need for my laptop.</p>
|
||||
|
||||
<p>While I used GNU/Linux I also started to get into programming, which is
|
||||
where I was exposed to software licenses. Since I was on an old shitty
|
||||
computer I couldn't really do much gaming, but I could do a lot of
|
||||
programming, so I ended up programming small games that I could play.
|
||||
But when the time came to choose a license I decided on the GPL, reason
|
||||
being (at the time) that I want people to be able to learn from my code,
|
||||
but I don't want people to take advantage of me by grabbing whatever code I
|
||||
create and making it proprietary and then improving upon it, as that would
|
||||
essentially be stealing my foundations and building on top of it without
|
||||
giving back. So I sided with the GPL licenses.</p>
|
||||
|
||||
<p>However, those are only personal reasons that I had at the time, there are
|
||||
more reasons that do not affect me personally but are important at a larger
|
||||
scale. This being that GPL promotes people to contribute and promotes
|
||||
collective improvement to a project instead of everyone making their own
|
||||
version of the wheel. If I create code that is useful and then share it
|
||||
someone else can use that code to make something that's even better and
|
||||
then someone else upon that continuously improving the software. Meanwhile,
|
||||
with other licenses such as MIT or BSD people can simply take your code and
|
||||
make whatever improvements they make proprietary forcing everyone else to
|
||||
have to reinvent that wheel. Of course, attribution license defendants will
|
||||
say that many times these entities do return code to its original source,
|
||||
and although that is true, I would rather not rely on the good will of a
|
||||
few nice people, but rather force everyone to share what they have in order
|
||||
to assure that progress can be fluid and continuous.</p>
|
||||
|
||||
<p>I believe that the GPL licenses create a more educational environment and
|
||||
that they allow for more progress following the scientific philosophy of
|
||||
building upon the shoulders of giants. With that mentality I believe we can
|
||||
get much further than what could be created with each of us going our own
|
||||
separate ways without having any knowledge of what the other has done.</p>
|
||||
|
5
blog/posts/2016-07-18-my-favorite-firefox-addons.cfg
Normal file
5
blog/posts/2016-07-18-my-favorite-firefox-addons.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-07-18-my-favorite-firefox-addons.html
|
||||
title = My Favorite Firefox Addons
|
||||
description = A list of addons I use.
|
||||
created = 2016-07-18
|
||||
updated = 2016-07-18
|
87
blog/posts/2016-07-18-my-favorite-firefox-addons.html
Normal file
87
blog/posts/2016-07-18-my-favorite-firefox-addons.html
Normal file
@ -0,0 +1,87 @@
|
||||
<p>I use Firefox on a regular basis as my default browser, and something that
|
||||
I really enjoy about it is the vast number of addons (especially for
|
||||
developers) which can be hard to find anywhere else. These addons range
|
||||
from privacy guards, to custom CSS themes across all websites, to other fun
|
||||
little addons that just make my life easier. So here goes a small list of
|
||||
my favorites.</p>
|
||||
|
||||
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/expire-history-by-days/?src=api" target="_blank" ><u>Expire history by days</u></a>: This one took me a while to find. Basically, I want my history to be
|
||||
auto-deleted, but I don't want it <b>all</b> deleted (which is why I didn't
|
||||
just use private browsing mode). This is because I use my browser history
|
||||
often to look up things I did previously. So what this addon does is to
|
||||
delete history after a certain amount of days. Firefox by default already
|
||||
deletes your history after a certain amount of pages, but that's too
|
||||
unreliable for me, I'd rather know the number of days.</p>
|
||||
|
||||
<p><a href="https://github.com/gorhill/uBlock" target="_blank" ><u>uBlock Origin</u></a>: It's like an ad-blocker, but free-software and more. It also protects your
|
||||
privacy and has filters for malware domains as well as other things. Since
|
||||
I've been using this I still haven't seen any ads, so the quality is at
|
||||
least as good as the normal ad blockers (not taking into account how it
|
||||
does more).</p>
|
||||
|
||||
<p><a href="https://www.eff.org/privacybadger" target="_blank" ><u>Privacy Badger</u></a>: This addon protects your online privacy (given the right habits) by
|
||||
blocking ads that may be tracking you along with other trackers that you
|
||||
may not be aware of. It does this through disabling JavaScript and cookies
|
||||
to keep your online identity safe.</p>
|
||||
|
||||
<p><a href="http://fasezero.com/" target="_blank" ><u>Tab Groups</u></a>: Firefox recently got rid of one of my favorite features, the tab groups.
|
||||
Luckily this guy decided to make a plugin for it! Now I continue to have
|
||||
tab groups which I used before.</p>
|
||||
|
||||
<p><a href="https://github.com/dillbyrne/random-agent-spoofer" target="_blank" ><u>Random Agent Spoofer</u></a>: This is definitely a favorite of mine. Basically, when you send an HTTP/S
|
||||
request to a server you also send a header to the server exposing details
|
||||
about your OS, browser, resolution, architecture, etc. Many sites can use
|
||||
this to their advantage by tracking your specific header information across
|
||||
multiple sites (among other things, of course). Random Agent Spoofer will
|
||||
change your online identity to a large variety of presets (from desktops,
|
||||
to mobiles, to game consoles) with a ton of different browsers and browser
|
||||
versions. You can also set it so that it will change your identity at
|
||||
intervals (or random intervals) or even every time you send a request. You
|
||||
can also use it to disable several other things that may be used to track
|
||||
you (just look in the Options tab and start blocking stuff). Be aware that
|
||||
you may experience some strange things while browsing, as many sites will
|
||||
think you are a mobile device, or you may have disabled special fonts, or
|
||||
some other option, so be aware of the options you disable.</p>
|
||||
|
||||
<p><a href="https://noscript.net/" target="_blank" ><u>NoScript</u></a>: This nice little addon disables JavaScript by default, and you have to
|
||||
enable them manually by domain. This can be used to disable unwanted
|
||||
JavaScript that may be tracking you (or in general just making your browser
|
||||
slow). You can choose the 'Enable Scripts Globally' option in the menu, but
|
||||
that would defeat the purpose of having it.</p>
|
||||
|
||||
<p><a href="https://userstyles.org/" target="_blank" ><u>Stylish</u></a>: I was suggested this addon by a friend. This addon can be used to override
|
||||
a site's CSS and replace it with your own style. In my case I love dark
|
||||
styles since it's easier on my eyes, so I got the 'Solarized Dark
|
||||
Everywhere' style. It makes every site much easier to look at.</p>
|
||||
|
||||
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/self-destructing-cookies/?src=api" target="_blank" ><u>Self-Destructing Cookies</u></a>: As the name indicates, this addon destroys your cookies. Cookies can often
|
||||
be used to track you (as long as the cookie matches, it's the same user).
|
||||
Therefore this addon will destroy cookies in one of three different
|
||||
instances (that is defined by you):</p>
|
||||
<ul>
|
||||
<li>After you close its tab (default): after the page to which the cookie
|
||||
belongs is closed it will be deleted.</li>
|
||||
<li>After you close the browser: the cookie will remain until your browser
|
||||
is closed.</li>
|
||||
<li>Never: It will never delete that site's cookies.</li>
|
||||
</ul>
|
||||
<p>You determine this setting by page (it's not applied globally), and the
|
||||
default for all pages is always the first, 'after you close its tab'.</p>
|
||||
|
||||
<p><a href="https://github.com/akhodakivskiy/VimFx" target="_blank" ><u>VimFX</u></a>: Last but certainly not least, is VimFx. As you can guess by its name, it
|
||||
allows me to use the Vim keyboard shortcuts but in Firefox (well, a little
|
||||
modified since it's for a browser and not an editor). I really enjoy this
|
||||
because I don't like having to use my mouse for just about anything. The
|
||||
feature I use the most is the 'follow' command (using the 'f' key) which
|
||||
will bind all the links visible in the browser to a key (or key
|
||||
combination) that when pressed will follow that link.</p>
|
||||
|
||||
<p>This is something amazing for someone like me who hates using the mouse,
|
||||
now I barely ever use it at all (I already use keyboard shortcuts for most
|
||||
other applications I use).</p>
|
||||
|
||||
<p>I hope this was helpful for some people. These are definitely some of the
|
||||
best plugins I've come across.</p>
|
||||
|
||||
<p><b>EDIT 2018/06/24:</b> You may have noticed that some of these addons no longer work with newer versions of Firefox. This is why I've moved to Waterfox, which keeps the old addon system.</p>
|
||||
|
5
blog/posts/2016-07-22-new-website-design.cfg
Normal file
5
blog/posts/2016-07-22-new-website-design.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-07-22-new-website-design.html
|
||||
title = New Website Design
|
||||
description =
|
||||
created = 2016-07-22
|
||||
updated = 2016-07-22
|
6
blog/posts/2016-07-22-new-website-design.html
Normal file
6
blog/posts/2016-07-22-new-website-design.html
Normal file
@ -0,0 +1,6 @@
|
||||
<p>As you can see I've changed up the site quite a bit. Now we're back to running on PHP (no longer using Jekyll). I enjoy this theme much more as it reflects my interests (I put all that I can in the terminal, I'm writing this very post in the terminal using the Vim editor) and it also stands against the picture pretty websites that you see nowadays. You will not see anything on this site that is not pure text, it may be underlined, bold, or a hyperlink, but it will be text, like in a terminal (not the Enlightenment terminal, though, that thing's weird as fuck). Of course, the source to my website is still available on Github and it's all up to date.</p>
|
||||
|
||||
<p>Despite moving towards a system that I had to program myself and now having to write my posts in HTML with a little PHP at the beginning and end, this will actually make it easier for me to upload the posts. Previously with Jekyll I had to upload three different files every time I wanted to post something (the index page, the feed.xml, and the post itself), now, although I do not have an atom feed, I only have to upload the new post because the PHP automatically detects it and adds it to the list (Jekyll was not running on my server).</p>
|
||||
|
||||
<p>Either way, I plan on keeping this for quite a while since it looks cool, was easy to make, and is pretty sustainable long-term. Again, don't expect to see any pictures here, if I add pictures it will be links to the picture located on either this server or an external one (I want to keep the theme going, so nothing but text will be on the actual pages).</p>
|
||||
|
5
blog/posts/2016-07-25-my-favorite-vim-plugins.cfg
Normal file
5
blog/posts/2016-07-25-my-favorite-vim-plugins.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-07-25-my-favorite-vim-plugins.html
|
||||
title = My Favorite Vim Plugins
|
||||
description =
|
||||
created = 2016-07-25
|
||||
updated = 2016-07-25
|
20
blog/posts/2016-07-25-my-favorite-vim-plugins.html
Normal file
20
blog/posts/2016-07-25-my-favorite-vim-plugins.html
Normal file
@ -0,0 +1,20 @@
|
||||
<p>I've already made post about my favorite Firefox addons, so this one is dedicated to my favorite editor, Vim. Most people's first encounter with Vim is always a bad one (even mine), but once I got used to it's weird key bindings and commands I got used to it and now I quite enjoy it, especially with all of its plugins available that are very easy to install with a plugin called <a href="https://github.com/VundleVim/Vundle.vim" target="_blank" >Vundle</a>, which can be used to install all the other plugins by simply providing a link to their git repository (since most of these plugins tend to be on GitHub). So here it goes.</p>
|
||||
|
||||
<p><a href="https://github.com/tpope/vim-fugitive" target="_blank" ><u>Vim-Fugitive</u></a>: This plugin is great since it allows you to work with Git from within Vim, that is, you can commit, switch branches, push, or anything really, all from within Vim.</p>
|
||||
|
||||
<p><a href="https://github.com/wincent/command-t" target="_blank" ><u>Command-T</u></a>: This plugin is nice since this makes it easier to navigate files, all you need to do is run `<leader>t' and you'll get a list where you can search for files within your project by name.</p>
|
||||
|
||||
<p><a href="https://github.com/Valloric/YouCompleteMe" target="_blank" ><u>YouCompleteMe</u></a>: What would I do without 'YouCompleteMe'? As you can probably guess by the name this plugin autocompletes. It searches through your document and files you've opened in the session to help you autocomplete your code (or even writings, I often find myself autocompleting long words on essays and even these blog posts). So, basically, this is a must have.</p>
|
||||
|
||||
<p><a href="https://github.com/scrooloose/nerdcommenter" target="_blank" ><u>Nerd Commenter</u></a>: This is a nice plugin that will help you comment your code. It has many keyboard shortcuts for different kinds of commenting (block, single line, etc.), and it adjusts the character which it uses by file based on the language the file is in. Pretty nice when you have to comment a lot of stuff, just highlight them in visual mode and use the keyboard shortcut.</p>
|
||||
|
||||
<p><a href="https://github.com/vhdirk/vim-cmake" target="_blank" ><u>vim-cmake</u></a>: I work a lot with C++, and because of that I have to deal a lot with CMake compiling. So why not compile my code from within Vim? With this plugin I simply run ':CMake' and then ':make' and it compiles my code. This command will search downward for a build/ directory in which it will run `cmake ..' (../ being where the CMakeLists.txt file is).</p>
|
||||
|
||||
<p><a href="https://github.com/teneighty/vim-ant" target="_blank" ><u>vim-ant</u></a>: Well, I already have a vim-cmake, so why not ant too? I also work with Java every now and then, and ant is one of my prefered tools for doing my compiling (I've never really looked into Gradle), so this script runs the build.xml for your Java project from within Vim!</p>
|
||||
|
||||
<p><a href="https://github.com/vim-scripts/Trailer-Trash" target="_blank" ><u>Trailer-Trash</u></a> & <a href="https://github.com/vim-scripts/bad-whitespace" target="_blank" ><u>Bad-Whitespace</u></a>: These two make a perfect pair. The first one, Trailer-Trash, points out in red any trailing whitespaces. I hate those things, they're extra characters that I don't even know that they're there. Now I can see them, and with Bad-Whitespace I can delete all of them in one command (which, in a sense, defeats the purpose of seeing them, but oh well).</p>
|
||||
|
||||
<p><a href="https://github.com/chilicuil/vim-sprunge" target="_blank" ><u>vim-sprunge</u></a>: I work in collaboration with other people, and sometimes I need to share snippets of code I have not yet commit, but going to a pastebin in the web browser is a bit of a pain in the ass. So this plugin exists so I simply have to run a command and it will give me a link to a file on Sprunge where my code has been posted for my comrades to see it. I don't even have to exit Vim.</p>
|
||||
|
||||
<p>Of course, I use more than these, but these are the ones I like the most. I will most likely end up installing way more in the future, but these are truly useful.</p>
|
||||
|
@ -0,0 +1,5 @@
|
||||
filename = 2016-07-31-my-first-superficial-impressions-of-freebsd.html
|
||||
title = My First Superficial Impressions of FreeBSD
|
||||
description = Tried out FreeBSD, these are my thoughts.
|
||||
created = 2016-07-31
|
||||
updated = 2016-07-31
|
@ -0,0 +1,8 @@
|
||||
<p>I have recently decided to run FreeBSD inside of a VM to try it out (because why not?). Of course, the first thing I was wondering when I got it installed was "Where's the GUI?". I didn't necessarily panic since I know how to deal with the command-line, and BSD seems to also use Bash (or some other Unix shell). So after getting a GUI installed I continued to check out FreeBSD (I wanted to try out BSD because I wanted to try compiling the <a href="https://notabug.org/bkeys/DMUX" target="_blank" >DMUX project</a> on a BSD system). I noticed that apparently FreeBSD had done an extremely basic install, only installing the bare necessities, which in my book is a pretty big plus (something I'm going to start doing with Debian from now on with their net installs).</p>
|
||||
|
||||
<p>Another thing that they do that I found rather interesting is how they have the ports packaging system so you can compile things from source rather than installing a pre-compiled binary (which you can still do, but through the pkg package manager). I found this quite amusing, but ended up finding it to be a waste of time (since I don't necessarily care too much for compiling absolutely everything I download), so I continued using the pkg package manager. But this does show a certain amount of consistency with a Free Software ideology, and it wouldn't be too bad to implement a system similar to it (which might already exist, I haven't tried Gentoo out yet) in which the package manager downloads the source, compiles it, installs the binary, and deletes the source except if specified otherwise. It would most likely take longer for larger projects (you tell me how long it would take to download and compile the Firefox source), but it would be pretty cool, especially for educational purposes at a school.</p>
|
||||
|
||||
<p>Of course, if there's one thing that annoyed the hell out of me it was that Clang is the default compiler instead of the GNU compilers. I get that BSD likes the cuck licenses and the Clang has certain features that I too must acknowledge as very useful (such as suggestions when you get a compiler error as to how to fix the problem), but why can't we all just work on a common project? Separating into multiple projects is just a pain in the ass, and why haven't the GNU compiler developers copied this functionality yet? Are there legal issues? I don't see how with an attribution license, if anything the GNU people just don't want to meddle with the Apple/BSD people and vice versa (quite understandable, but not very pragmatic or reasonable from a programmer's perspective and not a political one). Apparently, after looking stuff up, I found out that the GNU compilers used to be default, but FreeBSD for some reason decided to switch to Clang (again, most likely political reasons). But whatever, I can change my default compiler if I want, not a big deal.</p>
|
||||
|
||||
<p>So overall I've had a very positive experience with FreeBSD, especially with how they have a very minimal install of their OS. I would not use it as a primary OS, since regardless of how much I like how they do things there are just not as many applications for their OS, as well how they do not make the amount of effort that other OSs like Debian make to separate free software from non-free software. However, if I were ever to have the opportunity to run this as a home server I would definitely try that out (might try installing it on my Raspberry Pi).</p>
|
||||
|
5
blog/posts/2016-08-13-strict-compilers.cfg
Normal file
5
blog/posts/2016-08-13-strict-compilers.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-08-13-strict-compilers.html
|
||||
title = Strict Compilers
|
||||
description = Why I think it's important to use a strict compiler.
|
||||
created = 2016-08-13
|
||||
updated = 2016-08-13
|
8
blog/posts/2016-08-13-strict-compilers.html
Normal file
8
blog/posts/2016-08-13-strict-compilers.html
Normal file
@ -0,0 +1,8 @@
|
||||
<p>For almost a year now I've been working on the <a href="https://notabug.org/bkeys/DMUX" target="_blank" >DMUX</a> project along with some other people. The leader of the project, <a href="http://www.bkeys.org" target="_blank" >Brigham Keys</a>, since the beginning has put in place a strict compiler in order to assure the highest code quality for us to work on avoiding bugs since step one. This means the compiler bitches about <b>everything</b>. Any small issue that there might be this compiler will whine to you. However, I have come to see this as a superior way of writing code, by doing this we are avoiding having to deal with many bugs (along with avoiding heap allocation whenever possible it avoid us having any major problems) and I would greatly encourage people to use strict compilers in order to avoid these things, much more if you're working in a group and especially if you're teaching people how to program.</p>
|
||||
|
||||
<p>Looking back, a strict compiler would fix a lot of things that have frustrated me in the past. For example, when I was in high school I was a teacher's assistant for the technology teacher and he had me and my friend correct exams of the programming students. What I found painful was when students would create variables <b>and never use them!!!</b> Basically, the definition of inefficiency, you're taking up resources, holding memory, that you don't need to have. I understand if maybe you don't understand how to use inline functions, or how to optimize your code in general, even I have issues with that, but creating a variable and never using it is an obvious case where there should be a compiler error, you're taking up memory without using it. So this frustrated me a lot back then, but if these kids were using a strict compiler from the start (they were learning Java, but even Java can be strict if you pass the right flags) then it would help them to break these habits.</p>
|
||||
|
||||
<p>I will admit that it's a pain in the ass, especially when I'm developing for Ubuntu and something goes wrong, mostly because the code works on my computer (Debian Testing), Brigham's computer (Fedora), and our other comrade's computer (Arch), yet it fails on Ubuntu. I don't know what Ubuntu is doing, but they need to cut this crap out. If it weren't for the fact that between normies they're the most used distribution we would simply just stop supporting it (because I don't want to have to deal with their bullshit), but unfortunately the better quality doesn't always win majority support even for the same price (which, in this case, is free as in gratis).</p>
|
||||
|
||||
<p>So, in conclusion, please start using strict compilers, that way we can also weed out the normies that program for money rather than for fun (someone with genuine interest would be willing to program despite any complaints by the compiler).</p>
|
||||
|
5
blog/posts/2016-08-17-tox.cfg
Normal file
5
blog/posts/2016-08-17-tox.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-08-17-tox.html
|
||||
title = Tox
|
||||
description =
|
||||
created = 2016-08-17
|
||||
updated = 2016-08-17
|
12
blog/posts/2016-08-17-tox.html
Normal file
12
blog/posts/2016-08-17-tox.html
Normal file
@ -0,0 +1,12 @@
|
||||
<p>It's sad that out of all the types of software out there the one that is developed the least or given the least importance in terms of its freedom respecting alternatives is precisely the ones that we care about the most, applications such as our video/voice chat. This is not to say that there aren't such alternatives, seeing that this post is about precisely one of those alternatives, but it is sad that they don't have the popularity that software such as Firefox or GNU/Linux have. Therefore I would like to talk about <a href="https://tox.chat/" target="_blank" >Tox</a>. There are other alternatives such as <a href="https://ring.cx/" target="_blank" >Ring</a>, but I personally prefer Tox and have actually used it for video chatting (qTox, that is). Ring seems to have many features and is more organized, but I've had many issues with it so I'm not going to necessarily talk about them, just be aware that they're another freedom respecting alternative.</p>
|
||||
|
||||
<p>First I would like to point out that I use qTox. Now, what does this mean? Well, there are multiple Tox clients, because it's not a unified project. So in this post I will be talking about my experiences exclusively with qTox, the one that I have installed. Not all Tox clients have the same features, so I'd like to make it very clear that I'm only talking about qTox. If you want to know about any of the other clients simply go to <a href="https://tox.chat/clients.html" target="_blank" >this link</a> and choose your favorite. Just make sure to take a look at their features first and make sure they have what you're looking for.</p>
|
||||
|
||||
<p>So, the first question I'm guessing is how good does it actually work? This is a typical question by people who don't care too much about their freedom, but I'm willing to answer with great pleasure. qTox works great. I've actually had video calls with people in the U.S. from Spain and it's worked just fine. The only problem that really exists is if one of you aren't wearing headphones, in which case at least one of you is going to get an echo, but this is an issue that's hard to solve and that even Skype has issues with sometimes (though much less). So video chat works just fine, which is what most people use it for.</p>
|
||||
|
||||
<p>Another great feature it has is encryption, it will encrypt your information being sent and received in order to avoid eavesdroppers on your calls. This applies to calls, video, and chat. Something that many other services don't provide (or at least not making it one of their top priorities). There's also the p2p (peer-to-peer) aspect of it, meaning that there's not an intermediary server in the middle that receives all your messages and video streams to spy on you. Instead Tox connects directly to the other person whenever sending information. This has its disadvantages, mostly being that if both participants in the chat are not online then any messages sent will have to wait until both participants are online. This makes sense because of the p2p nature, so it's something I at least am willing to deal with.</p>
|
||||
|
||||
<p>Another important feature is how Tox doesn't actually use usernames to find other users, but rather an ID that you have to share directly with the people you wish to add as a contact. This can sound inconvenient at first, but in reality it's actually much more convenient than usernames. Why is that? Because I don't have to search between the 20 different people called 'John Brown' or the other 30 that have some username with 'johnny' in it and then a bunch of numbers. This ID is exact. Not only that but part of it is replaceable. Let's say that someone you don't like associating with has found your ID and constantly harasses you with contact requests. You can press a button and a part of your ID will change and that person will no longer be able to find you because your ID is different. Great against spammers, right?</p>
|
||||
|
||||
<p>Because of this, I suggest that everyone switch to Tox, or at least to something like Ring, just please stop using non-free shit like Google Hangouts or Skype, and I'll be damned if you ask me to use fucking Facetime. Which reminds me, I should do a post on why I hate Apple. I've probably shown quite a bit of hatred towards them in my blog before (and much more compared to my hatred of Microsoft). So look forward to a post hating on Apple.</p>
|
||||
|
5
blog/posts/2016-08-20-my-loathing-of-apple.cfg
Normal file
5
blog/posts/2016-08-20-my-loathing-of-apple.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-08-20-my-loathing-of-apple.html
|
||||
title = My Loathing of Apple
|
||||
description = The origins of my hatred for Apple.
|
||||
created = 2016-08-20
|
||||
updated = 2016-08-20
|
12
blog/posts/2016-08-20-my-loathing-of-apple.html
Normal file
12
blog/posts/2016-08-20-my-loathing-of-apple.html
Normal file
@ -0,0 +1,12 @@
|
||||
<p>I hate Apple, and I've had many shitty experiences with them. Aside from how they are spying on you <a href="https://en.wikipedia.org/wiki/PRISM_%28surveillance_program%29" target="_blank" >being part of PRISM</a>, in general they are assholes to anyone who wants to use their products in combination with anyone else's. Let me explain my experiences that I have had with Apple.</p>
|
||||
|
||||
<p>For the first 15 years of my life I was an Apple user, using iPods, iPads, iMacs, and iShits. I was exposed to stuff like GNU/Linux at school (because the Spanish school system actually uses ethical software, sadly only because they can't afford proprietary shit, but whatever), especially with Debian GNU/Linux because that's what my dad ran for work, but I still used mostly Apple products. However, at 15 I got my first personal laptop, which was a shitty Dell Inspiron something or another, all I remember is it was a 32-bit with 1GB of RAM, so obviously I installed GNU/Linux on it, specifically Debian GNU/Linux (at the time I had stable since my dad was the one helping me to install it). So I had my own computer, but my music player was still an iPod... Why was this a problem? Because damn iPods didn't want to sync with jack shit that wasn't damn iTunes. I had to do some shit like using my family's Apple Mac (non-free software) to turn off the journaling on that thing and then every now and then I had to do it again because the iPod noticed!!! Unlike some other music players where I can <b>drag and drop my files</b>.</p>
|
||||
|
||||
<p>That was not the only issue, but it was the first. After that I started realizing how my family (except my dad) who all used Apple applications could not communicate with <b>anything</b> of mine. Imagine being isolated (technologically) because you use a less shiny piece of hardware that costs significantly less. That's exactly how it was with me and my family. So I continued to hate it, especially when I went to school with my laptop and the school (who used Apple) gave me files <b>that were Apple specific!</b> Dick move for a <b>public school</b>. And so these events continued as I couldn't cooperate on shit with just about anything because of 'muh iShits'. It got to the point where I basically refused to use anything Apple, and it didn't help that one year the school starting giving all the students iPads. At least this time they were thinking "What if a student's computer can't run our software on it?" as compared to the previous times where they basically said "You can go fuck yourself!". But even then, what about my freedom? Ignoring my principles of free software which I had at the time. I basically left that machine at my house and never brought it to school in order to prove a point. Every time they said to do something on the damn iPad I would do it on my machine using free software.</p>
|
||||
|
||||
<p>So, that's how I left the realm of Apple, but once I was out I was glad to have left. Looking from the outside in all I see is mindless zombies fighting over <b>a damn phone!!!</b> I swear, Apple fanboys are the worst along with bronies. There is no reason for you to get the damn phone a week before everyone else for a higher price. Just let all the other idiots get the expensive one a week earlier while you (the 'smart' one) waits patiently until the price goes down... to about half a fortune instead of an entire one. Seriously, you get <b>nothing</b> out of Apple products that you can't get out of others for <b>much</b> less money. But of course, we all need to show off how much money we have (or, how much money we can suck out of our working class parents) to pay for a piece of shit phone that does the same thing as the other one that costs 70% less. But Apple has some way of convincing their fanboys that their iShit is special and better than everyone else's because it has a logo of an apple with a bite taken out of it on the back. So you're saying I can tattoo an apple to my nuts and these fanboys will start obsessing over it? Also, just because I'm saying fanboys doesn't mean this doesn't apply to women, or even men that are older. Heck, from what I've seen Apple has two main markets, teenagers who act like hipsters and adults in their mid-life crisis who are already throwing money everywhere (also, a lot of old people have Apple, not because they bought it themselves, but rather because their children who are in their mid-life crisis bought it for them, they really don't give a shit themselves).</p>
|
||||
|
||||
<p>Worst is with my poor grandparents, one of their children (you know who you are) bought them an iPad and a Macbook, but the poor souls don't know any better, so now they don't know that if they want to hold on to those family photos better continue to buy expensive Apple products when that breaks. I'm still waiting for something to break so I can intervene first and have them use free software, it also helps that I'm physically closer to them than 'that family member' is. The day will come... just hope it arrives a little faster (-_-). Soon they'll be saying "Bye bye Apple, hello Debian!" (no way I would install Ubuntu considering that even they have done some shady shit recently).</p>
|
||||
|
||||
<p>So now you know my story. I <b>hate</b> Apple, I hate them even more than I hate Microsoft and their bullshit, in the case of Apple it's just personal. So if you ever know me, or already do and never knew this, <b>don't get me anything Apple</b>. It might be harsh but I would probably end up either asking you for the receipt or at the very most saying thank you and then stashing it somewhere in <b>someone else's</b> house where it can't track me (damn PRISM!!!). Speaking of gifts, if you're reading this and wondering what to get me now that you can't buy me the latest iShit, please refer back to my blog post on <a href="/blog/post/50/" >Ethical Giving</a> which uses the FSF's guide to finding an ethical technological gift for someone.</p>
|
||||
|
5
blog/posts/2016-08-25-what-is-lacking-in-education?.cfg
Normal file
5
blog/posts/2016-08-25-what-is-lacking-in-education?.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-08-25-what-is-lacking-in-education?.html
|
||||
title = What Is Lacking in Education?
|
||||
description = A contrast and suggestions for the American and Spanish educational systems.
|
||||
created = 2016-08-25
|
||||
updated = 2016-08-25
|
31
blog/posts/2016-08-25-what-is-lacking-in-education?.html
Normal file
31
blog/posts/2016-08-25-what-is-lacking-in-education?.html
Normal file
@ -0,0 +1,31 @@
|
||||
<p>This is a question that is asked quite a lot, and although I don't have a definitive answer, I do have a few things that I believe to be very important that are being disregarded when it comes to the education of a student. Some of them are already being implemented by some school systems (in some cases it's only at certain schools), but I am not completely sure as to whether they are actually doing what I am going to expose here and if those results can be comparable statistically with those of a normal school. Either way, here are some things that I believe need to be improved. Also, in this list are things that are both common and specific, and they are based on my experiences with the American and Spanish educational system, therefore I will divide this into common issues, Spanish issues, and American issues.</p>
|
||||
|
||||
<h3>Common Issues</h3>
|
||||
<p>0. Technological Literacy: Yes, I actually started with 0 for this one, if there was some basic technological literacy you would know why (if you already do, you're doing a good job). It pains me that in this day and age where technology is at the foundations of our society, where everyone owns some sort of computer (yes, your phone counts as a computer), and where if there were a catastrophe that destroyed all digital technologies society would basically fall apart, that people know little to nothing about technology (that is, if you're one of those people that once you get an error or warning message you call tech support you're part of the problem, everyone knows you look that up in a search engine first, or I suppose I should speak in your terms, <b>Google it!</b>). Since we live in such a society it is very important that we learn the fundamentals of programming. Our society is not dependent on the fine arts, <b>but it is on digital technologies</b>. If art goes away we're still all here, the world is a much uglier place, but we're all still civilized. If digital technologies go away we're all fucked. This is not to say that a basic education in art shouldn't be obligatory, I just think that technology deserves more time than art does (it's sad when the amount of obligatory classes for art and technology are the same). Everyone should know what the fuck a file format is and that you can't just copy a binary from a Mac machine to a Windows machine and expect that shit to work. They should also know the difference between a text editor and a word processor (like the difference between Notepad and Microsoft Word, for those of you who don't know those terms). So please, fix this.</p>
|
||||
|
||||
<p>1. College Entrance Exams: This is one of the stupidest things I've ever seen. Why is it that for every other public educational institution I can just get in as long as I've passed the previous year, but college is somehow a special snowflake that requires a damn entrance exam? Yes, I'm talking about ACT, SAT, Selectividad, and all that bullshit. It should be as simple as "Oh, you passed the last year of high school? Here are some colleges you can go to. Pick a few, we'll see which one you get into, then you're off on your way.". But no, fuck that, we want to annoy the shit out of people with standardized tests. I understand wanting a standardized test, but please stop it with the fucking entrance exams.</p>
|
||||
|
||||
<p>2. Teachers as Guides: If there's one thing I love about most programmers is that we're pretty much all self-taught and have genuine interest in the field (with a few exceptions being those who never write code unless it's for class or for work, you guys can fuck off). However, this can also apply to other fields, and I've found that it's extremely beneficial, as it allows you to learn at your own pace and with much more enthusiasm. So, basically, what should teachers do? Well, instead of telling you "Hey, learn this for next week" instead they should say "Oh, you're interested in doing 3D Game development? Well I know a few resources to get you started with game development in general and then you can slowly make your way to your goal!". Of course, I would see this working better in a university context rather than a primary school one where everyone says "I want to be a firefighter!". This also helps weed out those who don't actually have any interest, those will be the people who say "I don't know what to do.". Essentially, the teachers will be there to guide you to your objective rather than creating your objective and then dragging you there while you struggle with it all.</p>
|
||||
|
||||
<p>3. Homework Shouldn't be Mandatory: Yes, please stop this. I get it for stuff like elementary school, and a little for middle school, but in high school the students should have enough maturity to know whether they are familiar with a subject enough to need to do the homework or not. Homework should definitely be suggested, telling the students what exercises that they could do to practice, but it should not be mandatory.</p>
|
||||
|
||||
<h3>Spanish Educational Issues</h3>
|
||||
<p>0. Selectividad: I've already gone over college entrance exams, but this one is just horrifying. Do you know how much stress students get over this thing? Please take it down a notch! I mean, I know Spain is going to end up getting rid of this, but damn, it's fucking horrifying. I've had friends who've taken this and they were extremely stressed not only studying, but also waiting for the results. Please bring this down a notch before a bunch of people start committing suicide over it.</p>
|
||||
|
||||
<p>1. Student Privacy: Teachers in Spain, please stop pointing out the students that are not doing their school work, for all you know they already know the shit you're teaching and don't feel like doing homework which supposedly is something to remember what you did in class. Luckily students aren't graded on that shit.</p>
|
||||
|
||||
<p>2. Extracurricular: This is something that the American system takes to an extreme, but at least they have them. Spanish schools need to promote and even host educational extracurricular activities. A programming club, a medieval literature club, a political analysis club, anything that's educational, just please add it. This allows students who have productive interests outside of what they're learning to have a place to express those with other people they know and to do things together.</p>
|
||||
|
||||
<p>NOTICE: There are most likely more things that I could point out, it's just been a long time since I've been in the Spanish educational system, I guess I'll see more this year and have more complaints, might make another post for that.</p>
|
||||
|
||||
<h3>American Educational Issues</h3>
|
||||
<p>0. Grammar: <b>Teach your students some fucking grammar!!!</b> Do you know how bad the grammatical knowledge of the American population is compared to that of foreigners <b>in the English language</b>? It's complete shit! I go to school and no one knows what the fuck an adverb is, or a possessive, or a predicate, or <b>any basic grammatical concepts</b>. How am I supposed to explain that in Japanese a sentence's structure is subject (sometimes called object)-predicate-verb if they don't know what any of those are? How the hell did any of these kids play Madlibs when they were children? Did they guess what words to use? Please teach the American children some damn grammar so they can understand how fucking shitty their own language is.</p>
|
||||
|
||||
<p>1. Too Fucking Easy: Do you want to know how many times I actually studied for a test while I was in high school? I'll give you a hint, you can count them on one hand. Ready? I studied a total of <b>two</b> times. That is, I studied only for two different tests. Want to know why those don't count? Because they weren't even American tests, they were International Baccalaureate tests, which are made by people <b>in another country</b>. So for American tests I studied a total of <b>zero times</b>. So, what grades did I tend to get? Well, on tests I could get anywhere between D+ to B (there were exceptions on both ends of course, but this is what there normally was). Pretty average grades for someone who <b>never studies</b>. I get that failing never feels good, but some people have to fail, in this case it was me. Fix this shit!!! If I can pass all your damn tests without studying once then your system has a big gaping flaw. And if you're thinking that it's just because I'm naturally bright or something like that then you're wrong, in Spain if I didn't study for a test I was basically asking to fail. I'm not sure there is a way to fail in the American system. Also, remember how I said that the Selectividad was too hard? Well ACT is basically the polar opposite. I took that exam with <b>no preparations</b> because I knew that it didn't matter in my case for going to college since I was going to Spain and not the U.S., so I didn't study and I only took the exam half seriously, yet I ended up getting a score of 24 (which is pretty average). Want to tell me how this shit happens? I don't study, I take the test without really giving a shit about the results (that is, not motivation whatsoever), and yet I get an average score? How do Americans struggle with this shit?!?!?! Please fix this educational system, there's too much wrong with it.</p>
|
||||
|
||||
<p>2. Stop 'Making Learning Fun': No, just no. Learning is fun if the student thinks it's fun, not if you butcher it into a game rather than a lesson. When I learn programming I think it's fun, not because they teach it to me in a fun stupid little game, but rather because I actually genuinely enjoy learning how to program. If the student wants to learn they will, and if they don't it won't matter how many ways you butcher the lesson they still won't learn shit from it. You don't make learning fun, you make the student think that the field itself is fun, not by butchering the field but by having them see how it's interesting. If they don't find it interesting that's not your fault as a teacher, it's their flaw as a student. It's the student who is failing at his/her job.</p>
|
||||
|
||||
<p>3. School Is for Education: First, this is not a bash on all extracurricular activities, the educational ones are great. This is mostly on stuff like school dances, senior events, and all that shit. Yes, they're fun, and I fucking enjoyed them, but do I think they belong in a school? No. Do I think that public money should be put into funding these? No. If the students want to organize a student dance at the recreational center I have no problem, that's fine, but don't expect the school to waste time and resources for this, <b>and don't use it as a fucking excuse to be lazy at school or not attend it!</b>. Too many times have I seen people who skipped school because of a dance or some school event (including myself since I knew the teachers weren't going to do anything since there would only be 5 students in class that day). School is not a social club, it's not where you go to hang out with your friends, it's a place where you go to learn to be a productive member of society (something that a lot of educational systems fail at since there are so many unproductive people who when asked for their hobby they say "I like to watch Netflix."). So stop expecting schools to entertain you and start learning that school is a job, like all jobs there are times when you can chat, but most of it is work.</p>
|
||||
|
||||
<p>4. Homework Should be Less of Your Grade: I'm one of those people that believes that tests should be essentially your entire grade, or at least something like 80% of it. I've heard the argument people have put as to why homework and projects should be worth more points, and I find it stupid and flawed. Their reasoning is that not everyone is good at taking tests and therefore certain students have advantages. First of all, please show me a proper scientific study demonstrating this. The Eastern Asian countries have very test based scoring systems and they rank highest on almost all the charts! Please explain to me how this works. Besides that, the reason why I believe tests are more important is because if you cannot properly explain the why and how of something in written form then you truly do not understand it. Meanwhile, on homework and projects you can easily just copy work from somewhere else, which isn't necessarily bad if you're reading through the work and attempting to understand it, but there's no guarantee of that happening. With projects there's also the common case of the lazy ass who doesn't contribute to the project and yet gets the same grade as you. Meanwhile, in a test you are in a controlled environment where the teacher can see exactly what you know. The teacher shouldn't expect you to know data, but rather he/she should be testing you on whether or not you know how to work with data that is given. I distinguish between knowledge and intelligence. Someone who is knowledgable is someone who knows many things, someone who is intelligent is someone who knows what to do with information that he/she has or is given. So someone can be knowledgable and still stupid (basically, your computer is fucking stupid, but it's knowledgable as fuck). So stop adding so much importance to homework.</p>
|
||||
|
5
blog/posts/2016-09-02-the-https-hype.cfg
Normal file
5
blog/posts/2016-09-02-the-https-hype.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-09-02-the-https-hype.html
|
||||
title = The HTTPS Hype
|
||||
description =
|
||||
created = 2016-09-02
|
||||
updated = 2016-09-02
|
12
blog/posts/2016-09-02-the-https-hype.html
Normal file
12
blog/posts/2016-09-02-the-https-hype.html
Normal file
@ -0,0 +1,12 @@
|
||||
<p>Recently I've seen a lot of hype around everyone wanting to use HTTPS for absolutely everything, which is very understandable for sites like social networks and especially for financing websites. However, it's gotten to the point where people want an HTTPS website for no reason, for example, this site having an HTTPS protocol would serve <b>no purpose</b>. HTTPS only encrypts your connection to a server, but that's only useful if personal information or logins/passwords are involved. This website gives neither personalized pages nor requires any logins/passwords, therefore any reason to add HTTPS support to my website that I have seen makes no sense.</p>
|
||||
|
||||
<p>So it seems like the hype over HTTPS is simply a blind belief that "because it's HTTPS it's secure and private", when in reality my website gives away <b>no sensitive information</b> through HTTP that it wouldn't give away through HTTPS. If you want to protect your identity online then HTTPS won't do anything, you want to be using the <a href="https://www.torproject.org/projects/torbrowser.html.en" target="_blank" >Tor Browser</a> to hide your online identity. The only things that might be exposed are things like your HTTP header, which I don't feel bad for you if you're not using an identity spoofer like I mentioned in my blog post about my favorite Firefox add-ons.</p>
|
||||
|
||||
<p>So usually this wouldn't bother me that much, people do stupid things for no reason all the time. The problem with it this time is that it seems people are beginning to not trust sites that do not have HTTPS even though they may be like mine where there is no reason to use it, and it wouldn't surprise me if browsers began to adopt a 'HTTPS-only' policy soon because of this (seeing that users matter more than actual reasonable arguments most of the time).</p>
|
||||
|
||||
<p>You know a site that does need HTTPS? My comrade <a href="http://www.bkeys.org/" target="_blank" >bkeys' website</a>. He has logins, uploads, and a shit ton of other stuff that should be encrypted. Not only that, but because he has HTTP login forms <a href="http://thenextweb.com/apps/2015/10/21/firefox-is-testing-marking-any-page-that-sends-passwords-over-http-as-insecure/" target="_blank" >which Firefox will soon be marking as unsafe</a> which might cause some issues as this HTTPS hype progresses for him, they'll probably end up banning such connections.</p>
|
||||
|
||||
<p>Basically, HTTPS is a good thing in general, but stop trying to force it down website admins' throats.</p>
|
||||
|
||||
<p><b>EDIT 2017/03/06:</b> I have recently changed my views on this issue, and have another post on this.</p>
|
||||
|
5
blog/posts/2016-09-30-educational-software.cfg
Normal file
5
blog/posts/2016-09-30-educational-software.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-09-30-educational-software.html
|
||||
title = Educational Software
|
||||
description =
|
||||
created = 2016-09-30
|
||||
updated = 2016-09-30
|
8
blog/posts/2016-09-30-educational-software.html
Normal file
8
blog/posts/2016-09-30-educational-software.html
Normal file
@ -0,0 +1,8 @@
|
||||
<p>This last week I've been taking my university classes and we've started taking practice classes as well, where we apply the theory we've learned. In my programming class it's programming in C++ (they use Code::Blocks with the MinGW compiler), which is nice (I was expecting them to be using Visual Studio, so it's a nice surprise). However, for my math class we're using Mathematica. Although I can get it for free by checking out the installation disc at the library and get a license through my student e-mail, it's still an ethical issue for an advocate of Free Software. I've been searching all over for a good alternative to Mathematica that is Free Software, and although I've found some wonderful alternatives (such as <a href="http://www.sagemath.org/" target="_blank" >SAGE</a> and <a href="http://mathics.github.io/" target="_blank" >Mathics</a>), none of them are able to view/edit Mathematica Notebook files (which is surprising considering it's plain text).</p>
|
||||
|
||||
<p>However, the root of the problem does not lie with these alternatives for not being able to process proprietary formats, but rather with the educational facility (in this case the University of Jaen) for supporting such software and not allowing students to use a more ethical alternative (such as those mentioned previously) which have about the same capabilities. This is especially problematic since what this tells me is that they're teaching you a tool rather than the concepts behind the tool. If they were teaching the concepts behind the tool then using a different (more ethical) one would be perfectly fine as long as the concepts learned in theory are applied correctly. However, this is clearly not the case. Instead these classes are doing nothing but to make the students dependent on a specific software (and anon-free, extremely restrictive one at that) rather than something more accessible such as those alternatives mentioned before.</p>
|
||||
|
||||
<p>Though it may be a good question to ask, "Why is it so important for schools to use free software?". I believe that the reason is rather obvious. Considering the <a href="https://en.wikipedia.org/wiki/The_Free_Software_Definition#The_definition_and_the_Four_Freedoms" target="_blank" >Four Essential Freedoms</a> of Free Software, it is quite clear that these are all freedoms that should be promoted in an educational environment. The first freedom allows for the students to experiment, to attempt to break the program, to learn it and learn from it to the fullest, and the second is immensely important for programming students as it allows you to see how the program works on the inside and change/hack it to learn from it. The first two freedoms are very important to an educational environment, especially one where the students are studying programming (as we are).</p>
|
||||
|
||||
<p>In this sense, I consider it very important that students have the opportunity to use free software alternatives, and would even argue that the default software used in class should always be free software in order to help the students learn and improve (or at least give them the opportunity to do so).</p>
|
||||
|
5
blog/posts/2016-10-06-adobe-flash-needs-to-die.cfg
Normal file
5
blog/posts/2016-10-06-adobe-flash-needs-to-die.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-10-06-adobe-flash-needs-to-die.html
|
||||
title = Adobe Flash Needs to Die
|
||||
description =
|
||||
created = 2016-10-06
|
||||
updated = 2016-10-06
|
10
blog/posts/2016-10-06-adobe-flash-needs-to-die.html
Normal file
10
blog/posts/2016-10-06-adobe-flash-needs-to-die.html
Normal file
@ -0,0 +1,10 @@
|
||||
<p>It's slow, it's inefficient, it's buggy, it has memory leaks, it no longer supports GNU/Linux, and it's proprietary as fuck. Ladies and gentlemen, it's Adobe Flash.</p>
|
||||
|
||||
<p>One of the few great decisions Apple has ever made was when the decided to get rid of Adobe Flash on the iPad, and thanks to that and a number of other factors (such as the heavenly arrival of HTML5, CSS3, and modern JavaScript frameworks) Adobe Flash has been losing influence on the web to the point that it's getting harder and harder to see it anywhere, especially since you can now program anything in JavaScript and it will be faster, more efficient, and integrated with the browser (unlike Adobe Flash which requires a plugin). This is true to the extent that not so long ago I uninstalled the Flash plugin from my computer and mostly everything works just as it did before.</p>
|
||||
|
||||
<p>However, it seems that there are still some places where Adobe Flash is still present, and those niches need to die, <b>now</b>. Nowadays we are in the era where such terrible technologies are no longer needed and we can more than get by on JavaScript (even though I don't particularly like how the language is structured as compared to my wonderful C++ and Java). So why are we still settling for Adobe Flash? Is Adobe bribing people to continue to use their products in fear that they'll start losing market? They already have Photoshop, they should be content with that.</p>
|
||||
|
||||
<p>What's even worse are these websites where <b>the entire website is in an Adobe Flash app</b>. That's right, not just a section of a page, not just a webpage, but the entire fucking site. These sites need to be burned, meaning the machines hosting those VPSs need to be confiscated, disassembled, crushed, and melted. Who has <b>so</b> much time on their hands that they are going to go through the hassle of writing an <b>entire website</b> in Adobe Flash? Seriously, who thinks of this as a good idea?</p>
|
||||
|
||||
<p>In any case, stop making Flash shit, it's a waste of time and it's only going to become obsolete (which I guess is strange coming from someone who has an all text website that is built with PHP, but at least my website with render without a fucking plugin).</p>
|
||||
|
5
blog/posts/2016-10-08-why-i-use-cc-by-nd.cfg
Normal file
5
blog/posts/2016-10-08-why-i-use-cc-by-nd.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-10-08-why-i-use-cc-by-nd.html
|
||||
title = Why I Use CC-BY-ND
|
||||
description = My reasons for using CC-BY-ND on my writings.
|
||||
created = 2016-10-08
|
||||
updated = 2016-10-08
|
8
blog/posts/2016-10-08-why-i-use-cc-by-nd.html
Normal file
8
blog/posts/2016-10-08-why-i-use-cc-by-nd.html
Normal file
@ -0,0 +1,8 @@
|
||||
<p>If you look at my essays in the <a href="/writings/" >writings</a> section of my website you'll notice that they're licensed under a CC-BY-ND license, which is not a free culture license. Seeing that I fully support free culture I feel the need to explain why I use NoDerivatives on my essays specifically.</p>
|
||||
|
||||
<p>First I would like to point out that although these works are licensed as NoDerivatives, you still have the right to distribute and even to quote my essays as long as you attribute my original work properly and do not modify/manipulate the text or section of the text that you use. Therefore the only right that is lacking is the right to modify my works and distribute those modifications.</p>
|
||||
|
||||
<p>As for my reasoning behind this licensing, the reason is simply that I don't want my own writings to be used against me through manipulation. These writings are a representation of my opinion, and if it were under a ShareAlike license such as other works of mine then someone would be able to manipulate my essay to say something that I do not agree with and then properly attribute me, therefore misrepresenting what I my actual opinion is, and although they would be required to state the changes they made and the readers would be able to compare to my own works, many people would not care to look at the changes or compare with the original, and therefore I do not wish to allow for modifications of my essays. With other works, such as music, programs, stories, etc. I always use free culture licenses because they are not necessarily representations of my opinion. This blog is the only exception to this because it is licensed along with the rest of my website, which is under the CC-BY-SA 4.0 International. Therefore I find it justified that I use a NoDerivatives license on my essays.</p>
|
||||
|
||||
<p>Again, although derivatives are not permitted, there is still the ability to distribute and even commercialize my works, but not to make any derivatives based upon it.</p>
|
||||
|
@ -0,0 +1,5 @@
|
||||
filename = 2016-10-27-avoiding-youtube-non-free-javascript.html
|
||||
title = Avoiding YouTube Non-Free JavaScript
|
||||
description = Technologies you can use to watch YouTube videos without having to visit the actual website.
|
||||
created = 2016-10-27
|
||||
updated = 2016-10-27
|
@ -0,0 +1,12 @@
|
||||
<p>First I would like to mention that there are free alternatives to publishing media (even videos) such as the Up1 service (which currently is currently down on its main page, but you can access another instance of it at <a href="https://share.riseup.net/" target="_blank" >share.riseup.net</a>), <a href="https://unsee.cc/" target="_blank" >unsee.cc</a>, and <a href="https://goblinrefuge.com/mediagoblin/" target="_blank" >GoblinRefuge</a> (a MediaGoblin instance that allows up to 1GB size uploads). Therefore if you're going to publish media try using one of those first (GoblinRefuge is the closest thing to YouTube in terms of how public the media is).</p>
|
||||
|
||||
<p>Now, as for avoiding using YouTube's website, I've found two programs that can be used to watch YouTube videos without having to visit the website. The first is `mps-youtube' (might also be called `mpsyt', that's the name of the Debian package, at least). This is a CLI program that lets you browse and download YouTube videos without having to visit the site. It gives you a set of commands which can be used to search, download, and play YouTube videos all from the command-line. It's quite advanced and should allow you to avoid using YouTube all together. I myself haven't truly explored all of its functionality yet (I mostly just use it to look up some quick videos), but expect it to be missing some of the website's functionality (duh).</p>
|
||||
|
||||
<p>The other option has to do with when you're given a YouTube link. To my knowledge mpsyt can't necessarily watch videos based on a URL (again, I haven't explored all of its features yet), and there's always that friend who's going to be sending you YouTube links, yet you don't want to click them. So you can simply use `youtube-dl'. It's a very common tool that you can use to download YouTube videos (along with videos from other sites, a friend of mine downloads his porn using youtube-dl from websites that do a shitty job at hiding the video's URL) and can even do things such as convert to other formats and extract audio from the files. Therefore, whenever someone sends you a YouTube link just run `youtube-dl <link>' and you'll never have to visit YouTube again.</p>
|
||||
|
||||
<p>With this it's relatively easy to live without running YouTube's non-free JavaScript. Although from now on any media you want to upload you should do so through the more ethical alternatives mentioned before.</p>
|
||||
|
||||
<p><b>UPDATE 2018/06/24:</b> I was recently made aware of <a href="https://hooktube.com/" target="_blank" >HookTube</a>, which is a website that keeps your viewing of YouTube videos away from YouTube, is lighter, and is still easy to use.</p>
|
||||
|
||||
<p><b>UPDATE 2020/03/19:</b> I forgot I had this post, but I guess late is better than never. Basically, HookTube has faced legal action from YouTube and had to resort to using normal embeds. It's still good as a lightweight alternative to YouTube, but not for privacy. If you want the privacy features HookTube used to have then I suggest using <a href="https://invidio.us/" target="_blank" >Invidious</a> instead.</p>
|
||||
|
5
blog/posts/2016-11-15-studying-for-my-c++-exam.cfg
Normal file
5
blog/posts/2016-11-15-studying-for-my-c++-exam.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-11-15-studying-for-my-c++-exam.html
|
||||
title = Studying for My C++ Exam
|
||||
description = Interesting things I've found about C/C++.
|
||||
created = 2016-11-15
|
||||
updated = 2016-11-15
|
4
blog/posts/2016-11-15-studying-for-my-c++-exam.html
Normal file
4
blog/posts/2016-11-15-studying-for-my-c++-exam.html
Normal file
@ -0,0 +1,4 @@
|
||||
<p>Today (in an hour and a half of me writing this) I have a practice exam on C++ programming. However, while all other students are studying loops, conditionals, array,s, and structures, I (obviously) am not. Instead I found a magnificent website containing a bunch of <a href="http://madebyevan.com/obscure-cpp-features/" target="_blank" >obscure C++ features</a> that I plan on using in the exam (at least those I can use for a class that hasn't even studied functions yet, much less pointers). One of the ones I'm most fond of (and that I did not think about before reading this page) is how an array is simply a pointer to a direction in memory (on the stack or the heap) where variables are stored. This is obvious once you think about it, but it has implications. This means that the array variable is holding the memory address to these variables, so this can no be used to create obscure syntax. Especially since the square brackets actually just do a sum to calculate the address and then point to that address, that is, <code>`myArray[3]'</code> is the same as <code>`3[myArray]'</code>. And what's more, remember how arrays are just pointing to different locations in memory (kind of like all variables, really)? Well, this means that you can just as easily do <code>`*(myArray + 3)'</code> and it will do the same exact thing. If anything this last one is more explanatory of what is actually going on, seeing that it's pointing to a memory address where the variable is located and it is put in a much more explicit manner.</p>
|
||||
|
||||
<p>So yeah, I plan on using this for my exam. Why? So the teacher can see that this is child's play for me and that I should not be wasting my time on this when I could be creating something more important (like working on my hundreds of projects on GitHub and GitLab).</p>
|
||||
|
5
blog/posts/2016-11-22-for-tabs.cfg
Normal file
5
blog/posts/2016-11-22-for-tabs.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-11-22-for-tabs.html
|
||||
title = For Tabs
|
||||
description = Defending the use of tabs for coding.
|
||||
created = 2016-11-22
|
||||
updated = 2016-11-22
|
8
blog/posts/2016-11-22-for-tabs.html
Normal file
8
blog/posts/2016-11-22-for-tabs.html
Normal file
@ -0,0 +1,8 @@
|
||||
<p>It's time for me to get involved in one of the most polar debates among programmers, even more polar and controversial than Vim vs. Emacs, which is tabs vs. spaces. In the Vim vs. Emacs debate many programmers tend to get left out and don't care because they('re noobs and) use GUI editors. While in the tabs vs. spaces debate, unless you only program in Assembly (and even then) or some obscure language that doesn't use indentation (or you just don't use indentation, in which case you are either retarded or a dick), you have used either one for your indentation and can most likely know what the hell the conversation is about.</p>
|
||||
|
||||
<p>To start off I am in favor of tabs. I'm not too religious about it, but if we're going to use spaces then it's gotta be 4. I actually don't have too many problems with using spaces, especially since my Vim has a plugin to detect indentation. However, if I am to choose how indentation is done then I choose tabs over spaces any day. My reasoning for this is simple: if tab characters are used then everyone gets to see the indentation they prefer. Remember how I said that if I use spaces it has to be 4? Yeah, that's because my tab size is set to 4. If tabs are used then I get to see a 4 column indentation, someone else gets to see a 2 column indentation, and someone else can see an 8 column indentation. Typically this is seen as a disadvantage of tabs, however I see it as advantageous since every programmer gets to see their code in the way they want it. Some may complain that they have to get used to pressing the tab key instead of the space bar, but to them I say that they should've setup their editor to convert tabs to spaces from the beginning instead of having to hit the space bar 4 times just to indent a line of code.</p>
|
||||
|
||||
<p>One disadvantage that must be acknowledged is that this makes the `columns' number on your editor almost useless (since it counts tabs as only one column). However, I do not see this as important since all you really need is the line number and the compiler will tell you at what point on that line (in terms of the code on that line) the error/warning is coming from. No need for columns.</p>
|
||||
|
||||
<p>Basically, tabs allow each programmer to see things how they want to and be more efficient (since they'll be able to see all projects with the same indentation so long as they use tabs or the same number of spaces as there are columns in their tabs). Therefore, by using tabs everyone gets to see the code the way they want to and no one has to pass code back and forth between a styler. So let's stop the indentation size dictatorship of spaces that stops the hacker from seeing the code the way they want and work towards a tabs future so every hacker can read the code how they want to!</p>
|
||||
|
5
blog/posts/2016-11-28-the-importance-of-libre-games.cfg
Normal file
5
blog/posts/2016-11-28-the-importance-of-libre-games.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-11-28-the-importance-of-libre-games.html
|
||||
title = The Importance of Libre Games
|
||||
description = Why it's important to have libre games as well as other applications.
|
||||
created = 2016-11-28
|
||||
updated = 2016-11-28
|
10
blog/posts/2016-11-28-the-importance-of-libre-games.html
Normal file
10
blog/posts/2016-11-28-the-importance-of-libre-games.html
Normal file
@ -0,0 +1,10 @@
|
||||
<p>Games form a very important part of our lives, even if it's not necessarily computer games you do play some sort of games (although I would guess that most who read my blog would play some sort of computer game, mobile games included since mobiles are a type of computer). Games give us a way of spending some time that we have to kill, either alone or together with others. This means that freedom in gaming is extremely important.</p>
|
||||
|
||||
<p>Usually gaming is one of those industries where free software has not yet been able to gain a foothold, yet I believe it is a very important industry to promote free software in to be able to relieve those of us (stallmanites) who wish not to use any non-free software are left with almost no decent games to play in the free world (unless we want to play 20 different versions of the same FPS game, like AssaultCube, Xonotic, Red Eclipse, OpenArena, Alien Arena etc., basically Quake-based games). It's really hard to find good libre games mostly because the free software movement in gaming is still extremely young.</p>
|
||||
|
||||
<p>Because of this many free software advocates are tempted to either get a Windows drive, run a virtual machine with Windows on it, or install something like Steam on their computers. This is problematic since this is a lot of non-free software, instead there should be an effort to promote free software among game developers, and much more using free culture assets. This is one reason why I think that the <a href="https://notabug.org/bkeys/DMUX" target="_blank" >DMUX project</a> is so important, it's the creation of a new game (not another Quake remake) to promote free software in the gaming industry and prove that a free software model is possible in gaming (at least as long as a copyleft license is used).</p>
|
||||
|
||||
<p>To end this I would like to give a few examples of some good free/libre games that can be found in different genres. To start, the best FPS games I've found are Xonotic and Red Eclipse, AssaultCube is good if you have an old computer. Flare is a nice single-player RPG game that takes place in a fantasy world. I've heard that FreeCiv is a good Civilization-like game for TBS. Then there's 0AD and boswars are good RTS games. PlaneShift is a pretty good MMORPG game (it's also 3D!), also fantasy style, although they will soon be switching to the Unreal Engine, so I'd recommend looking out for that.</p>
|
||||
|
||||
<p>This is just a small list, and I'm sure there are many more and other genres I have not mentioned. If you know of any horror libre games then please e-mail me with the name and/or a link.</p>
|
||||
|
5
blog/posts/2016-11-29-non-free-firmware.cfg
Normal file
5
blog/posts/2016-11-29-non-free-firmware.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-11-29-non-free-firmware.html
|
||||
title = Non-Free Firmware
|
||||
description =
|
||||
created = 2016-11-29
|
||||
updated = 2016-11-29
|
10
blog/posts/2016-11-29-non-free-firmware.html
Normal file
10
blog/posts/2016-11-29-non-free-firmware.html
Normal file
@ -0,0 +1,10 @@
|
||||
<p>One of the largest struggles in the Free Software movement is that against non-free firmware. This is because firmware tends to be very difficult to replace, often completely tied to the hardware of the computer. Yet my opinion on the extension of freedom into this field is very iffy because of how firmware, by definition, is almost impossible to modify. Therefore the question is should we be as concerned about freedoms 1-3 with firmware? I would argue that freedom 0 is always important as it is what allows the user to use the program for whatever purpose, and therefore firmware is no more special in this regard.</p>
|
||||
|
||||
<p>For freedom 1, the freedom to analyze the code and change it, I believe that the first part of analyzing the code is important, as it helps to make sure that the software does what it says it does. However, the second part is a little less clear. Since it is firmware and cannot necessarily be changed that means that any changes made to the code are somewhat futile. However, it could be said that a change in the source-code is good for community improvements to the code or providing alternatives for someone else who has the resources to manufacture alternative hardware containing the modified firmware. So I leave that up in the air. In this sense freedom 1 is quite necessary for firmware.</p>
|
||||
|
||||
<p>Freedom 2 does not make much sense in terms of firmware since distribution of the firmware is just distribution of the hardware, which is already considered legal since it's not making a copy. So I would say that this kind of distribution is already protected by law in most countries with regards to firmware.</p>
|
||||
|
||||
<p>Freedom 3 is the tricky one. Taking into account what I said in the second part of freedom 1 it could sway either way. This freedom would essentially be the ability to manufacture alternative hardware that contains modified versions of the firmware. For this a community is extremely important. So this freedom, as well, is also very up in the air.</p>
|
||||
|
||||
<p>Of course, if possible it's always best to buy hardware that uses freedom respecting firmware. However, I do not see it as being as important as software in most cases, especially since firmware is not always changeable anyways therefore restricting freedom 1 by definition. That said, it is a different issue that manufacturers are putting more and more of the user's computing onto the hardware component itself and its firmware, and although this may yield more due to less load on the CPU it does take away power from the user and therefore the user's freedom. If the firmware simply does the minimal amount and then leaves most of the work to the drivers then the firmware being non-free is not as problematic so long as the drivers are freedom respecting. However, if the firmware is doing a good portion of the computing then it becomes rather problematic. These devices should be avoided at all costs since the user never has control over them.</p>
|
||||
|
5
blog/posts/2016-12-05-why-i-use-cli.cfg
Normal file
5
blog/posts/2016-12-05-why-i-use-cli.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-12-05-why-i-use-cli.html
|
||||
title = Why I Use CLI
|
||||
description =
|
||||
created = 2016-12-05
|
||||
updated = 2016-12-05
|
12
blog/posts/2016-12-05-why-i-use-cli.html
Normal file
12
blog/posts/2016-12-05-why-i-use-cli.html
Normal file
@ -0,0 +1,12 @@
|
||||
<p>For those of you who don't know, CLI means Command-Line Interface. I'm a huge fan of using CLI over their GUI (Graphical User Interface) alternatives, to the extent that typically the only non-terminal windows I have open is simply one: my browser (IceCat). I would not like to switch my browser to CLI for various reasons, but everything else is. Everything else (e-mail, IRC, music, password manager, etc.) is all in the terminal. I do this for multiple reasons.</p>
|
||||
|
||||
<p>First one is that it's better performance. Instead of spending so many resources on other applications (like e-mail clients and music players, which tend to be rather heavy) I can reserve those resources for other applications, such as VMs or any heavy-duty program I may be running at that moment in time. Of course, I do have a small contradiction on this one which is that I use GNOME3 as my DE, which, for those of you who are not familiar with it, is a somewhat heavy DE. My excuse for this is simply that I'm used to GNOME and all of its nice keyboard shortcuts, that and its interface feels very natural and slick to me.</p>
|
||||
|
||||
<p>Another reason why I use CLI is to avoid using the mouse. Using the mouse usually takes me much more time than it does to type out a command or press a keybinding, and although GUI applications have keybindings, they are not as obvious or used as in the CLI alternative (sometimes you have to set the keybindings manually because they don't have defaults). Therefore CLI applications allow me to get work done much faster.</p>
|
||||
|
||||
<p>What I find to be much more important is that CLI is much less distracting. Being only text, no bells, no whistles, just text, I find it much easier to concentrate without notifications and beeps and noises everywhere. Of course, there are settings to disable these on GUI applications, but by default they tend to annoy the hell out of me, and I prefer to keep close-to-default options so when I switch computers I don't have many issues. It also helps that I put all of my applications that I usually have up in a TMUX instance, that way it only occupies one terminal window, but also I am not distracted by what may be happening in another TMUX window. However, when I used IceDove for e-mail, apart from annoying e-mail notifications, every time I switched workspaces to change my music, if I had new mail I would see that and get distracted by it, while now with Mutt inside the same TMUX instance as my music player I never have this problem.</p>
|
||||
|
||||
<p>If you're interested in moving applications of yours to CLI then here's what I use for my different tasks: e-mail - Mutt, IRC - irssi, password manager - pwman3 (I suggest getting it from `pip3' instead of the system package manager), music player - cmus, to-do list - tudu. I have all of these inside of a TMUX instance. If you want to use a CLI web browser then there are browsers such as links, lynx, elinks, and w3m, of which I have only tried links(2) and elinks.</p>
|
||||
|
||||
<p>Now, there are some drawbacks to this, of course. One of the drawbacks is learning to use the tools, they're usually not as intuitive, however I usually find this worth it since my productivity then goes up. The second is that this can somewhat scare people away from using GNU/Linux because they think (by seeing you/me) that if you want to use GNU/Linux you also have to use CLI, which is not necessarily the case (depends mostly on the distro and installation). However, I generally do not care for this aspect as much as to change my CLI habits.</p>
|
||||
|
5
blog/posts/2016-12-19-my-preference-for-c.cfg
Normal file
5
blog/posts/2016-12-19-my-preference-for-c.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-12-19-my-preference-for-c.html
|
||||
title = My Preference for C
|
||||
description =
|
||||
created = 2016-12-19
|
||||
updated = 2016-12-19
|
4
blog/posts/2016-12-19-my-preference-for-c.html
Normal file
4
blog/posts/2016-12-19-my-preference-for-c.html
Normal file
@ -0,0 +1,4 @@
|
||||
<p>Of all the programming languages my favorite in general is C. I'm fine with using other languages, but C is by far my favorite. The reason for this is that C is much closer to assembly than other languages which try to abstract it away from the developer. When programming in C you can see how the code would look in assembly just by looking at it, and it makes it easier to do performance improvements since you know what the code will look like more-or-less in assembly (with `-O0', of course). This makes it much easier for me to visualize how the computer is going to be managing the system's resources with my code and how it's going to run it, giving me much more control (something that I typically am attracted to in a programming language or in computing in general). Then there's also how the code in C is still low-level and is compiled to a binary, being much more efficient than an interpreted language. It is also quite basic, having a fewer variety of syntax which helps to make finding 'the best solution' much easier (unlike in C++ where there are 200 different ways to implement the same thing).</p>
|
||||
|
||||
<p>Of course, I do recognize that C is not best for every job, for example, for most desktop games I would prefer to use C++, since OOP languages seem to be better suited for games (or rather that gamedev itself fits the OOP paradigm very well), for any mobile app I'd obviously use Java, and so on. However, in general for a program I prefer C, seeing that it gives me more control over the computer, does not abstract me too far away from the assembly that is beneath, and does not bombard me with syntax and strange features.</p>
|
||||
|
5
blog/posts/2016-12-22-we-i3-now.cfg
Normal file
5
blog/posts/2016-12-22-we-i3-now.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-12-22-we-i3-now.html
|
||||
title = We i3 Now
|
||||
description = I switched to using i3.
|
||||
created = 2016-12-22
|
||||
updated = 2016-12-22
|
10
blog/posts/2016-12-22-we-i3-now.html
Normal file
10
blog/posts/2016-12-22-we-i3-now.html
Normal file
@ -0,0 +1,10 @@
|
||||
<p>So, in a previous post I spoke about how I use GNOME as my DE, and I explained that it's mostly because I didn't want to have to got through the hassle of setting up a more minimal WM to make it usable. Well, recently a friend helped me to setup a new WM, so from now on I'll be using i3, the tiled WM. I've found that this WM makes my life much easier than GNOME did, mostly because in this WM I can easily open terminals via `MOD+Enter' and I barely ever have to use the mouse. In fact, because I don't have to move around windows (which could be done with the keyboard in GNOME, but it took forever) I rarely use the mouse at all, that and I've configured everything to use the Vim key bindings (that is, instead of `jkl;', which are default, I use `hjkl').</p>
|
||||
|
||||
<p>Of course, there were a couple of things that I needed, since i3 doesn't automatically give you all the programs to make your computer work you will need to choose applications on your own. For networking I'm using wicd, it has GUI and CLI interfaces. I'm fine with keeping the GUI interface for that since I rarely have to touch it. For audio I've switched to using alsamixer and pavucontrol, however, with the volume being printed in the status bar I rarely have to use these.</p>
|
||||
|
||||
<p>These are simply the most essential applications, as for other stuff, I continue to use ibus for my Input Methods, but I've setup some key bindings within i3 for them (still use mozc for Japanese IME). I'm also using xpdf for PDF viewing and gpicview for image viewing. Since before I've already used mpv for watching videos, so that hasn't been a problem. Since I'm also used to the GNOME terminal I had to find another terminal emulator, so I ended up going with lxterminal which is pretty similar. Also, if you want a background you can use feh.</p>
|
||||
|
||||
<p>The reason why I chose most of this software is because they have relatively low dependencies, I did not want programs with large dependencies that go all over the place, much less GNOME or KDE dependencies. All these should be available in the Debian Testing repositories.</p>
|
||||
|
||||
<p>So yes, now the "Deathsbreed uses all CLI because he spends half his RAM on his DE" meme is over.</p>
|
||||
|
5
blog/posts/2016-12-24-books.cfg
Normal file
5
blog/posts/2016-12-24-books.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-12-24-books.html
|
||||
title = Books
|
||||
description = My rant as to why books aren't as important as people say.
|
||||
created = 2016-12-24
|
||||
updated = 2016-12-24
|
14
blog/posts/2016-12-24-books.html
Normal file
14
blog/posts/2016-12-24-books.html
Normal file
@ -0,0 +1,14 @@
|
||||
<p>Nowadays we are very used to being pounded with the ever more popular idea that books are sacred and that anything digital is somehow impure (even if it's the same material but on a screen). This is something that has bothered me very much, especially as someone who does not read many physical books, but does read a lot of material online. And I'd like to point out that this belief is completely unfounded, and that, at least from what I see, the digital reading is being much more beneficial to society than the physical books.</p>
|
||||
|
||||
<p>To begin, if I am reading the same material but I'm doing it on my computer rather than with a physical book, what's the difference? Yes, I know that you tend to remember things better that are on paper (I've seen this on many articles <b>online</b>), however that does not change the quality of the content if the content is <b>exactly the same</b>. So if I'm reading something digitally cut the crap.</p>
|
||||
|
||||
<p>Then there is also the aspect of physical space and resources. Compare a ton of bookshelves to a single USB stick. The amount of physical space occupied by the USB stick is thousands of times smaller, heck, it's smaller than every single book on those shelves individually, and therefore is much more portable and much less space consuming (more living space). Then you must also consider resources, the thousands of millions of books that can fit on, say, a server in PDF format for people to download and view on their devices, and then delete when they're done with it. Think of a massive library accessible to the entire world at their fingertips and they don't even have to wait to check out the book. Now compare this to the physical books, even if it's a library they still occupy a lot more space and will use many more resources, especially since most people will want a book of their own and will end up getting copies of said book instead of checking it out. This ends up being much more wasteful.</p>
|
||||
|
||||
<p>There's also another aspect of these "reading books is better" people that I very much dislike. When I read on my computer I read a lot of useful information: news and Wikipedia articles, studies, documentation, essays, civilized discussions on advanced topics (well, maybe not that civilized, but at in depth for sure). Meanwhile, what do these people read in their books? Novels. Not even good quality ones most of the time. Often times it's shitty teenage drama novels. This kind of reading is not useful for anything except personal entertainment, and therefore is the same as simply watching the TV or playing a computer game (although at least with playing a computer game you actually do some thinking). If reading physical books means ending up like these people I'd rather not, these people are just as bad as those that get home and sit in front of the TV all day, there is <b>no difference</b>, the only thing that changed was the means of their entertainment.</p>
|
||||
|
||||
<p>So overall I think that this trend needs to die, or at least be a little smarter about how they market it and realize that there are people like me who read things digitally that are of much more use than their <b>fiction</b> reading.</p>
|
||||
|
||||
<p>Of course, I do enjoy physical books for some things, namely when reading philosophy, mostly because I like to underline and take notes, which on most digital devices is a pain in the ass compared to on a book. However, I'm fairly certain that a technology that does this book annotating better will arise, and at that point I will no longer have this preference since I can do it just as easily on my laptop.</p>
|
||||
|
||||
<p>So, next time you're about to tell some kids in a classroom about how "important it is to read <b>from a book</b>", just remember that some people read a lot more productive material online that those who read it from books.</p>
|
||||
|
5
blog/posts/2016-12-25-merry-grav-mass.cfg
Normal file
5
blog/posts/2016-12-25-merry-grav-mass.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2016-12-25-merry-grav-mass.html
|
||||
title = Merry Grav-Mass!
|
||||
description = A secular celebration.
|
||||
created = 2016-12-25
|
||||
updated = 2016-12-25
|
8
blog/posts/2016-12-25-merry-grav-mass.html
Normal file
8
blog/posts/2016-12-25-merry-grav-mass.html
Normal file
@ -0,0 +1,8 @@
|
||||
<p>Merry <a href="https://stallman.org/grav-mass.html" target="_blank" >Grav-Mass</a>!</p>
|
||||
|
||||
<p>Today is the day that <a href="https://en.wikipedia.org/wiki/Isaac_Newton" target="_blank" >Isaac Newton</a>, the man who discovered the laws of motion as well as having invented Calculus, was born. Many things that today we take for granted would not have been possible without his discoveries, and therefore deserves a day of recognition.</p>
|
||||
|
||||
<p>I believe that it is important to celebrate Grav-Mass in every household, as it raises children with a familiarity of science and mathematics, and perhaps even an interest in them. It is very important that children grow to understand what science is, what it means. In the media we often see science represented in the form of 'cool experiments', however this is not true. Science is not about making water turn to ice upon impact, or roasting marshmallows using electrical currents, or mixing baking soda with vinegar in a paper volcano, it's asking why those things happen. Everyone knew that gravity existed before Newton, obviously we were all attracted to the ground, however Newton, being the scientist he was, asked why it is so, what patterns it has, etc. Those questions are what science is about, not the 'cool experiments'.</p>
|
||||
|
||||
<p>There are many ways to celebrate Grav-Mass, the link above to Stallman's page on the holiday has some very common ways of celebrating the holiday. However, in my opinion, the most important part is making sure that this holiday you promote, talk about, and learn anything math related or science related and sharing with friends.</p>
|
||||
|
@ -0,0 +1,5 @@
|
||||
filename = 2017-01-07-getting-esperanto-diacritics-on-gnu-linux.html
|
||||
title = Getting Esperanto Diacritics on GNU/Linux
|
||||
description =
|
||||
created = 2017-01-07
|
||||
updated = 2017-01-07
|
@ -0,0 +1,8 @@
|
||||
<p>Recently I've decided to start learning Esperanto alongside Japanese. I have my reasons for liking Esperanto, but this post is mostly on how to get the Esperanto diacritics (namely ĉ, ŝ, ĥ, ĵ, ǔ, and ĝ) on your keyboard for GNU/Linux. There are multiple ways of doing this, the ibus system has some Esperanto IMEs (like the x-system and h-system), but I've found those to be extremely annoying while typing (just try to use them, if you're used to typing using a Japanese IME for hiragana and katakana then this will annoy the fuck out of you). So instead I decided to use a method I used to use back in the day for getting Spanish tildes, dieresis, and the 'ñ' characters: Xmodmap. Basically I mapped a key I barely used (like the right `alt' and `shift' keys) to tilde and 'ñ'.</p>
|
||||
|
||||
<p>In this specific case I used `xev' to find out the `keycode' for my right `alt' key and then made a file in my home directory called `.Xmodmap' containing the line `keycode 108 = dead_circumflex' (make sure to change `108' with whatever your `xev' gives you for your dead key). After this just run `xmodmap ~/.Xmodmap' and it you will be able to use the circumflex by typing the right `alt' (or whatever you set it to) and then the character, such that `ralt+s' would give 'ŝ'. <b>NOTE:</b> you do not need to hold down the `alt' key, just press it once ;D.</p>
|
||||
|
||||
<p>It took me forever to get this figured out, so I'm hoping that this helps some other poor soul who does not want to look through the thousands of links saying "look at the KDE/GNOME docs".</p>
|
||||
|
||||
<p><b>UPDATE 19/03/2020:</b> I've taken to using the US International keyboard layout instead of this hack, as it's much more effective and not as buggy. This just means changing your keyboard layout to US International via a tool like IBUS, whatever your DE uses - which is probably IBUS - or put it in your WM's init script as <code>`setxkbmap us altgr-intl'</code>.</p>
|
||||
|
5
blog/posts/2017-01-13-parabola-gnu-linux-libre.cfg
Normal file
5
blog/posts/2017-01-13-parabola-gnu-linux-libre.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-01-13-parabola-gnu-linux-libre.html
|
||||
title = Parabola GNU/Linux-libre
|
||||
description =
|
||||
created = 2017-01-13
|
||||
updated = 2017-01-13
|
8
blog/posts/2017-01-13-parabola-gnu-linux-libre.html
Normal file
8
blog/posts/2017-01-13-parabola-gnu-linux-libre.html
Normal file
@ -0,0 +1,8 @@
|
||||
<p>Recently I have made a switch to <a href="https://www.parabola.nu/" target="_blank" >Parabola GNU/Linux-Libre</a>, one the <a href="https://www.gnu.org/distros/free-distros.html" target="_blank" >free GNU/Linux distributions</a> (the others use the standard Linux kernel which has non-free blobs for drivers, as well as distributing non-free firmware). I made the switch after receiving a WiFi adapter that respects freedom, since the only component of my laptop that required non-free drivers and firmware was my wireless card. The reason I chose Parabola of all the free distros is because Parabola has the most up-to-date packages (unlike, for example, Trisquel which is based on the Ubuntu LTS, or gNewSense which is based on Debian Stable).</p>
|
||||
|
||||
<p>The reason for switching to Parabola from Debian is because Debian, although it can be de-blobbed, I have not liked how they do their software segregation. One would think that `non-free' would be for non-free software or free software that depends on non-free software (unless they put the free part in `contrib', as they do with the AssaultCube package), yet when I was looking for the firmware for my wireless card I was surprised to find that it was in `non-free' along with all the others. I quickly began looking up the firmware to see if I could find source code and what license it was under. But no, the firmware is 100% Free Software, Debian just put them in a non-free package with other non-free software that are completely unnecessary forcing anyone who wants to use the free firmware to also download the non-free firmware along with it.</p>
|
||||
|
||||
<p>Another reason is because by using a free distro it is easier to promote Free Software, especially since there's nothing I could install from the repos that would be non-free. I also now have a very nice package called `your-freedom', which, if I were to install a non-free package, it will "conflict with `your-freedom'" and ask "Are you sure you would like to remove `your-freedom'?". Something that I find rather hilarious and funny, yet very useful so you don't have to worry about if a package is Free Software or not (because `your-freedom' will take care of that for you).</p>
|
||||
|
||||
<p>I still have not overwritten my Windows drive because I currently still need it for video conferencing (you know, to talk to family and friends), however I believe I found found a solution to this, and I will post about it later when I confirm it as a proper solution. Once I have confirmed it as a solution and have gotten my family and friends to switch to it I will be overwriting my Windows drive most likely with Trisquel.</p>
|
||||
|
5
blog/posts/2017-01-14-the-onion-router.cfg
Normal file
5
blog/posts/2017-01-14-the-onion-router.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-01-14-the-onion-router.html
|
||||
title = The Onion Router
|
||||
description =
|
||||
created = 2017-01-14
|
||||
updated = 2017-01-14
|
6
blog/posts/2017-01-14-the-onion-router.html
Normal file
6
blog/posts/2017-01-14-the-onion-router.html
Normal file
@ -0,0 +1,6 @@
|
||||
<p>As many may have noticed, unfortunately <a href="https://www.torproject.org/" target="_blank" >TOR</a> has been presented by the media as solely a tool for illicit activities that most of us consider to be extremely alarming (ie child pornography, hit-men, counterfeit bills, etc.), when those of us who have used TOR (or do use it regularly) know that the TOR project itself has nothing to do with these activities, and more importantly that it can be used for our own privacy just as it can for those of the criminals. However, because of this association that has been pounded into their heads by the media (where every time it comes up it's because some illicit activity is being done through it) they are often afraid to even use it for navigating the clearnet (used when referring to websites in the clear that we are all used to, like this one) fearing that somehow that will involve them in illicit activities, despite this not being the case at all.</p>
|
||||
|
||||
<p>Therefore, whenever you may try to talk to people and try to convince them to use TOR the will often shy away due to its very negative image. So how do we talk to people about using TOR without scaring them off? Well, one 'alternative' is to simply talk about the alternatives, such as <a href="https://freenetproject.org/" target="_blank" >Freenet</a> or <a href="https://geti2p.net/" target="_blank" >I2P</a>, however this still avoids TOR which is one of the largest of these anonymizing networks, and therefore the most secure/private. However, notice one thing, everyone knows of TOR as TOR, when in reality TOR is simply an abbreviation for "The Onion Router", a name by which barely anyone knows it. Therefore, I believe that a good solution would be to stop referring to it as TOR and to begin referring to it by its full name: "The Onion Router". Because people do not know it when referring to it as "The Onion Router" they will not be afraid of it as they are when they hear TOR, they will not be thinking that it will draw them into some illicit activity, and they will be more willing to listen because they haven't heard of it before.</p>
|
||||
|
||||
<p>Of course, this does not mean that now that you refer to it as "The Onion Router" they will automatically be interested in it, but it will lift one of the barriers to helping people protect their privacy.</p>
|
||||
|
5
blog/posts/2017-01-26-esperanto.cfg
Normal file
5
blog/posts/2017-01-26-esperanto.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-01-26-esperanto.html
|
||||
title = Esperanto
|
||||
description = My recent interest in an artificial language.
|
||||
created = 2017-01-26
|
||||
updated = 2017-01-26
|
8
blog/posts/2017-01-26-esperanto.html
Normal file
8
blog/posts/2017-01-26-esperanto.html
Normal file
@ -0,0 +1,8 @@
|
||||
<p>Recently I started learning Esperanto, the universal second-language. It's a constructed language made with the purpose of being used as a second-language by everyone so that everyone could talk to each other while no one country having the advantage of it being their native language. Because of this the language is very simple to learn, the grammar is extremely simple and, most of all, consistent and logical.</p>
|
||||
|
||||
<p>After having played with it a little I already find it quite easy to formulate sentences with it, although this is mostly due to it being very similar to romance languages. However the grammatical rules still remain simple and easy to use (such as the lack of person, gender, formality (in Japanese), and number in verb conjugation, which makes conjugation very easy to memorize).</p>
|
||||
|
||||
<p>Personally, I believe that Esperanto has the potential of being a great universal language (better than English which is confusing, inconsistent, and provides an advantage to the US, UK, and Australia). I believe that if the EU, Russia, and China were to join together to make this the language used for all international affairs, and then teach it in everyone's respective country(ies) then the rest of the world would be forced to follow if they do not wish to get left behind. With everyone then learning Esperanto as a second-language we would no longer have to rely on translators for international politics and affairs, making international politics more accessible as well as less intimidating and without the risk of mistranslation. It would also avoid misunderstandings due to faulty translations or translations that do not take into account the context of a country, since everyone would be speaking the same language it eliminates most of those situations.</p>
|
||||
|
||||
<p>Essentially, any movement that wishes to be international I believe should work in Esperanto as a way to maintaining neutrality and universality.</p>
|
||||
|
5
blog/posts/2017-01-30-developers-as-an-audience.cfg
Normal file
5
blog/posts/2017-01-30-developers-as-an-audience.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-01-30-developers-as-an-audience.html
|
||||
title = Developers as an Audience
|
||||
description =
|
||||
created = 2017-01-30
|
||||
updated = 2017-01-30
|
8
blog/posts/2017-01-30-developers-as-an-audience.html
Normal file
8
blog/posts/2017-01-30-developers-as-an-audience.html
Normal file
@ -0,0 +1,8 @@
|
||||
<p>Often times us programmers are told that something we are creating is too complex, too techie, or too advanced for the average person and therefore it is our responsibility to make our programs easier to use for other people. This makes sense in certain circumstances where we are actually trying to make things for the average user, however this does not always need to be the case. Why must we always make our programs available to the average user? This limits our ability to create great functionality because we're too focused on UX (and, in some horrifying cases, sacrifice functionality in the name of UX). To me this is an issue, as programmers we do not <b>always</b> have to develop for an end user, especially if we are trying to create something that we think most <b>other developers</b> would find useful or cool/fascinating.</p>
|
||||
|
||||
<p>This also partly has to do with the lack of understanding by many who are not <a href="https://stallman.org/articles/on-hacking.html" target="_blank" >hackers</a> and do not understand that those of us who are do these things for the joy of it, the joy of making cool stuff, the joy of tinkering with stuff to make it do something in an interesting/unexpected way. This is something that we hold dearly but is not understood by most people outside of our small niche. To us it's entertainment and even a lifestyle, but to them we should be making things to be used by them.</p>
|
||||
|
||||
<p>To put this in perspective for those who are not hackers, but are some type of artist: if you are a musician you create music that you find fun to play, or that the notes make an interesting melody when they are put together. If you are a musician who cares about music as an art, you do not care about the 'end-user', you make music because it's what you love, it's something that you find entertaining and time consuming. Same happens with hackers. We do not want to have to make programs only for end-users, typically we already do that at work. When we're doing our own stuff we're doing it for ourselves, and it should not matter if you can't use it, but you can appreciate the work that went into it and the amount of fascination that the hacker has for their creation despite most people not being able to understand it enough to use it. Perhaps no one will listen to your music, but you created something you're proud of, something that you are fascinated by, something that shows your passion for music.</p>
|
||||
|
||||
<p>Therefore, unless the hacker is at work and is creating a program specifically for the average user, let them make what they want, UX and all other factors are unimportant to them. The only thing that matters in their free time is their passion for what they're doing.</p>
|
||||
|
5
blog/posts/2017-02-20-parabola-with-lvm-on-luks.cfg
Normal file
5
blog/posts/2017-02-20-parabola-with-lvm-on-luks.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-02-20-parabola-with-lvm-on-luks.html
|
||||
title = Parabola with LVM on LUKS
|
||||
description = Installing Parabola with LUKS encrypted userland and home directories (although not the boot directory where the kernel is, sadly).
|
||||
created = 2017-02-20
|
||||
updated = 2017-02-20
|
67
blog/posts/2017-02-20-parabola-with-lvm-on-luks.html
Normal file
67
blog/posts/2017-02-20-parabola-with-lvm-on-luks.html
Normal file
@ -0,0 +1,67 @@
|
||||
<p>As of recently I have reinstalled Parabola with a LUKS encrypted partition containing both swap and root (I do not have a separate home partition). I found this to be a long and painful process, but I learned quite a bit from doing it. My current setup is as follows:</p>
|
||||
|
||||
<pre>
|
||||
Device Mount Type File System
|
||||
/dev/sda1 /boot Linux ext4
|
||||
/dev/sda2 - Linux LVM LUKS
|
||||
|
||||
LVol Mount File System
|
||||
lvolroot / ext4
|
||||
lvolswap - swap
|
||||
</pre>
|
||||
|
||||
<p>This configuration does leave <code>`/boot'</code> vulnerable, however I do not have anything particularly important there (if you do you may want to look up how to use LVM on LUKS with <code>`/boot'</code> in an encrypted partition, I believe the ArchWiki has an page on this). I will continue to show you how to setup your configuration so that you can have a similar config (such as adding a <code>`/home'</code> partition or otherwise).</p>
|
||||
|
||||
<p><b>WARNING:</b> I am not responsible for what the outcome of this is if you are following this. This is simply a light guide. Basically, this is a <b>no warranty</b> statement. It will most likely work, but I'm not going to guarantee anything.</p>
|
||||
|
||||
<p>I will start assuming you've already booted from the Parabola live CD (the main one, not the MATE one). I will also assume that the device you're installing to is <code>`/dev/sda'</code>, <b>please make sure you're using the correct device!</b>. Last thing I want is an e-mail saying that my post caused someone to delete an important drive or something.</p>
|
||||
|
||||
<p>To begin will most likely want to secure your disk and assure that no information is left behind on it by overwriting the entire thing. You can do this by running <code>`dd if=/dev/urandom of=/dev/sda bs=1M status=progress'</code>. You can use <code>`/dev/zero'</code> instead as the <code>`if'</code>, but beware that if <code>`dd'</code> misses anything then it will be evident that that block of information was not wiped and is relevant. This will take a while, so go make a coffee, go out for a walk, read a book, do something else for a while. I ran this on a 500GB mechanical hard drive and it took about an hour, you can approximate by looking at the progress information (the parameter of which I so generously provided, <code>`status=progress'</code>, unlike most other guides) and decide what to do, if you have an SSD it may take less time.</p>
|
||||
|
||||
<p>Once you've come back for the hundredth time to finally see that it finished we can now begin with the partitioning. First, you'll want to run <code>`cfdisk /dev/sda'</code> (you can use whatever you want, that's just what I used) and choose the <code>`dos'</code> disk label (others may work, but <code>`dos'</code> is what I used, and <code>`gpt'</code> failed horribly for me). After this create a new primary partition of about 100M, Linux, and set the bootable flag for it (from now on it will be referred to as <code>`/dev/sda1'</code>, same warning as before). Then allocate the rest of the space (or whatever you want) to a second primary partition which will be our LUKS encrypted LVM partition, make sure it's a Linux LVM type (from now on it will be referred to as <code>`/dev/sda2'</code>, again, please make sure). After which write the changes and exit the program.</p>
|
||||
|
||||
<p>First let's get the boot partition out of the way. You only need to run <code>`mkfs.ext4 /dev/sda1'</code> (or ext2 if you prefer, but ext4 works for me).</p>
|
||||
|
||||
<p>Now it's finally time to get to the encryption. First make sure the kernel module is enabled: <code>`modprobe dm-crypt'</code>. Now you'll want to run a benchmark to see which encryption algorithm will work best with your computer, seeing that certain CPUs favor certain algorithms. You can see this by running <code>`cryptsetup benchmark'</code>. It is likely that aes-xts will be the best option in your case with a certain key size. You can now run <code>`cryptsetup --cipher <your-cipher-type> -s <key-size> luksFormat /dev/sda2'</code>. If indeed the best algorithm for your CPU is aes-xts then you can ignore the <code>`--cipher <your-cipher-type>'</code> argument, since it will use that by default, otherwise please refer to the docs or man pages. After this your <code>`/dev/sda2'</code> partition should be formatted with LUKS. We're half way there!</p>
|
||||
|
||||
<p>Now that you have the encrypted partition it's time to open it ('cause right now it's closed), and by open I just mean decrypt it, it will not be mounted (yet). Run <code>`cryptsetup luksOpen /dev/sda2 <label>'</code>. For <code>`<label>'</code> you can put anything you want, I put <code>`lvmcrypt'</code> just to make it clear as to what it is (and that's how I'll refer to it in the rest of this post). Now you should be able to find the partition (or, rather, a link to your partition) in <code>`/dev/mapper/'</code> with the label you just gave it, and you can treat it just like any other partition, which is what we'll do for getting LVM setup on it. The following will be a list of commands to setup LVM with root and swap logical volumes:</p>
|
||||
|
||||
<pre>
|
||||
# Load kernel module
|
||||
modprobe dm-mod
|
||||
# Setup LVM
|
||||
pvcreate /dev/mapper/lvmcrypt
|
||||
# Create the LVM group I use VolGroup0
|
||||
vgcreate VolGroup0 /dev/mapper/lvmcrypt
|
||||
# Create the swap partition
|
||||
lvcreate -C y -L 4G VolGroup0 -n lvolswap
|
||||
# Create root partition with the rest of the space
|
||||
lvcreate -l +100%FREE VolGroup0 -n lvolroot
|
||||
</pre>
|
||||
|
||||
<p>At this point all the partitions should be created and available in <code>`/dev/mapper/'</code> with names like <code>`VolGroup0-lvolswap'</code> (or whatever you put for the group and volume names). These are the volumes we'll be working with. Simply run:</p>
|
||||
|
||||
<pre>
|
||||
mkfs.ext4 /dev/mapper/VolGroup0-lvolroot
|
||||
mkswap /dev/mapper/VolGroup0-lvolswap -L swap
|
||||
</pre>
|
||||
|
||||
<p>Or however you wanted to format them.</p>
|
||||
|
||||
<p>From this point on you can mount them however you'd like according to the Parabola installation guide. The only thing you need to be careful of is when it comes time to setup the kernel hooks and the GRUB settings. When it comes time to setup the hooks you'll want to your <code>`/etc/mkinitcpio.conf'</code> <code>`HOOKS'</code> variable to look something like this: <code>`HOOKS="base udev autodetect modconf keyboard block encrypt lvm2 filesystems fsck"'</code>. The main hooks here that you <b>need</b> are <code>`keyboard'</code>, <code>`encrypt'</code>, and <code>`lvm2'</code> (the order they're in compared to the other hooks <b>is important</b>). You'll also want to modify your <code>`/etc/default/grub'</code> to have the <code>`GRUB_CMDLINE_LINUX_DEFAULT'</code> variable look something like <code>`GRUB_CMDLINE_LINUX_DEFAULT="quiet splash cryptdevice=UUID=<luks-uuid>:lvmcrypt"'</code>, where <code>`<luks-uuid>'</code> is the UUID of your LUKS partition which you can find via looking at the symbolic links in <code>`/dev/disk/by-uuid/'</code>.</p>
|
||||
|
||||
<p>If you have a swap partition then you will want to add a <code>`resume'</code> flag and hook to the prior. To do this in <code>`/etc/default/grub'</code> change it the variable to look like <code>`GRUB_CMDLINE_LINUX_DEFAULT="... resume=/dev/mapper/VolGroup0-lvolswap"'</code>, and change the hooks in <code>`/etc/mkinitpcio.conf'</code> to look like <code>`HOOKS="... encrypt lvm2 resume ..."'</code>. With this hibernation should work just fine.</p>
|
||||
|
||||
<p>When you finish making the changes make sure to run <code>`mkinitcpio -p linux-libre'</code> and then for GRUB run <code>`grub-mkconfig -o /boot/grub/grub.cfg'</code>.</p>
|
||||
|
||||
<p>After you're done with all of the configuration and are exiting you'll have to properly unmount the volumes and close the encrypted device. To do this start by unmounting the volumes as would typically do when installing Parabola, and then run the following:</p>
|
||||
|
||||
<pre>
|
||||
# Disable LVM
|
||||
vgchange -an
|
||||
# Close the LUKS device
|
||||
cryptsetup luksClose lvmcrypt
|
||||
</pre>
|
||||
|
||||
<p>You should now be able to reboot and startup your new LUKS encrypted Parabola system. I may have forgotten something, if so please send me an e-mail so I can correct it (see my <a href="/contact/" >contact page</a>).</p>
|
||||
|
5
blog/posts/2017-02-21-encrypted-backup-drive.cfg
Normal file
5
blog/posts/2017-02-21-encrypted-backup-drive.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-02-21-encrypted-backup-drive.html
|
||||
title = Encrypted Backup Drive
|
||||
description = How to create an encrypted backup drive using LUKS encrypted partitions.
|
||||
created = 2017-02-21
|
||||
updated = 2017-02-21
|
14
blog/posts/2017-02-21-encrypted-backup-drive.html
Normal file
14
blog/posts/2017-02-21-encrypted-backup-drive.html
Normal file
@ -0,0 +1,14 @@
|
||||
<p>In my previous post I demonstrated how to setup LVM on LUKS with Parabola GNU/Linux-libre. However, what good is an encrypted hard drive if your backups are completely vulnerable? So here's a small guide on setting up a LUKS partition on your backup device.</p>
|
||||
|
||||
<p>In reality it's basically the same as setting up LUKS for Parabola, but I'm not going to make you read all that just to get a LUKS partition setup on your external hard drive. Please note that I'll be referring to the external device as <code>`/dev/sdb'</code>, if it's different for you <b>use your device's path!</b></p>
|
||||
|
||||
<p>Alright, to begin you should probably clear the device by filling it with random data with <code>`dd if=/dev/urandom of=/dev/sdb bs=1M status=progress'</code>. This'll probably take a while depending on the size of your device and the speed at which you can write to it, so feel free to do something else meanwhile (for a <b>long</b> while).</p>
|
||||
|
||||
<p>Once that's done it's time to format it. Run <code>`cfdisk /dev/sdb'</code> and select the <code>`dos'</code> disk labelling (or whatever you want, I guess). You'll want to create a new primary partition, a Linux type should do just fine. Once it's formatted write the changes and exit.</p>
|
||||
|
||||
<p>Now, before creating a filesystem or anything we're going to format the partition you just created with LUKS: <code>`cryptsetup luksFormat /dev/sdb1'</code>. You can also specify other things like the encryption cipher and key sizes and stuff, at which point please refer to the documentation on the ArchWiki or something, but for most cases this should work just fine. This'll format <code>`/dev/sdb1'</code> with LUKS.</p>
|
||||
|
||||
<p>Now it's time to open the device in order to work with it as any other device. Run <code>`cryptsetup luksOpen /dev/sdb1 <dev-name>'</code>, where <code>`dev-name'</code> is the name you want the device to take in <code>`/dev/mapper/'</code>. At this point we can finally format it with a proper filesystem (that is, ext4): <code>`mkfs.ext4 /dev/mapper/<dev-name>'</code>. Now the device is ready for mounting and usage. Just make sure to always mount from <code>`/dev/mapper/<dev-name>'</code>, <b>not</b> <code>`/dev/sdb1'</code>. Just make sure that when you want to remove the device that you unmount it first and then run <code>`cryptsetup luksClose <dev-name>'</code>.</p>
|
||||
|
||||
<p>Just remember that every time you want to mount the device you will have to run the <code>`cryptsetup luksOpen ...'</code> to mount and <code>`cryptsetup luksClose ...'</code> to dismount.</p>
|
||||
|
5
blog/posts/2017-03-05-change-of-heart-on-https.cfg
Normal file
5
blog/posts/2017-03-05-change-of-heart-on-https.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-03-05-change-of-heart-on-https.html
|
||||
title = Change of Heart on HTTPS
|
||||
description = Basically, forget everything I said before about "The HTTPS Hype".
|
||||
created = 2017-03-05
|
||||
updated = 2017-03-05
|
4
blog/posts/2017-03-05-change-of-heart-on-https.html
Normal file
4
blog/posts/2017-03-05-change-of-heart-on-https.html
Normal file
@ -0,0 +1,4 @@
|
||||
<p>A while back I wrote a blog post on HTTPS and how it is not necessary for all websites, however I have recently had a change of heart on the issue. Back when I wrote about it I did not think a step further which would have lead me to see the importance of HTTPS even for a static site like mine. You'll notice that you are connecting to this website via HTTPS currently, for all HTTP requests are redirected to the HTTPS. What's more, there is also a .onion address for my site so that you may connect to it without even leaving The Onion Router network (<a href="https://uk7ewohr7xpjuaca.onion/" >uk7ewohr7xpjuaca.onion</a>).</p>
|
||||
|
||||
<p>The reason why even a site like mine should use HTTPS (and even a .onion address) is that the content of my site may be banned in certain countries (especially certain writings where I am quite critical with issues such as religion). However, this can even apply to those of us having even the most 'dull' of websites, let us not forget the <a href="https://www.theguardian.com/music/2013/jan/15/mali-music-ban-islamists-crushing" target="_blank" >ban on music in Mali</a>, for that everything in my `/music/' and `/audio/' directories would be banned. For this reason it is important that we protect the content that the user is trying to access so that their ISP nor their government (nor any other entity) has access to such information.</p>
|
||||
|
5
blog/posts/2017-03-25-reasons-not-to-use-the-gpl.cfg
Normal file
5
blog/posts/2017-03-25-reasons-not-to-use-the-gpl.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-03-25-reasons-not-to-use-the-gpl.html
|
||||
title = Reasons Not To Use the GPL
|
||||
description = Why we should use the AGPL rather than the GPL.
|
||||
created = 2017-03-25
|
||||
updated = 2017-03-25
|
14
blog/posts/2017-03-25-reasons-not-to-use-the-gpl.html
Normal file
14
blog/posts/2017-03-25-reasons-not-to-use-the-gpl.html
Normal file
@ -0,0 +1,14 @@
|
||||
<p><b>NOTE:</b> I am explicitly referring to the GNU General Public License version 2 and 3 when I say GPL, it is not referring to other licenses such as the Lesser General Public License or the Affero General Public License.</p>
|
||||
|
||||
<p>If you are actively involved in the Free Software movement you are probably well aware of how the web is a treacherous place where non-free programs are constantly installed on your computer without permission by default. The most obvious of these is the <a href="https://www.gnu.org/philosophy/javascript-trap.html" target="_blank" >JavaScript trap</a>, however similar issues arise with, for example, plugins such as Java web applets. However, measures can be taken against these and are actively improving, such as <a href="https://www.gnu.org/software/librejs/" target="_blank" >LibreJS</a>, which stops non-free non-trivial JavaScript files from running, one can also disable JavaScript and plugins on their browser to avoid downloading the malicious content.</p>
|
||||
|
||||
<p>However, this is only on the user-side on how to protect ourselves, but this also has consequences on the developer-side as well, more specifically if you are going to license any of your programs under GPL. This is something that concerns you even if you are not making a web application, and it concerns everyone who wants to put a GPL license on their next project.</p>
|
||||
|
||||
<p>To start, let me explain the difference between the GPL and AGPL licenses: AGPL was born because in the era of these web applications a flaw in the GPL was perceived where one could modify the source code of another person's back-end and run that modified copy in a production environment, yet because they are not distributing binaries per se they are not legally obliged to provide the sources. This is the case with web apps such as Wordpress. This change was not integrated into a GPLv4 or similar because some people (such as Wordpress) are fine with others hosting modified copies of their program and not providing sources. This is their choice. And this difference is quite obvious when we are looking at web applications, it is quite simple to understand the consequences and how you are affected as a developer. However, what happens when this does not apply to a web app? What's more, what happens when this applies to your client?</p>
|
||||
|
||||
<p>We are reaching the technological capability by which almost everything can be put on a web service (<a href="https://en.wikipedia.org/wiki/Software_as_a_service" target="_blank" >SaaSS</a>, or more commonly referred to as 'The Cloud'), mostly through the means of web apps such as webmail, remote file storage, and even document editing. These remote services have <a href="https://www.gnu.org/philosophy/who-does-that-server-really-serve.html" target="_blank" >ethical issues of their own</a> (independently of whether or not the source code be available under a Free Software license). However, at the same time we are starting to see the capability of running our own desktop applications remotely via a web interface, and this is where the issues with the GPL come into play.</p>
|
||||
|
||||
<p>Let's say that you created a document converter to convert between multiple file types. It's a command line application where you simply input filenames as arguments, and since you are a supporter of copyleft, you license it under the GNU GPL (version 2 or 3, it does not matter). At this point someone can take your software, enhance it (perhaps by allowing it to convert to more file types), hook it up to a web front-end, and at this point they are now allowing your program to be used, while modified, and yet they are not at all obliged to distribute their modified copy. Through the web they have effectively bypassed your copyleft license restrictions.</p>
|
||||
|
||||
<p>The web seems to be a force actively working against the Free Software movement, and although we were happy at first, seeing that all the sources would be available to us since HTML, CSS, and JavaScript are all on the client-side and in plain text, we have seen that oppressors are finding new ways of making it harder use those. What's more, even our own applications that we write that are not intended for the web can be used against us. Therefore, in your next project, when you are thinking about using the GPL (again, version 2 or 3) please consider using the AGPL instead, as we are moving in a direction where it will be more and more needed.</p>
|
||||
|
@ -0,0 +1,5 @@
|
||||
filename = 2017-04-08-the-unused-potential-of-bitmessage.html
|
||||
title = The Unused Potential of Bitmessage
|
||||
description = A post about an awesome e-mail replacement tool.
|
||||
created = 2017-04-08
|
||||
updated = 2017-04-08
|
@ -0,0 +1,22 @@
|
||||
<p>For quite some time now I've been using <a href="https://github.com/Bitmessage/PyBitmessage" target="_blank" >Bitmessage</a>, an e-mail replacement that was made to protect user privacy based on the <a href="https://bitcoin.org/" target="_blank" >Bitcoin</a> model. After using Bitmessage for quite some time I have come to see the many benefits it has compared to e-mail, namely in regards to privacy and ease-of-use.</p>
|
||||
|
||||
<p>To begin with, Bitmessage has no e-mail service provider, you don't need to register an account with a third-party just to get a Bitmessage address, and all the information is stored on your computer. This means that it is highly accessible to anyone who has the application. This also means that information can't be stolen from a central source (eg. GMail/Yahoo/OutLook/etc. servers) but rather they would have to have direct access to the machine in which you store your messages (which is hopefully protected by disk encryption).</p>
|
||||
|
||||
<p>Bitmessage is also automatically encrypted, as your Bitmessage address is essentially your <a href="https://en.wikipedia.org/wiki/Public-key_cryptography" target="_blank" >public key</a>. This means you no longer have to show people who to encrypt e-mails. What's more, Bitmessage can be easily contained and put on a USB device (or any other form of external storage) where you can use it from any computer that supports Python and has the correct modules (this device should also be encrypted since it will contain your messages that you have sent/received), meaning you wouldn't even have to teach people how to move their keys from one place to another. Worst comes to worst they can generate their addresses using a passphrase which would allow them to recreate their keys if necessary.</p>
|
||||
|
||||
<p>Bitmessage has the additional benefit of being anonymous, it works in a mesh network where information is encrypted and then sent off into the network until it is either received by the recipient or expires (I will talk more about expiring messages in a bit... maybe a few hundred bytes). When sending a message you can do so anonymously or revealing your own Bitmessage address, and even with your Bitmessage address there is no way to trace it back to you unless you give up your own identity (or someone has access to the device your Bitmessage is on). This makes it a very secure and anonymous method of communication.</p>
|
||||
|
||||
<p>Bitmessage also has chan(nel)s, which are like mailing lists but with less of a hassle. These chans can be as public or private as you want them to be. If you want to create a public chan you simply have to publish your chan's address and passphrase somewhere public so everyone can see. If you just want it for you and your friends/family then only give these two to them.</p>
|
||||
|
||||
<p>Now, as you can expect, there are some negative aspects to Bitmessage (as always, there is no perfect solution) that should be taken into consideration, however none of them have to do with your privacy.</p>
|
||||
|
||||
<p>As you can imagine, being a cryptographic method of communication, Bitmessage requires more system resources than you'd be used to for your every-day e-mail client. When I run Bitmessage it tends to consume about half as much RAM as IceWeasel (currently it's using up 300MB), and when running, since it is also relaying messages, reading incoming messages, decrypting new messages, etc., it tends to use a good amount of processing power when busy (nothing too noticeable for my computer, but if you're running a really old computer it may be).</p>
|
||||
|
||||
<p>Another issue that most people will not be used to is the TTL (Time-To-Live). Messages will only roam the network for a certain amount of time (typically 4 days, however you can set it to be shorter or longer). This is used so that messages aren't flowing around the network endlessly and therefore simply creating a bunch of noise and rendering the entire network useless. The longer the TTL the more processing power will be needed when sending the message (in order to ensure that people don't always send messages with very long TTLs). However, most people tend to see their messages (for anything) on at least a daily basis, so a 4-day TTL should be just fine.</p>
|
||||
|
||||
<p>One must also take precautions in joining publicly available chans, precisely because it is anonymous, like any other tool for anonymity and privacy, it is used for malicious purposes as well. You will typically not find anything bad unless you're looking for it (same rule that applies to 'the dark web'), just know that if you receive something you don't want then simply delete it and empty your trash (it's not the end of the world).</p>
|
||||
|
||||
<p>The biggest issue is convincing people to use it. Everyone and everything wants you to use an e-mail, whether you're signing up for services or communicating with a friend. There are attempts at making <a href="https://bitmessage.ch/" target="_blank" >e-mail gateways</a>, but this does not protect your friends, so it would be ideal if you would convince your friends and family to use it as well.</p>
|
||||
|
||||
<p>If you would like to try out Bitmessage you can send a message to the address I have on my Contact page, and I will get back to you as soon as I can.</p>
|
||||
|
@ -0,0 +1,5 @@
|
||||
filename = 2017-04-18-a-library-copyleft-license-combination.html
|
||||
title = A Library Copyleft License Combination
|
||||
description =
|
||||
created = 2017-04-18
|
||||
updated = 2017-04-18
|
@ -0,0 +1,12 @@
|
||||
<p>Recently I came across the <a href="https://en.wikipedia.org/wiki/Sleepycat_License" target="_blank" >Sleepycat License</a>, which I believed to be a copyleft Free Software license that only requires any projects using the Sleepycat licensed software to disclose source code (not necessarily forcing any particular license on the user). I thought that this would be a great license for a library, since unlike the (A)GPL it doesn't force the developer using my library to use the same license (many people who like permissive licenses prefer to be able to choose their own license for their project), but at the same time whoever uses my library must at least disclose their source code (freedom #1... kinda). So I thought that with some slight modifications (since the license is also extremely specific to the BerkleyDB software) that the Sleepycat License would be a great license for libraries (better than GPL or LGPL). So after <a href="https://lists.gnu.org/archive/html/libreplanet-discuss/2017-04/msg00012.html" target="_blank" >a very long discussion on the LibrePlanet-Discuss mailing list</a> I figured out that <a href="https://lists.gnu.org/archive/html/libreplanet-discuss/2017-04/msg00035.html" target="_blank" >the Sleepycat License wasn't exactly what I thought it was</a>.</p>
|
||||
|
||||
<p>However, during the mailing list someone mentioned something about <a href="https://en.wikipedia.org/wiki/License_proliferation" target="_blank" >license proliferation</a>, which got me thinking that perhaps instead of looking for some new obscure license maybe I could do this with existing licenses, using conditional dual-licensing. With this I thought of the <a href="https://www.gnu.org/licenses/why-not-lgpl" target="_blank" >GNU article on using (A)GPL instead of the LGPL for libraries</a>. The two licenses in question are the LGPL and the (A)GPL. The LGPL has the advantage that it does not force any particular license on the developer using the library and remains copyleft with regards to the library's source-code itself, but it has a flaw that is fixed by the (A)GPL, which is that the LGPL can be used by non-free projects as well as free projects, which to some of us is not something that settles well with our concious. However, the (A)GPL forces the project using the library to carry the (A)GPL as well. So, both of these had elements that I wanted, but they both had drawbacks. With this I finally thought of a dual-licensing scheme that could work to have the best of both licenses. It consists in <a href="https://lists.gnu.org/archive/html/libreplanet-discuss/2017-04/msg00019.html" target="_blank" >licensing your library with the (A)GPL and offering an LGPL dual-licensing (with static linkage) to any project licensed exclusively with FSF approved licenses</a>.</p>
|
||||
|
||||
<p>Given this kind of dual-licensing this means that it is impossible for a non-free licensed project to use your library, while at the same time allowing free projects to use whichever license they wish. If the software is non-free then it will be forced to be free, if it is free then they can use the library to their heart's desire without having to change their project's license and not having to worry about legal issues of whether they can use a (A)GPL library with other kinds of licenses.</p>
|
||||
|
||||
<p>The one inconvenience this licensing scheme has for those who like permissive licenses is that any derivative of their work will also have to be free if they want to make use of my library. Although this is true, one must consider that the derivative work can choose between a large selection of free licenses, and if they only wish to borrow parts of the code that are independent from my library then they are able to do so. That is, let's say that I create a C++ networking library and use this licensing scheme. Someone uses my library in their game and licenses the game with the MIT License. Another party can still create a non-free derivative of the game so long as they get rid of the networking modules and replace them with a different networking library (which should truly be a small part of the game as a whole). Therefore it is not completely unattractive to use such a library for a permissively licensed project so long as the code is not absolutely reliant on the library using this licensing scheme.</p>
|
||||
|
||||
<p>All that aside, you may have noticed that I say "(A)GPL" a lot when referring to the first license which this scheme would use. This is because either of these two licenses (the AGPL or the GPL) will work just fine for this matter and will have about the same affect. However, I would personally suggest using the AGPL instead because it <a href="2017-03-25-reasons-to-not-use-the-gpl.php" >sends a clearer message about the intentions</a>. Technically, if the license is only GPL then they can put their software on a server and have the user interact with it over the network (<a href="https://www.gnu.org/philosophy/who-does-that-server-really-serve.html" target="_blank" >SaaSS</a>) and they will not be forced to disclose the sources despite it being licensed with the GPL. By using the AGPL instead they can still do this technically (because of the dual-licensing) and even license the project under the MIT License, but it makes your intentions (if you do indeed think that server sources should also be shared) clearer to the user, although it will not truly have any legal effect. Therefore I would suggest using the AGPL despite this.</p>
|
||||
|
||||
<p>I believe that this licensing scheme solves the eternal problem in library licensing between copyleft and permissive licenses without compromising a good concious, more copyleft than permissive licenses (such as MIT), not as strict about how projects using the library license themselves (such as GPL), and no compromising on ethics by not helping in any manner a non-free project (such as LGPL).</p>
|
||||
|
5
blog/posts/2017-04-20-judgement.cfg
Normal file
5
blog/posts/2017-04-20-judgement.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-04-20-judgement.html
|
||||
title = Judgement
|
||||
description = What judgement is, and why it's not only normal to judge, but also necessary.
|
||||
created = 2017-04-20
|
||||
updated = 2017-04-20
|
10
blog/posts/2017-04-20-judgement.html
Normal file
10
blog/posts/2017-04-20-judgement.html
Normal file
@ -0,0 +1,10 @@
|
||||
<p>Too often have I heard people say that someone is "Judgemental", someone saying "Don't judge!", asking a friend "Would you judge me?". These are all extremely stupid phrases. Judgement is something extremely normal, it's not only human, but something that all animals do, and most importantly it is something that is completely necessary.</p>
|
||||
|
||||
<p>Judgement is something we need, something we do every day. When you say you like a particular dish or not you are judging the dish, when you choose between two alternate products at a supermarket you are judging them. Even if you use a random number generator to decide which to pick you made the judgement to use the random number generator and what numbers each of the products would be. However, one may believe that this does not apply when talking about people, that we cannot judge other people, however this is also wrong. Should we not judge murderers? Should we not judge thieves? We must no doubt judge these people, and we should also be able to judge one another.</p>
|
||||
|
||||
<p>What's more, judgement (and even prejudice, in certain circumstances) is necessary for our own survival. If I cannot judge someone's intentions how am I supposed to know if they mean me harm? If I cannot judge a friend's decisions how can I warn them if what they want to do is going to lead them down a dangerous road? If I cannot judge the ideas of my politicians how can I trust them to run a country? (Or must I trust them blindly?) If I cannot judge then my ability to survive (to judge the best decision to take in any given circumstance) is crippled.</p>
|
||||
|
||||
<p>I believe that this fad of 'non-judgement' comes from an insecurity that we feel, where we dislike being wrong, we dislike being told something opposed to our own opinions, beliefs, and ideals. It is normal to wish to reject that, but it is also childish and immature to let that take over your rational side. In all reality you are wrong about a great deal of things and so am I, what's more, no one knows the absolute truth about anything. However, luckily, we have wonderful tools called science and reason that let us get closer and closer to the truth, the only requisite is that we must be willing to accept that we may be wrong and must judge our opinions to find the most reasonable and most empirically backed hypothesis that will then turn into the theory accepted as a temporary truth until proven otherwise. This 'anti-judgement' trend is something that stops us, individually even, from improving. How am I supposed to improve myself if a third-party cannot tell me that I am doing something wrong? That something I am doing doesn't make sense? By not allowing others to 'judge' you (which in reality is simply not allowing them to express their judgement, they have already judged you) you are prohibiting your own self-improvement.</p>
|
||||
|
||||
<p>Therefore, please don't talk about judgement this way, it's annoying as fuck and you're making yourself look like a stuck-up prick who can't accept rational criticism. Instead listen to the other person's judgement, and if you don't care for their judgement then just ignore it, at least you listened.</p>
|
||||
|
5
blog/posts/2017-05-02-patch-files.cfg
Normal file
5
blog/posts/2017-05-02-patch-files.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-05-02-patch-files.html
|
||||
title = Patch Files
|
||||
description = Defending the use of patch files over pull request nonsense.
|
||||
created = 2017-05-02
|
||||
updated = 2017-05-02
|
18
blog/posts/2017-05-02-patch-files.html
Normal file
18
blog/posts/2017-05-02-patch-files.html
Normal file
@ -0,0 +1,18 @@
|
||||
<p>Something that really annoys me about most repository hosts nowadays is that all of them are highly dependent on using pull-requests to contribute code, when originally all VCSs had (and still have) ways to contribute via patches (that and the `patch' command) which can be sent via e-mail. Now, I understand that having these changes more accessible to the public would be useful, and mailing lists aren't always best. However, why not simply use the same infrastructure of an issue tracker and apply it to uploading patch files? They would be organized just like pull-requests are, and would essentially be the same thing as a pull-request... except directly with a patch file instead of having to go through such a long process just to contribute to a repository.</p>
|
||||
|
||||
<p>So, why are patch files better than pull-requests? First of all, pull-requests are still useful if someone makes a real fork of a project (not what they're calling 'forks' nowadays which is someone making a copy just to modify something and then merge it back into upstream). However, if I am contributing to a project it is much easier and faster to make a patch file than to deal with web interfaces endlessly just to contribute two lines of code. When you make a patch file the process is as follows: clone the repository, make the change, create patch file, submit patch file. Easy, right? Now, let's look at this same process for pull-requests: 'fork' a repository, clone your 'fork', make changes, push changes to your 'fork', and finally create the damn pull request. Patch files have 4 steps, while pull-requests have 5. You may say "Well, but that's only one extra step, it's not that bad". Okay, but let's move forward.</p>
|
||||
|
||||
<p>Pull-requests almost always require you to work with web interfaces for a good part of it, and everything that uses web interfaces is slow as fuck compared to native desktop applications (like my VCS client which generates the patch file), especially if you are concerned about privacy and use TOR + blocked JS + a shit ton of privacy add-ons.</p>
|
||||
|
||||
<p>Also, pull-requests will <b>always</b> require you to create an account on said website, which is always a pain in the fucking ass (hence why Google and Facebook have been doing so well by allowing you to log in to other services using your Google/Facebook account... please never do this). Meanwhile, with patch files, even though one could hypothetically require you to create an account it is not strictly necessary. Patch files can be sent to mailing lists, e-mail addresses, or a web form can be created where one can simply upload a patch file no account (although perhaps asking for an e-mail for updates).</p>
|
||||
|
||||
<p>Patch files also help add to the decentralized nature of many VCSs, so one is not dependent on one particular platform (eg. GitHub, GitLab, NotABug, etc.). Instead, each person can host their own repositories where ever they fucking want to and contributors don't have to go through hell (ie. the web) and back just to contribute a couple lines to fix a minor bug.</p>
|
||||
|
||||
<p>This being said, I congratulate <a href="https://savannah.nongnu.org/" target="_blank" >GNU Savane</a> for not requiring fucking pull-requests like everyone fucking else (this is probably mostly because they also allow you to use a variety of other VCSs other than Git). Only issue I would have is that they require you to log in (and some other issues that they have in general, but that's besides the point). Based GNU wins the day!</p>
|
||||
|
||||
<p>Now, some of you may be saying "Well, we should use pull-requests because they're more user-friendly!". Fuck you. We're hackers, we should all be used to the command-line by now. That aside, why can't all these GUI clients work with patch files instead? Common GUI clients such as the GitHub client could easily be configured to create patch files and automatically upload them to GitHub (or where ever else). How difficult would it be to have a simple menu item that says "export patch"? So I don't see how 'user-friendliness' is an argument. Just because something in "in the web" doesn't make it user-friendly, and it doesn't make it more efficient either. What's more, sometimes the older tools are more useful than the new ones! Yet for some reason something being 'old' is somehow a reasonable excuse to dismiss it as an option.</p>
|
||||
|
||||
<p>The web is useful for some thing, namely broadcasting and making information public (information such as text, music, art, etc.). It's a great place for sharing. However, that doesn't make it a great work place. What is the web good for in terms of code? The web is a great place to post things like screenshots, samples, binaries, code samples, patch files, etc. But no one in their right mind should think that we should be editing code in our damn browsers. Pull-requests aren't for 'publishing' something, especially because they require you to 'fork' it. Therefore, it's not what we need in the web. Patch files are about publishing something, publishing changes in the code. What's the difference? The difference is that in the pull-request scenario one has the repository do the merging and has to 'fork' an entire fucking project while in the other a patch file is published to an issue tracker (you know, like in forum posts).</p>
|
||||
|
||||
<p>So please, stop promoting this cancerous disease known as "the pull-request". Patch files were perfectly fine. If you're going to write your own new repository hosting web framework or whatever, be sure to incorporate patch files. As I said before, pull-requests are good only if we're talking about <b>real forks</b>, not a 'fork' that someone made of a project to contribute 2 lines of code and then never touch it again.</p>
|
||||
|
5
blog/posts/2017-05-12-from-parabola-to-arch.cfg
Normal file
5
blog/posts/2017-05-12-from-parabola-to-arch.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-05-12-from-parabola-to-arch.html
|
||||
title = From Parabola to Arch
|
||||
description = Why I switched from using Parabola GNU/Linux-libre to ArchLinux.
|
||||
created = 2017-05-12
|
||||
updated = 2017-05-12
|
10
blog/posts/2017-05-12-from-parabola-to-arch.html
Normal file
10
blog/posts/2017-05-12-from-parabola-to-arch.html
Normal file
@ -0,0 +1,10 @@
|
||||
<p>I have recently switched from <a href="https://www.parabola.nu/" target="_blank" >Parabola</a> to <a href="https://www.archlinux.org/" target="_blank" >Arch</a>. First of all, I would like to mention that this is not because I want to use any non-free software in the Arch repos or install non-free firmware and drivers for some pieces of hardware I may have (I am still using Linux-libre on Arch), but rather for other reasons that I would like to explain.</p>
|
||||
|
||||
<p>Firstly, the number one reason I am leaving Parabola is that the distro gets in my way too often. Mostly with its policy that anything that 'promotes non-free software' is non-free. I am an adult who knows every well what non-free software is, I can easily not install something that I see is non-free (namely for `pacaur', which would be so useful if only it were available on Parabola). This kind of blocking of any software that 'promotes non-free software' is useful for distros such as <a href="https://trisquel.info/" target="_blank" >Trisquel</a>, which are aimed at people who could hardly be described as tech-savvy, since these kinds of people do not necessarily know how to distinguish between free and non-free software (it's simply not something that's part of their daily lives). However, for experienced hackers like myself, this just gets in our way of quickly getting access to tools we want to use. It's nice when our OS doesn't constantly get in our way for these kinds of things. This is, in fact, the exact reason why I use Free Software to begin with and why I like GNU/Linux. I used to use Mac many many years ago, however I had almost no ability to make the computer do what I wanted it to, Apple products constantly worked against me and whatever I wanted to do with them (as if they had a mind of their own and purposely wanted to fuck me over), and I dislike that I am feeling this again with a GNU/Linux distro. Therefore, I would suggest that if you're an experienced hacker and get stressed when <b>your</b> OS gets in the way, don't use a <a href="https://www.gnu.org/distros/free-distros.html" target="_blank" >free distro</a>, they're aimed for newbs who are new to the idea of Free Software, not you.</p>
|
||||
|
||||
<p>Secondly, with all the respect in the world to the members of the Parabola community (they are very nice people, friendly, and helpful), the community itself is impossible to deal with. This issue does not involve me directly, despite how much I have been involved in it, but the Parabola community over the past few months has been aggravating the hell out of me and others by placing packages on the `your-freedom' blacklist (such as `qt5-webengine') with <b>no proof</b>. It started out as an issue with Chromium, claiming that Chromium was somehow non-free (apart from their 'promotes non-free software' thing). At first this wasn't bad, it was just one package, one small thing that affected no one in the Parabola community as far as we knew, but then there was a small bit of publicity on the Qt5WebEngine website that caused a small contained issue into a huge mess. Qt5WebEngine claimed it included "the entire Chromium framework", which, from the eyes of people who think Chromium is non-free, meant Qt5WebEngine is as well. So very quickly `qt5-webengine' (a package very much needed by a <b>fuck ton</b> of applications) got put on the blacklist. This issue was a few months ago... yet no evidence has been proposed that hasn't been shot down almost immediately for being either false, fixed, or simply outdated. And despite all evidence getting shot down, things continued in the direction where the Parabola community was questioning about forking Chromium and something else about Qt5WebEngine. In any case, they have ignored our criticism of them having a lack of (or rather, absolutely no) evidence and decided to continue to decide on a sentence for a suspect that has not yet been convicted. You can read more about the whole thing <a href="https://lists.parabola.nu/pipermail/dev/2017-May/005343.html" target="_blank" >on the Parabola Dev mailing lists</a>.</p>
|
||||
|
||||
<p>After this, I thought that I may be constructive in my criticism and create a means by which these situations could be avoided and things could actually get done. So I created a <a href="https://lists.parabola.nu/pipermail/dev/2017-April/005005.html" target="_blank" >Quarantine Policy Proposal</a>, and gladly welcomed anyone to edit it and give suggestions... except it was mostly ignored, the etherpad received practically no edits, and people continued to decide on the sentence of Qt5WebEngine. I have received quite a few compliments for the idea amongst those in the Parabola community, and although I'm glad they appreciate it, what I really want is for the damn thing to be implemented already, or at least something like it so that these kinds of issues don't continue to occur (and the current issue doesn't persist).</p>
|
||||
|
||||
<p>With this I say that I will most likely never return to Parabola, even if the Quarantine Policy is implemented, for the reasons I mentioned first in this post. However I would still suggest that the Parabola community start to pull its shit together and stop trying to shy away from having actual protocols. Debian is one of the largest community-oriented projects that is not controlled by a corporation in the background, and they have a ton of protocols and policies. If the Parabola community wishes to efficiently handle the challenges that await them in the future, it's time for them to start organizing themselves instead of leaving things as chaotic as they are.</p>
|
||||
|
5
blog/posts/2017-05-13-your-computer-your-computing.cfg
Normal file
5
blog/posts/2017-05-13-your-computer-your-computing.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-05-13-your-computer-your-computing.html
|
||||
title = Your Computer, Your Computing
|
||||
description =
|
||||
created = 2017-05-13
|
||||
updated = 2017-05-13
|
10
blog/posts/2017-05-13-your-computer-your-computing.html
Normal file
10
blog/posts/2017-05-13-your-computer-your-computing.html
Normal file
@ -0,0 +1,10 @@
|
||||
<p>It pains me to see how often we end up 'just dealing' with our computer software being restrictive, how we say we dislike how a certain software functions and yet we just roll over and take the hit. Many of us are used to this kind of mentality, however, in the Free Software community a little less because we're granted choices, yet even there we find ourselves faced with software that does something we dislike, but we refuse to migrate simply because it would be 'inconvenient'.</p>
|
||||
|
||||
<p>The truth of the matter is, your computer is your property (or rather, it should be, in the case of those of you who run non-free software), this means that any time you roll over and take the hit you are letting someone else decide how to use your personal property. When you own something, like a bicycle, you are not told and controlled on how you use that bicycle, how to adjust the seat, whether or not to add a basket. It's your bicycle and you use it as you please and adjust it as you please because it is your personal property and belongs to no one else, nor does it affect anyone else how you adjust it.</p>
|
||||
|
||||
<p>This same principle with the bicycle applies to your computer devices (whether they be phones, tablets, laptops, desktops, etc.). How you configure your computer does not impact others, and it is your personal property, and therefore should have the right to do with it has you please. Including any software you use (hence why it is important that any software you use be free software).</p>
|
||||
|
||||
<p>Now, what if there is no way to configure the software to work exactly how you want it or no software alternative that fixes the issues of the previous? At this point you either fix it your self (if you are a hacker), ask a friend to fix it (if they are hackers and have the ability/time), or open a bug report asking for the ability to configure this setting on the software.</p>
|
||||
|
||||
<p>Again, any less than your computer working the way you want it to is a compromise on how you use your personal property.</p>
|
||||
|
5
blog/posts/2017-05-14-the-beauty-of-silence.cfg
Normal file
5
blog/posts/2017-05-14-the-beauty-of-silence.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-05-14-the-beauty-of-silence.html
|
||||
title = The Beauty of Silence
|
||||
description = Defending silence over unnecessary noise.
|
||||
created = 2017-05-14
|
||||
updated = 2017-05-14
|
6
blog/posts/2017-05-14-the-beauty-of-silence.html
Normal file
6
blog/posts/2017-05-14-the-beauty-of-silence.html
Normal file
@ -0,0 +1,6 @@
|
||||
<p>One thing I've always loved and come to appreciate more and more is the wonderful nothingness which is silence. It allows for people to be calm, where one can think clearly, be at peace with one's self and not be interrupted by one's surroundings. It truly is something beautiful.</p>
|
||||
|
||||
<p>However, sadly, there are few in this world who truly value silence. What's more, it seems that every time there is silence people consider it 'awkward', and try to fill it in either with conversation (which is not bad) or noise (which is horrifyingly repulsive compared to the sweetness of silence), typically from an electronic device such as a television, radio, mobile device, or other. To these people I ask: what is wrong with silence? Are you that afraid of 'loneliness'? After all, silence does make us feel more alone. Or perhaps is it that you feel that for some reason emptiness demands to be filled? In which case, why is it that you feel this need to fill the gap?</p>
|
||||
|
||||
<p>No matter what your reason, perhaps it is important that you learn to appreciate the calm in life. By filling the air with noise you do nothing but to perpetuate stress, tension, discomfort, and anxiety. This is fine if it only affects you, however when others are present you must not create such a damaging environment as it harms others (the same way you should not smoke tobacco around non-smokers). In the presence of others it must also be of common courtesy to respect silence, conversation, social interaction, productive sound (such as one playing an instrument), or any kind of productive behaviour.</p>
|
||||
|
5
blog/posts/2017-05-29-summer-album.cfg
Normal file
5
blog/posts/2017-05-29-summer-album.cfg
Normal file
@ -0,0 +1,5 @@
|
||||
filename = 2017-05-29-summer-album.html
|
||||
title = Summer Album
|
||||
description = Update on the album that never gets released.
|
||||
created = 2017-05-29
|
||||
updated = 2017-05-29
|
8
blog/posts/2017-05-29-summer-album.html
Normal file
8
blog/posts/2017-05-29-summer-album.html
Normal file
@ -0,0 +1,8 @@
|
||||
<p>Ever since before <a href="/projects/music/ice-in-the-fall/" >Ice in the Fall</a> I've been working on an album called <a href="/projects/music/summer/" >Summer</a>. It's been a long time and I haven't really put much effort into making the album, sadly. However, I have recently begun to formulate it more, revise some of the lyrics and notes, along with the songs I had planned for the album to begin with (since the summer of 2013).</p>
|
||||
|
||||
<p>This album has taken me quite some time, and I've released two other albums since then, but this is mostly due to the complexity and work I have been trying to put into it. Unlike my first two albums, I wanted this one to be multi-track and less experimental. However, unlike <a href="/projects/music/dreaming-in-bytes/" >Dreaming in Bytes</a>, it is not simply me making up some interesting melodies in a digital audio studio program. This added complexity is what's been making it take quite a bit of time.</p>
|
||||
|
||||
<p>Because most of the songs were actually written and the ideas elaborated in summer of 2013 (and others a little later) the overall style will not be anything similar to my last album, but rather a more progressive rock, acoustic, and even psychedelic rock sound, as those were the kind of styles I enjoyed listening to and playing back then. I have also released a few demos that I've recorded over the years (in truth, most of them are from 2013 and 2014) you can listen to these to get a feel for what the album will sound like.</p>
|
||||
|
||||
<p>Like my other albums, this one will be published on Jamendo, but for those that download from this website there will be a 'Side 2' containing cover songs, the originals of which are either under a Free Culture license or have been passed into the Public Domain. Once I figure out which songs these will be I will post the track listing for the 'Side 2' on the page for the album (and perhaps a demo).</p>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user