AvBrand Exploring Technology
AvBrand Exploring Technology
Blog 
Blog Archives - 2024
2023
2022
2021
Throughout my site, there's a ton of projects featuring custom software that I've written. Indeed, my home automation project comprises of at least 30 individual pieces of software that work together, and my Car PC is also a large and complicated software package.

So why don't I package up these programs and make them available? I get at least 5 requests a month from people who want to download them. But there's a few simple reasons why I don't do it.

Most of my software is hacked together and proprietary. Indeed, I usually throw together software when I need it quickly... coding it specifically for my needs and my hardware, with things like IP addresses, passwords, and port numbers hard-coded in the source code. As any good programmer will know, actually writing the software is maybe 10-20% of the work. The remaining 80% of the time is spent on adding configuration options, fixing bugs, ensuring compatibility with a wide variety of hardware and platforms, writing documentation, and dealing with support requests. Since my projects are really just a hobby for me, I don't have the time nor the inclination to spend that extra time making it work for everyone.


You should sell your software! That will pay for the time you spent making it work!

Selling a piece of software is a whole other ball game... now you have to REALLY make sure it works properly, provide support, produce new features, provide real and proper documentation, etc. Also most of my software serves a very niche market, so I doubt I'd have many sales.

If you're not gonna sell it, you should make it Open-Source!

Open-Source is a great idea and you will find that I have provided some of my software's source code (such as the LED Sign Control Software and my ALPHA sign communications library) for anyone to enjoy. However, I don't have the time to deal with the support requests and cries for help I'd get if I released my more complex software's source code, such as my Car PC software. I may one day choose to release it.

Then why is this site here?

I often get berated by people who believe that my showcasing of my accomplishments without providing a download is selfish. But really, these people are the ones who are being selfish and lazy -- they are expecting something for nothing.

My site exists as a showcase, a gallery, of my work. It is meant to inspire people, to have them take my ideas and expand on them, to make their own versions and make them better.

Most of the software I use, I wrote from scratch. I find it so much more rewarding to make something myself vs. grabbing a finished product from some website.

I hope you understand my motives a little bit better now. I am always willing to help out via email if you need to know how I did something or want to see a snippet of source code!
Add or view comments
A few years ago, PayPal started offering an option to their users. For $5, you could buy a "security token". The token shows a random 6-digit number and requires you to provide this number when you sign in to PayPal, along with your username and password.

The first iteration of this device looked like this:

The 6-digit code on the display changes every 30 seconds. It works on a very simple and brilliant concept: Basically, the device contains a simple quartz clock, no different from the one in a cheap wristwatch. It also contains a pseudo-random number generator and an ID code.

Every 30 seconds, the device generates a new random number, using its ID code as the seed value. On PayPal's servers, the same number is generated, since it knows both your ID, the time, and the algorithm. These are then matched when you try to log in.

The display stays blank until you press the button, but the button merely shows the current number -- it does not affect the timing of the random number generator.

What this means in simple terms is that, in order for someone to break into your PayPal account, they need:
  • Your username
  • Your password
  • The six-digit code from your Security Token

    Since the code changes twice a minute, they'd need to either steal your token from you, or somehow convince you to give them the current code. Both of these are very difficult for someone to do without you noticing. So it's a pretty secure system.

    Now, I guess people complained about the somewhat bulky token, because recently PayPal launched a new type of security token: the credit-card form factor. It looks like this:


    It's truly as thin as a credit card, and has what looks like an e-paper screen for the number display. It's really quite a remarkable piece of technology. There's a button on the front. When you press this button (quite hard), the currently displayed code disappears, and a new code appears in its place.

    But, there's a big hole in this security model.

    Unlike the previous token, this one doesn't have a clock. The code doesn't change every 30 seconds. This takes away one of the big security features of the token-style device; simply, that you had to know the code within 30 seconds.

    With the new card, the codes are valid indefinitely. If you happened to catch a glance at my card and memorized the code, that code will remain valid until I log in to my PayPal account with it or with a newer code.

    So, for example, let's say you know my PayPal username and password. You already know one of my codes, because it is in the photo above, 463267. If I hadn't already used that code to log in to my PayPal account, you could go and log in right now -- or tomorrow, or next week. There's no time limit.

    Having the card is still more secure than not having it at all. But it's important to understand that it is not as secure as the older type of security token.



    Add or view comments
  • Visual Basic 6? Why? 5:08 PM, July 16th, 2010
    I occasionally get flak for the fact that my applications are mostly written in Visual Basic 6, a programming language that came out in 1998 and has since been replaced by Visual Basic.NET.

    But I still use it to this day, and I have some good reasons why:

    • It performs well. It's not as fast as a native C++ application, but it's probably about as fast as a C# application.
    • I can create programs in it in the blink of an eye. I've been using it for so long and I know my way around it very well, and I can bang out a program in no time at all, with a full GUI.
    • It's fully Active-X COM compliant. There are a million components and add-ons and plugins that are Active-X controls and interfaces, so that means it's real easy to use one of those.
    • It can create Active-X COM DLLs too. These are usable in other languages including .NET.
    • It doesn't require a massive runtime that is difficult to understand and easy to mix up, like .NET does. Sure, it still needs some DLLs, but they usually come with Windows or are rather small.
    • It works fine on any version of Windows, including Windows 7 64-bit and Server, with no changes.
    • Without too much pain, you can use pretty much any Windows API function, including stuff like keyboard hooks.


    Of course, it does have some limitations, which may be a dealbreaker for some people:

    • No 64-bit support. My apps run 32-bit, but of course they work fine on a 64-bit system.
    • No real multithreading. This isn't really a huge problem for me either, as threading is a headache and a half.
    • Fancy graphics and things like alpha transparencies and window subclassing aren't built in, like they are in .NET. So you need to go a bit further to get things like that working.


    I do know C# and I use it every now and again, but I still find that VB6 provides the best time spent to results produced ratio for me.
    Add or view comments
    One of these is not like the others 12:22 PM, June 27th, 2010
    Can you spot the one that doesn't fit?




    Add or view comments
    Taiga meets Buddy 7:32 AM, June 23rd, 2010
    Today I met a massive, huge, fluffy malamute named Buddy who was 135 lbs and had fur that was 10 inches long in places. I took a photo of Buddy next to Taiga.


    Add or view comments
    Taiga's Water Education is coming along! 6:46 PM, June 20th, 2010
    He's slowly getting less afraid of the water. WARNING: There's a loud yell near the end of the video.


    And just today, there was a critical mass of huskies in the stream! Look! Three huskies! Taiga's on the left.

    See the rest of this entry...

    Add or view comments
    Mmm... fresh bread. 6:30 PM, June 20th, 2010
    I love bread. Now, I can make some anytime! I feel so 1986.




    Add or view comments
    Cuddles on the sofa! 9:21 AM, June 14th, 2010
    A few evening snugs with Taiga on the sofa!


    Add or view comments
    More Puppy Photos 10:20 PM, June 8th, 2010
    Taiga's over 9 months old now, and people are clamoring for more photos. Here's two fun ones:

    Taiga's first day on the beach:


    Taiga makes a silly face:



    Add or view comments
    Switching to Insteon - Update 2:41 PM, May 28th, 2010
    A few months ago, I posted this entry in my blog, about upgrading from X10 to Insteon. I described Insteon as a "breath of fresh air" after having worked with X10.

    Time has moved on, and we all know that in this world, nothing is perfect. So, I'd like to report the following updates regarding my switch to Insteon:


    • The protocol is annoyingly complicated. It took me a lot of reading and scouring different documents to figure out how to turn a light on. At first I was using a "group command", which meant that there weren't any confirmation messages. I've since figured out how to use the "direct message" properly, so my Powerlinc software knows immediately if the Insteon command was received by the destination module or not.

    • I started out using a USB Powerline Modem, but the USB interface wasn't reliable. It shows up as a USB com port, but it would fail if there was a power surge or interference (ie, washing machine spin cycle). Then, I'd have to unplug the module to reset it. So, I've now switched to a Serial Dual-Band module, which plugs into a traditional serial port on the PC. This has been super reliable, with no issues to report so far.

    • Despite the fact that I live in a small apartment, getting all of the Insteon devices to talk to each other has been a bit of a hassle. I have no less than three "Access Points", which are wireless devices designed to help bridge phases, but sometimes even they don't talk to each other. They claim to have a range of 100 feet, but in my place they can barely traverse 8 feet line of sight. Maybe this would work better in a large, multi-story home.

    • The Insteon Motion Sensors are crap. I've had two fail on me, where they just decide to stop turning the lights on. Maybe this is related to the same problem as above, since they use the Access Points to communicate as well.


    However, from a more general perspective, Insteon is way more reliable than X10 ever was. Once I had all the kinks worked out, things just work... I can be sure that if I see a little light switched on on my diagram, that the light is really on. With X10, it was always a crapshoot.

    So, I would indeed recommend Insteon for the home automation hobbyist. X10 is old-school, man, throw that shit away.
    Add or view comments
    So a few weeks ago, I posted a video of a series of small LED signs I had ordered from eBay. After many weeks of trying to figure out what to do with them, I decided it might be cool to build a multi-line information display for my building.

    First, I took all of the plastic cases apart, freeing the internal sign electronics.
    See the rest of this entry...

    Add or view comments
    More crazy passive-aggressive signs! 1:56 PM, May 25th, 2010
    Spotted while walking my dog:


    Oddly, this garden always has the most hideous, weed-like plants on the block. Never anything beautiful or colourful. Not even anything that flowers. Why anyone would steal one of these plants is beyond me.



    Add or view comments
    Seen in North York 10:29 PM, May 17th, 2010
    I saw this while walking Taiga Sunday morning, on the side of the road:




    Add or view comments
    Taiga Update 12:12 PM, May 13th, 2010
    I haven't posted any puppy photos lately, so here's a quick pupdate.

    Taiga's lost most of his darker fur and is growing in his summer coat. He's currently claiming my spot on the sofa:




    Add or view comments
    Taiga actually smiles when he's happy! 10:54 AM, April 9th, 2010
    He really does







    Add or view comments
    I got a whole stack of these on eBay for cheap:



    Now I need to figure out what to do with them.
    Add or view comments
    Taiga sleeping video 11:18 AM, March 23rd, 2010
    On day 3, Taiga is feeling better... 8:44 AM, March 11th, 2010
    Day 3 after neutering, Taiga is feeling better and is catching up on the morning news.


    Add or view comments
    I posted this last year but I wanted to repost it on my blog.

    All of these photos were taken on Manual setting, ISO 400, 1/30 shutter, 2.6 Aperture.
    All lights had fresh batteries, all lights were placed in the same location.

    Note that these settings were chosen to ensure the last light was not overexposed, but since the SSC is so much brighter, it results in the other lights appearing much dimmer than they really are.
    See the rest of this entry...

    Add or view comments
    Puppy not happy... 4:32 PM, March 10th, 2010
    Taiga just got neutered and has to wear one of these to keep him from licking the sore spot...

    He is not pleased.



    Add or view comments

    Older Entries...
    copyright © 2024 AvBrand.com - sitemap