Tuesday, November 26, 2013

JediChat update

I got the server GUI working right (for the most part). I'm going to post an image of my progress (yes there is one error in the chat dialog, BUT AT LEAST IT WORKS).

So here is an image!

I have two clients and one server. And a launcher in the upper left-hand corner (but you can't see it). The default port is 31337, but you can change that. Just click the "start listening" button and the server will wait to accept new client connections.

See the error? [NEW_USER] is one of the software-level protocol broadcast messages I spoke about in the previous post. It's broken here, but the error gives an opportunity to explain what it does. For now, I only have [NEW_USER] and [USER_LEFT] (tells clients to update online user lists), but I'd like to work in some others in the near future. When the client reads the special broadcast messages, it doesn't treat them like regular messages, it tells the client to do something. It reminds me of my scripting language, and how it works. Very similar. Very awesome. I really like where this is going.

ANYWAY. I've got /connect user@server:port and /disconnect working and I have a lot of other cool slash commands like /nick and /who, but I also have a new command in mind: /new user, which will open a privatized chat tab!

OKAY. Well. I'm off to bed. It's 4:00 AM here in OKC. 1337dr34mz c0d3junk33z

Friday, November 22, 2013

JediChat

In Advanced Java, we have to get a development team together, talk about a final project, and then work on it.

The professor told us to get to know the others in the class so that we'd know who to add to our teams, but the task was due by the following week. I actually have some pretty decent social skills thanks to my year of retail experience (and being a decent salesman), but I still didn't have enough time to meet every single person in the class. I decided to add the guys who sat closest to me. The majority of that class has dropped anyway. I'm glad we stuck around.

ANYWAY. "Jedi?"

A long time ago (2007), I was concurrently enrolled through my high school at a local voc-tech (MNTC), and I took my very first programming class at this school. The language was Java, and when time came to assemble a team, I did, and I named my team the "Java Jedis." We were all Java Jedis.

Now that I have provided a historical explanation as to where the "Java Jedi" idea originated, you can extrapolate what I decided to call my most recent team. And the project I decided we should write is "JediChat", IRC-like chat software written in Java for and by Java Jedis.

I've written everything by hand, by myself, but I did have to use Google to remember how to sockify everything. Worked on a software-level protocol for sending the messages, and made a pretty GUI with Netbeans. Yes, I use Netbeans; not Eclipse and Windowbuilder. I'm a huge proponent of Netbeans (it's what I've been using for six years).

Here is a screenshot of a console based server (for debugging) and the graphical JediClient sending messages to it.


It needs some work; not going to lie. See that empty box on the right-hand side of the frame? That's a user list. Notice the tabbed pane? The main tab is the JedIRC (clever, I know) view, which allows a normal broadcast chat for all users to communicate simultaneously. Privatized messaging is on its way. The JediServer GUI is pretty basic, with just "kick" and "start listening" buttons, and a list of users, and I'm thinking maybe the console-based server is the better option (I'll include both) in the tarball.

P.S. I've been sick for the past week, but I'm still being productive.

And if you are a Java Jedi as well, may the source be with you.