jump to navigation

Who Fancies Starting From Scratch? April 13, 2011

Posted by ismywebsite in general.
trackback

Apparently, I wasted most of the last 8 months.

My code has unmentioned problems, undescribed shortfalls, and unexplained ‘issues’. “It just… doesn’t work.” What’s worked for me to enable me to quickly rebuild features at a practical rate of one per day, has mysteriously not had the same effect for any of the other developers.

Speaking of mystery, afraid I would “mess things up”, the entire development team apparently all together, decided to recode the site from scratch. You can see the start of their project here:

(Link removed at developer’s request.)

Hackers will love one of the features of the new system, a handy Crypto() class to let you decrypt any piece of data you like. Give it encrypted passwords, emails, anything you like! The Crypto() will decrypt them all for you while asking no questions at all! What a nice faithful helper.

Edit: Crypto is protected with a couple of additional checks that I was not aware of. So it does ask a couple questions.

In addition, here’s a great new solution for your extra typing pleasure. The setField($v) function has been expanded to modify(“field”, $v). For additional fun, the “field” doesn’t actually match the field name, so you can have hours of entertainment remembering what it is.

But that’s not all! Buy now, and you also get this well chosen quote:

“It’s a short trip from riding the waves of change to being torn apart by the jaws of defeat.”

Talk about riding a wave of change into a sea of defeat… I see a short trip with a long fall.

Advertisements

Comments»

1. Nick (NickoCP) - April 14, 2011

2. Marc - April 14, 2011

What is going to happen now? Will clients continue using IsMyWebsite 4.0, or shall we switch IsMyWebsite Nebula ?

Jcubed - April 15, 2011

For now you should continue to use IsMyWebsite 4.0 as before.

3. Marc - April 14, 2011

Just so you know, I’m rooting for 4.0.

4. ismywebsite - April 14, 2011

There would be another transfer process similar to the one you just underwent, more downtime as we migrate DNS settings over, and a whole bunch of features I expect wont be able to be coded in time.

The entire present version is 214,000 lines, and they expect to recode it in what’s left of this month.

Marc - April 14, 2011

Don’t you have a say in this?

5. mr glasses - April 14, 2011

Rewrites always take longer than fixing a mess…

Even so, I wish the IMW team the best.

6. Brendan McNiff (cobrastrike) - April 15, 2011

A good deal of the information in this post is incorrect. There is a new system that is being worked at, but it is by not ready for a public test. When that time comes, there will be a voluntary test. No migration process will be required as it will already be completed for you.

No DNS changes would be required.

Feel free to contact me directly with any questions regarding this project.

7. ismywebsite - April 15, 2011

The Crypto() information was incorrect, so I’ve added a correction.

It launches apparently in 15 days, and nothing is ready to be tested? Does that 15 day launch window include testing? How do you expect to accurately find all the problems in the alloted testing window? What happens if when fixing those errors, new errors are introduced?

As for the migration I was told everyone’s data would ‘manually’ be moved over. What exactly does that mean? Also, it’s a great luxury that you only have 600 users to worry about migrating.

I wasn’t implying any DNS changes would be required. However, at some point, the DNS will need to switch to a new system where zones are generated based on the new classes. If that fails in any way, is anything less than 100% perfect, then of course DNS goes down and anyone trying to access the site at that point has cached the wrong location for the site in question. (Meaning if they don’t know it’s happened they can’t access a site for up to 48 hours.)

So hope that clears up my communication.

Nick (NickoCP) - April 15, 2011
8. Deltik - April 15, 2011

IMPORTANT NOTE:

This blog post is extremely biased. When you realize the real situation, you will be in favor of “Who Fancies Starting From Scratch?”.

Hear it from me, a real IsMyWebsite Development Team developer.

9. J,R,D, Ltd - April 15, 2011

So what exactly is going on here?
1. Is IMW going down again?
2. Did the dev team do this without talking to Matt first? If so, why?

Deltik - April 15, 2011

1. IsMyWebsite is going to go down if the foundation isn’t solidified. The Development Team is the foundation. As the IsMyWebsite Human Resources Director and with conjugate support from Cobrastrike (Administrator), I think it best that we develop this foundation correctly.

2. The Development Team did indeed do this without talking to Matt first. It was an accident that this got spoiled out before we intended. If we let Matt know about this, he would try to “help”, which would very likely hinder our progress. Matt has typed things to us to try to stop us from making this, but we are stubbornly continuing. This new system that we are making has been designed to be a much better system than before.

J,R,D, Ltd - April 16, 2011

1. I agree.

2. It sounds good, and with the whole Dev team working on it, it should be better and done faster.

10. ismywebsite - April 16, 2011

What do I do? Right now a client tried to buy credits and the system is broken. So they didn’t get the credits. I also have no system to pay them.

I don’t want to waste 3 hours building these systems, and fixing the broken feature, possibly more, as that time may completely be wasted. If I don’t solve this issue now, it will get forgotten in a couple weeks.

Please tell me what I can do about this.

I also will not accept a final system with any methods longer than one screen. Just so you know now, and there are no surprises later. It’s just bad design to have more happening than one can easily comprehend in a single method, and things get lost easily. If I can’t grasp quickly what that method does, it’s an awful mess.

You know I hate giant switch constructs too. This comes from my own experience using them all the time, and how bulky they get. There is almost always a better way.

Specifically, please do not have the modify method in a giant switch construct with mismatched names. That will break all the current code and also be very confusing.

NickoCP - April 16, 2011

Let me know when you have a solution to giving me the credits I bought.

Deltik - April 16, 2011

It’s one flexible Class::get() function and one flexible Class::set() function.

User::get(‘username’)
User::get(‘user’)
User::get(‘name_user’)
all do the same thing. It’s a convenience feature.

… and there is no giant switch statement. It’s a PHP array and a global function called associate().

This IS the better way. It allows for one foundation where each individual developer can use his own preferences in coding. Also, if the developer did not know the exact field for the database, he can guess.

Not many people would agree with `users`.`name_user`, but if ‘user’, ‘username’, and ‘uname’ are also acceptable, there is no problem with flexibility.

11. Bigbucks - April 16, 2011

May I also add, ismywebsite needs to FULLY test EVERYTHIG before releasing it. 99% of the issues are caused by miscommunication between the imw staff, and between the imw staff and the community. If things would be thoroughly tested before release, finding everything that could go wrong, then there would be no issues.

Also as I have stated MANY times before to Matt, imw needs to have a strict coding guidelines, preferably in a hand book. If everyone follows the same coding guidelines then it would be much easier to work on projects as a team.

Another main issue is for unfinished projects being released, such as the market place. If everything isnt working correctly on it, IT SHOULDN’T be released, ESPECIALLY if it involves real money..

12. ismywebsite - April 16, 2011

Okay well two things:

1) I don’t see a problem leaving the field name as ‘user’. Why on earth would you change this? Every single version back from 5 years ago the field has always used that name.

2) Why not create setUser and getUser as methods? You told me it was possible to create a dynamic method like that – more effective than my compiling. So why not?

13. Deltik - April 16, 2011
14. Jerald Johnson - April 24, 2011

Matt, here is your dynamic setter/getter

http://codepad.org/53PAbCDw

This code needs to be used in a class, but we only use classes, so it’s not a problem.

15. Jerald Johnson - April 24, 2011

Oh, and, yes, I do use double spaces. Much cleaner IMO.

16. Jerald Johnson - April 24, 2011

sorry again, better example:
http://codepad.org/XguL2qr0


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: