Testing out ads. Trying to make this site something that doesn’t need to be supported/hosted/paid for out of pocket.
Feel like a total douche, but for the moment it’s just an experiment.
What worries me is that they seem… well, a bit aggressive. I hope I don’t scare people away; not because they would equal more hits=more revenue, but because I like to try to deliver good content and with ads like this it’s hard to determine whether it is my content that drives people away or the advertisements.
Again though- just an experiment. I’ll see what the webstats say in a week or so, and whether it’s worth it. my experience with advertisements says no, but we’ll see, that’s what the experiment is for. Speaking of webstats, I don’t trust them. It says I’m getting 1K hits a day, but I doubt I break a couple dozen.
400 total views, no views today
Running a website isn’t always fun or easy. And for me, it has never been profitable. But it wasn’t really about profit; it was about offering content to people interested in said content. That is, until recently.
Until recently, this site’s (admittedly very cheap and quite reliable) hosting and Domain were paid for out of pocket from earnings from my “normal” job, which was a crappy retail thing whose details are both embarassing and irrelevant. In any case, I recently quit/got fired (depends who you ask), and as a result I am trying several things.
First, I want something involving computers; or at least something that will leverage my abilities with regard to their hardware and software. I am sick and tired of jobs that are “work”; now, don’t take that the wrong way. I am willing to work, but I don’t want work that doesn’t adequately make use, and even aim to expand, my skillset. My previous job was a brainless activity, and it’s intellectual demands could probably be met by small mammals. It didn’t use any of my computer related expertise that I’ve developed over the years. they are hardly professional level abilities but they still exist and I want them to be used in a manner that I can both live off of, find enjoyable and most importantly develop those abilities further. As a result of this, I have been scouring for such locations in my area (relocation at this juncture is not a financially able decision). I have found a few, but they appear to be small shops unlikely to need additional personnel and possibly even struggling to keep out of the red as it is (and thus unlikely to risk the hiring of more employees). I have contacted a few, but none have gotten back to me, and that is rather discouraging (if not a bit unsurprising). Barring those possibilities, which I will admit feel rather far-fetched (even if my skillset would still be a superset of what is needed for those occupations), there is only one other chance. And it’s hypocritical because I ranted about it before in a post I have since hidden since I applied to these places.
Brick & Mortar electronics retailers. Now, I’ll be honest; I’ve personally not had issues with them myself; my own laptop was purchased from Future Shop, and the people there didn’t fit the stereotype often prescribed of them. They do have a bit of an aura, particularly on the support forums I visit, although I suspect there is a bit of a correlation since the only times somebody generally posts on a computer help forum would be after they have problems with the support and guidance provided by a Brick & mortar store, so in many ways we only hear the bad stories. I imagine this is not atypical; you really only hear the bad news a lot of the time.
My reasoning on this is simple. It would be better than what I was working at before. At the very least, there will be electronics involved and I can apply my actual knowledge, rather then having it go to waste aside from my personal endeavours.
Ironically, the most promising (in terms of fit) out of these that I visited was the most unexpected; London Drugs. This is obviously not primarily about computers and electronics, however they do have a relatively large electronics section, and from what I heard while there they truly do know what they are talking about; the staff I overheard knew the specification limit for USB cables I have to say that was pretty impressive, given the common stereotype behind computer retail. And it was much better than Best Buy, which was a bit sour; as one may know, all these locations generally only allow applications on-line (which if you ask me is kind of stupid); as such I was merely given a card or paper thing that had a URL on it, but that URL is dead. Which makes sense since the paper was printed in 2003. Not a good impression.
Now that said that is also a good thing because I rather enjoy the self-indulgent honour of knowing I am smarter than my colleagues, even if I don’t express that too loudly. Careful posturing could mean quick promotions, but, there is the additional problem that I think much of that is commission and if that is the case I would probably be screwed. I’m not a salesman, I can lie, but not to intentionally deceive somebody in a way that only serves to benefit me. I couldn’t in good conscience recommend say Monster Cables over more expensive cables because I have yet to see any verifiable third party data justifying that extra cost. This goes for much of the other stores that would have this as well. The only saving grace might be that much of these places have service centers where techs repair the machines; I can say with some conviction that I would be, if anything, over-qualified for such a position, given my experience dealing with hardware, software, and a multitude of Operating Systems. It might not leverage my abilities with Programming languages, but that is something I can still develop on my own; eventually and with some luck I may find a position that fits with those skills as well, but right now it’s more or less me trying to desperately claw at least one more rung up the ladder to try to leverage the unique skills that I do have, rather then sitting at the bottom of the food chain. (metaphorically speaking).
The other alternative would be to try to leverage what I already have- this website, to be precise. it’s paid for the next several months, and I have had adsense on it for a while but that’s generated a grand total of I think 20 dollars over the last two years, which isn’t close to the money I spent on the site and it’s maintenance. I also added a donation button to the main page, but nobody has used it. Maybe it’s broken. I like to think my tools and applications are useful to somebody- aside (from myself, I use BCSearch rather frequently), but it’s starting to appear that that is not the case, and it’s rather discouraging. I don’t feel their quality would fetch a price tag even if I wanted it to, given the improvements to BASeBlock, I might be able to charge a reasonable price, but as a game it’s value is much diminished because plenty of other, much higher-quality games can be found via other distribution methods. Additionally, it would counter my previous assertions that I “would never charge” for it, making me something of a hypocrite, which to be fair I don’t care about. It’s that, or other ad networks, and I’m trying them but
The fact is, I’ve spent a fair lot of time working on all these applications, and While I can’t deny or dislike the fact that there is a measurable gain in aptitudes for development with each new project, the fact that none of them gives anything else back- neither in the form of a income nor in the manner of a simple “hey, thanks for this tool”, is extremely discouraging. The market for software is simply not the same as it once was, especially for games. I have tried to offer my abilities for software development and website design for freelance work, and I am cautiously hopeful that I may be able to offer my skills to those in need of them.
The basic problem, as my title ascertains, is that it can be difficult to properly get one’s foot in the door; How do you distinguish yourself and your skills from the multitude of others who are vying for the same positions but might not be as good a fit? Especially when your only interaction with a prospective employer is by way of online communication?
600 total views, no views today
Oftentimes, when comparing software products in the same market, you’ll see comparisons made where one product has a “pro” over another based entirely on the fact that it doesn’t cost money.
I’ve never understood this. It doesn’t make any sense, when you think about it. Sure- if the two products are extremely similar in form and function, then the comparison is valid- because all other things are equal within a margin. But the problem is, when it comes to free software, they typically don’t stack up to commercial ‘evil’ proprietary Applications.
For me, I learned this by way of text editors. This is a very simple type of application, and one would assume that out of the bajillions of free offerings, one of them would also be easy to use, and meet my needs. This was the case, but I was stymied by what I found in a lot of them.
For example, I have often seen free, Open Source applications, such as emacs, vi, etc touted as “the de facto text editor” application, and held up as some kind of standard.
I have to be brutally honest here- if those are some sort of standard, then that is a pretty damned low bar.
How is this even something to consider for everyday text editing? It’s about on par with WordStar in terms of finger-contorting shortcuts, and it reminds me of edlin, except that it is powerful; That much I can see. But when I need to become a god-damned apprentice to a ancient VI master to learn how to use the software application in a way that fits my needs and need to “train” myself even longer in order to do so adeptly, I’ve lost. My time is not valueless . It doesn’t matter if the software was free, or if I can edit the source code. For one thing, I don’t try to judge software as if being Open Source automatically makes a piece of software sit on some sort of moral high-ground above others. I want my software to work and do what I need . That is it. software should be judged on it’s own merits, not on it’s license.
One thing I noticed with free text editors, was they all seemed to have too many features, poorly organized.
notepad++ is a fine application. But it’s menus are an absolute mess. Being Open Source doesn’t mean you can ignore basic UI Design guidelines. Same goes for the Graphical versions of Vi/Vim (gvim) and for emacs. I have no doubt these are powerful tools, leveraged by plenty of people worldwide. But I cannot personally justify the time investment it would take to learn these applications, when there are plenty of other applications that provide exactly the functionality I want in an easy to use package. Also, from what I’ve seen, becoming proficient in either emacs or vi turns you into a condescending douchebag. gedit is a fine application- it’s free. It has syntax highlighting, and it’s menus actually make some bloody sense, and yet time and time again I see Linux veterans saying it is only for “noobs”. I want to edit my text. That’s what it does. The problem they have is that they invested so much time in learning an overall badly designed (UI-wise) application, and now need to justify that time investment by putting down those people who avoided that time investment in the interest of getting things done.
The free software I found that met my needs at that time was Editpad Classic. This program was (and is) a closed source application. I didn’t, and still do not care. It did what I needed. Then, when my needs grew, I found the same vendor had a product called “Editpad Lite”, and I found that to be sufficient as well.
When I started this website, I needed a efficient way to upload and edit files to and from my webhost. Upon reading the descriptions of features for that same company’s paid offering of the same product (Editpad Pro) I found it seemed to fit my needs perfectly.
Ever thrifty, however, I decided to prowl the web for free software with similar features. Notepad++ had an FTP plugin, but it was unweildy, stubborn, and finicky. No other FTP capability seemed to match. So I purchased Editpad Pro, and I am still using Editpad Pro (still using version 6) to this day for this very capability. Being able to make quick changes to my news page, edit the PHP code of any file on my host, at the touch of a single GUI button is something that I value. Again, I value my time more then some self-inflated sense of pride. Sure, I could:
But I cannot see any reason to do that. I can do all of those. But why are they disparate tasks? All I want to do is edit a file on my webhost. Why is it that an editor cannot edit a file simply because it happens to reside on a remote server? Why do I have to go through an arcane ritual of download->Edit->Return to sender just to edit a single file? And why do people seem to think this is in any way superior to the time-saving method of simply using an application that does this properly ?
Returning to Open Source; It’s fine! I have no problem with it at all. I plan to release BASeBlock’s source code under the BSD/MIT license. But I don’t feel that an application being open source gives it value. The fact that an application is Open Source, in fact, means absolutely nothing to me. I only care about whether it does what I want. I don’t care if it has the potential to do what I want if I make changes and recompile the program, because that means it’s not free at all, costing me time I could spend not editing somebody elses program. People often tout the “Open Source” label, as if it matters. It truly does not. In the majority of circumstances, you don’t need, and you do not sanely want to view and edit the source code. How many people can look at the source code for perl, and make sense of it- only the maintainers. That is their job; even if they volunteer, thats what they like to do. But Why would your average user want to recompile the perl interpreter? I can’t think of a good reason. Same for nearly any other Open Source application. I’ve never downloaded and used a Open Source application and thought “hmm, it’s missing this feature- I know, I’ll waste the next two weeks staying up until 2AM and adding it”. No, what I think is “Hmm, this software application is missing this feature, I know, I’ll stop wasting my time using it and find something that does”.
I think the best summary I can come up with is this- Being Free or Open Source does not excuse sub-par design and implementation; and, at least in my opinion, I don’t see a reason to use any application based entirely on it’s license or distribution method. It’s almost as arbitrary as using an application over another because one of them is written by a catholic and the other is written by a jew. It’s a arbitrary and irrelevant to the meat of the matter which is whether that software does what you need it to.
616 total views, no views today
Everybody knows war is hell. That hardly needs any introduction.
However, not many people are aware of a certain intergalactic struggle that earth recently recovered from. This war was against an alien race known as the… well, actually, nobody really asked their names. They were all “hey, earth, we’re on your turf killin your doods” and we were all “hey” and stuff. Anyway we didn’t really know what they were called.
So at any rate, Earth deployed an elite squad- well, actually, they deployed a single ship, code-named Zanac.
Now one wonders- “why just one ship?”
well, back in those days they had a “sprite limit” see, nobody could see more then about 8 (maybe it was 11, I forget) moving objects on at once. Zanac was a experimental machine that allowed the pilot to perceive more then 8 objects at once using a method known as image compositing. The Zanac ship pilot explains:
“It was a philosophical question, back in those days- nobody was even sure if the human mind or visual cortex could handle more then 8 objects in their view at once without instantly exploding, or at least without frame lag. This was rather troublesome for mormons, since they had lots of wives and kids and generally had very oversized families, it made getting family photos rather difficult, with the photographer having the wear an anti-sprite-limit suit and all. So anyway, in the war against these new alien oppressors, we deployed the ship, code-named “Zanac” that included a sprite-capacitor that absorbed sprite information and fed it to the user in smaller, more managable chunks. The first few test runs were pretty promising, excepting of course the pilots heads exploding and making quite a mess out of the ships upholstery. But we didn’t have time quite to finish the tech, we needed to fight the aliens. I do recall my cousin bob making a note in his logbook at the time, about how well his beans were growing in his garden, and I think I said something to the effect of “It’s cold outside” or something, to which he remarke…
Me:You were talking about the Zanac war, and why you only deployed a single ship at a time.
Pilot:Oh yes, I do apologize- so anyways, they sent me on this mission to infiltrate the Alien federation and destroy it- or something. The actual mission was sort of vague, in fact I believe it may have been a yorkshire pudding recipe jotted down on a napkin. In any case, I had no idea what I was in for, in fact at the time I did believe there was going to be a fleet of ships. However, I wasn’t aware of the newest feature they had installed on the ships. See, although the ships’ sprite capacitors could absorb sprites and allow the viewer to see them in more managable chunks, there was a sort of force feedback with any nearby disturbances in the sprite continuum, so there could only feasibly be a single ship in operation at once. When I first heard the news of this, I was rather heartbroken- I couldn’t drink milk for a good week after that.
So they sent me on my mission, Which was pretty crazy right from the start.
Me:How do you mean?
Pilot:Well, when I started this weird triangely thing swooped towards me, so I figured I’d shoot it, it being an alien vessel and all.
Me: And?
Pilot: Well it turned into a giant fucking smiley face! I mean, what the hell was going on? I mean, it was the 70′s but a giant smiley face? people, come on!
Me: Actually, we have to satellite footage of this smiley face- refer to “Exhibit Q”.
Pilot: So, there I am, in this state of the art machine, fighting a god damned giant smiley weird face. So I decide- well, I may as well shoot it right- I shoot it. And nothing happens!
Me: And this was hardly weak weaponry, I take it?
Pilot: it was state of the art- well, truly speaking it still needed me to find weird blue boxes and grab yellow spheres from inside them for whatever reaso…
Me: wait, what? How does that make sense? you grab yellow spheres from blue boxes, supposedly owned by the aliens, to power up your weapons? Why not just attach a god damned nuclear warhead and just kill them all at once.
Pilot: Ahh, the sprite limit is why. See, if you tried to use a nuclear device in those days, you’d end up spawning too many explosion sprites and cause lag fallout that wouldn’t really do that much damage.
Me: Ok, so you shot the smiley face-
Pilot: I had to shoot it several times- and you know what happened? the damn thing turned orange/red. Like it was teasing me, saying “yep, you hit me, but I’m invincible”
Me: and what weapon were you using for this?
Pilot: for that I was using the blue circlely thing attachment, the silly string main weapon was pretty useless, it went right through them. So then I decided that I was done for, and set a kamikaze course into the smiley face, intent on wiping that god damned smirk off their face- and you know what happened? moment I touched him, he dissapeared!
Me: you’re saying he? How do you know?
Pilot: I was pointed straight up between his legs, He was like a bloody smurf… well, until he turned red, then he was a red smurf. Anyway, so there I am- dumbfounded. Already sure I had seen the strangest thing ever- but then I saw the aliens secret weapon coming right towards me- two concentric circles! It was awful, the pure horror of it all is indescribable.
Me: I can imagine.
Pilot: So there I was, ducking and dodging… shooting my silly string… and then I see an odd glass thing coming up on the horizon- so I naturally try to shoot over top of it at an enemy. And the damned shot hits the glass thing even though it was about a million feet above it in the air. Quite odd. So I continued shooting, and eventually this strange transparent number appeared. So, I of course grabbed it.
me: Wait, why the of course?
Pilot: Well, I’m not sure, it just looked inviting. I mean, can you think of a single time where a number in a square looks dangerous to you? I sure can’t. I can think of times that twigs looked rather menacing from the distance due to the way the light and shadow plays with them, and how our perceptions cause us to recognize patterns and objects that aren’t necessarily there.
Me: ok, well, carry on
Pilot: So there I am, I grab this number thing- and nothing happens.
Me: Were you expecting something to happen?
Pilot: Well, yeah, I guess so.
Me: OK, carry on
Pilot: so, anyway, I keep fighting, and I go to use my blue swirly thing attachment, and it is all purple and fuzzy and downright weird looking.
Me: oh, so something did happen.
Pilot: Yes, most importantly, it cut through everything like a sharp knife through goat entrails.
Me: Sounds useful.
Pilot: Hell yeah it was useful, in a world with giant blue circular smurfs, you need all the help you can get.
836 total views, no views today
Serialization has always been a thorn in my side. In VB6. in Python, in C#. The biggest annoyance is that most applications consist of somewhat complex object relationships and heirarchy’s, different race conditions about values that need to be initialized first, and who knows what else, all meticulously built during the course of your application, which you eventually need to save to persistent storage.
All applications can benefit from some form of persistence, even if it is only in the form of settings. As a result most Object Oriented languages have a way to allow you to “serialize” an object to a stream. In .NET, this is provided by way of the [Serializable] Attribute and the ISerializable interface, which allows you to customize the serialization somewhat.
What is interesting, at least in the case of .NET object serialization, is that you can choose one of a number of “Formatters” which will take the data acquired by the Serialization support framework and format it to one of any number of formats. Personally, I have only used The BinaryFormatter class, which will allow to write or read a serialized stream to or from a stream.
So, what use is serialization? Well, aside from the obvious ability to save the stream to a file, you can also use it in other ways. For example, since you can send the data across any stream, you could send it through a network stream, and on the other end another instance of your application would be able to rebuild the exact same object. Another usage I’ve found is for usage on the system clipboard; serialize what is being copied, plop it on the clipboard with your own format specifier, and then when you want to see if you can paste check if that specifier exists and when pasting deserialize that data from the clipboard, and you’ve got the objects that need to be pasted, which will be “new” objects separate from those copied (if they are still present).
Copying a object graph to stream, however, has a bit of boilerplate; you need to create the BinaryFormatter(), serialize, and the opposite in the other direction.
However, with generics, this task can be made a tad easier:
Two static methods that serve to input and output a object whose type implements ISerializable to and from a given stream. It also uses the GZipStream to compress and decompress that stream to try to save space.
Extending this directly to files is rather easy as well:
And huzzah! suddenly you can read and write objects to and from a file with ease.
One might even venture to create extension methods on the Stream class that provide this sort of functionality for input and output of any object supporting ISerializable, like the following, which assumes the previous routines are within a ‘ObjectStreaming’ class definition.
And there you have it, suddenly you can write objects directly to any stream, using methods of that stream Object, and that saved data is automatically GZipped for you as well.
This Does, however, present it’s own issues. If there is an error anywhere in your serialization code, using a “filter” type of stream, such as the GZipStream, may cause difficult to trace errors that cause exceptions to fire from the GZipStream itself, most notably “unexpected end of stream” type errors. You can usually trace these in Visual Studio by checking “thrown” on System.Runtime.Serialization.SerializationException in the Debug->Exceptions dialog, and allowing the data to save to a normal stream (that is, directly to a filestream or memory stream rather than by way of the GZipStream). This will allow you to determine where you made the mistake elsewhere. Typically, in my experience, it’s usually something as innocent as a misspelling, or even inconsistent capitalization.
3,712 total views, 5 views today

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 