Archive for the ‘Programming’ Category
So, as most of you haven’t noticed, since no one really reads this thing… I lost my server over a week ago. Now I’ve finally gotten everything back and setup on a virtual machine, thanks to my friend Adam. Even though I was a wee bit (heh) behind on payments, he was still a good enough friend to hook me up with something that works for both of us. So now I can post all of my ramblings again that you probably won’t even read.
Nothing real exciting has gone on lately… I’ve caught a cold, that’s really it. I guess on another side note, I have been working on somewhat of a new exciting project. It’s a custom gallery I’ve built for myself. As it is currently it doesn’t really do much, but I have been working on the admin side of things to get everything going the way I think it should. Right now it adheres to a current directory layout parsing images and spitting out thumbnails. While I was developing, I figured… hey, why not do movies too? So I did… it also makes thumbnails for all kinds of movie files. I even added embeded HTML to allow for playing the videos, though I prefer the FLV method.
I’m not really sure when I’ll have a good preview available… I just kinda work on it when I’m bored. Anyway, I don’t have much to say besides that, so I’ll let you all get on with not reading this. Will post again soon, I hope.
Tags: Life, Site
Well, I’m sitting here today trying to think of new subjects to do a new tutorial. A few ideas are coming to mind, but if there’s anthing that anyone would like to see, please let me know. It’ll probably be a few weeks before I have anything ready, but I’d like to start on something!
Tags: Programming, Tutorial
Well, now that Zend has released Zend Studio Neon, I’ve taken the time to download it and give it a try. I have to say, they’ve done a pretty decent job with it. The feature set is very robust and integration with the Zend debugger is very nice. It uses PDT plus some extras to provide excellent PHP IDE support. It’s got all the good stuff of Zend Studio and Eclipse combined in one. Out of the problems I noticed in the beta’s, most have been fixed, but there’s still a few lingering.
One issue is mainly an issue with Eclipse itself, there’s no way to convert spaces to tabs or vice-versa. There’s also no way to make it trim spaces on the end of lines. This is a feature that Zend Studio has had itself in previous versions. An easy fix to this is a plugin made by Andrei Loskutov called AnyEdit. It’s made for Eclipse itself, but since Zend Studio Neon is Eclipse, it installs easily using the directions provided on the page.
Another issue, which was really the show stopper for me, is that the building of the workspace will sometimes “freeze”. I say “freeze” because Neon continues to respond, however, you can no longer save any files, close the workspace, or close Neon itself. I must note that I only experianced this issue twice within the few weeks that I used it. It’s annoying enough of an issue that I don’t care to deal with it. Both times I had the problem was when I went to save a file and it wouldn’t save, therefore loosing the work I had just completed. I have noticed that sometimes it does take a while for the project to build the workspace, but I gave it plenty of time to continue each time and it did not make any progress.
Other than those two problems, Zend Studio Neon is a very solid PHP IDE. I haven’t gotten around to testing every little feature, but I enjoyed working with it and would reccomend it with caution. Be aware that there are still issues that I’m sure Zend is working on solving, but for the most part it’s a very stable editor. Happy PHPing!
Tags: PHP, ZDE, Zend Studio Neon
I’ve started on a new series of tutorials that I plan on writing over the next few weeks. They’re pretty simple subjects, but I feel they need to be out there! The series is titled “What you should know about: X“. My first subject in the series is Dynamic Includes. This is based on my previous tutorial that is here, but is completely rewritten.
I’ll start working on a new tutorial when I get the chance. As the tutorial says in the conclusion, it will be about input filtering to prevent injection attacks on your site. I hope someone who reads these will learn something they can put to use! If you notice any problems or errors, please just let me know. Happy reading!
Tags: Dynamic Includes, PHP, Programming, Tutorial
Hey all. I just thought I’d take a few minutes to write a post. I know, it’s been a while again, but I’ve been pretty busy as of lately. I’m currently reading a new book, working on php-oop.net and working full time. This week I’ve also come down with a bad cold. Yesterday before getting off work I started to feel pretty crappy, so I went and layed down after work. Wound up falling asleep around 7 last night and didn’t make it back out of bed until 8:30 this morning. So far it’s just a head cold, but my whole body aches and I’ve got a slight fever. Nothing I can’t deal with though.. start popping the cold pills and I’ll be ok. Right now I just feel groggy because my whole head is clogged up.
On the programming side of things, I have been working on php-oop.net. Not much has been done recently, except I got my friend kuja to help me out with a new design. I don’t have it active on the dev site yet, but I plan on doing so as soon as we iorn out a few things with the design. Just take note that the dev site might not always work as it’s updated from SVN and could break. However, it’s given me new motivation to actually want to work on the backend of the site now. Currently, there’s only some basic user stuff implemented, which leaves a lot to be desired. At least it shows a base system that’s somewhat functional. The SiTech backend that runs the site also needs work too, so I’m sort of maintaining both projects at once.
As far as progress with SimpleIRC, I haven’t really touched it in a couple weeks. I’ve kept myself busy with other things. I really need to get back to SimpleIRC though as everyday miniE is showing more and more issues that I don’t want to take the time to fix since I am writing a new bot. Things with my new server are going smoothly. I’ve since setup a lot of new stuff like SSL, virtual e-mail addresses, and a Call of Duty game server. I admit, I don’t have a lot of time to play Call of Duty, but that’s my own fault. It’s at least nice to have a server up and running.
Well, that’s all for now. I’ll update later this week (or weekend) when I’m feeling better.
Tags: PHP, SimpleIRC, SiTech
Today I was writing some code for a website I’m building and came across a problem when trying to set the include path. When I was using set_include_path() and ini_set() to set the include_path, both functions would return false. It took me some time and a bit of help from Davey to finally figure out what was going on.
In my Apache configuration I was using php_admin_value to set an include_path for one of my virtual hosts. If you’re not familiar with php_admin_value, you can see the manual page here. By using php_admin_value in the httpd.conf (or a vhost), you’re there by telling PHP to force that setting and disallow anything else to change it, meaning PHP scripts or even .htaccess files. That was fine, except what I didn’t realize, is that for some reason PHP sees that setting and disallows it to be changed in any other virtual host or PHP script running under Apache. I can only speculate that this behavior is a bug and not intended. I would assume for that value to only affect the virtual host it was declared in, but instead, I spent 30 minutes debugging my code wondering why my calls to set_include_path() were returning false.
Let me just clarify for a second, the virtual host I had php_admin_value on was called, lets say foo.example.com and the code I was working on, that was returning false, was in the virtual host for bar.example.com. So, as soon as I realized that was the only place I was using php_admin_value at was foo.example.com, I changed it to php_value and restarted Apache with the new configuration. Instantly the code on bar.example.com began working as expected and setting my new include_path value. I’m not sure if this is default expected behavior, but it’s not what I expected at all. I will be filing a bug report to verify this though.
Well, that was my fun for the evening. I just wanted everyone to be aware of the effects php_admin_value and php_admin_flag have on your Apache configuration. If anyone has any different results or findings, please let me know!
Tags: PHP, Programming
Lately in my spare time, I’ve been working on something a bit different. Instead of the normal PHP or Python adventures, I’ve been working with a game language for Call of Duty. It’s structured somewhat like C++ but there’s quite a few differences. I won’t get into them now, but perhaps at a later date I’ll post my findings on the language itself, somewhat of a tutorial of sorts. Anyway, I’ve been working with this language to create my own mod for the game.
Why do I want to do this, you may ask? It’s for a few reasons, but mainly because I’m curious and picky. I can’t find a mod out there that does everything I like. Out of the mods I can find, I can’t find one that works without modification and is easy to add on to. I’m modeling my code closely after another mod that I’ve downloaded and like, but I’m rebuilding the code, hopefully fixing a few flaws and problems I’ve seen and ran into with the other mod. I’m also taking things from another mod I like that will add features that aren’t in the mod I’m modeling mine after.
I haven’t got much done so far, but I’m hoping sometime this week I’ll have some actual code that can be tested on my server. I’m going to have quite a few features in it, like the ability to maintain a crouch only server (this means that there is no standing and running, you must remain crouched), user punishment methods, bash only (weapon melee only attack), weapon damage modifiers, weather effects, and lots of other things. I’ll make another post explaining more, it’s pretty interesting stuff though. Until next time…
Tags: Computers, Programming
So recently I’ve been playing with wxWidgets and Python. I’ve enjoyed it so far, but I’ve found one problem that I haven’t really found a good solution for. When creating a window in Windows, the default background seems to be a rather dark gray. My theme for Windows is the windows classic, which shows all windows as a light grey color. The menu bar and the status bar of the application are the light grey desired, but the background of the application itself and any text label widgets I create are all dark gray. It makes no sense to me.
The solution I’ve found so far is to set the main window background to the color of the menubar background. This seems to make everything conform to the default light gray. Here’s the code from my custom wx.Frame class:
self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENUBAR))
self.SetBackgroundStyle(wx.BG_STYLE_COLOUR)
This sets the frame’s background to the correct expected color. I’m not sure if this is the way I should be going about things since I’m new to wxWidgets, so if anyone has any suggestions for me, please let me know! I’ll post an update later this week when I get further along with my client. Right now I’ve taken a break from the SimpleIRC bot part of things and am creating a GUI interface for a client. Until next time!
Tags: Programming, Python, SimpleIRC
Well, it’s been a little while since I’ve written about SimpleIRC, so it’s time for an update. I’ve been getting a lot of work done on it during my spare time (which isn’t much). I’ve fixed quite a few bugs in the main Core module and the Client code. I’ve also added some functionality pretty much everywhere, including some new modules. I still don’t know when I’ll have an offical release ready, but it’s looking promising that it will be soon!
First major change I’ve made is moving all of the modules off the MySQLdb module and into using SQLAlchemy, which offers a vast variety of methods to interact with the database, as well as support for multiple database backends. The main feature I like about it is the fact that it enables you to create an object for each table and row in the database. It makes dealing with things a lot easier. I also redesigned the database to better support changes made and to add better functionality.
So far, I’ve got the following modules completely built and working;
- Eval
- Factoids
- Lart
- Seen
- Weather
The Core module is build, but not all the features are there yet. I’m also still working on how the handler methods work for commands, because I’d like to find a way to allow command access levels to be changed on the fly using the database, but still be specified if there is no record in the database. I’m also planning on adding functionality for users to enter their e-mail address for validation and password retreval purposes. I still have to work on the other modules annouced, but it’s coming along very nicely so far.
I still have some bugs left to squash, and plenty of functionality in the client itself to implement, so if anyone would like to help as a tester or developer, please let me know. I’ll update again soon as I get more accomplished and have more to talk about!
Tags: Python, SimpleIRC
So, a couple of days ago I got an e-mail from Zend about Zend Studio Neon and their free beta release. I decided sometime yesterday to give it a try. I realize that the new editor is basically a version of Eclipse with PDT installed. I also noticed some other changes such as the Welcome screen is customized for Zend. Nothing special here, but I got past that and into the editor itself.
Now, first let me explain how I use Zend Development Studio right now. Currently I use it for work and a couple of my own projects that all use a SVN backend. I don’t have to check them out in ZDE to get SVN working with them, it automatically detects the .svn folders within my project and lets me use SVN functionality. I’m also able to start a new project and easily create it from a folder or group of folders that I select, as well as assign external dependancies to be included while editing. I use the function completion and method completion with classes because I have a horrible memory and cannot remember arguments for some functions I only use every now and then. Beyond that, I don’t expect much from ZDE besides the occasional use of the debugger, which has helped me out a few times.
Now, opening Zend Studio Neon, I realize that the editor is still beta, and that it’s completely new from ZDE as it’s Eclipse with PDT. I remember trying PDT not long ago and wasn’t very impressed at all. It seemed to lack a lot of the basic features that ZDE has. OK, so first thing I want, I want to use my existing files and still have SVN access. I have a lot of local changes right now that I don’t feel like commiting to break the whole project, so I don’t want to check it out fresh again. I start a new PHP Project, type in my project name and change the default directory to where my project currently exists. It creates the project files and opens the project. First thing I check is SVN, it’s there and working right off the bat. The PHP Explorer shows my revision numbers and allows me to right click and access the “Team” menu just as Eclipse does. Great, now I know that SVN works fine by default.
Now, lets see how editing files goes… I open up my first file and start typing away. First thing I notice is that it’s pointing out a couple of errors to me already. I was using a loop and not using all my variables in the loop, which means in my assignment, I forgot to include the array keys. That could have been bad… good catch! Also, while fixing this problem, I notice that variable completion works, which is no supprise, it also worked in PDT when I tested it. Now, I open another file and find it’s got a few errors in it as well. Some things are notifying me of unused variables in methods for my XML parser, others are telling me of issues where I misspelled a variable and it thinks it’s undefined. Great, fix the ones that can be fixed and move on.
Now I wanted to test the function/method completion. This is one thing about PDT I wasn’t completely satisfied with, but it appears to work well in Zend Studio Neon Beta. I created a new method in a parent class, then in the child class that extends it I implemented the functionality. When I start typing $this-> it then pops up a window with all my methods in the class, including the ones in the parent and the one I just created. For those methods that have phpdoc comments, it also fills in the types for the arguments and return value. I write my method out and save, everything looks good and I’m deffinately enjoying this better than just Eclipse and PDT. Now, one thing I didn’t mention earlier which I noticed while making changes and saving files.. in my PHP Explorer where it shows my SVN versions, on the files I’ve modified, there is now a > infront of them signifying that they’re changed. I prefer the old style where the color changed, but I can deal with this too, and it might be customizable.
So far my experiance with Zend Studio Neon Beta has been pretty plesant. When I first installed it I had a couple of issues that were a bit confusing. I blame windows though, because after rebooting and opening it up again, everything seems to work as expected. Also, one other feature I didn’t get to is the phpdoc strings. It works about the same as it did in ZDE wheren when you type /** and hit enter before a method, it inserts the doc tags as expected. I can say that I like it so far, especially the fact that they’re using Eclipse. I’ve been a fan of Eclipse for a few months now because of how easy it is to install plugins. I’ve been using eclipse for Python and C within the past few montsh, and now I can use Zend Neon for PHP. I also checked the Help menu where you can access the Software Updates to install new plugins. This means that I can most likely add PyDev and CDT for my Python and C needs, great! For now it looks like I’m back down to one error instead of three.
I’ll post more later if I find some other interesting features of Zend Neon or if I find any problems.
Tags: Editors, Product Review, Programming, ZDE
You can go forward to the next page