Author Archives: ttessier

ttessier

About ttessier

Professional Developer and Operator of SwhistleSoft

Commodore 64 Reference

Commodore 64 Reference

An oldie but a good system, the Commodore 64 was a very popular system back in the day and had pretty much everything the user would need at the time, including an interpreter, a disk driver to store data and a simple command method to load. The Commodore 64 has been stripped down, emulated and exploited for many uses. I hope you have as much fun as I did researching this historical gem.

z80 / 6510 Emulator Resources

Hardware Schematics

Pdf Reference Guide

Programming Reference

 

Does anyone have experience with Gdi Plus

I am wondering if anyone has experience with GDI plus from Microsoft. This dll is an extension to the basic gdi from the early days of windows development. I am not sure if people are still using this technology, but most of the principles one uses in gdi, at least at a very high level, can be used with any graphics library. I am hoping to post an article on a project that draws a 5 day forecast from an online feed, and is able to cache/reload the feed to/from disk.

Article on Forbes suggests death of the PC

There is an article on Forbes boasting the death of the PC market, and a steady decline since the years beginning. I agree that there may have been a decline in server sales, and home computer hardware, but, there is still a need for those industries. Probably like the baby boomers, the main boom is done, but there will be a level off. Also due to the direction of using virtual machines, and lower power consumption markets, it makes sense that hardware sales goes down. There are probably thousands of other contributing factors, but I still think that it makes sense.

The original article.

 

MAPI Without GetProcAddress

If you have ever worked with extended MAPI I am sure that you have come across the need to use the win32 API function GetProcAddress. There is now a stub library over at codeplex and some sample code to show you how to get started with Office 2010 or 2007. The project includes sources if you are interested in seeing how it is built. In addition, for those looking for more comprehensive MAPI code samples, there is a really in depth sample at codeplex as well Called: MFCMAPI

MapiStubLibrary

.Net Trimming Whitespace in an image

In case you wanted to know, it’s not quite that difficult to trim pure white pixels from an image in .net. The crux of the problem is really getting access to the color data and understanding what you are looking at when you have it. I will be demonstrating a method using 24 bits per pixel images only, but the concepts can be applied to other types.
Continue reading

IE 10 PostBack Issues

Anyone notice that they have a .net 2.0 or .net 4.0 web application that just simply stops working in IE10? Please see the following links to for more information, but the root of the problem seems to be an up to date App_Browsers folder either missing from your site or your machine.

Information on Special folders within an application may be found on the microsoft site here

A Forum post on similar issues may be found on aspforums.net here

The Solution originally comes from here which has instructions in the manual install that states the need to run aspnet_regbrowsers.exe -i in an elevated command prompt for manual installation and copying to the

C:\Windows\Microsoft.NET\Framework\v2.?????\CONFIG\Browsers
C:\Windows\Microsoft.NET\Framework64\v2.?????\CONFIG\Browsers

or

C:\Windows\Microsoft.NET\Framework\v4.?????\CONFIG\Browsers
C:\Windows\Microsoft.NET\Framework64\v4.?????\CONFIG\Browsers

depending on version aspnet_regbrowsers can be found in:

C:\Windows\Microsoft.NET\Framework\v2.?????
C:\Windows\Microsoft.NET\Framework64\v2.?????

C:\Windows\Microsoft.NET\Framework\v4.?????
C:\Windows\Microsoft.NET\Framework64\v4.?????

restart the server and or visual studio and pay particular attention to versions of the downloaded files.

In the case that something is still not working – check your add-ons and possibly reset internet explorer.

MSSQL Join types explained

I found a really good article explaining the difference between the different types of joins in SQL Server. It is important to have these different types to be able to selectively retrieve the information you are looking for in the appropriate ways. I have found that during interviews it is important sometimes to demonstrate this knowledge at a basic level as a sort of proof of understanding on several occasions. http://blog.sqlauthority.com/2009/04/13/sql-server-introduction-to-joins-basic-of-joins/

I have found the following sql helpful in understanding the joins in real life sort of situations.

-- I have created a database called test in my server for testing purposes, this statement selects that database into context
use test;

-- The following two statements create nearly identical tables with an identity column ( auto increment integer ) and a textual column ( 64 character )
create table TABLE1 (id integer identity, value nvarchar (64));
create table TABLE2 (id integer identity, value nvarchar (64));

-- the following statements insert data in table 1
INSERT INTO TABLE1 ( value) VALUES('one');
INSERT INTO TABLE1 ( value) VALUES('two');
INSERT INTO TABLE1 ( value) VALUES('three');
INSERT INTO TABLE1 ( value) VALUES('four');

-- the following statements insert data in table 2
INSERT INTO TABLE2 ( value) VALUES('one');
INSERT INTO TABLE2 ( value) VALUES('three');
INSERT INTO TABLE2 ( value) VALUES('five');
INSERT INTO TABLE2 ( value) VALUES('seven');

-- note that in the above inserts there are collisions or the same data in some of the column values
-- also note that the id columns or fields will NOT be used as part of the ON clause

-- NOTE: LEFT JOIN is synonymous with LEFT OUTER JOIN whereas RIGHT JOIN is synonymous with RIGHT OUTER JOIN
-- the OUTER keyword signifies including records that do not exist in the table
select * FROM TABLE1 t1 LEFT join table2 t2 ON t1.value=t2.value;
select * FROM TABLE1 t1 RIGHT join table2 t2 ON t1.value=t2.value;

-- NOTE: using TABLE2 as the first table in the query does have an effect on the result
select * FROM TABLE2 t2 LEFT join table1 t1 ON t1.value=t2.value;
select * FROM TABLE2 t2 RIGHT join table1 t1 ON t1.value=t2.value;

-- NOTE: INNER join is a way to have include mutually inclusive results 
select * FROM TABLE1 t1 INNER join table2 t2 ON t1.value=t2.value;

-- NOTE: OUTER join is a way to include the combination of a LEFT and RIGHT join together so that
select * FROM TABLE1 t1 FULL join table2 t2 ON t1.value=t2.value;

Please pay particular attention towards the end of the article on the link posted above as it suggests usage of queries without sub-queries to get data from a table that does not exist in the other table. All of these things play an important role in terms of query performance and understanding of how SQL Server retrieves data.

Akeeba Backup Console Application

Akeeba Backup Console Application

So… I am sure that anyone who uses Joomla has hopefully heard of Akeeba Backup by now. This is a very useful Joomla site backup component that backs up the entire site using ajax technology and incrementally stepping the backup process through to completion so that even large sites can be processed. There is an installer that gets packages as well that allows easily reinstalling into a new site. There is also a JSON API portion to the component that is not enabled by default, but is configurable through the administration panel of Joomla. I have created a console application that I can use in conjunction with windows task scheduler in order to automate backups.

I am looking for feedback and testing of this application – I can provide source code and binaries to all interested.

Post a comment if interested

akeeba console

Google Analytics Add users via email to your account

Google Analytics Add users via email to your account

If you have a web site these days, you had better be at least a little bit familiar with google analytics or some form of web analytics software. This helps you to track how people get to your site, and what they do when they get there.

One of the things you will need to do when and if you do a lot of tracking is to be able to share the analytics data with others or instruct others how to share that with you.

Google’s instructions come from the following: Add Users to google

Convert dot net invaders to html5

Convert dot net invaders to html5

UPDATE: Playable

UPDATE: Code Link

So, I wrote a dot net invaders clone and thought that I would try my hand at converting it into an html5 version using canvas, and the same cruddy graphics in the first version. The point of this blog, however, is not about graphics but instead of development. I hacked my way through a simple conversion at the start implementing some of the techniques I presented usage of in the render framework post. Then things turned ugly when I tried to implement inheritance. I was able to actually implement what I desired at first, but found some issues when creating multiple items using the same class seemed to use the same instance for a member object. This was undesireable, but I simply created a new “object” in the “constructor” with the same name and everything worked marvelously.

Continue reading

A Simple Javascript Canvas Render Framework

A Simple Javscript Canvas Render Framework

It is possible to do a great number of things in many different languages, and due to the popularity of the some of the particular features of javascript, it is also possible to do these in javascript. The trick is to figure out what is needed in terms of state, and logic, and provide a looping mechanism to make things happen on a regular basis. The particular thing that I am talking about here is rendering a frame – or essentially drawing a picture.

Continue reading

Mootools Animations without Tween or Morph

Mootools Animations without Tween or Morph

So I found that Tween and Morph did not do what I wanted, and that it would be pretty simple to cook a batch of javascript animation up in no time. The secret to animation is the LOOP. With javascript, you may set up a direct loop, but that would be less then adequate as far as I am concerned. The idea is that you render something, and put a little delay in there to have the render realized.

Continue reading

The System Library ‘GD’ is not registered

The System Library ‘GD’ is not registered

So… It appears that I am not the only one who ran into this issue, and not actually having run into it directly myself, it was a little tricky to get to the root of the problem. In case you have no idea what I am talking about, I am talking about Miva Merchant and libGD configuration. Specifically when you upgrade Miva Merchant there can be an issue.

Continue reading

A link to Mersenne Twister Implementations

Mersenne Twister Implementations

What is the Mersenne Twister algorithm? The Mersenne Twister is a very fast random number generator. The home page that I retreived this information from warns of the following: “Mersenne Twister is basically for Monte-Carlo simulations – it is not cryptographically secure ‘as is’.”. If you read the FAQ, however, there are comments on newer versions and implementation details for specific usage case scenarios.

At any rate, the implementations may be found here.
Interestingly enough there is a javascript version that will most likely find it’s way into our demos.