Coding Bots

Wanna learn how to make twitter bots? Then do you homework…

  • Home
  • Projects
    • RiverSide Blog
    • TwitterBot TweetElisa
    • AnnoyingNavi
    • Profes.com.br
    • Minimal Twitter Client
    • GLaDOS
  • Links
  • About me
    • Twitter
    • Undergrad
  • Contact
Twitter Facebook RSS

Commentary – Thunderf00t vs Eric Hovind by Venaloid

Posted on April 8, 2012 by José David
No Comments

Share/Favorites
Categories: Personal | Tags: logic, religion

Eric Hovind’s Delusion

Posted on April 6, 2012 by José David
No Comments

I was watching a video by Thunderf00t and I found out something about Eric Hovind: He thinks he’s some sort of christian Socrates.

The problem with this idea of being a new Socrates has only one little problem which is rather crucial to the whole thing: He doesn’t get logic AND he is not honest with his assumptions.

We can see that he wants to be the new Socrates because he wants to lead Thunderf00t to contradict himself and then realize that “Oh… God has to be real and I’m converting!!!”, and he starts by posing a very simple question:

Is it possible or impossible that God is real?

(Now I’m just going to rant about how dumb his argument is… if you don’t want to know about that, you can just skip the whole thing oO well… )

The problem with this question is that it’s not possible to prove either. Since god, as defined by the bible, transcends the universe, we can’t actually test his existence. By asserting that he has a set of unreasonable characteristics, we can make a theory that explains everything, but can’t be tested for anything. Not only that, since God transcends the universe, his characteristics don’t even have to make sense.

Thunderf00t explained most of this to Eric, but the latter just concluded that the question was left unanswered and moved on to try another way to get to a contradiction.

The interesting thing about the next point that Eric tries to make is that he asks an opinion (I would say he wants an opinion so that he can trash it latter), but when Thunderf00t doesn’t give him a number he gives a number to thunderf00t. He makes his own opinion based on what he wants as an answer.

Interesting facts:

When Thunderf00t says “It’s a question about Information Theory?”… it is, but Eric Hovind didn’t realize that! He’s asking Thunderf00t to quantify information.

Also when Thunderf00t says “you just assumed there is a finite amount of information in the universe”… Eric did assume that because he said “Let’s say you have 1% of all information”, since Thunderf00t has limited information, then all the information available is limited, and that limit is, in fact, 100 times the information thunderf00t has. (if information was as simple as a number)

The idea of the second argument is to get the person to estimate how much information they have, out of all the information available in the universe. I don’t really understand what he wants to achieve with that, but my guess would be that he wants the person to say that they could be wrong about things.

It’s actually weird, because he’s in fact saying that you have information (real correct objective information), but there is information in the universe that contradicts you… so the universe is contradictory (objection!!!!). I’m pretty sure he doesn’t want that, but it is the only logical conclusion if you really have true information about the universe AND you find information that is correct and that contradicts the other correct information you have.

The thing he wants to hear is that anyone can be wrong, because science is a model of the universe and, since it is based on finding patterns in the universe, sometimes we get something that seems like a pattern but it’s not or it’s only there under some circumstances. He wants people to admit that science could be wrong in an absolute perspective and that we do make assumption that we can’t prove (supposedly so he can say: “We prove that! It’s God!”).

Eventually, Eric just get stuck on “You don’t even know reality exists!” and everything just goes down the drain. Thunderf00t explains three assumptions everyone makes:

  1. The Universe exists
  2. We can learn things about the Universe
  3. Models with predictive capability (that can be falsified) are better than models without it (that can’t be falsified)

Everyone makes this assumptions! No one can prove them, so we are forced to admit that we don’t know those things, but the point is: NO ONE can prove those assumptions. In order to prove things we need a formal system, so there are no absolute truths, because the very formal system can be seen as an assumption.

When you say “God made the Universe”, you just stated:

  1. God exists!
  2. Universe exists!
  3. God made the Universe!

Eric says “You don’t even know the universe exists”, but the point is: Because one makes the Three Basel Assumptions, one can believe that the universe exists and start to debate useful things. And the reason someone would make those assumptions is because they work consistently! It’s what we observe.

He also says he bases his life on these assumptions (remember this: he bases his LIFE on this assumptions), but he has a foundation that can prove those assumptions are correct. I’ll try to construct his argument.

  1. If someone that A) knows everything and B) is not allowed to lie told you something, you could believe it to be true with absolute certainty!
  2. Without that, there is no certainty
  3. Since we have certainty, there has to be someone that satisfies A and B (God)!

Eric Hovind thinks that this proves his point because “since we have knowledge with certainty” then God has to be real. The problem is we don’t! He’s wrong because of one simple detail:

The universe has to make sense (a very specif sense, by the way) for his argument to be correct in such a way that if the universe doesn’t make sense, then there is no reason to believe that his proof proves anything.

If you don’t assume the universe makes sense, then his whole proof doesn’t even have a chance at making sense.

(Then he just starts to make dump questions that don’t really have any meaning… maybe the universe doesn’t make sense! Oh My GOD!!!!)

On his random chat about chemical reactions and whatnot… He’s trying to force that if I accept that I don’t know everything, then it must be that I have to ask someone that thinks he knows everything to tell me what is correct.

  • He says that there is a flow of knowledge between God and Mankind, but whatever form of flow there is, he can’t actually prove anything (all knowledge comes from god, even if an atheist scientist discovered the knowledge he’s talking about, without being the subject of any obvious revelation).
  • He says that a model that can’t prove we exist is necessarily inconsistent (and wrong), but a model that can’t be proven is absolute Truth, just because it’s pretty and “makes sense”.
  • He thinks one can’t argue with him without knowing whether they exist or not, yet he’s arguing with someone even when his beliefs have no predictive capabilities and he accepted the third assumption. (remember those assumptions he bases his life on)
  • When someone tells him “Prove the Universe exists” (since you said you could)… “Without God we can’t have knowledge…” WHO CARES? “Prove the universe exists!”
  • He says he starts with God, but doesn’t say anything about God! If you start with God, you have to convince me that God makes sense… and, as far as I know, God is complete nonsense!
  • He says he proved everything, and just because we “can’t know anything” (we can only assume that), therefore he’s right! (This is called Argumentum ad Ignorantium)

Let me tell Hovind something, in his own kind of reasoning:

Eric Hovind is absolutely wrong! (And I dare him to say that this quote means I believe in God!)

He pretends to be deaf against any argument that is presented to him, because, since the honest thing to say is that we can’t know something with absolute certainty, we don’t know anything and he doesn’t care.

He also proves that God exists, because “there is” certainty (we can know things)… he already knew he was talking to someone that “can’t know anything”, so why is he assuming that we can know anything in the first GOD DAMN place?

If Eric IS really trying to convince anyone of his beliefs, he’s doing one terrible job…

Share/Favorites
Categories: Personal | Tags: logic, model, opinion, religion, youtube

Skype

Posted on March 16, 2012 by José David
No Comments

Recently, I had been having problems with my new laptop with Ubuntu 11.10 and I was starting to get really upset with Ubuntu itself, until I realized the problem was somewhere else.

For a few weeks now, whenever I started my computer and clicked on skype, my computer would start to lag and then it would freeze completely, until the whole GUI would commit suicide and restart.

For a while I thought that this had to be a problem with Ubuntu, after all…

How can a god damn program fuck up my god damn Linux system???

I even started to think it could be Dropbox, because it is executed so early in the process of launching the system, and even turned off the “Start Dropbox automatically with system”. But eventually I figured it out: It’s fucking Skype!

I was doing my business on my laptop a few minutes ago, and I realized skype wasn’t running. I remembered that I had rebooted something a while ago, and maybe I didn’t restart skype, that doesn’t auto launch with system like dropbox.

Immediately after launching skype… same thing as when I started the computer. I always thought that it couldn’t be skype, because it’s just a damn program and Ubuntu should prevent those from killing the whole system, but it doesn’t.

I’d like to send a bug report to skype:

Fix this or I’m never using Skype again! >=(

–

Just a rant about skype.

I thought about sending this as a bug report to Ubuntu as well, because letting a program kill the system HAD to be some bug… but apparently, people on windows sometimes see this too… If you have skype, watch out!

Maybe skype installs itself with weird permissions… oO

Share/Favorites
Categories: Personal | Tags: complaint, linux, rant, skype, ubuntu

Refactoring and Naming

Posted on February 26, 2012 by José David
No Comments

I already knew this, but I just had to do really dumb things to actually make it sink in… There’s something that I only realized recently (finally) while I was writing several little programs here and there, mostly just for the fun of it:

Don’t create unnecessary files in your program

I noticed that, ever since I started to play with Django (and maybe ever since I started to browse sources of rather big projects), I’ve been creating lots of packages and useless modules that I end up not even using for all the things that I imagined.

This is not really something bad that came from django, but rather my own stupidity in not realizing that the big package structure in django is necessary because it’s a big project and when a project starts to grow, and functionalities become more complex, the code starts to be refactored and divided.

I started to create a whole bunch of packages, trying to imagine what I would write for the program, and I ended up with lots of folders for things that I didn’t even need. Just look at the code for the AnnoyingNavi, it has all these dumb names for the packages and things that you would only see if the project actually got really big, which would never happen with such a simple bot.

It doesn’t look that bad on eclipse, because the files are rather well separated among the leaf folders and eclipse (for Java programs) has this thing where it doesn’t show packages when there isn’t any java file in an intermediary folder (or something like that), but if it was a PyDev project… how ugly would that get?

So… I came up with a simple and obvious rule, that I’m just writing here for the sake of not forgetting, and it states (rather rudely, so I won’t forget):

Don’t fucking make a package when you can do with a simple fucking module, you stupid idiot!

Now, I think one thing you can do when refactoring is, in fact, gather related things in a package and all… but you can always do it when you actually decide to refactor the code. In the beginning, don’t take more time creating folders than programming, it shows you’re doing something wrong already.

Now, the thing that showed me that simpler is better, beyond any doubt… I’ll leave here a small python module to access the last.fm api. It’s a simple module that does all the desktop authentication and can make calls to the last.fm api in a very simple way:

  • If you want to post something, do: api.post.<package>.<method>([params...])
  • If you want to get something, do: api.get.<package>.<method>([params...])

Where “<package>.<method>” is an api method, like “album.addTags“, and params are the parameters defined in the api documentation, except for a few parameters that are defined automatically, like api_key, api_sig and sk.

The point is that it “started” as a package that would have “so many things” and ended up being such a simple module…

To use it, just do “l = LastFM(api_info)“, then “l.do_authentication()” (this waits for an enter key and asks you to go to a url), and after that you can make authorized api calls… hopefully. Link is here.

–

By the way, I think it might be a good idea to tell this… I was thinking about python. This thing about keeping it simple is a general thing, but talking about modules and packages makes more sense in python that it would in C, for instance. Although you can take the golden rule of programming to any programming language:

Keep it simple, stupid

– link

Do that, and your code can get a little less ugly. I finally learned my lesson.

Share/Favorites
Categories: Computer Sciences | Tags: code, last.fm, programming

Code: Simple Twitter Bot

Posted on January 13, 2012 by José David
No Comments

I decided to release the code for the AnnoyingNavi bot and for the GLaDOS_AICS bot. I think there won’t be much problem, after all, it’s a very simple java code.

I don’t think it’s such a beautiful code, but it gets the job (annoying everyone =D) done. It’s a simple code that allows the user to create a simple bot that tweets random lines as replies to tweets containing certain words.

The package comes with the source, a snapshot of the twitter4j library, an ant build file and some scripts that I used when running my own bots. I’m also sending an example of the files necessary to make a bot.

link: file

–

Advice: The code uses the creation date to determine which tweets have been processed. This is a very bad way to do it, since you can use the tweet’s id and just process tweets with an id greater than the id of the last tweet to be processed.

Share/Favorites
Categories: Computer Sciences | Tags: annoyingnavi, bot, code, glados, programming, twitter

Young Earth and Why I subscribe to this stuff

Posted on December 6, 2011 by José David
No Comments

I was watching a video on YouTube and I just couldn’t believe what I was listening. This is a video from the channel cseministry that talks about the age of the earth.

I don’t even know where to begin with this video. First I just have to say that I am shocked that there are people that believe in this type of misinformation.

I think the part where the host, Eric Hovind, really start getting to me is at 6:47 when they play an excerpt from a talk he gave somewhere else, so let’s jump to that and comment on the video.

First let’s start by paying attention to what Eric says at 6:57:

The little ball of dirt, that’s going around the sun. How long has it been cruising around the sun?

We’ll use this quote to annoy Eric a little bit, after we listen to a little more of what he has to say. =)

Just a little after this quote, at 7:08 when he says “in section one”, Eric refers to another talk he gave where he states that “Evolution” is a religious belief. I’d like to take a moment to enjoy the irony in the fact that a religious person is trying to prove something to be religious in order to say it shouldn’t be taken seriously.

I feel I need to point out, now, that Eric believes that Evolution means six different things:

  1. Cosmic: The Big Bang
  2. Chemical: Formation of chemical elements from other chemicals [1]
  3. Stellar: Formation of Stars
  4. Organic: The origin of life, from non-life [2]
  5. Macro: Speciation
  6. Micro: Mostly mutations

So, when he explain “Evolution”, he usually start with the Big Bang and goes through all the “types of evolution”.

Now, he’ll start to make his case that the Earth is just around 6000 years old and that “Evolution” is wrong. First we should notice how he’s always talking about the two basic world views “Creation Vs Evolution”, thereby defining this dichotomy that doesn’t even exist (at least as a dichotomy).

At around 10:05 in the video he states that most americans believe in Creationism, almost making an argument from popularity, witch he doesn’t simply because he wants to state that most scientists believe in “Evolution” but that doesn’t make it true.

He avoids the argument from popularity so that he can say that scientists are wrong now, as they were before about other subjects. When he states that, he starts attacking scientists by listing “previous mistakes”, such as:

  1. Scientists use to say the earth was the center of the universe
  2. Scientists use to say that big rocks fall faster that little rocks
  3. Sickness comes from bad blood

what he doesn’t say is that:

  1. The bible was the one that stated the earth was the center of the universe. And not only that, the earth was fixed and it did not move. He certainly doesn’t seem to agree with that, from our first quote where he states the “earth is cruising around the sun”
  2. Scientists found out that, on vacuum, rocks do fall at the same speed afterwards. They didn’t know this at first, that’s true, but nothing is born complete and science is evolving.
  3. Medicine evolved from that day. Many things were discovered and many old beliefs, sponsored by religions, were dropped.

The fact that he doesn’t believe the earth is at the center of the universe is actually quite strong to me because he states that he believes the bible is literally right, yet these small things are able to show up on closer inspection of his beliefs.

It also bugs me that he doesn’t seem to care that a lot of the misinformation that was believed in past came from the very religious belief that he’s fighting so hard to defend on these videos.

At around 12:20 on the video he starts making an argument about how to determine the age of the earth and his new argument is based on the question:

If we find a sunk boat that has a chest of coins, how can we determine when the boat sank?

And the answer is that we can limit the date that the boat sank by finding the youngest coin because, since the coin was there, the boat must have left for the ocean after the coin was made. So far, so good.

Now he makes the claim that, in order to limit the age of the earth, we need to find the youngest evidences of the earth, which shows he hasn’t even though about what the hell he’s talking about.

When we try to limit the date that the boat sank, we’re trying to find out when something ended. Regarding Earth, we’re trying to find out when something began. This little fact means that when we try to find out how old the Earth is, we need to look for the oldest evidence, completely the opposite of his claim.

Of course that, after that, he just goes to the bible, as factual reference, and tries to determine the age of the earth from there. I suppose that, if you follow the bible correctly and thoroughly, you can probably come up with a number that, assuming the bible is true, would really give an estimation of Earth’s age, but only if you assume the bible to be true.

After he states that the Earth is 6000 years, he says that many people actually think about stuff need to look at what science says about the subject, and that many christians, that are completely wrong according to him, believe the “Old Earth” (scientific estimation).

At this moment in the video, at around 19:10, he states that “we’ll see” from scientific evidence that the Earth is not billions of years old, and it can’t be. I hope he gets the young evidence/old evidence right this time… the boat thing was really bad for his image…

After all this talk he just starts saying some random stuff about scientific estimation of Earth’s age putting death before sin, which is not right according to the bible or whatever. And he doesn’t even provide those scientific evidences that “we” were going to see.

And now, we find out why so many religious fanatics, like Eric, are so fired up about this whole “Creation vs Evolution” thing.

  1. The credibility of the book of Genesis is at stake
  2. The credibility of Jesus Christ is at stake, ’cause he talked a lot about Genesis
  3. The credibility of the entire bible is at stake (no kidding…)

Weirdly enough he thinks scientists are scared because “if the earth is not old, then we won”, when he should be the one “scared”, because the basis of his beliefs, according to him since this is a foundational issue, have already been proven wrong.

I really don’t know why I watch these channels… They are so obviously wrong, yet they insist on covering their own flawed belief with misinformation, trying to convince others that they’re not wrong.

I think I like to get angry at these things… there is no other reason to watch these type of people, except to simply get angry at them and the amazing poker face they can make when saying all those things.

And in the end of the video he came back with the coin example, making the same mistake and, actually, stating it should be the youngest evidence, predicting my very argument against his, because dating technology puts a maximum age limit… he actually understands his mistake but found a way around it… oh my god…


I tried to keep the post well behaved, I don’t really want to offend anyone, but it just gets to me when religious fanatics try to discredit scientific achievements with misinformation.

Footnotes:

  1. He seems to think that fusion is false, for some reason.
  2. He’s probably talking about the origin of life on Earth. That is a difficult subject, and The Oparin-Haldane hypotesys is a very good start to answer that. By the way Miller and Urey have a lot to say about that.
Share/Favorites
Categories: Personal | Tags: analyse, logic, religion, stupidity

Web Design

Posted on October 20, 2011 by José David
No Comments

Recently, I’ve been noticing a lot the design of websites I visit, mostly because I’ve been programming a lot of things using Django and I wanted to know more about HTML and CSS.

All this programming has led me to realize that I don’t like the design of many big websites on the internet and, mostly, because of the same things.

I don’t know if I’m just that different that way, but I don’t think I am and what I see on those sites are simply just not likely to be good to anyone.

Here are three of the things that I really dislike about sites out there.

1. Huge sidebars

Some sites have gigantic huge sidebars, and sometimes they do have good widgets on them, but I have to say something:

If you give too much space to the sidebar, you leave no space for the content

I saw a site that had a two column sidebar that took almost half of the total width that had content and, not only that, there was a widget on the left column that showed related posts with summary.

I know that it’s interesting to show related posts when there is a lot of posts on the site, but do you really need to put it in this huge sidebar? Can’t you just use one of those widgets that place some links after the post?

I think those links after the post are very interesting, because it makes people jump all over your site, but it has to be well designed, else people either never see it, or they see it, but the site is so annoying to read that it drives them away.

2. Too much ads

Nobody likes ads because they are, usually, flashy and keep drawing your attentions when you wanted to see something else, like interesting content.

Nonetheless blogs and sites want to have ads so they can make money, but they have to remember that they can only make money if people keep reading their content.

Huge ads, like those column ads in sidebars that span through entire screens, are not visually pleasant, are very unnattractive and end up ruining the site’s entire design, which can drive readers away very quickly.

I won’t say that people should not put ads on their pages, after all I think it’s very valid to capitalize in something that is making a lot of success, but it would be wise to think of the users that like the site for the content that it delivers.

As far as I’ve seen, the best way to put ads in a site is to put a horizontal ad, either in the top of the page, or the bottom, or maybe a square ad in the sidebar. Something that doesn’t kill the space of the site, but is visible.

I think YouTube made a good decision in placing the ads on top of the suggestion list, for video pages, and on top of the channel’s playlists, on channels. It’s somewhat clean, and doesn’t kill the attention of the person watching the video.

3. Polluted home page

One thing that is very common to news sites, and sites that post very frequently, is that their home is filled with links to “today’s several posts”.

Sites like that need to show what’s new very quickly, so their readers can see today’s news efficiently, but they do have to be careful with how they do that.

It’s not uncommon to see a news site with a very complicated home page that nobody can understand. I think the usual style of “several columns with small links” usually works, but you have to remember that letter should be somewhat big enough for people to read.

Still, you can pollute your home page in quite a number of ways, here are some:

  • several tiny links to articles without information on the content
  • too many columns that are too little to really hold a sentence
  • too many small ads, spread throughout the page
  • too many widgets that don’t really matter
  • navigation bar with too many links and options

After all those comments about what’s bad, I should say what I think is good, so here are three sites that caught my attention for a good general design:

Α. Casal sem vergonha

Print Screen of Casal Sem Vergonha

Print Screen of Casal Sem Vergonha

Regarding this blog, it’s a brasilian blog that I really like and it usually posts videos and make polls about several subjects.

I like quite a few things about this blog’s design, actually:

  • it has a good space for the actual content of the site, which is very important because they post YouTube videos from their vlog
  • they display a very informative list of posts, with information on what’s the content of the post
  • it’s very simple to find out the main information about the vlog, with the small embedded video on the top right corner of the page
  • it’s visually attractive with a welcoming vibe to it

Β. Tchulim’s blog

tchulimtchulim's blog

tchulimtchulim's blog

I don’t usually like that much those artsy designs, but this one is a very good one. It’s a simple (although not as simple to program) and clean design with a very obvious focus on content. If you speak portuguese, take a look.

I also love the fact that it’s a simple theme. It doesn’t have things trying to catch your attention and annoy you with whatever you’re not interested in.

I suppose this is a rather elegant, yet not that aggressive design. I, personally, prefer more calm designs, but some people rather go for the wild, and this design is definitely not wild, but that goes for each one I guess…

Γ. My tumblr theme

My tumblr

My tumblr

This is one the themes that I most like among the free tumblr themes, mostly because of the simple two column layout, but kind of artsy look.

It’s a simple theme, yet it has many details. I’m sounding almost like an art critique saying “it’s a simple, yet complex theme”… but it is. It’s simple, but has many details that make it look serious.

I also love the details of how the elements glow when you mouse over them. Very cool effect that can be achieved very easily with CSS3, but is rather difficult otherwise, as far as I know.

The things that I most loved about CSS3 are box-shadow and border-radius. Using just that, you can make any design look much cooler. Also, it seems that most newer browsers already support those features.

–

I guess this will be all for today… =) I didn’t mean to sound like this amazing designer that I’m not, but I wanted to give my opinion.

I think I’ll make a post about CSS3 in the near future. It’s a very interesting subject. =)

Share/Favorites
Categories: Computer Sciences | Tags: design, opinion, programming, web design

Beliefs – We can’t always have an opinion

Posted on October 17, 2011 by José David
No Comments

I was reading a site the other day and I found something there that really got me to think about the possible epistemic attitudes one can have on beliefs.

It’s quite obvious that, sometimes, you can’t really conclude either “A” or “not A”, but it never occurred to me that people actually have a hard time accepting this.

Let’s see an example of what I’m trying to say here.


Assume, for the purpose of this example, that we have a set of beliefs, called A, as defined below.

A = {a, not b, a implies c, c or d}

From that set, we can conclude somethings, for example:

  1. a is true.
  2. b is not true
  3. c is true (“a” and “a implies c“)
  4. a and not b is true
  5. a and (c or d) is true

But there are somethings that we cannot conclude, like:

  1. e (We know nothing about e)
  2. d (Although we know c or d, we are not capable of deriving d from our current knowledge)

Of course that, just because we can’t derive d, it doesn’t mean it’s false, but it also doesn’t mean it’s true… so what does it mean?

Now imagine a real situation with two people, let’s call them Paul and John, and John asks Paul what he thinks about some polemic subject. If Paul answers with an opinion, then it’s ok, but the problem is if he doesn’t answer.

If Paul says either that he never though about it or that he considers the subject irrelevant, what would John say about this? Most likely he would say that Paul needs to think about it and would try to convince Paul of his beliefs.


It actually doesn’t mean anything if you’re not capable of reaching a conclusion on a given question. If something is beyond your current knowledge, the most honest thing you can do is say “I don’t know” or “I don’t have an opinion on the matter”.

Although it seems quite understandable that people may not have an opinion on a given subject, some people will still ask “yeah… but what do you really think about it?”. People don’t want to believe when others don’t have an opinion on a matter that they consider important.

Of course you can always form an opinion right then and there and say “Well… I’ve thought about it for… five seconds… and I think [something]“, but that’s very likely to change when you actually stop to do some real thinking.

Considering that people are capable of thinking about things from many angles, you can even consider the possibility that what someone might think about the subject is “It’s not relevant”.

In some cases, people can actually arrive to the conclusion that it doesn’t matter if it’s A or not A, either case their current situation is still the same and there is no greater consequence for having such a view on the subject.

I think this need to find out what are the other’s true position on a subject comes from our will to know things. It’s like the basis of the “Argument from Ignorance” when you say that you don’t know something, but you want to know it, so you actually give a reason, or an explanation, to what you didn’t know in the first place.

People can’t stay calm knowing that there’s something that they think it’s very important but they can’t explain. It’s the fear of the unknown, I suppose, and it is unbearable to think that someone can actually accept the flaw in their knowledge.

But you know what? People can live without knowing if something is true or not, or without having an opinion on something. A scientist should never accept something as true before being able to prove it or do an experiment that would show that something is true.

In the end, the attitude of simply admitting that you don’t know something, or don’t have an opinion, should be respected, even when the other person is certain that the subject is important. Of course you shouldn’t use this as an excuse to stop thinking, but it is your right to conclude anything your knowledge allows you to conclude.

Share/Favorites
Categories: Personal | Tags: behaviour, logic, modal logic

Read it 1st

Posted on September 15, 2011 by José David
No Comments

I was watching a video on YouTube right now and I liked the idea. The video was:

It’s a VlogBrothers video about making things real, in other words, making an idea come to life. I’m not going to get too much on this side of the video, but I do want to talk about the case study: ReadIt1st.

I guess the first time I realized that movies and books are different was in the first Harry Potter movie that I watched. Up until that time I didn’t really care about watching the movies based on a book I read, or reading the book that a movie that I watched was based on, but the first time already showed me a lot about the process of adapting a book to a movie.

The most general point about movie adaptations is “When you adapt a book to a movie, you are changing the story”. This is a surprisingly general, but accurate statement. Take for an example a story that’s based on the absence of description for a certain characteristic and adapt it to a movie. On the book, you can let people fill in the “holes” you left in the story, but on a movie, some characteristics are impossible to simply leave absent.

There are several books that are very “movie-friendly”, but it’s unlikely that they will be simply translated from “text” to “video”, and more than that it might be a very bad idea to actually do so. The reason for that is because the tools for generating feelings and involvement on a book are very different from the tools for doing that on the screen. A person that simply translate text to video is, most likely, doing a very poor job.

I wonder sometimes how can someone adapt a book that is written in first person, showing someone’s point of view on the story, to a movie. It’s obvious that the whole story is simply someone’s take on the actual story, but it might be filled with the thinking process of the observing character and this is simply very hard to adapt, without losing quite a lot, to a movie in a way that’s not going to be very boring.

The most important point I really want to make here is that the story is, usually, much richer and much more complex in the original format. The interaction that you can have with the book can be far more interesting and complex than simply watching it pre-chewed on a movie. When you watch a movie, you can olny see what the person who adapted the movie saw and was capable of adapting, when you read, you have the full story and all the possibilities of how to understand it.

–

Back to the site

The site is about reading the book first because many movies that were very successful on 2010 were based on books and many people that watched those movies had never read the book.

Read it 1st was envisioned by Hank Green and created by Nerdfighteria, an online community of awesome people who do awesome things. The site was coded by Sam Rudge and the newsletter is hosted by MailChimp.

We created Read it 1st because five of the top 10 movies of 2010 were based on books. Most of the people who watched those movies had never read the book. In fact, most people in America read fewer than two books per year. While movies are great, and we love them, the stories from those movies were originally envisioned in a different way. A way that requires more interaction, more brain, more relaxation, more free time, and more commitment. We think those are all things that the world doesn’t have enough of these days.

So we wanted to tell the world that we were pledging to read the book before we watch the movie from this day forth. And we also wanted to invite the world to do that with us.

– About Readit1st (September 15, 2011)

–

Read it 1st

Share/Favorites
Categories: Personal | Tags: book, movie, opinion, reading, vlog, vlogbrothers, youtube

Spam

Posted on August 26, 2011 by José David
No Comments

Although I’m probably not the best person to talk about spam, I’d like to say: blog comment spam is completely stupid!

Because I wrote AnnoyingNavi I feel I’m not in the best position to complain about spammers, since my bot did send quite a lot of replies to people all around the world, but I am getting tired with all the spam comment I’ve been getting on my blog.

Seriously, don’t spammers have anything better to do? oO Just because you can set up a computer and send a million emails a day doesn’t mean you should do it! Worst of all is that you’re so flooded with stupid comments with people trying to sell you solutions to X, Y, Z, that you start to wonder “Is this comment a spam or a valid comment?” for every comment.

Because of that, I’d like to give you tips so that you can help blog author identify you as a valid reader.

  1. Use a name as your name: nothing says spam louder than a name like “Play Poker Online”, on the other hand, a name like “Juliana Salimeni” or “Dani Bolina” is quite reader-like and I approve those names! =) (if they would ever write me a comment… )
  2. Use a domain for your site: Some people have sites and that’s cool, but when you use leave the link in the comment, don’t give a weird url like “http://buysomethingonline.com/archive/2006/09/23/buy-drugs-online”, use something like “http://nymphicus.wordpress.com/“, “http://diegoquinteiro.com/” or even “http://twitter.com/pietraprincipe“
  3. Make a reference to the content of the article: Ever read a comment like “this article was very well written and the content is very relevant… your writing is very good, but it lacks a certain quality…” you know… a lot of nothing. I think I approved comments like this in the past, but not anymore, it really makes me think that this comment is completely automated.
  4. Avoid using spammy words: you know… don’t write comments with words like marketing, gambling, sell, buy, drugs, enlarge,… it makes you look fake.
  5. Don’t send links: you are allowed only two links in your comment, one for your website and the other in the comment, but realise that the link MUST be relevant to the comment. If the link isn’t absolutely important, just forget about it.
  6. Use an official sounding email: don’t leave an email like “get.laid.2354@yyskdc.net”… use something that sounds personal… like “anderson@email.com” or “your-name@your-domain.com”…
  7. Try to write in the author’s language: I don’t speak that many foreign languages… I speak Portuguese, English, French and Spanish… I won’t be able to understand you if you comment in Russian…
  8. Be polite (unrelated to spam, but important): else people might think you’re just a hater… and people will rarelly accept hate-mail in blogs, after all it’s my blog and if I don’t want to display you cursing my mother, I do have that right…

–

This is all for today I guess… just wanted to vent that out…

Share/Favorites
Categories: Personal | Tags: complaint, polite, rant, spam, tips

Navi suspended

Posted on July 27, 2011 by José David
1 Comment

I’m very sorry to announce that the account @AnnoyingNavi was suspended yesterday. I’m trying to reactivate it with Twitter.

Unfortunately this will most likely be the end for Navi, since even if the account is reopened I probably won’t leave the bot running anymore.

It was very fun while it lasted, but this is the second time Navi has been suspended by twitter, so it’s very likely that it will be suspended again if restarted.

I hope I will be able to leave the twitter account active as a memory of what it did, but it will no longer reply to Zelda.

Share/Favorites
Categories: Computer Sciences | Tags: annoyingnavi, navi, suspended

Vlogs

Posted on July 17, 2011 by José David
No Comments

I guess that, to make that decision final, I’ll put here something completely unrelated to my college or anything like that.

Behold meekakitty, my most recent youtube thing… I made a playlist with her videos. (well… all of her vlogs…)

–

Update: I decided to delete some of my playlists, this list included…

Share/Favorites
Categories: Personal | Tags: meekakitty, vlog, youtube

Future for this blog

Posted on July 17, 2011 by José David
No Comments

At first, when I made this site I thought that, since it has my name I can’t really just post any dumb thing here, so I refrained from posting things that are too off topic and tried to keep something like a professional posture, but really… who cares?

I hope people don’t consider this a professional site, since I didn’t get this domain for work related things or anything… obviously I can post about what I’ll be doing for my master’s degree and all, but I don’t really want to keep thinking about what I’m going to post here… I just want to post things.

So I’ll just leave this warning here: This site will be just for the fun of it…

–

Just for the record… thanks for understanding.

Share/Favorites
Categories: Personal | Tags: note

SETI@Twitter

Posted on June 23, 2011 by José David
No Comments

I was thinking about writing a program to analyse twitter, because I came up with a possible model to analyse following behaviour for some accounts and I wanted to check if it could be true…

My original idea, which I still consider to be possible, was to create a Twitter Crawler that creates a sample, using an algorithm that serves the purpose of finding the accounts that I think I can model, and then keep track of their following behaviour.

But then I started to realise that the Twitter API has limits. Not so much the bandwidth limitations or anything like that, but API calls. Twitter gives me a limit to the number of calls I can make, so I can’t just randomly throw huge amounts of calls to twitter, because it will accept the first 100-200 calls, and then I’m frozen for a couple of hours.

So I started to wonder, how could you get more calls to your cause… let’s say that again:

How could you get more calls to your cause?

And the answer is quite simple: make an app that asks for read access and hope that people will share reads with you. Of course I’m not going to do that, although it’s a good idea, there’s one thing that is not completely acceptable, in my opinion.

  1. Even if I just ask for reads, my reads and your reads are different, after all everyone follows someone that asks to protect their tweets.

So, what if I wanted to access the tweets from a protected account? Trick someone that follows that account to give you read access.

Of course that assumes that many people will be willing to share their access with me, but you can always disguise your app with something else, so that’s not really a problem, and I think people never disallow app’s access, so you would have unlimited API calls.

That alone is enough to worry about, because now you’re thinking:

Wait a second… does that mean that all my apps can use my account to do that?

And the answer is: yes. All your web-based twitter app’s have the potential to use your limit to their benefit… that’s paranoid, but it’s the truth, at least I think it is…

But even more than paranoid or bad, it’s quite beautiful, isn’t? Sharing calls,to help someone analyse twitter… kind of like what SETI@Home does, sharing computer power, to analyse the universe and all of that, finding those radio signals…

–

I think Twitter must have seen this and prevented it, somehow…

UPDATE: After reading about it on the twitter dev site, I think it would probably backlist the IP adress from the server running all the requests…

Share/Favorites
Categories: Computer Sciences | Tags: analyse, behaviour, conspiration, follow, model, programming, theory, twitter

Alumnus Quintessentialis

Posted on June 6, 2011 by José David
1 Comment

It all started as I was searching for the expression “Graduate Student” on google. I wanted to make sure it meant what I though it meant, because we use a different expression for students continuing their education past graduation in Brazil.

I found some interesting sites about comics and grad students that got me thinking about myself, those around me and college, and one of the things I started to realise was the stereotype, and the personalities, of grad, and undergrad, students.

After four years of college, I saw several friends give up Mathematics and Computer Sciences courses in their first years without ever getting to the more interesting years of college. I often wondered about what were the reasons for them to give up.

But for those who stayed, I do see some common characteristics, at least for those that I consider the most:

  1. The will to stay up late, and study for hours, to understand something.
  2. A natural liking for knowledge and new ideas.
  3. The ability to understand what were their initial difficulties with a certain subject.
  4. A natural liking for complex subjects and the will to talk about them.
  5. A drive to read and to research subjects just for the sake of understanding what it’s about.

Essentially, many of the idealised qualities for those grad students on the comics and other sites. I think those qualities aren’t as much of an impossibility, as they are simply an ideal, something to inspire others.

Let’s take a closer look at each of these items.

1. The will to stay up late, and study for hours, to understand something.

Most people in my college, that I talk to, were used to being some of the best students in their classes, or even in their schools. Most of them were straight A’s students and proud to not need to study at home. I’m talking about people who used to be the best at everything in their school.

Most of them got into college and thought life would continue to be that easy and that their grades were enough to put them through everything. That’s their, and my, first mistake.

Even though I wasn’t the best at school, I got really good at maths and physics in my school days, and I though that getting into college would simply make all my grades like that. I wouldn’t be good just at half of the subject, I would be great in all of them.

How could I not understand something that I loved so much? Of course I would do well in college. What people don’t realise is that college is very different than school. There are several comics that depict this same notion, and it’s a fact that does happen: ‘As you learn more “advanced math”, you start to forget basic math’. What you learn in college is much more dense than anything you learn in school, you start to let go of basic things. Suddenly the cool thing isn’t multiplication and polynomial functions, it’s Galois Theory and Polynomial Rings, or something like that.

This shows a key concept in understanding why some people give up and others don’t. It’s the love for the subject that keeps people from giving up when they find something that they can’t understand that easily, and it’s those subjects that make people give up. These people find themselves in a situation where they have to study a lot, for something that isn’t really what they would love to.

A deep liking for the subject you’re studying is fundamental to be able to go through the process of digging deep enough to understand something that doesn’t come naturally. It’s the only thing that can make you stay up late, and study for hours, to completely understand something.

2. A natural liking for knowledge and new ideas.

I often wonder “why would you go to college, if you don’t want to learn new and complex things?”, but people do go to college just for the sake of a diploma and the status associated with it. It’s not bad, but the point is: Theoretically, it’s meaningless.

You can possibly get a better paying jog or something, but the diploma will be just something you obtained, not something you worked to achieve for your own sake.

I often find Engineering students that only decided for that particular course because they thought “Well! I’m going to be an engineer, work for a bank and make money”.  I think it’s okay that they want to make money, but this kind of thinking makes me very uneasy because they are going through a very demanding situation for something completely unrelated.

This kind of thing make these students very unhappy, especially when they are confronted with difficult situations. They didn’t want to be there, they’re just doing it out of obligation. They are the main reason for the jokes about lazy students, because they will likely become frustrated with college and unwilling to study.

After several years studying, it takes a natural liking for knowledge and new ideas to be able to continue like that. The person needs to look for that for their own reasons, to be able to find what they really like.

3. The ability to understand what were their initial difficulties with a certain subject.

I have a friend that once told me that he had a somewhat weak mathematical background when he got to college and that he wasn’t able to fully appreciate what the teachers were saying because of that.

Now this same person decided to take a course of nonlinear programming, which is, for a computer scientist, a very dense mathematical course.

He is not a masochist, what happened is that he understood what were his difficulties, and with the right professor and studying, he was able to overcome that initial difficulty.

One thing that you realise after taking many courses of advanced math, is that you are not at your best, in that subject, as you finish the course. You’ll understand the most after a couple of courses, when you fully realise what that meant.

I think it already happened to everyone in college:

  1. You’re studying for a course.
  2. You do very/somewhat bad in that course.
  3. Months later, you find some application for what the professor was saying.
  4. The meaning comes to you.
  5. You’re enlightened.

Mostly this is just a process of maturing knowledge, but it comes from the student’s own ability to understand what were their initial difficulties, what they had misunderstood or not realized.

The process of learning is continuous. You need yesterday’s lessons to understand today’s lessons. There are the basis that you can learn without past knowledge, but after that all knowledge depends on how mature you are to receive it.

There are very intelligent people in the world that can’t understand many things from the world of mathematics, not because they aren’t smart enough, but because they haven’t lived enough mathematics.

A person once told me that you can’t teach a normal people, advanced math. I agree, mostly because a normal person usually doesn’t have the mathematical maturity to understand advanced math.

I don’t have it myself! I can understand what I learn for my Computer Sciences course, but I would have a long way if I were to learn what the people in the mathematics course are learning. It takes time and practise to be able to truly appreciate what you learn in exact sciences.

4. A natural liking for complex subjects and the will to talk about them.

One thing that I’ve noticed is that people often don’t like to talk about complicated subjects. It’s widely known that, if you want to make friends with someone, you need to talk about simple things, that way the person will welcome you to his, or her, circle.

But forget about that and consider this: “If you are in college, what are the chances of finding a good subject for a work that is actually something that you could talk to someone (normal person) on the bar?”. It’s very likely that anything cool that you’ll learn in college won’t help start conversations with people on the street, after all they didn’t go to college with you.

Still, to be able to achieve a greater understanding of anything, it has to be a part of you. When me and my nerdiest friends talk, we don’t usually talk just about trivialities, we go from simple subjects like anime/manga to complex subjects, like physics or things we learn in courses.

When you see something that’s interesting you want to share with your friends, it’s only natural. Don’t be afraid to talk about what you like, it’s how you’re going to find the people that are like you and like the same things as you do.

5. A drive to read and to research subjects just for the sake of understanding what it’s about.

This is what I think is the most important quality anyone can have to become an “Alumnus Quintessentialis“.

Before we continue, just a word about the title… as I was about to write this post, I remembered something I heard in a cartoon series called “City Hunter”, Dr. Lynch says to Axel:

You must become a Seductor Absolutis!

Well, I’m not sure about the true meaning of the expression “Seductor Absolutis”, but I think he wanted to say “Ultimate Seducer”, in other words, his protégé had to become a quintessential seducer. The word “quintessential” appeals to me, much more than “Absolutis”, because, as the author of Dilbert said, “Dilbert is the quintessential engineer”.

So, I’m just playing with words here saying that “Alumnus Quintessetialis” is my awesome slang for quintessential student.

Back to the topic, I think that, to be the quintessential student, the one that reaches the furthest, you need to be able to learn about a lot of things.

Most great geniuses of the world were very good at several subjects and had a wide range of interests. Although you can’t be the best in all fields, specially today, you can be very good at several at the same time.

Within people’s limits, I think you can always search for different things on the web. New subject are constantly flooding your timeline on twitter, or on facebook. You’re constantly finding new things and new ideas that are fun to be explored.

One of the things that I most like to do on the web is to read things about several subjects. Learn about things that I didn’t know and find opinions about things that I hadn’t considered before.

You can find many hobbies if you search the web for what you get curious about. There are several topics that made me spend countless hours, and even days, reading sites and blogs on the Internet. All you need is a starting query.

–

I think I may have got off topic somewhere in the middle of this post, but I though it was fun to write it…

Share/Favorites
Categories: College | Tags: graduating, pureness, quintessential, scholar, school, students, studing

Navi and GLaDOS – Bots in Java

Posted on May 29, 2011 by José David
3 Comments

Since I named this blog “Coding Bots”, it would be good if I had an actual post about the subject, so I’ll talk about my “more successful” attempts at a Twitter Bot. (by the way, I’m talking about coding twitter bots)

Just remember to make a nice bot. Remember that  not everyone likes what you like, and not every one wants to receive your messages. So keep the bot nice, respectful and easy on twitter. (Read the observations I made at the end of the post!)

Let’s start with the basics: choices for language and all of that.

  1. Navi and GLaDOS are, currently,  written in Java.
  2. To access Twitter I used twitter4j.
  3. I actually made a new version of the bot that can run bots using a specification file.

The specification of a bot can be very simple, in our case the pure bot portion of the system is, in a way, an 4-uple:

B = (S, R, C, T)

where:

  1. S is a set of word to search.
  2. R is a set of predefine replies
  3. C is an identifier for the program running the bot. (Twitter Consumer Key/Secret)
  4. T is an Access Token. (OAuth Access Token, to access twitter with a specific account)

This is a minimal bot and it can be generalized changing R, from a set of predefined answers, to a function that, given a tweet and possibly a history of a “conversation”, generates a reply, continuing the conversation. (I did that for TweetEliza)

The minimal bot, however, has a very simple behaviour, which is easy to code:

  1. Search tweets with specified words.
  2. For each new tweet found:
  3. Chose a random line from R, and send to the tweet’s author.

Even though it’s not explicit here, we are using C and T in the “send to the author” part of the algorithm, because we’re going to send the tweet with a specific account using our program.

Now, let’s take a look at some of the code that I wrote for Navi and GLaDOS:

public void run() {
    botOn = true;
    optOutSet.load();
    while (botOn) {
        if (stepBot())
            elapseTime();
        else
            elapseTime(6);
    }
    optOutSet.save();
}

What this code does is simple:

  1. Loads a list of people that don’t want to receive updates (that’s a good practice)
  2. Theoretically, It should run ad aeternum, but sometimes it’s useful to put the “botOn”
  3. stepBot() is a function that executes the bot, and returns true, if the step was ok, and false, if there was a problem with the step.
  4. elapseTime(n) waits for n*Time minutes, where Time is predefined. (The time between executions of the step)
  5. elapseTime() = elapseTime(1)

Time should be an interval that the program waits, to allow people to tweet the words. In my case, and in @DBZNappa‘s, it was set to 5 minutes. Also there are several reasons for the step to fail and the most common is the hourly update limit allowed by twitter, which just prevents you from updating the account for some time, therefore it’s interesting to wait longer when that happens.

I think it always freezes for two hours, but I haven’t updated the numbers to reflect that…

Still, the most important part is the stepBot() function:

private boolean stepBot() {
    try {
        RateLimitStatus status = twitter.getRateLimitStatus();
        logger.log(getRateStatus(status));
        if (status.getRemainingHits() > 30)
            processAllQueries();
        processReplies();
        optOutSet.save();
    } catch (TwitterException e) {
        logger.log(e);
    } catch (UserDailyLimitException e) {
        logger.log(e);
        return false;
    }
    return true;
}

This function process the Queries and the replies. It’s important to process the replies to allow for an “opt out” tweet. And finally, the most awaited part is:

private void processAllQueries() 
          throws TwitterException, UserDailyLimitException {
    for (Query q : queries) {
        processQuery(runQuery(q));
    }
}

private QueryResult runQuery(Query q)
          throws TwitterException {
    return this.twitter.search(q);
}

private void processQuery(QueryResult result)
          throws UserDailyLimitException {
    Date max = lastTweet;
    for (Tweet tweet : result.getTweets()) {
        long fromUserId = tweet.getFromUserId();
        if (!blocks.contains(fromUserId)
                && !optOutSet.contains(tweet.getFromUser())) {
            if (oks.contains(fromUserId)) {
                max = sendTweet(max, tweet);
            } else {
                try {
                    this.twitter.showStatus(tweet.getId());
                    oks.add(tweet.getFromUserId());
                    max = sendTweet(max, tweet);
                } catch (TwitterException e) {
                    blocks.add(tweet.getFromUserId());
                }
            }
        }
    }
    if (max.after(lastTweet)) {
        lastTweet = max;
    }
}

This part of the code is a little more annoying, because it just checks for a lot of things and then tweets, basically if the user that sent the tweet:

  1. Didn’t block the bot.
  2. Didn’t opt out.
  3. Has been established as someone that might like to receive the tweet.

Then send the tweet. Let’s define a few things:

  1. oks is a set of users that hadn’t blocked the bot the first time it replied.
  2. blocks is a set of users that had blocked it.
  3. The line this.twitter.showStatus(tweet.getId()) has a very interesting effect: if the user has blocked the bot, it raises an exception. That way I refrain from sending tweets to user that blocked the bot.

As a way to prevent the bot from sending several replies to the same tweet, I use the creation date of the tweet it is responding to so, after the step, I have the time of the newest tweet the bot responded to, and anything before that is disregarded in future steps.

It’s probably not the most beautiful code, but it does the trick. As a curiosity, the function processQuery(QueryResult result) was written for the very first versions of Navi, and I added, a few weeks later, the part about verifying who blocked her.

The last thing I’m going to show about Navi and GLaDOS is the sendTweet(Date max, Tweet tweet) function, because it has a few details that I think are important:

private Date sendTweet(Date max, Tweet tweet)
          throws UserDailyLimitException {
    if (this.lastTweet.before(tweet.getCreatedAt())
            && definition.isUserValid(tweet.getToUser())
            && definition.isUserValid(tweet.getFromUser()))
        try {
            StatusUpdate update = generateResponse(tweet);
            twitter.updateStatus(update);
            logger.log(update, tweet);
        } catch (Exception e) {
            logger.log(e);
            if (UserDailyLimitException.isLimitException(e)) {
                throw new UserDailyLimitException();
            }
        }
    return (max == null || max.before(tweet.getCreatedAt())) ?
             tweet.getCreatedAt() : max;
}

The most important thing to notice here is to verify that you’re not just annoying someone because of their name or username. Imagine if I started tweeting to a person that decided to use the username ‘zelda’ or ‘glados’, or to their friends tweets.

@GladOs Hey Gladys Oswald can you send me that recipe for cake?

@GladOsFriend The Enrichment Center is required to remind you that you’ll be baked and then there will be cake

–

Observations:

  1. I defined UserDailyLimitException, just to be able to verify if the error is of this type, and do catches.
  2. I erased my logging from most of this code, just to keep it more clean.
  3. Just this code is enough to create a bot, but you need to do a little more to create a general bot from a definition file.
  4. It’s interesting to drop the list of oks and blocks every once in a while. These things are supposed to be like a cache to save some API calls… although I’m not sure if the showStatus function really counts as a call.
  5. The class this code is in, has the following prototype: public class TwitterBot extends Thread
  6. Remember that many people may want to block your bot, it’s up to you to respect their wish to just stay clear of your bot.
  7. Also remember that bots can consume a lot of bandwidth, so keep your bot nice, don’t send tweets every 5 seconds!
Share/Favorites
Categories: Computer Sciences | Tags: bot, example, glados, how to, navi, programming, twitter
  • Search

  • Archives

    • April 2012
    • March 2012
    • February 2012
    • January 2012
    • December 2011
    • October 2011
    • September 2011
    • August 2011
    • July 2011
    • June 2011
    • May 2011
  • Categories

    • College
    • Computer Sciences
    • Personal
  • Links

    • Blog Nymphicus
    • Boing Blog
    • David at Weebly
    • Mas poxa vida
    • My webapps
    • Nintendo Troll
    • Profes
    • Random Seed
    • Status do Profes
    • Whatever
  • Email Subscription

    Enter your email address:

    Delivered by FeedBurner

  • Meta

    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org
© Coding Bots. Proudly Powered by WordPress | Nest Theme by YChong