SimpleBlog Work Post

April 17, 2014

10:29am- I finally have internet at the cafe I’m working at. I’ve been working for about a half hour aready, working on the login function JavaScript. I’m about to make some modifications to the php login function to stop code insertion.

11:44am- I’ve been working quite a while and haven’t tested anything. I’m sure something will go wrong with this code, and debugging it is going to be a pain. I’m still working on the login function. Right now I’m working on the part where it shows the hidden logged in options bar and hides the login form.

12:13pm- Now I’ve got it so that if there’s a session ID cookie it displays as if you’re logged in. It’s getting close to test time.

12:20pm- Test time! Also lunch time. I’ll be debugging until my food gets here. I’ve got my first bug too. The login form is nolonger displaying to the right of the page with the CSS Formatting.

1:14pm- Well I got the javascript errors cleared out, but now it’s throwing ajax errors displaying the entries. Unfortunately I’ve hit my limit, it’s hard to keep my eyes open. I need a nap, so this is where I’m calling it for now.


SimpleBlog Work Post

April 16, 2014

Well I’ve finally found time to work on my SimpleBlog project again. Well, this isn’t the only time. Last time I worked on it, I didn’t save my notes, so I’ll summarize here.

I added a CheckLogin function to model_SimpleBlog to check the login data, and removed the checkLogin function from controller_SimpleBlog.php because its unneccesary now. The web app will know it’s logged in because it’ll have a session id, or it won’t. Checking the login data will happen on login.

9:51am- Getting started. The work I did last time has got the groundwork done for logging in and returning a Session ID. Now I need to make the login form work and make the system check for a cookie with a session id. I’ll start with the latter part.

10:47am- Okay it now checks for a session ID in the cookie when the page loads, and if it finds one it assumes the user is logged in. Next I need to make the login form work, but that’ll have to wait for next time. I just remembered something I had to do at home.


Hibernation Over

March 17, 2014

Well, I haven’t posted anything since October, and frankly I haven’t done much since October save for a bit of job searching that didn’t go anywhere. I think part of the problem is my lack of a portfolio. I haven’t finished my SimpleBlog or even worked on it in months, but I still have my Tile Matching Game to show off, so that’s what I’m going to do.

The first thing I’m doing today is getting a portfolio link page set up here on my ElectricSquirrel.net coding blog.

1:28pm – Work begins. Loading up FileZilla to find the last edition of my Tile Matching Game. Of course, there’s a new version of FileZilla to download, so while that’s going I’ll write up a description of the Tile Matching Game in the blank new page I’ve got open in annother window.

1:46pm – I’ve added the page, but something went wrong with WordPress and instead of loading the page when you click the button, it takes you to a list of dirctory contents. Not good.

1:51pm – Oh for goodness sake, I already had a ‘Portfolio’ folder and now it’s linked to by the page. I should be able to fix that…

Alright that worked fine.

I should also add the two websites I worked on to the Portfolio page.

2:03pm – Alright I added the websites to my portfolio. Hopefully now people will come to my coding blog and say ‘Oh, this person has done things before! We should totally hire them!’ and not ‘This person may be a college grad, but how do I know they know their stuff?’

We shall see!

I’ll admit I thought this would take more than a half hour to do. I suppose I should get to work on my other hibernating project, my SimpleBlog.

First, where did I leave off…

Ahh, it looks like I last did some work in December, I just didn’t write about it here on my Coding blog for whatever reason.

2:35pm – Ahh yes, I was struggling with pagination for moving through the entries in the blog, and had just solved the problem. The next stage of the blog is a difficult one; logging in.

2:56pm – I’m not really making any progress. I need to take a break and read up on the techs I was using before.


SimpleBlog Work Post

October 11, 2013

Last time, I put together the basic HTML of the simple blog. Today I’m going to work out the interchanges.

When a user first comes to the simpleblog index page, they’ll be presented with a list of the ten most recent entries, a login form, and buttons to display the next ten or previous ten entries chronologically.

So the first thing that has to happen is that the page must ask the controller for the ten most recent blog entries. This means the controller must ask the model for the ten most recent blog entries, to share them with the view, the page.

If the user enters data in the login form and presses the login button, the page must give that data to the controller to compare it with the login data in the MySQL database. I’ll enter that data directly, since it’s a one person blog. So there’ll need to be a model for the login database as well, and functions to access it.

When a user successfully logs into the blog, a persistant field will be created so that the user stays logged in. The sidebar will also be changed to include post and logout buttons via a script, and hide the login form.

When a user is logged in, each post will include edit and delete buttons. Edit will bring up a version of the post page with the data from that post. Delete will bring up a dialog box to confirm, then on confirmation will delete the post.

The post button will bring the user to the post page to allow them to post a new entry.

The Post Page itself will be a simple form with a post button. If the post page is shown in edit mode, it will say confirm edit instead. The post button will create a new post in post mode, or save the changes to a post in edit mode.

In edit mode, the Post page will load a previous post, so there will need to be a function for that in the controller and model, and a function to save over the post.

That should be everything. If I’m missing anything it’ll be discovered along the way.

Now I’m going to bed. It’s been a long day but I’m glad I found time to work on this.


Simple Blog

October 9, 2013

So I’ve given some thought to the WebMUCK Project and I’ve decided to put it on the back burner. It’s more complicated than I had anticipated, and it’s not going to be done for a while. I need to pump out some good, short projects for my portfolio, so I’m going to do what most of my class did back in school and write a simple blog. Well, I’ll do it a bit fancier than they did. I’m going to use all my HTML5, CSS3, JQuery, AJAX, PHP and MySQL skills. Well, as many of them as I can squeeze in there at least.

Now I’m going to do a rough inventory of what I’ll need to create to do this.

Viewing Page
Post/Edit Page

Just three pages. Lots of scripts though.

The Viewing Page will need to access a PHP Script that will show blog entries. It’ll need to be able to tell which entries it’s showing, so that it can show pages of ten entries at a time. There’ll also be a login box for the blog owner to log in and make and edit posts. That means it’ll also need to keep persistant login data.

The post/edit page will be simple by comparison. All it has to do is send form data to a PHP script that will push the data into the database. In the case of editing, it’ll first load a post, but that shouldn’t be much more complex.

I’ll try to keep to the MVC format, so there’ll be a controller_Blog.php script that the pages make RESTful calls to, and a model_Blog.php script that models the database and permits interaction with it.

I think I’ll start by making the basic HTML of the pages, then plan out the functions and methods for the scripts and how they interact, before implementing them. I find it helps to have something to look at to put everything in perspective.

—–

Alright, the HTML and CSS for the basic index page are done. I’ll have to edit them once I start actually programming, but this gives me something to start with. Next I’ll do up a form for posting/editing entries.

—–

And that’s a nice little post page. I think that’s enough for one update. I’ll share the github repo later.


Progress Update

September 28, 2013

MyFirstChatroom is coming along. I’ve decided to start by getting the hand-entered entries from the database onto the chatroom box to make sure my pipeline is working, before moving on to live updates and posting entries.

It’s been a while so I’ve got to refresh my memory on how to have two PHP scripts talk to eachother. Looks like the only way is to have the controller contain an instance of the model.

The model has an array that the controller needs to access in a variety of ways but I don’t want to make it public, so I’ll have to make a variety of accessor functions next. For now, I’m out of time.


September 25, 2013

So despite life’s penchant for getting in the way, I’ve been continuing to work on the MyFirstChatroom prototype. So far I’ve made most of the controller and database and started on the view.

So far it’s just two text areas and a post button that runs an empty click handler. Before I do the click handler though I want to do the function that gets the chat from the server, and before I do that I want to make sure I can set up an event timer. I thought there was one in JQuery but I can’t find it, so I’m going to try JavaScript.

—–

I actually folded up my laptop and left my work overnight, so the following is the next day’s work. I was easily able to find a JavaScript timing function that works wonderfully with JQuery; that’s probably why they don’t have their own. I’m working on the AJAX for getting the chat entries now.

I’ve got the most basic infrastructure down, but today’s just not flowing right so I’m going to take a break and maybe work more at home later. I think I may want to work out the interactions between the controller and view ahead of time next.


September 8, 2013

I’ve been on medication for only four days but it feels like so long. I wouldn’t have guessed it was that short if I hadn’t just looked at my project changelog. The last entry was the 4th. I’m feeling somewhat better and so I’m able to go off of the mind-bending pain killers and just use the standard kind.

My next task is to complete the Create() function in the model_Chatroom class that’ll create new chat entries and delete the oldest after the buffer fills. The function will return true if it works, false if not.

It’s been a while since I used PHP MySQL querries so I’ll need to refresh my memory. *refresh*

*work work work*

And there we go. It deletes the oldest entry by timestamp if there are over 200 entries using the most arcane MySQL command I’ve ever used. Short and effective though, and safe as far as I can tell. Very good.

I’ve added an empty UpdateViews function, to interface with the views later when they’re added. Basically, it’ll have to tell everybody when something is updated, or they’ll have to constantly ask, one or the other.

It occurs to me at this point that I’m building a completely annonymous chatboard. Well, I suppose that’s to be expected without adding an account system. I might do that for a second version before starting the WebMuck proper. There won’t be any security or admins either, just a bunch of text blocks listed by timestamp. Oh god, I’m making 4chan aren’t I?

Next time, I work on the controller.


Sick Break

September 8, 2013

If anybody out there is curious why updates suddenly stopped, well, I got sick in a bad way. Infected tooth, extreme pain, I’ve been heavily medicated for like a week now. I’ll be doing more work once I’m better.


More MyFirstChatroom Design

September 4, 2013

So, I’m continuing to work on the basic design of MyFirstChatroom. After discussing it with my brother, I’ve decided that the model_Chatroom class will model the entire database. So, it will have an array of 201 entries, and when that list fills up it will delete the last one and push the newest one in.

Database:
id
timestamp
chatentry

I’ll make the chatentry a TEXT type. That’ll give it a max size of 65,535, way more than enough for any chatting. I’ll have to make sure to limit the input to nothing beyond that, though.

Okay, the table has been placed on the database. If I need to change it, I can modify it later.

*work work work*

It occurs to me that a timestamp must be unique, since it’s accurate down to the clockspeed of the cpu and thus each call to the timestamp function is at a different time, so I can use it as the primary key of my db after all. That’ll save me the trouble of recycling 200 ids and simplify everything, so I’ll do that. *does that*

*work work*

For the most part I’m just copying the structure of most of my PHP programs. I’ve got a nice, commented block of code for accessing databases that I use. Not much to say about it. Making the model_Chatroom class work.

I’ve finished the Retrieve() function, which gets the list of chat entries from the database. Now I’m doing the Create() function, which creates a new entry, and deletes the oldest if there are already 200.

Alright I think that’s enough for now. The next thing I need to do is write the code that determines if there are over 200, and finds the oldest to delete it. I might have to figure out a different way of sorting the chat entries in order to rank them in age. Timestamp is probably different between MySQL and PHP.