Some neat new apps I found …

The first is one allows for remote control of your phone via a beautiful web interface.

AirDroid: http://market.android.com/details?id=com.sand.airdroid

This allows for what is called a “toast” style notification. Really just check it out.

NotifierPro: http://market.android.com/details?id=com.nlucas.notificationtoaster

So I was working on a robot and…

My roommate has a cog-sci class that wants him to build and program a robot. The class gave him access to a number of LEGO Mindstorms robots, along with the included software to build a cognitively interesting AI for said robots.

Well, we just finished the robot. It uses a treaded design with moderate clearance (relative to height), and a very low center of gravity. It also has an armature in front that could be used for plenty of ideas (none of which I care about, its his project to decide.)

Anyway, we finished the robot and decided it would obviously be funny to test it out on a 3 foot savannah monitor lizard. Yeah…

I hate Java.

I hate java. No really, I hate java.

Or maybe I just hate java developers and their general inability to write clean or straightforward code. It’s not like it’s a bad idea to interchangeably use EVERY SINGLE DESIGN PATTERN APPLICABLE TO OOP AND IMPERATIVE LANGUAGES IN GENERAL, right?

I’m working on a project right now that requires me to either port or re-implement some functionality from Java into C++. Not so bad right? I wish it were so easy:

  • Object inheritance out the ass. I have instances where 3 objects inherit from one interface. Object one is a fully capable object. Objects 2 and 3 are stub implementations that provide a specific use case which could very easily be brought into the first object. Why is this a problem?
  • Because of run-time types being used in major logic sections. No where in the entire program is it necessary to use the specific case implementations of these classes except internally to said classes. Yet major logic is being done inside these classes based upon type checking. Type checking that could be done with either an if( defined ) or with an enumeration.
  • Exceptions being used for logic. This right here, its just bad form. I mean, really, weren’t we ALL taught from the moment we first started coding that goto was simply bad form? It leads to spaghetti code, which leads to a headache reading and debugging, and then on to no maintainability.
  • Oh, lets not forget an insane object dependency graph. Lets say I have package a which provides a generic interface to be implemented by package b used through a factory interface. package a is intended to provide that generic interface to other areas of the software without them caring about the explicit implementation. So then why does a completely unrelated set of packages that need the interface of package a rely explicitly on package b? This is even worse than the previous problem, since it sends me searching through 35 different files to figure out what happens when I call a.mytype.add(a.mytype);.

I suppose there are programmers that do this in every language, but why is it just so damned pronounced in Java?

Oh, and let’s not even get into memory management.

A Significant Milestone

FightOrFlight now has cross-network connections (multiple machines), entity syncing, and a little bit of graphical acknowledgement. I’ve got a few more things to implement, like actual real-time syncing, client-side network replicatable input, game mechanics, and media.

Games can currently only be played on the local subnets of the host, as clients attempt to connect to a broadcast address. Future iterations will provide ip-based connections and a server lobby (all in a pretty gui) so that players can pick and choose the game they want to join. Latency checking should be relatively easy to manage by this point, so that’ll be in there too…

More Work?

And work continues on the project, its going slow since I seemingly have to do it all myself (hopefully except for model generation).

But, networking is up, at least for a good deal. I need to implement entity syncing across the network. I have (at least) network connection and disconnection, as well as raw data traversal.

Work continues

I’ve been working almost non-stop for the past week.5 or so on this project. Lots of fun too. I’ve only come across a single major hurdle so far, and that was getting enet to do client/server interaction. It wasn’t exactly hard, but it gave me trouble since enet’s header files make no mention that I needed to specify NULL in a specific location to create a client versus creating a server.

Now I’m working on bringing client/server syncing online. This requires having a basic working graphics presentation, a basic scene format, a basic object creation and replication means, and command blocks on the networking side.

Wish me luck!

A new project for me…

I’ve up and started a new project (with my game-dev group ULSGD). As of now its called “Fight or Flight,” but that’s nothing more than a working title for the repository.

It is intended to be a newtonian space-flight simulation dogfighting game, with networked multiplayer (likely no more than specifying server) utilizing Bullet, Irrlicht, cAudio, and as yet some undecided networking library (probably enet since it’s so darned straight forward).

Don’t expect anything wonderful, but I’ll keep my readers (all none of you) updated on how this project goes. It ought to be fun…

KDE

So I took the time to install Kubuntu today, for no apparent reason. I’ve been rather sour towards KDE in general, ever since my first experience with Linux back with slackware 7. I’ve also, over the years, taken the time to try out the latest and greatest from the KDE team at several points, and each time, I’ve kept my distaste after.

Well for the first time in 10 years, I’ve decided to give KDE another try. A real try, at that. I’ve completely wiped my standard Ubuntu installation and replaced it with Kubuntu 10.10. I realize that the next iteration of Ubuntu is about to come out (11.04) in another 40 or so days from the time of this writing, and I further realize that fact with the sidebar widget right on the side of this post. That fact being said, what better time to take than a month before I’d probably be reinstalling anyway to attempt my hand at something different?

Well down to the meat and potatoes: my initial review of a technology that’s been out for months now.

At first launch, KDE presented me with a pair of quite useful desktop widgets, the micro-blog tool, and a desktop folder tool. I’ve set up both of these now, one with my twitter account (which I’ll hopefully be keeping up with more since its in my face), and the other to display my home folder (versus my desktop) for quicker access to my data.

The second thing I approached was of course networking. This was pretty straightforward on the hardware side, given Ubuntu’s rather legendary support of as much hardware out of the box as it possibly can. I was very much impressed, after figuring my way around, of the KDE network manager. I especially appreciate the adapter and network statistics only a single click away.

The third thing I approached was package updates and essential software. I’m used to xchat, so I reinstalled that for irc. I decided to give Kopete its chance for IM, since it is integrated into KDE after all. I installed both netbeans (for work) and K Develop (which I haven’t touched yet). I’ll get into that later.

After that, the order got a little crazy. I put on chrome, added a gmail notifier tray daemon, and probably fiddled around with a few more things like screen saver (i can’t find the one i want, btw). Of these processes, I believe my most enjoyed task was the notification when I launched a new program that there were extensions available for me to install.

Lastly, I installed Blogilo. I had been looking for a good blogging tool since about a week ago, when I tried and failed to get Blogtk working (broken package dependencies). I had noticed that Blogilo was an available KDE package, and decided “why the hell not, its features look good enough.” And I have to say, this is now my favorite blogging tool ever.

All in all, my impression of KDE is very high, and I’m not exactly sure why I’ve been so sour towards it all these years. It could easily be the extremely crappy performance I’ve had with it when installed alongside GDM/Gnome.

Questions or comments? Let me know of more fantastic KDE apps!

Fro-yo own good!

I managed to build a copy of the froyo-sd branch for Openmoko Freerunner and the Android-on-freerunner project.

You can find the file here

You can find the AoF project over here.

Feel free to mirror this build. I can’t really say how I managed to get it built, it was a lot of time waiting for builds in my vm and my laptop separately…

*update*

To use it, you’ll need to have either your first or 2nd partition on the sd card formatted as ext2/3. You’ll also need qi as your bootloader. u-boot is not tested, and I don’t plan on ever testing it. Extract this tarball to the sdcard and plug it into your phone. If you want to also have sd storage available, make the 1st partition fat and the 2nd as the system.

To actually be able to do something, you’ll have to manage to either get animations turned off, or get screen orientation turned on, or both. This is not trivial, since the screen doesn’t redraw like it should with animations on.

Any questions? I’ll try my best to answer in the comments.

10 10 on 10 10 10

After just installing Ubuntu 10.10 on my laptop, I can immediately notice a change in the system. At first launch I notice my login screen is different, a little prettier than before. It catches the eye just a bit more than previous iterations of gdm.

The next major difference I notice is the FONT. I’ve never realized how much of an effect a system’s font has on the experience. As of right now, I am quite pleased with this new font. It seems to bring out a feeling of ease while using the machine. I feel right at home with it.

Obviously there are going to be plenty of people that think the changes in the latest version are somehow a disgrace to the name of linux, or some other silly idea. I personally find that Ubuntu 10.10 already lives up to and beyond my expectations with the few small changes that I already see with just the first 5 minutes of using the OS.