Friday October 17th 2014 |
Lot's of gaps between posts on this main page.For a few reasons. I've also tapered a bit on writing new content for my Blog. I have 238 Published Blog posts since I started the blog in 2009. That is a little less than an average of 1 a week, though I would rather there be more. Even more interesting, is that I have 103 unpublished drafts- some are lengthy and pretty much ready to go, others are a few sentences, etc. It's a hodgepodge. Ideally I'd establish a sort of 'blogging schedule' and also prepare topics beforehand, though I'm unsure how much better things would go then.
Another thing is that when I started this blog Programming/Software dev was more of a hobby, and now that I'm doing it for my work it's slightly less thrilling. Don't get me wrong- my job is awesome and I love programming, but in my spare time I'm a bit less enthusiastic about doing basically the same thing! Even so, I've managed to turn some discoveries that I've made in the process of figuring out technical puzzles into blog posts (anonymized, of course), many of which I would have never discovered and learned about otherwise. My series of posts (1,2) about dealing with Postgres Large Objects from within C# in particular. One of the major side effects has been that I've tended to neglect some of my other projects. BASeBlock, which is really just an 'Arkanoid' (Block breaker) clone is immense, and represents a lot of time spent working on it. I'd like to think that some of it shows, the shame is that it's simply imcomplete. What it needs, is a standard set of levels that exploits it's capabilities. Right now some of it's more technically impressive aspects are only available via cheats. (It also needs to save using a more standard format rather than using the standard Serialization capabilities of the language). Even so- I learned a lot while writing it. Prehender- one of my other projects that I started- I haven't worked on in some time either. GriefPrevention- a Bukkit plugin- I actually sort of started ignoring ages ago. Thankfully, Tux2, one of the other maintainers (and really the owner) picked up my slack and started addressing issues with it. I don't even know what is going on with that project now- as I understand it Bukkit has had a DMCA takedown and other such issues that jeopardize the future of not only Bukkit and all derivatives but any and all bukkit plugins. (which also jeopardizes my "Survival Chests" plugin, which- actually I haven't updated that since Minecraft Version 1.5.2...). But I prattle on! I think I may try to aim for publishing a Blog post at least once every 2 days. It's a lot of overhead, but when my domain nearly expired on the 15th (technically it DID expire, and I had to renew it, but encountered software issues in the control panel) I sort of realized that my site and it's content had taken a rather significant backseat to not only my work but pretty much everything else I did, and I'd like to keep it fresh and not sort of "disappear" and leave behind a shell of a blog- I see a lot of those on the internet already.
|
Tuesday February 18th 2014 |
Behold! an update! I found myself using the Event Viewer quite frequently to track .NET Exceptions, so I created a small utility to make that information easier to peruse. Behold! NETExceptions 1.0
Using my super powers I also turned this rather boring concept and turned it into a blog post. The technical details could be interesting to some. Naturally it only displays uncaught exceptions which could serve to be something of an issue if one has a catch-all exception handler, or global exception handler in place, but in that case you could easily log the Exception details yourself anyways.
I've been considering a rather large change to the site in general, by effectively removing this main landing page and making the blog the "entire site". I'm not quite ready to throw away all the PHP I wrote for the Downloads CMS- but honestly I think it would be a good idea, particularly for SEO. Also, the main page here is a bit depressing and could go with a redesign- not to mention the back-end is a pain, the BASeCamp Updating Component is out-dated and could benefit from changes I've made in it's forked version.
I can say that after writing the above, I proceeded to install BASeBlock 2.8.1. It works just as intended. I'm quite proud of it despite the fact that it will probably never be finished. I've moved on somewhat to "Prehender" which aside from being a poorly named game (somewhat on purpose to be honest) is also a good foray into OpenGL via OpenTK.
When it comes down to it though it seems that I tend to prefer working on software people will actually use aside from myself. BASeBlock is a rather fun game in many ways and I am quite proud that I created a usable and extendible "engine" of sorts to build a Block breaker game on- and I certainly learned a LOT while writing it, since it became something of a test bed for experimenting with all sorts of stuff that was new to me, such as using a PropertyGrid to edit, well, properties- (The Editor makes good use of that and really does approximate a sort of development environment).
|
Saturday January 18th 2014 |
Has it truly been so long since I Updated the main page here? Time really flies.
I've been particularly busy with numerous things. I've been able to write some (hopefully) useful blog posts based on some of my experiences, particularly with Postgres and C#, but unfortunately my personal projects have pretty much taken a back-seat. It is nonetheless quite cool because I have been able to take parts of my own personal projects, such as my Updater, and turn them into something far more powerful, useful, and functional.
My approach for content has been that if I encounter an interesting problem and manage to sort it out in an interesting way, I will make the code more generic (can't be exposing customer data on my blog, after all, and no reason to keep data structures the same), editorialize it, and effectively try to make a post that is entertaining, informative, and useful. It's difficult to purposely look for these tidbits and a few times I've tried to force something uninteresting into an interesting mould and just ended up needing new pants.
Essentially I've pared down my work to, my work- which takes a lot of my time, and most of my spare time is used by GriefPrevention. Sometimes I will forego that and do something on my own, or just play a game or two. And it's weird because I still feel "guilty" about it. Even after putting in a 50 hour week I still feel like I Should be writing blog posts and fixing Plugin bugs and instead I'm relaxing- the nerve!
The worst part is that there is so much I want to do but there simply isn't the time to do it- I want to completely rework my website and rebuild a proper CMS, for one thing- the one I have works but is such a chore to maintain, especially for uploading and adding new projects. What I would like is to be able to actually have that inside a useful UI program, where I just browse for a installer, set the name , write the summary, and the program uploads the file and adds the appropriate database entries, and I can edit those entries easily.The nice thing is I have some ideas on how that would be accomplished since that just happens to be exactly how the version of the Updater I have forked for my job now works, and it works quite well.
|
Saturday, July 27th, 2013 |
I'm juggling several Projects Now. Though I'm uncertain when some will be publically available.
GriefPrevention
GriefPrevention is a popular Bukkit Minecraft Plugin which I now help maintain. I've made a number of changes and just recently was able to (hopefully) squash one of the biggest bugs I introduced in a large refactor and rework for configurability purposes. So hopefully I'll be able to push for a Beta release on that sometime soon. There is still a lot of large improvements that can be made to the project and I hope to be able to make them a reality (completely rewriting the database access and possibly even the low-level abstract classes and the code dealing with them to be more implementation-agnostic, particular for migration of data from one data store to another.
-
Prehender
This was the best name I could think of for it. It will be my first adventure into writing a 3-D game. I've decided on OpenTK for the project, and it utilizes the same Sound-abstraction classes that I also utilize in BASeBlock (right now it even uses BASS.NET, but hopefully I can write a ISoundEngine implementation for the "NAudio" audio framework that works; if so, I will be able to remove the BASS.NET dependency of BASeBlock as well, which has some license restrictions I rather abhor.
I believe I wrote about this in a blog post somewhat. It will use OpenTK, and will be essentially my first adventure into 3-D games that goes beyond the experimental stage. It was a toss-up between this one and a "3-D Snake" game of some sort. This one takes the idea of a block breaking game, and adds physics. I've yet to determine exactly how the gameplay will work, but my current idea is that you have a game field of blocks, and certain colours of balls which only interact with blocks of the same colour. When a block get's hit it get's "loose" and falls. Blocks, like balls, that are moving will "loosen" other blocks that are the same colour. As mentioned in the post, this is a very similar gameplay concept to "Spring Up Harmony" which is a 2-D game that uses physics similarly. I've been fiddling with various ideas and particularly want to focus on fixing some game architecture issues I encountered with BASeBlock by addressing them with "Prehender" before they come up. I've hit some snags with sprites, billboard Point Sprites, and their ilk, which I hope I can resolve and proceed into the thick of it :D
BCSearch.NET
One of the first Applications I published to this website was BCSearch While BCSearch seems to work fine even on modern systems, I would still like to rewrite it using a Modern framework and language and see just how much better I can make it. I recently wrote a blog post on the subject of File Iteration and a natural progression of that has been searching. This particular Application Will be written in WPF and is intended to appear like a 'modernized' version of the Windows 98SE Search Tool, while providing advanced features for search parameters- pretty much the same thing as BCSearch, except I'll be able to work on it properly. (Releasing new versions of BCSearch itself is a painful process of making sure I package up all the appropriate ActiveX Components). Sometimes it doesn't build, other times the forms don't load certain controls, etc- Visual Basic 6 is simply a nightmare. And I prefer C# as a language and platform anyway- so why not bring my old applications forward?
|
Monday, July 1st, 2013 |
I was re-awarded the Microsoft MVP Award in Visual C# expertise today. Very cool. I've been trying to ration my time between my contributions to GriefPrevention, the Bukkit Java Plugin I help with, my C# projects such as BASeBlock and BCSearch.NET (and as-of-yet unreleased thing I recently started working on, which should be clear from recent blog posts on the topic of file searching), as well as work in other languages; thankfully most of the code I have out there being used by others hasn't needed maintenance for a long time, so I'm not exactly burdened with support tasks. I had a few ideas for applications to make for Windows 8.1. Ideally, I want something simple and useful. One of my ideas was a sort of "picture" app; this probably isn't unique but it is simple enough to use as a good base for learning the technology.
I've also been playing 'Star Made' quite a bit. It's a very promising game and I look forward to it's progress. I had some ideas for BASeBlock as a result, the idea to have attachable objects to the paddle. technically I already do this for the StickyBallBehaviour but I was thinking of objects that stick to the paddle that do things, such as turrets that shoot any number of the game's various projectiles using some form of simple AI. Perhaps even some targetting mechanism for selecting a target such as an enemy and being able to "shoot" directly at it. Arguably this could also be a "power up" for the sticky paddle behaviour. When you hold down the mouse it could stop the paddle moving, and you can "target" the next ball which fires when you release.
|
Saturday, June 29th, 2013 |
Added BASeNotes to the downloads. This Project is also Open source, and the BASeNotes Source code can be found On my github.
|
Friday, June 28th, 2013 |
I've been tinkering a bit with BASeBlock. This was helped along by my actually cleaning up the plugins I had installed into Visual Studio a bit. I added a new powerup and paddle effect. What BASeBlock really needs is a 'default' set of levels, but the problem is that the files seem to magically become incompatible due to serialization. The best I can think of would be to try to get the classes to work with XML Serialization of some sort.
The biggest issue is simply that it doesn't really tell me anything about what went wrong, unless I manually insert breakpoints, I simply get a generic SerializationException error.
Hopefully I can devise something that works and is still able to preserve the wealth of data currently being saved into different files.
A lot of my current focus is still on Java and GriefPrevention; hopefully I'll be able to get the changes I've made over the last month or so documented and a version pushed out to at least Beta for consumption, in addition to working out any current issues as best as I can, so I can work a bit more intently on the issues with BASeBlock and push a version out there.
I also had an interesting idea for the Update Library, to allow for updating of resources or other files without actually requiring a new installer. Could be very useful if added.
|
Tuesday June 4th, 2013 |
It has been a while since I did an update on this main page, so I decided today was as good as any. There isn't much to report in terms of my applications. I've fixed a few things, added things- basic maintenance, but those updates aren't available on the downloads page yet. I've been considering polishing up some of my as-of-yet unreleased projects to finally release or at least turn their contents into blog post material. I have however been occupied lately since I was made a maintainer of a rather popular Bukkit Plugin, Grief Prevention.
I have about a half dozen drafted Blog posts that I just haven't got to finishing. In particular I was thinking of branching out my VB series to include C# once I get to the appropriate time frame. The difficult part is trying to cover versions that are so similar (VB3 and VB2) without repeating myself too much.
Also, for some reason I just can't seem to get into a new project lately! It's always the idea that's the hardest to come up with, however. More importantly I've been a bit bummed out since finding a Job that would use my expertise is pretty much impossible. Even finding something computer related appears to be a Black Art. But I won't digress on that tangent again.
One thing that has come from having to work extensively with Eclipse and Java are that I've grown a newfound realization of just how good Visual Studio and the C# language are. Eclipse has a lot of very useful features that I would love to see in Visual Studio, though; for example, it's capability to allow you to have pretty much every project in your owrking folder open or at least browsable at any time. This is particularly useful when you remember that you wrote the code to do it a certain way and just need to quickly take a peek; with Eclipse it's a few clicks, with VS you either start a new instance or close the current project.
I also gave IntelliJ IDEA a go, based on my positive experiences with ReSharper, which is by the same company. They've done some good work with it and the IDE really is quite smooth and well done, and it appears to be better than Eclipse in almost every way- except that "see multiple projects" thing I mentioned earlier, which I never realized is so useful.
I was considering taking advantage of the MVP Offer to get PHPStorm, which I've heard a lot of good things about. It think I can be torn from using Editpad Pro for my PHP work fairly easily; Editpad Pro is a great all-around Editor but as a result it naturally doesn't cater to the requirements of any specific language or Editing requirements, outside syntax highlighting. I cannot fault it for that.
So far Jetbrains is batting 100% for me; ReSharper=Awesome. PyCharm=Awesome. RubyMine=Awesome (Even though my current experience with Ruby is limited, I can still tell RubyMine is an excellent product). Heck- when Redgate proprietarized .NET Reflector, Jetbrains stepped in and gave us dotPeek! Awesome company, Awesome products, highly recommended. (I wouldn't doubt AppCode is better than XCode).
|
Tuesday April 9th, 2013 |
Recently updated BASeBlock to version 2.8.0, then a bugfix release for 2.8.1. It can be found here.
I should also mention that it has been on github for a while now; I recently pushed the latest changes, this can be found here. That repository also includes the "BCUpdate" Library I wrote for handling automatic updates. This is also used in BCJobClock. it essentially communicates with a remote hosted page through PHP/MySQL. The actual PHP source is not available, however it should be relatively simple to mirror the appropriate response format and fork the main library.
I've taken a break from C# for the last few weeks, not entirely on purpose, mind you- I simply don't have any "active" projects in it. BASeBlock is a game and while I think it's great, I also think I ought to start another, more ambitious project. In the meantime, I've worked on my Minecraft Bukkit Plugin, BASeCamp Survival Chests and have added several features to that, as well as adding a few suggested features from the comments. It has spurred me to write another piece on C# and Java, mostly because I haven't written a nice long piece on anything for a bit.
|
Friday, February 15, 2013 |
reworked the page design on the main landing page (that is, here) a bit, mostly regarding Stylesheets. I dumped background images in favour of neutral, solid colors, and tries to make the page flow more "naturally".
Originally, I wanted to actually rewrite the index page from scratch, until I decided that was overdoing it, since I really am quite content with the current design/layout. I much prefer the new style, as well. I of course backed up the old stylesheet so I can revert for whatever reason.
|
Tuesday January 29th 2013 |
I found quite a few crash bugs in BASeBlock 2.7.0, so I've fixed the ones I found. I will be uploading the new version shortly. (2.7.1). This version also has some changed content. The "GameCharacter" now uses original art (as crappy as it is) rather than placeholder Mario sprites. I also added a few Introduction strings that I forget and whose specifics aren't important.
While I'm here, may as well mention one of my other more recent projects- "BASeCamp Survival/Chests". It's a plugin for the Bukkit Minecraft server that adds a few interesting features for the purpose of multiplayer contests.
|
Monday January 28th 2013 |
BASeBlock has been updated to version 2.7.0.0. Changes:
- Added "WoodBlock". This block can only take damage from hits that occur on it's side. Logic being you need to hit it "in the grain".
- Tweaked the drawing of "Cracked" blocks to work more generically. This also fixed some visual issues with the old method.
- Fixed a few crash bugs. Also re-added a music file that was missing from the installer.
- Majorly refactored the internal event system. Now the events use the "C# standard practice". This has no outward effect, but I also fixed a few race conditions while I was there too, so that's a win as well.
This is more a "maintenance" type of update, which fixes a few bugs and adds a bit of content here and there, but doesn't make major changes. Hopefully I can start updating it more frequently, rather than having months go by between updates, but we'll see how it goes.
|
Friday December 21st 2012 |
BASeBlock has been updated to version 2.6.0.0: Major Changes:
- Tweaked Splash Screen/About box. Assembly view (when used as about box) now sizes properly, and displays icons for each item, too. It also is enabled for sorting User size.
- rewrite the SandBlock, and made it visible in the Editor. Note that it still works a bit oddly, and has some clipping issues, but it works much better than it did previously (which is why it's now visible, duh)
- Made some fixes to the Editor, and fixed some attributes and assignments.
- Rewrite the LaserShot, so it can now bounce off blocks.
- refactored some parts of the editor. The outward appearance is the same but the code is a lot better to work with now.
- Added Game Statistics. These are not yet displayed anywhere, though. (They are tracked per levelset as well as globally).
- Added bosses. These are not yet present in the game's default Levels and capabilities, however. To check it out, use "eyeboss" as a cheat. The cheat menu is accessible with Control+Shift+C.
- tweaked Highscores being shown, now it will go faster if the mousebutton is pressed, similar to the score display.
- removed the original startup sound (level startup) now the only two are the various Arkanoid reinstrumentations.
- added numbounces field to temporary ball behaviour: ball now bounces a given number of times before suiciding itself. Naturally, this defaults to 1, so that all the code that existed before works the same. Used initially for...
- LaserSpin Powerup, and tweaked corresponding Terminator Behaviour. Ball moves slower and shoots lasers faster, which is fine since the lasers bounce, as indicated before. Has a rather negative impact on performance....
- Fixed the SoundDataListEditor again.
- Lasers also bounce off of the Polygon blocks- other changes to the core classes have increased some of the capabilities with regard to Editing.
- Added SwitchBlock, which allows setting a GroupID. when all Switches of a given GroupID are all on or all off, the Active or Inactive Trigger ID's of each are fired.
- Allows Dropping of supported files on the Editor to load them
- All destructive operations (that would reset or replace the active LevelSet data which has not been saved) now have a confirmation dialog.
- Added a drop down for Undo and Redo, to Undo or Redo to a given stack position. This might be in the previous version but I seem to remember working on it recently.
- Fixed "QueuedSoundManager" which is used for some music and the introduction sounds.
- Selection in Editor uses rainbow hues, to make it easier to see with some block colours.
This represents a lot of work; this is just a very basic list of the changes I could remember. There were also a few updates I prepared but ended up abandoning due to a few issues that came up, so I might have missed some rather large features . This was supposed to be 2.5.0.0 but I bumped it up to 2.6.0.0 for some reason which I don't remember (but I do remember I did have a good reason).
|
Saturday December 15th 2012 |
Added some jQuery to the main site. I had an idea to use AJAX for some sort of "update" widget. It would be neat (IMO) since it would use the exact same server-side logic that is already used by the Updater:
There is of course a rather big difference. First we wouldn't need to manage a download at all. Just provide a link to the download page. eg, downloads/php?dlID=21 would download the latest version of BASeBlock.
The only thing is I cannot really think of a good reason for such a feature to exist. Best I can think of would be to use the Update data (which includes products and versions) in some sort of marquee style widget beneath the navigation menu, which could be interesting.
|
Thursday December 13th 2012 |
Site update:
-Added github button to navigation bar. This might require a Full refresh (Control F5 in most browsers).
-Removed the Downloads display on the downloads page. The counts for items seems to be resetting for some spurious reason. Bit of a shame, I kind of liked when ti was working and I could keep track of the numbers without using the cPanel analytics.
|
Tuesday December 11th 2012 |
Like an old camera, I can't seem to focus lately. Even so, however, I finally decided to give BASeBlock the run-down and catalog a few bugs and issues I encountered. A quick synopsis:
- The Sound Data List Editor was annoyingly broken.
Editing the name of a embedded sound file made the textbox lose focus and other events fire which causes it to clear. The single character is inserted in the name and it shows up in the ListViewItem, but it is incredibly annoying because changing the name involves clicking the item, adding a letter, clicking the item, adding a letter, etc. This thought I f ixed this previously but apparently not. I fixed this by changing the Textbox validation code to the Validate Event, rather than the Change event, because I work on this project alone I think I know who might have made that mistake...
- Lasers didn't bounce off of Polygon blocks properly, and they destroyed the polygonblock. This, I've partly resolved, it was originally using the rect of the block for some reason. which doesn't exactly work for polygon blocks, since they override that particular behaviour. It still bounces weird, will need to finish resolving that.
-
Some other minor issues, particularly with object use and the PropertyGrid. Specifically, the SpawnEnemyEvent. This is editable- by clicking the ellipsis on LevelEvents and adding a SpawnEnemyEvent via the dialog. However, the class was using the wrong attributes; I was using the Editor attribute to define a UITypeEditor; but, I was passing in a Type that was in fact a TypeConverter (and thus I should have been using a TypeConverter Attribute). This resulted in an Exception. I resolved this in two steps. First, I facepalmed, then I changed the line from:
[Editor(typeof(FloatFConverter),typeof(UITypeEditor))]
And changed it to the correct:
[TypeConverter(typeof(FloatFConverter))]
Funny how you need to use a TypeConverter as a TypeConverter. Strange that.
There are various other small issues I want to work out before I do another release. This is going to introduce a good number of new features all across the board. I also want to make a standard set of levels that show the capabilities of the game's internal logic, and essentially it's "Engine" to it's fullest extent; Enemies, bosses, various blocks that you don't normally see, etcetera. I'm still not sure I trust the GameCharacter stuff, though I have to admit it still works fairly well. There are some interesting clipping issues where the character can essentially clip through any wall if they jump at a corner at the right angle; and this usually results in death, because the ejection code will often eject the player out the wrong end; basically, They'll get shot out of the level. Not a desired result, obviously. Within the confines of that and as long as the levels are fairly simple, it works OK. Usually, the problems with the GameCharacter arise when the movement multiplier get's too high, which makes it more likely for the character to get into a block, and thus more likely that they will cause the ejection routine to work improperly. I've yet to determine what causes it. I'm going to focus more on making the game moer feature complete and making a levelset that could be called a "standard" set of levels that takes advantage of the games capabilities. After that, perhaps another one that showcases extensibility via new blocks and/or GameObjects.
|
Wednesday Nov 7th 2012 |
Bukkit is a server mod for Minecraft which makes it easy to develop plugins that add functionality. I wrote news entries regarding BCPixArt previously, which attempts to read in images and turn them into various blocks. More recently I have taken to the task of populating chests with random materials. My project on this can be found here. I'm particularly proud of the random names it generates for items. "Spanish mail of blazing sitting", "Katana of inept dreaming" etc. Occasionally it gives items a ridiculous "lore" value as well. The default configs also have capabilities that add a few "easter egg" items.
|
Thursday, Nov 1st, 2012, 12:35AM |
Site has been down for about 24 hours. Turns out that when you get shared hosting you do indeed get what you pay for. Though it could very well be that MySQL is corrupting my blog database every few months, too. Hard to say, really. it's possible nobody noticed. I certainly didn't at the time.
|
Wednesday, October 24th, 2012, 7:00AM |
In the planning stages of a design overhaul to the main landing page. Too early to say what will change, in fact I might not change it at all. I mgiht switch the "news" entries so they
are part of the CMS (the one that manages downloads, links, videos, etc), currently they are a static page. Other than that, I rather like it- it's light on javascript, though the only place I was going to use it was for the items on the left (hover images) but I was able to simply use CSS for that. I did change the adblock detection script to be less jerky passive aggressive, though.
|
Monday, October 8th, 2012, 7:00PM |
re-added (or rather, uncommented the relevant portions) of page code that show the random images in the top left. I decided that while it makes sense to have them not visible on some of the unlinked pages that I give to potential employers, hiding it from the rest of the site for the same reason is a bit silly. So those are back.
I've revisited BCJobClock and have started some maintenance, and hopefully will be hired to add further features to the program from the original client. BASeBlock's latest release is rather big compared to the old one, which some more major refactorings, noew objects and gameplay mechanics to go around. I should be able to release another version soon. (Of the latter, the Former, BCJobClock, is not available from my site yet, if ever).
|
Saturday, September 22nd, 2012, 12:16AM |
News for the site itself is rather low. I haven't had a lot of internet time over the last while since I don't have it at home any more. I have however used this time to write a rather long series of articles, aimed around the subject of programming language performance and ease of use, and whatnot. Currently I have 7 complete posts ready to publish; I have published three of the series and am researching the appropriate information to create a few more. Essentially it looks at how different languages implement the same algorithm; which ones take more code, which ones are more concise thanks to ease of use provided by what many typify as scripting language features. I found it very interesting. Particularly since the fastest language was not what I expected.
I have been doing quite a bit of work on BASeBlock as well, I have refactored some code, changed the lasers so they bounce off blocks, revised the udnerlying code so that there are a number of different "shoot" type powerups, rather than just the one that get's upgraded. The later abilities of that former code would never be witnessed without cheats (how would you get 10 or more "Terminator" powerups?). I made then separate and mutually exclusive as well. I did quite a bit of work on the underlying parts, refactoring some of the core settings classes as well as a few other base classes to add functionality that escapes me at the moment, a couple new editor features for aligning blocks and selecting certain sets of them, etc.
THe big benefit of no internet is that I have much fewer distractions, which can only be a good thing, really.
|
Tuesday, August 30th, 2012 |
BASeBlock has been updated to version 2.4.1.
|
Tuesday, August 21st, 2012 |
Having recently installed BASeBlock (the latest release version, 2.4.0.0) on my laptop, I've come to find that the "Games Explorer" functionality breaks everything :/ Well, not everything- for some reason the shortcut claims that it's not a valid program. since it seems related to Games Explorer I have to conclude I messed up creating the .GDF file for the game. I will investigate this problem.
After a quick investigation... I'm not really sure what the issue is. Working with .GDF data is a pain :/ In any case, the error message I have received after install reads that "play.lnk" in games explorer is not a valid win32 Application, which comes as no real surprise, in retrospect.
|
Sunday, August 5th, 2012 |
Not really related to the site, but I fixed my Laptop's "original" hard drive. Not so much "fixed" (it still is problematic) but I cordoned off the trouble spot by creating a 60GB empty partition in front of the actual system partition, which avoids the damaged part of the disk (or something...). Now that I have it running windows I was able to do several things, some of which I can't actually discuss due to MS NDA's. What I can tell you- and as I detail in a Blog entry, is that I was able to test some of the things that had been reported as broken. I was unable to reproduce any of the issues, and both immediate and "normal" updates still worked fine. I did touch it up a lot and fixed a few UI and other issues, particularly the annoying flicker that resulted when the entire Listview was invalidated and redrawn (fixed by invalidating only the relevant portions).
BASeBlock
Of course, changes to the Update library are relevant to BASeBlock. I've been working on making more of the actual updating logic more partitioned into the- well, Update library. It should, ideally, just require a single call to a static function at startup for all the updating requirements which does all the work. As it is now, each application needs it's own logic for this and it's usually all the same with a few changes so it makes more sense to separate it as much as possible. This should make Updating in BASeCamp applications smoother and easier to manage. BASeBlock itself, I don't think the source I have is the latest version, since VS2010 claims it is an older solution (but I definitely updated the solution file to using 2010) so I might have copied it to the 2010 projects folder (rather than keep it in the 2008 folder) before that upgrade. I made a few changes since and I don't want to lose those so I'll leave BASeBlock's dev state as-is. I did get my desktop PC back but space is an issue and there isn't anywhere to properly set it up yet. It does however make an excellent footstool, albeit an expensive one.
Lastly
To add a bit of bitterness to the above, it is very possible that I will lose the domain for bc-programming.com in October when it comes up for renewal, which is a bit of a problem.
|
Wednesday, July 25th, 2012 |
Update: I did not get the aforementioned job. Which is pretty much what I expected.
In other news, having an MVP award is far more useless than I would have expected for this situation. I'd continue, but the main landing page is no place for such things.
BASeBlock
-Development has frozen. I have the source code on an external drive (in case my desktop is somehow damaged in storage or something) but I cannot really work on it because all I have is MonoDevelop on this machine, whose hard drive is on the verge of failure and probably wouldn't take a Windows installation, let alone VS2008/2010 without suffering from catastrophic HD problems. (Even trying to make small samples or working on the more general classes like the obfuscation class I wrote causes huge pauses as the hard drive decides whether or not to burst into flames).
Everything else
I've pretty much abandoned every other project anyway, so it doesn't matter. Obviously VB6 is out of the question on Linux for obvious reasons which gives me a good excuse not to work on BCSearch.
|
Tuesday, July 19th, 2012 |
--redacted the over-optimistic tripe that used to be here--
|
Tuesday, July 3rd, 2012 |
Not a huge amount to detail here: I may have thought up a good way to get BASeBlock's Polygon blocks working with the PlatformObjects (enemies, players, etcetera) without having to make massive changes across the board.
More importantly, I'm trying to decide what to do with BCJobClock. I'm thinking I could go with a method similar to what I tried for BASeBlock. Since BCJobClock is more "businessey" than BASeBlock, on account of, well, not being a game, I am thinking of tying it into my ProductKey code as I did for BASeBlock. Unlike BASeBlock, however, which doesn't actually run any differently whether registered or unregistered, my thought is to make purchase required before the program works properly, or only allow a "demo mode" which inconveniences the business process. Naturally, I will work to iron out the issues that I basically duct-taped when the client started to encounter scalability problems (good thing I made a lot of things options in the INI file!).
Another improvement I want to try is to get it working with SQL Server as well as MySQL Server. The only reason I didn't use SQL Server to begin with was because I couldn't get it installed properly. I was actually a bit dissapointed that MySQL Server installed so much easier than MS SQL Server on Windows. The two use a bit of different syntax, but thankfully my queries are already part of a separate interface that currently only has a MySQL implementation (as well as one for Access/Jet that I used for very early testing). The program will then be easily swapped about to use various implementations based on it's settings.
At that point, of course, the big problem will be marketing, and trying to find businesses that could benefit from the product. The first and most obvious possibilities being automotive repair shops; the second being PC Repair shops. This was part of the reason I was looking for a partner in the likes of Northwest Forest Products, since they have expertise in that area (I would hope so).
|
Sunday, July 1st, 2012 |
Returning to BASeBlock after that excursion to XNA4 with BCDodgerX, and I've managed to add Polygon Blocks. Essentially it allows the creation of arbitrary polygons. I think the collision code would only work for convex polygons, but if so one can simulate non-convex polygons using 2 or more convex polygons anyway. I still have to figure out how I'm going to get platformObjects (the shells, GameCharacter, and that stuff) working with it, though. Right now they work, but they only "collide" with the rectangle bounds of the object. Getting them working properly with the polygons is going to be a pain because I just got those PlatformObjects working well. (Of course I can always just revert from my local SVN repository if I cannot get it working.
Here is an example level, shown in the editor:
I've been making some tweaks to the various UITypeEditors that are used for the Editor's PropertyGrid, to make editing some things easier, made some fixes to the grid locking feature, as well as smoothing out a few UI elements. I'm tempted to upload this version as it is as 2.5, but would rather figure out how I'm going to get PlatformObjects working admirably with Polygon blocks first. (it's not necessary, really, since levels could simply not include both, but it would add a lot to the game if they worked properly)
Oh, and in other news I am now a 2012 C# Microsoft MVP. I thought that was pretty awesome.
|
Monday, June 18th, 2012 |
My latest project, BCDodgerX now has a initial release :D
I also purged the News page here so that older entries are in an archive file. This reduces the bandwidth load a bit.
|
Tuesday, June 12th, 2012 |
I've made changes (but not uploaded them) for BCSearch (fixing several bugs) and BASeBlock, and more prevalently, I've started a new project, BCDodgerX, which is a rewrite of my BCDodger Program using XNA.
I also wrote a article about freelancing, and in particular revolving around freelancer.com.
|
News Archive
|
|