For the past month, I’ve been working with my school’s Robotics team. We took on a 6-week intensive project on building a robot that in the end results in a 120 pound, 5 ft tall robot.
That video was taken after 22 hours of straight work (9:00 AM Sunday-5:00AM Monday last week) at 3:00 AM in the morning at NASA Aimes in California, the day the robot was due to be shipped off. In fact, I wrote up the 5 stages to sleep deprivation:
Anyway, the objective of the competition is to collect what they call “space rocks” and put them into an opponents trailer. The “space rocks” come from outside by another team member that throws them in or by another robot. Our robot pretty much sucks them in if it passes over them and we can store them up and shoot them pretty accurately from a close range into an opponents trailer.
Our team will be competing in the FIRST competition at Davis College in California. I certainly have had fun helping to build and program this robot. I got to use lots of loud and powerful machines in building this robot as more then 80% of the robot was custom made and all of it was put together by hand. I hope we put up a good show at Davis and have fun doing it. Perhaps we’ll even go to the nationals at Atlanta.
If you would like to check out more, our robotics club has an entire site for it at http://evhsrobotics.com/.
Never develop your application to “second-guess” or “compensate.” Doing so will only give the impression that the application is smarter then it actually is, and eventually intent-errors will plague you. Remember, computers are built on the foundation that it cannot guess correctly what you want. That is why everything is explicit.
Expect the unexpected
There is absolutely no doubt that you will run into issues you never dreamed you would encounter with your application. Your best bet is to prepare yourself for these issues as much as possible. I recommend two or three punching bags.
Experience, Experience, Experience
Experience drives good practices. Good practices lead to a good product. I cannot stress that enough. However, you must be patience because only through time will you will gain experience.
Start small
An Onion is made up of layers upon layers of work, built upon previous layers, and layers before that- All the way down to the seed that sparked your creation. If you try to take on something big, first thing, you will fail. You will loose yourself upon the thousands and thousands of standards, features, ideologies, et cetera, that need to be accounted for in order to make a program good. So start small and don’t spread yourself too thin. Focus on the functionality first, worry about the design and other necessities later.
Be Creative
There are no limits to your imagination. Write down all of your ideas and consult your friends and others on ideas and feedback as well. The best thing to do is implement all the ideas you and others reasonably have first. If you plan on doing it later, don’t. Do it now. If you delay it for a future version, it will only be harder. If you will, once you bake a cake, you can’t easily go back and change the filling.
It’s about time I got a domain and as you can see you’ve probably been redirected from the old tiki.rct3x.net domain to the new http://thetikitiki.com/ domain. In large part thanks to my brother as a birthday present. I also now have a PayPal account properly setup which is something I’ve been meaning to do for a while now.
In other news, MyBB 1.4 Beta Refresh 3 has been released to the beta testers and it will be the last one- providing no big issues pop up and the bug flow continues to slow- before we decide what to do next. We can either choose a public beta or push it out as the final release of 1.4.
There are many other things that I’ve been up to apart from MyBB. Just this last week I had a 3 page research essay due on Monday, a 5 minute video presentation for Spanish due Wednesday, a geometry test on Thursday, and a PowerPoint due Friday. And then all the normal homework the teachers feel they need to assign on top of that. And to top it all off I came down with a really bad cold. Next week I’ll be doing a History presentation. Then in two weeks I’ll be doing my finals for all the rest of my classes and then on to my possible Internship over the summer. Oh and I’ll be needing to get my driving and work permits.
After a month and a half long donation drive and 2 weeks of waiting, ordering, and waiting, it is finally here. The new NCAAbbs Server (Actually two if you want to get technical) will fix our load issues with massive crowds and bring stability to the server for several years.
(Each image links to a ultra hi-res image)
And here’s a breakdown of the costs for the new server:
We’ll be upgrading to a 4U Rack at our datacenter (They’re all out of 2U’s) and setup one of the servers to “master” and the other two to “slaves” with replication technologies. I’ll also be back porting some MyBB 1.4 code for this special occasion (The master/slave technologies)
If everything goes well this should be up within the next few weeks; If you want to stay updated check out the NCAAbbs forum here: http://www.ncaabbs.com – Updates will be in the “Lounge -> Sports Bar Main” forum.
Feel free to ask questions below and I’ll be happy to answer.
Warning: The following tutorial is for MyBB forums only. Instructions for other forum software may vary.
I’ve recently been noticing large forums coming to MyBB. One for example is http://www.talkvideogames.com/ with nearly half a million posts, taking up position #2 in place of MsgPlus. So I decided it’s time for a tutorial on how to ensure your server is running fast with MyBB:
1) Change the mybb_sessions table to a HEAP (or MEMORY) type. This will ensure that the table is stored in memory. It won’t cause problems because it’ll be truncated often (sessions 24 hours or older are trimmed at random)
2) Make sure your kernel, mysql, php, and all extensions are up-to-date.
3) Install Zend, eAccelerator, and or memcache extensions for php. MyBB 1.4 will take advantage of eAccelerator / memcache. Installing APC (Advanced PHP Cache) is usually worth it too.
4) Turn on the MySQL Query Cache if it isn’t on already.
5) Remove PHP extensions that you don’t use – you can always turn them on later if need be.
6) Optimize your tables weekly using a cron job of some sort
Just a note; MyBB 1.4 will continue to provide continual speed improvements for you and your forum. Things like the new task system will allow you to manage your forum better and more easily.
I’ve just finished coding (Well, Chris wrote the base of the code) a new feature in. MyBB 1.4 will now feature MySQL & PostgreSQL slave drivers. (Yes We’ve added PostrgreSQL and SQLite 2 & 3 support for MyBB 1.4). This will come for a great boost in speed on large forums that run on multiple servers (think if MyBB ever ran Gaia Online).
Using a MySQL/PgSQL slave driver allows us to separate SELECT queries from queries that modify the database (INSERT/UPDATE/DELETE etc). Allowing that will let each server be tuned to select or modifying to get the maximum performance out of each server and over all have a speed increase on the servers.
Not to mention we’ll be the first free forum software (afaik) to do it. In addition to this, we’ve made many other optimizations to MyBB 1.4 and we are continuing to do so. We just hope this continues to show how dedicated we are towards making you a product that is fast, free, and efficient!
A long while ago Chris had made a blog post on “Bitwise Operators“. Now, just to make it crystal clear, Bitwise Operators are not in MyBB 1.4. MyBB 1.2 was more focused on the code. MyBB 1.4 is focused more on features. Sorry folks, but there isn’t just enough time in the world!
However, I’d like to bring them up again and revisit the idea of what they are and how they work.
To re-iterate what Chris stated on his blog post, Bitwise operators are operators that work on a bit-level. You can assign “levels” to a number. This number indicates the level and later on, will be able to provide us with what users have what permissions. In turn you have an array of users each assigned a specific value.
We’ll use Chris’s crisp and clean example to show how bitwise operators work:
foreach($testers as $key => $tester)
{
echo “$key”;
foreach($notices as $key => $notice)
{
if($tester & $notice)
{
echo ” – $key”;
}
}
echo “<br />”;
}
?>
Now this code will print out the following: 1 - can_view
2 - can_view - can_post_replies
3 - can_view - can_edit
4 - can_post_threads - can_post_replies - can_edit
Now you may be asking how we got that? In case you missed it, tester 4 has a value of 14. Now look at what the tester got: “can_post_threads - can_post_replies - can_edit". can_posts_threads has a value of 2, can_post_replies has a value of 4, and can_edit has a value of 8. Now what does that all add up to? 14! And so on and so forth; See? Simple!
This system can make our most difficult permissions night-mares as easy as the above example. If our course doesn’t change, I believe you will be seeing a lot more of Mr. Bitwise in 2.0 than ever before.
After reading the blog posts on Dennis’s “Removing the copyright is a bad idea”, specifically WJ’s blog post, I decided to bring up his point in the staff forum. Resulting will be a new copyright for MyBB 1.4.
Both Chris and I feel this new copyright should ease up the constroversy and please more people by making it look less like it’s ours and more like it’s yours.
Next up on MyBB, and the first new 1.4 feature to be revealed on my blog, is… Drum roll please
Plugin Version Checking!
Yep, the new ACP now has a way of checking updating for plugins. It will connect to the MyBB Mods server and returns a list of plugins that need updating.
How is works?
GUIDs (globally unique identifiers) are assigned to a plugin after it is submitted. Authors have the option to update their plugin with the option of adding the GUID to their plugin.
A list of plugins with GUIDs in the plugin directory and sent to the MyBB Mods Server
MyBB Mods validates that list and sends back a list of plugins which includes the latest version number and download URL for each of the installed plugins
The MyBB admin CP checks to see the list and compares the versions of plugins you have with the latest versions returned by the server
The whole point of the MyBB Import system is that you can merge databases. You can also select what to import, and what not to import. Now it’s not finished, but I’ll explain what the system does and how easy it really is!
The first step – The welcome page! Not all of the converters have been finished, but this shows what will be done by the time 1.4 is released. Currently we’ve finished: MyBB (Merge), SMF, phpBB 2, and PunBB.
The second step shows you the module list. You’ll need to fill in your database configuration details as shown in the picture below.
This page is where you’ll fill in the database details of the database you want to import.
Once you are done with that, you’ll get back to the module page. Here you’ll see that you can select a module to start out from. These modules need to be done first because data is required from these modules for other modules.
Here you’ll input how many of the module you selected you want to import. Once you’re done with this, click next to continue.
At this screen, it shows you whats been run in the module. Click next to continue; If there are more it will continue on with the module, otherwise you’ll be sent back to the module list as depicted in the picture below.
Here you’ll be able to select the next module, or, if your finished, you can press ‘Clean Up’ and it will show the next page.
The is the last page of the importer before you can visit your new imported board
You can also pause modules so you don’t have to run them all. Say you only wanted to import 10 threads. And of course, you can resume the module if you wish to continue importing them, but we’ll get into that more later