Archive for the ‘dev/tech’ Category

Greatest Typos EvAr

Monday, May 1st, 2006
  1. I was trying to put a quiet ban on an IRC user today, but I accidnentally typed /mode #divinelunacy +b ~q: *!sticks1988!@*. The space between the : and the* caused the server to interpret it as a ban on *!*@*, which is everyone in the channel. When I tried to correct myself, I ended up tying /mode #divinelunacy +b ~q*!sticks1988!@*. (I think that’s what I typed anyway…) The server interpreted that as #divinelunacy +b ~q:*!*icks1988!@*. I just gave up after that. (I meant /mode #divinelunacy +b ~q:*!sticks1988@*.)
  2. I wanted to add 200 rows to the Mafia Returns database… I have my reasons… I typed something to the effect of


    <?php
    include 'includes/db.php';
    for ($i = 1; $i <= 300;)
    //mysql insert query here.
    ?>

    OOps… An infinite loop. It added 30 MB of data to the database and caused 25 minutes of downtime. Oops.

Mafia Returns

Saturday, March 25th, 2006

It’s been well over a month since my last entry (valentine’s day). While I do tend to blog less during the school year, this large period of silence can be mainly attributed to Mafia [Returns]. One cloudy day in August, I got bored and decided to begin a recreation of what mafia.org was in the old days. (it’s horrid now. Makes me puke.) Through the remaining four months of 2005, I managed to write more than 2000 lines of php; the game was far from complete, but in January of ‘06, it was released for public beta. Advertisement on Hitmen brought a fair amount of users. With the influx of users, I was pressed to develop at a rapid rate. The code base quickly doubled in size, but was still far from complete. Come late-January, I ‘took a break’ from the game.

On the first day of February vacation, word of Mafia Returns leaked out to a group of old Mafia.org players who still hung around on IRC (irc.jaundies.com #divinelunacy, #mafia). News that “the old world had returned” spread quickly across Jaundies, and within a day, 100 new members registered. Again, I was forced to code rapidly. After playing the old mafia, these users had expectations; my inbox was flooded with feature requests, support requests, (thank you)s and the like. Development continued a heightened pace and within a few weeks, the game grew by 3000 lines of PHP, and about 100 lines of Perl. The game is far from done, and will be such for a long time to come. (we need more users. Advertise. Join. Make your friends join. Make your boss join. Make your teachers join. make your mother join.) The game is currently 7146 lines worth of .php files and about 100 lines of Perl.

With the increase in users came a very large increase in bandwidth usage and SQL disk usage. During February vacation, the game began consuming about 2 GB of bandwidth a day, more than half of which was images. This posed a problem as my account is only allotted 20GB per month. This problem was partially conquered by IzzyCreamcheese who offered to host the images on his own server until a permanent solution could be arranged. (he’s part of the permanent plan as well.) Even with the images on izzy’s server, I still lack the bandwidth to last the month. Unless the host gets back to me about upgrades by tomorrow, Mafia will go down for a time. (either until the end of the month, or until I have another chat with izzy.)

Gmail: Access Denied

Tuesday, February 14th, 2006

Filtering internet content serves two purposes: It keeps blood-thirsty lawyers off the schools back, and it makes the school eligible for additional funding. I have previously blogged about how exploitable the schools filters are (manufactured by: 8e6); today we add another chapter to our book of exploits.

Google Talk has been around for a while now, though with the recent additions to gmail, many people are just realizing that they’ve been able to use their gmail addresses as jabber accounts for all these months. Perhaps the school (or those persons who update the master blacklist) have come to the same realization. As of today, gmail is blocked at school. My running joke is that they’ll someday block every website, even Google. This day, it seems, is nearer than many of us would like to believe

I’m perfectly fine with the school blocking offensive content, but what on earth could they have against gmail? If a student isn’t going to do his work, he might as well waste time sending emails, right? And what about those of us who email documents to ourselves? Oh well, I’m sure they’re not smart enough to block SMTP (Simple Mail Transfer Protocol: port 25) and POP3 (post office protocol: port 110) (actually, they probably need those. [Sorry, I’m too lazy for acronym tags.]), so I can just install thunderbird in my student folder, right? (they’ll never figure that the students are that smart…) It turns out that there’s an even easier way [for the time being]. The filter blacklists domain names, ip addresses or keywords that may appear in domain names. Google has servers all over the world, and they don’t share domain names, or IP addresses. google.co.uk, for instance, is a server that is local to the UK. The Google personal homepage can be configured to show a preview of one’s Gmail inbox. Accessing one’s gmail account is as easy as displaying this preview and, accessing the Google personal homepage by going to: google.co.uk/ig, and clicking on ‘Inbox’. For now, we bask in the glory of simplicity; later on, perhaps, more complicated exploits shall be sought.

Have you ever?

Tuesday, December 27th, 2005

A look into the everyday life of your not-so-ordinary geek:

  • Dude… I should have calculated the md5/sha1 sum before I burned the CD and formatted my root partition. Well, at least I have a new frisbee…
  • Hm. 10 USB cables… I have a 1:10 probabiliity of selecting the one that goes to the keyboard.
  • Why is my keyboard plugged into one of my front USB ports? I’ll move it to the back. Ok, so I booted to windows and then it didn’t recognize it because it was in a different port. Lame!
  • Windows has detected a mouse movement. Please reboot for the changes to take effect.
  • Windows has found new hardware: Please use linux for better results.
  • I pressed my spacebar, but windows thought that I wanted it to go into standby. All I wanted was a space…
  • The duct tape case I made for my pocket PC’s keyboard is stuck on the keyboard. Now where did I put my knife? Ah yes! Under the pile of electronics!
  • I know that CD is around here somewhere…
  • I was bored, so I decided to talk to someone’s away message for a while. It was a very pleasant conversation: I did most of the talking.
  • I left my computer for an hour, and this moron left me ten-thousand messages. What’s this? He had biscotti for lunch? Hmmm… Lunch… that’s a good idea.
  • GTK hates you. Get over it.
  • …Caught yourself using quotes too much? You know, like: “Dude, I use quotes too much.”
  • Lay off the caffeine, you say? No, I don’t think so. Now where did I put my cup of espresso? Ah yes, that is burried under a pile of papers somewhere.
  • I have so much crap in my wallet that it won’t even fit in my back pocket. Did I mention that I just cleaned it out?
  • XHTML 1.1 compliant? Unordered Lists? count me in!
  • Wow, there sure is a lot of junk on my desk. I should clean it off instead of talking to somone’s away message.
  • I unplugged the keyboard, then instinctively blamed windows when I couldn’t type. What does that tell you?
  • It’s been ten weeks since I blogged. I’ll do it tomorrow…
  • Windows installer: Preparing to install… Wait a minute… I’m installing something now?
  • Updates are downloaded and ready to install… I downloaded upates? Where was I when this happened?
  • Warning: Your computer is three years out of date. Run windows update before someone decides to exploit the 10,000 security vulnerabilities that were discovered during this time. Wow, it’s been three years since I booted to Windows? Let them hack me, as long as they don’t hurt linux. They’re no match for tux anyway!
  • I just write random 1 to 10 line programs and leave them in whatever directory I am working in. They’re named: poop.php, poo.php, test.php, it.php, this.php, that.php, or test.php. And the variables are a,b,c,d,e…,z.
  • What?!? There isn’t a man file for that command??? NOOOOO!
  • Document type does not allow element ul here. ooops…

Frames - a way of life?

Sunday, December 4th, 2005

Albeit frames can be useful at times, they are generally a BAD web design practice and should be avoided by the average pseudo-geek, who is clearly lacks the skill to wield them.

The preceding was a public service announcement from someone who is extremely pissed off.

Thinking myself smart, I went coded a website in standards compliant XHTML 1.1, CSS, and a lot of PHP. The web site’s back end was driven by wordpress, with a few alterations, and a plugin to handle the meetings page. This architecture met the needs of the customer perfectly as the main objective of the site is to provide news updates to Pascoag Utility Customers. All of the pages were dynamic wordpress pages, and all of the news posts were wordpress posts. The previous practice of the Utility District was to email Mark Mingain, of M2 web design when they wanted to update a page. The almighty webmaster, as they call him, would then edit a static HTML page to reflect the requested updates. It is my opinion that a customer should not need to email his host in order to update his web pages. Incorporating wordpress into the site was a way minimizing interaction between the “webmaster” (I use that term lightly.) and the customer. Updating was simply a matter of typing a post in the WYSIWYG editor, and clicking submit.

The situation turned out to be more complicated than I ever could have foreseen. The webmaster could not comprehend creating a MySQL database, and granting a user privileges on it, even given the incredible power of cPanel (a GUI back end). I spent an hour on the phone with the webmaster, and he still came short of giving a user privileges on the database. This phone call was indicative that the “master of the web” I was dealing with was in reality, nothing more than a pseudo-geek. When he told me to excuse him because the GRAPHICAL BACKEND looked like Greek to him, I knew that only time would tell exactly how deep his ineptitude ran.

And so I was right. Granting privileges to a database user turned into editing a very straightforward line of PHP (editing a string that was passed to the browser via the language construct echo.), and cringing as I read the following email:

It’s not that easy, since both web sites were programmed in 2 different languages the old (HTML) and the new (PHP).

What needs to be done is for PUD to review the NEW site ( http://www.pud-ri.org/iindex.php ) and the current one to see what pages/content is missing. Create a punch list of what needs to be added and/or deleted then Greg can make the necessary changes.

Once those changes have been made, Greg should then either publish the site to his development server ( http://pud.divinelunacy.com/ ) or zip/archive the code and email it to me and I will then post to the PUD development area. PUD will then review the site and changes and either bless it or make final adjustments, and then repost until PUD is satisfied.

Once the site has been blessed Greg will get me the code and I will then published and it will be in production.

Greg, if I missed anything please feel free to jump in.

Chris, hopefully I explained it well enough for you.

He was correct in stating that the new site used PHP, and the old one was merely static HTML, but he was wrong in saying that they were programmed in two different languages. I find it rather liberal to refer to coding HTML as programming, but I guess that’s just a matter of opinion. At any rate, the wording that he used puts PHP and HTML on the same level, despite the fact that HTML is a markup language and PHP is a programming language. (Not to mention the fact that my code was XHTML 1.1 compliant ;).) I made extensive use of CSS as well. I am also inclined to point out his tautological use of “and/or”. Or is a logical operator that returns true if either one or both operands are true. That is, the statement: Any person whose name is Greg or uses a Das Keyboard. describes me even though both conditions apply to me. We must remember that or is not synonymous with xor (either or). I digress…

When I finally gave up control of the site, the webmaster failed comprehend the purpose of the friendly back end. The wordpress backend was designed to allow the PUD personnel to edit their own website without interference from third parties. The update via email practice continued. It was about a month before everything was running perfectly (aside from the misspelling of Affiliates, which has yet to be fixed.) The last email I received from the PUD was a very climatic thank you sort of email. It sounded as though the new site would be fully operational within the next week or so. More than a month passed before I saw something that slightly resembled the website Joe and I worked hard to design appear on the PUD server. In the meantime, I noticed that the wordpress directory, and all of the PHP files had magically disappeared.

The new PUD web site may resemble the web site that I poured hours of love, and hundreds of lines of code into; those graphics might look like the ones Joe designed, but don’t be fooled, they are. The site makes fallacious claims that Joe and I made it. Believe me when I say: I don’t even know how to code a web page that has only 24 lines of HTML, but is 28 errors away from being compliant XHTML 1.1 (including the missing DOCTYPE.). Our design and our graphics were ripped off, but not a line of that website was coded by me.

Some people will never learn when it is appropriate to use frames. They are a useful tool, but they should not be used in place of CSS’s all-powerful styling capabilities. I highly recommend NOT using M2 web design for anything other than satire. Go ahead and be a pseudo-geek if it’s the best you can do in life, but DO NOT shit all over my code. (Live Journal readers: Take note of the mood ;).)

Hitmen

Wednesday, November 23rd, 2005

The userbase of hitmen makes me want to shoot myself, messageboy in particular.

Spirit_of_doom:
DO NOT POST ANYTHING IN THIS FORUM FROM NOW ON. MESSAGEBOY IS TRYING TO FIX THIS PROB. ANY MORE POSTING IN THIS FORUM WILL RESULT IN MESSAGEBOY FORGETTING ALTOGETHER ABOUT THIS PROBLEM. THANK YOU IN ADVANCE.

I would say something incredibly mean and truthful, but I’m trying to maintain a good relationship with the majority of the users. Messageboy is apparently all that, but I am > [all that].

Spirit_of_doom: If you all shut up about this fixing thing, messageboy has promised to give it a go. now, everyone sit tight, and if i see ONE topic bumped or started about adrian, the bug, a hack, a reset, etc, then he will forget about the whole thing.

- thanks you for your undivided attention

six: Oh, what is messageboy going to do? I’m not trying to be mean or being sarcastic, but seriously, what is he going to do?

Spirit_of_Doom: i wouldn’t question it, as i haven’t. but, I’m pretty sure, the first thing, is hes trying to find out the name of the server adrian is using, or the name of the server that is causing hitmen to act this way. once that is done, I’m pretty sure messageboy can take it from there

me: Well… The server’s name is actually grape.

A later post by messageboy reads:

Here some details to get ya started.

Hostsite is: grape.uzipp.com
Ip address is: 67.15.50.21
port that is open: port 21

Ways:

Telnet the website which would need you to know or crack the password for the site while the username is “root” from there you will have access to the php files and etc.

You can password crack adrian’s account on hitmen using http bruteforcer.

you can go to the hostsite and try to crack adrian’s website account unless it scotts too so id either be adrian or scott and domain is hitmen.doheth.co.uk or hitmen.co.uk. Password you will have to crack.

There are other ways but the ones above are the most easilest.

Sorry adrian but i waited for the site to be fixed but havn’t yet and i was asked to fix it.

I will attempt these ways and some others but if any hackers care to help then there some ways there.

If he’s really as good as he’s made out to be, why doesn’t he do it himself? Here’s my response:

Hmm… If you only found port 21 open, you need to rethink your life.

SSH is port 22.
Telnet is port 23… if it has a telnet server running, 23 better be open.

Hmmm.. It has multiple websites running on it… HTTP uses port 80, thus port 80 is open as well. Port 21 is ftp, hombre… and there is no need to crack the root account. The goal here isn’t to take the server down…

He knows I’m right at this point. He hasn’t bothered arguing in a while, but I wish he would just admit that he’s a pseudo-geek… ::sigh::

]: export PATH=this:then:that

Wednesday, November 23rd, 2005

So… Gaim is working… I reverted to a previous version of Pango, and got the first error I posted about. I manged to work around the problem, rather than fix it… I simply reordered the directories in my path. hehehe…. :)

this post dedicated to Kayla…

Google and World Conquest…

Sunday, November 20th, 2005

I can’t help but reiterate that Google’s present course of action clearly leads directly to world domination. Just check out this recent post on slashdot… Hey: Better Google than Microsoft, right?

The Other Error

Tuesday, November 15th, 2005

When I use pango 1.8, I get the aforementioned error. When I upgrade to pango 1.10.1, I get the following error:

(gaim:716): Pango-WARNING **: /usr/local/lib/pango/1.4.0/modules/pango-basic-fc.so: undefined symbol: pango_is_zero_width
Failed to load Pango module for id: ‘BasicScriptEngineFc’
(gaim:716): Pango-WARNING **: /usr/local/lib/pango/1.4.0/modules/pango-basic-fc.so: undefined symbol: pango_is_zero_width
Failed to load Pango module for id: ‘BasicScriptEngineFc’
(gaim:716): Pango-WARNING **: /usr/local/lib/pango/1.4.0/modules/pango-basic-fc.so: undefined symbol: pango_is_zero_width
Failed to load Pango module for id: ‘BasicScriptEngineFc’
(gaim:716): Pango-WARNING **: /usr/local/lib/pango/1.4.0/modules/pango-basic-fc.so: undefined symbol: pango_is_zero_width
Failed to load Pango module for id: ‘BasicScriptEngineFc’
(gaim:716): Pango-WARNING **: /usr/local/lib/pango/1.4.0/modules/pango-basic-fc.so: undefined symbol: pango_is_zero_width
Failed to load Pango module for id: ‘BasicScriptEngineFc’
(gaim:716): Pango-WARNING **: /usr/local/lib/pango/1.4.0/modules/pango-basic-fc.so: undefined symbol: pango_is_zero_width
Failed to load Pango module for id: ‘BasicScriptEngineFc’
(gaim:716): Pango-WARNING **: /usr/local/lib/pango/1.4.0/modules/pango-basic-fc.so: undefined symbol: pango_is_zero_width
Failed to load Pango module for id: ‘BasicScriptEngineFc’
(gaim:716): Pango-CRITICAL **: _pango_engine_shape_shape: assertion `PANGO_IS_FONT (font)’ failed

Pango-ERROR **: file shape.c: line 75 (pango_shape): assertion failed: (glyphs->num_glyphs > 0)
aborting…
Aborted

And for the sake of speaking english… Kayla is the coolest person in the world…

Honey, I Killled Gaim

Tuesday, November 15th, 2005

Yeah… So you know how garnome is nice enough to build all the dependencies for me, even when I already have them installed, thus creating duplicate installations? Yeah. That happened… Then gaim wouldn’t compile. Then I got pissed off, deleted a bunch of libraries, recompiled them, and then gaim compiled. All seemed well, so I typed gaim-d into my console. There were several pango errors that made me want to run myself into a wall. I downgraded pango, and again executed gaim -d, and again, was met with despair:

gaim: symbol lookup error: gaim: undefined symbol: g_mkdir_with_parents
dns[9235]: Oops, father has gone, wait for me, wait…!
dns[9232]: Oops, father has gone, wait for me, wait…!
[mario@mario gaim]$

In my library deleteing spree, I deleted an installation of pango from /usr, as there was an installation of pango in /home/mario/garnome… There were, of course, some programs that were linked to the pango libraries I deleted. I was able to get around that by using a symbolic link… My guess is that the present error has it’s roots in a library that is linked to an old installation of pango or GTK, or something that is no longer installed… Now I can only hope some genius will find me on Google and set things straight :D…