Jeremy's Blog

Tag: PHP

Developing Again – The Story Up Until Now

by Jeremy on May.04, 2010, under General Ramblings

It’s certainly been a long time since I’ve felt motivated to post anything here. I generally don’t like talking about what’s going on in my life except in small blips, most of which are suitable for Twitter. Using this blog as an outlet to talk about just me or life in general feels like a waste when there’s much cooler stuff I would rather be talking about. Those of you who are looking for life updates can get them from Facebook or Twitter. Those of you who are looking for information on the cool stuff that I’m working on, stick around.

I’ve finally decided that I’m going to take an active role in getting myself out of this almost year-long development-less funk that I’ve been in. I’ve been pouring over information and ideas, trying to come up with something that I could spend my time on and make a personal project of. I actually came up with a few. They’re all Omega Vortex projects from back when we were trying to bootstrap a software company by consulting. The projects never got enough attention because of the consulting and we started to enter the really nasty area of the recession, so the consulting projects also started drying up, leaving us without enough income to allow us to move forward …

(continue reading…)

Comments Off :, , , , more...

Journey of Souls: Loose Class Structure

by Jeremy on Sep.24, 2009, under Journey of Souls

The old PHP version of JoS made the JoS_Core class the central point of almost the entire game. It kept references to all of the descriptors, areas, rooms, etc. It was kind of ugly and I don’t think I want one class basically being the owner of every piece of the game. I’d like to split things out more than that.

There are a handful of requirements that we need to meet with our class/object structure/architecture:

  1. We need access to all of the Socket resources from the game loop in order to perform a Socket.Select() on them.
  2. We need to be able to match a Socket resource to its Descriptor object.
  3. We need to be able to quickly query for any available resource by some unique identifier (id number, guid, short unique name, etc).
  4. Unless performance requires it, we should try to avoid the “reference” soup that came with the previous implementation. Every object had a property with a reference for each object that was related to it in any way.
  5. Example: Room objects had properties with direct references to all of the characters in the room, the rooms exits, the area the room was apart of. And the exits had references to the rooms they led to and the rooms they were in. The characters had references to the room that they were in. There were a lot of circular references and it’s hard for most reference counting garbage collectors to properly free resources with these types of references.

  6. Classes with Events and Event Handlers need to be public so that scripted pieces in IronPython will be able to see them properly.

Possible solutions:

#1 and #2: Keep a Dictionary<String, Descriptor> that has all of the Descriptors in it in a DescriptorCollection class which will have the lookup methods mentioned in #3. The String key would be the string representation of the Socket.RemoteEndPoint. Including the remote port. Not including the remote port would make it impossible for us to accept multiple connections from the same IP Address.

#3 and #4: The resources could all be kept in their own Collection classes with the resources mapped out as necessary in Lists or Dictionaries. Multiple Dictionaries using references can be created to facilitate multiple identifiers. We’ll tie the identifiers to the rest of the objects and use the lookup methods on the Collections when we need to get an object reference.

#5: Make sure classes are defined as public. They’re not completely public by default.

This entry is almost entirely copied verbatim from the current revision of an internal collaborative document. There were some minor edits for clarification.

Comments Off :, , , more...

Installing Zend Studio v6.1 as an Eclipse Plugin

by Jeremy on Feb.12, 2009, under General Ramblings

Zend has a document in their resources section for Zend Studio v6.1 that “explains” how to install the IDE as a plugin into an existing install of Eclipse. The document appears to be missing some very bits of information for the current version. Here’s a list of update sites you need to add, in addition to the Zend Studio update site, before it will actually install: 

Well, I was going to put a list of update sites that you need here, except I still haven’t found them all. I can’t seem to get all of them that you need and because the resources document is just flat-wrong, this process is pretty much just dead in the water, at this point. It is absolutely pointless to install Zend Studio as a standalone editor when I want to use Eclipse for other things besides PHP (sometimes two different languages at the same time).

I think I’m done with Zend Studio. The Eclipse move frustrates me to no end. Prior to now, I’ve absolutely hated Eclipse with a passion. I’ve tried to work with it, several times. I just don’t like the workflows, the memory hogging tendencies, the fact that it slows to an absolute crawl when trying to do anything in a project larger than a handful of files. It’s ridiculous.

I’ve been giving NetBeans a shot for the past couple of days and it’s pretty decent, but it’s missing something that I can’t really place my finger on. An IDE that doesn’t suck and has support for multiple languages would be a killer app. Aptana seems like they’re on the right track, but there’s that Eclipse dependency that irks me again. I’m not above giving Eclipse another shot and trying to make it work, if someone can come along and make an IDE worth using.

As much as I hate to admit it, Microsoft owns the land of development tools, hands down. I love Visual Studio 2008. If VS.PHP didn’t suck and there was good support for CPython (not IronPython!) available, I think I’d use it for everything. Maybe more language plugins for Visual Studio will start to appear. Even if they were commercial plugins, it would still be worth it, as long as they were solid language support that properly utilized Visual Studio’s features. Even just being half as awesome and intuitive as working in C# in VS would be leagues beyond pretty much any other IDE I’ve used, so far.

… it’s kind of sad, really.

4 Comments :, , , , more...

Rasmus Lerdorf – FrOSCon 2008 Slides

by Jeremy on Aug.24, 2008, under General Ramblings

The slides for Rasmus Lerdorf’s FrOSCon 2008 presentation are up. If you’re involved in PHP Development at any level, you should go look at them. You might be surprised at the performance of your favorite framework.

3 Comments :, , more...

PHP Developers Suck

by Jeremy on Jun.23, 2008, under Uncategorized

I think I’m going to change my technology focus. Now that I’ve stepped outside of my circle of really talented and competent people, I’ve learned that PHP Developers suck. I’ve been trying to hire people for a big project that we’re working on, and I am absolutely amazed by the number of unreliable and/or absolutely terrible programmers that I’ve talked to.

PHP is suitable for “enterprise development”. The problem is, only 1% of everyone who knows PHP actually knows what “enterprise development” is supposed to mean.

Maybe this’ll all have a happy ending, but this has so far been pretty close to the top, if not the top, of my list of “Worst Birthdays Ever” …

5 Comments :, , , more...

Eye of the Beholder

by Jeremy on May.22, 2008, under Uncategorized

Okay, so PHP Sucks, But It Doesn’t Matter.

I like Jeff Atwood. I enjoy reading his blog and I’m looking forward to stackoverflow. I’m just not used to seeing him quote painfully old articles when trying to make his points.

From my own experience, and the countless of online tutorials and blogs, many PHP developers are guilty of the same crap code VB developers were once renowned for. OO, N-Tier, exception handling, domain modeling, refactoring and unit testing are all foreign concepts in the PHP world.

Ever heard of PHP 5? PHPUnit? Zend Studio? The plethora of other tools that real, good development shops use? Sure, a lot of the junk you see in PHP was done by hobbyists or people without a good, firm understanding of how things work. There are quite a few professionals out there who develop and distribute quality PHP-based products.

I think Stas put it best, PHP isn’t the only language where really crappy code is produced. I read The Daily WTF quite a lot and notice a ton of other languages in there, so they must all suck too, right?

It’s certainly very possible to build really elegant solutions in PHP. It’s also possible to build maintainable solutions in PHP. As tools like Zend Framework, PHPUnit, Phing, phpUnderControl, xdebug, Eclipse with PDT, Omega Vortex’s own Omega Matrix, and many others start to become more widely used, I think it’s very possible that you’ll see a gradual increase in the overall quality of PHP code.

1 Comment : more...

1 Sign You’re a Lousy PHP Programmer

by Jeremy on Feb.08, 2008, under Uncategorized

Here’s a comprehensive list of 1 Sign that you’re a lousy PHP Programmer.

  1. You write a list of 40 reasons someone is a lousy PHP programmer when over half the reasons don’t apply to every situation, much less a lot of real-world situations.

Honestly, I wanted to tear this one to pieces with a really long entry outlining why certain points on that list were just ridiculous. I won’t bother. If you’re even a mediocre PHP Programmer and understand certain concepts, you’ll be able to do it yourself.

Granted, there are some common sense points in there, but most of the valid points on his list are just that: common sense. There are a few noteworthy items that aren’t common sense, but I was so taken aback by some of the outlandish claims that I can hardly count those. Don’t say I didn’t warn you, if you feel your IQ drop while or after reading that list.

Disclaimer: I don’t really think this person is a lousy PHP Programmer, but I do think it was in poor taste that he BSed a list like this and included points that are completely unreasonable.

Comments Off : more...

On the Warpath

by Jeremy on Feb.05, 2008, under Uncategorized

As much as I hate to upstage Shroomy, when I saw this I had to link to it.

You saw my response to CIO’s piece of trash article about PHP. Now, have a look at Terry Chay’s.

Enjoy.

Comments Off : more...

Why do you do that?

by Jeremy on Feb.04, 2008, under Uncategorized

What is with the blog applications that bring entries back to the top of the RSS Feed when they’ve been edited? That has to be the most retarded functionality anyone’s ever come up with.

Case in point, I was reading Planet PHP this morning and a 2-year-old entry that outlined the ongoing childish attitudes some people within the PHP Community have resurfaced. If I hadn’t checked the dates on all of these particular blog entries, I would’ve thought this was new material. Since this entry served as a gateway to another blog entry that was a specific attack on Chris Shiflett, any random passer-by who thinks this is all new stuff is going to a) have negative thoughts about the “whiner” in question; or b) have negative thoughts about Chris over something that’s two freaking years old.

I implore you. If you’re the author of any blog software, stop doing this. Not only is it extremely annoying to get repeats of old crap in my RSS Feeds whenever someone edits something, it can lead to potentially hazardous things like this resurfacing and causing unnecessary damage to one or more people’s reputations.

Comments Off :, more...

Privett on PHP Reposts

by Jeremy on Feb.02, 2008, under Uncategorized

I’ve gone through and reposted some of the old entries from Privett on PHP. Just the ones that I thought were worth bringing over. I set their dates to their original date of posting so that they wouldn’t all float up to the top here. You can scan through the PHP category if you want to go back and read them again.

Comments Off : more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!