Love: CMSMS, No love: ASP .NET
Man, I can’t believe how little I’ve posted in the last two months. There is a lot going on, new things are being learned, so I have plenty to write. I should have posted it for the simple reason of having a backup of the information.
Love
CMS Made Simple is awesome. I’m trying to decide if I want to move my site over to it or staying with WordPress. It depends on if I want to change the way I present information.
I’m almost finished with the new site, based on CMSMS, for a local private school and they are loving it. I like how easy it is to make a template and set options for each page. I also like how easy it is to add modules and configure custom tags. The school admins like how easy it is to create content (pages, news, etc.).
No love
ASP .NET is a pain in the arse (King’s English). My brother set up a site using DotNetNuke (his host set it up for free) and he wanted to use Google Checkout. He’s only selling one item so he can use a Buy Now button. The Buy Now button code uses an HTML form. ASP .NET, and therefore DNN, wraps the entire page in a form. See anything wrong? If you said, “You can’t put a form inside a form!”, you nailed it.
Hours of Google searching turned up nothing useful. There is a hack for putting a PayPal button in DNN that involves removing the form tags and using javascript but it doesn’t work with Google Checkout. There are a couple of DNN modules available to integrate a Google Checkout button but all of them cost $20 or more.
I’m very ashamed of the way I found to make it work. I used an iframe. Yes, I know. There are those that think iframes are horrid little pieces of HTML code that should never have come into existence but that’s all I could do. I put the Google Checkout form inside an html page (e.g. googlecheckout.html) and used that page as the source for the iframe.
Even though it works perfectly, I feel so ashamed. Maybe I’ll find a better way to do it soon. Suggestions for making it work would be appreciated.
One can pay back the loan of gold, but one dies forever in debt to those who are kind. - Malayan Proverb
19.Apr.08
Web Apps
Comments (0)
Time to stop procrastinating
I have been wanting to learn how to develop web pages for a long time. Inevitably, something always happened so I would put off starting the learning process for another day. I decided a couple of weeks ago that I had put it off long enough. Part of what pushed me to go ahead and start learning was helping my friend design his site. I also wanted to try creating site templates.
My learning environment is pretty simple: CMS Made Simple (CMSMS) and Notepad++. I chose to work with CMSMS because it is, well, simple. It’s a lot easier than Joomla! as far as setting it up, management and the template structure. Notepad++ was chosen over a WYSIWYG editor because I like to learn how to edit things manually.
I will admit that I didn’t start completely from scratch. I am using the The Perfect 3 Column Liquid Layout and the The Perfect ‘Left Menu’ 2 Column Liquid Layout from Matthew Taylor as a base for my template development.
Everything is going pretty well with the process. I’m wearing Google out with all of the CSS searches. The W3Schools CSS Tutorial has come in really handy. I’m just happy that, so far, the page output has validated as XHMTL 1.0 Strict and the style sheets have validated as CSS 2.1 even after all my changes.
Who knows. Maybe I’ll be able to hang a “Web Developer” tag from my belt next to the “SQL DBA” buckle. If I end up creating a decent template, I’ll post some screen shots for your heckling pleasure.
You may delay, but time will not. - Benjamin Franklin
27.Mar.08
Internet, Web Apps
Comment (1)
We know where you are
One of the projects I’m helping on is a web based work order system. The site won’t just log work orders. It will also keep track of inventory as well as time sheets. Everything is being written in ASP using a Microsoft SQL Server 2005 backend. Because of my (lack of) knowledge of ASP, I’m only working on the SQL portion.
The IP address for the PC the person is connected from is being logged whenever they clock-in and clock-out. The request was made to be able to click the IP address in the report and see if the person was actually at the location they picked from the drop down menu. That would require the IP ranges of each location to be stored in the SQL database.
To accomplish the task, I created a table in the database that holds the following information:
- Location ID (there’s already a location table)
- IP Range Start (e.g. 10.0.10.1) - stored as varchar(15)
- IPRange End (e.g. 10.0.13.255) - stored as varchar(15)
Every location has at least 4 subnets hence the third octet of the end IP being higher than the start IP.
It should be noted that a more efficient way of storing IP’s is storing each octect as a tinyint instead of storing the entire IP address as varchar(15). This helps in the storage size of the table in which the IP’s are being stored. Since this particular table is not holding many IP ranges, the storage size of the table doesn’t really matter.
The next step was to create a SQL table function that would pull the third octet from the IP being passed from the workstation, find it within the IP ranges and return the location data. I did this by using the parsename function. The function I created compares the third octet from the IP address being passed from the workstation to the third octet in the start and end IP’s. I only have to compare the third because the first two, 10.0, is always the same. The table function I created can be viewed here. An explanation of how the function works is included.
The web developer will probably start using the function in order to automatically set the location instead of the user choosing a location. This would simplify the clock-in/out process. For now, we’re just going to use it as a check up to see if they really were where they said they were.
We never really grow up, we only learn how to act in public. - Bryan White
12.Feb.07
Microsoft SQL, Web Apps
Comments (0)
Removing password change ability in Psiphon
I downloaded Psiphon, the web based proxy I wrote about yesterday, in order to try it out. One thing I noticed off the bat was that the user(s) have the ability to change their passwords.
You can’t disable that in the Psiphon program so what happens if you want all users to use the same login? If one person changes the password, and doesn’t tell anyone, everyone else will be locked out until you change the password back.
The following steps are how you can prevent users from changing the password in the Windows version:
- Browse to C:\Program Files\CitizenLab\psiphon\html.
- Open the directory pertaining to your language settings (en for this example).
- Edit all files that begin with login in your editor of choice. Notepad will work fine.
- Delete or comment out the following line:
Click here to change your password - Move or delete all files that start with reset.
- Repeat the above steps in the other language directories.
If you add languages in the future, you will need to edit the files for that language.
02.Dec.06
Web Apps
Comments (0)
Psiphon is here
A new web based proxy has been released by CitizenLab that makes it easier to bypass restrictive web filters in countries like China. The program is called Psiphon and here is how it works.
- Psiphon is installed on a host computer located in a country that does not censor the Internet.
- The psiphonode administrator forwards port 443* (HTTPS) on their router to the psiphonode IP.
- A user, psiphonite, in a country that censors the Internet connects to the psiphonode through a web browser using https://yourip or https://yoursitename if the psiphonode admin uses a service like DynDNS.
- The psiphonite must accept a security certificate in order to connect to the psiphonode.
- The psiphonite then sees a login page and logs in using the username/password provided by the psiphonode admin.
- After successful login, the psiphonite sees a web page with a toolbar at the top. The toolbar is where they will type in the address for the site they wish to visit.
- Web pages are served to the psiphonite from the psiphonode. As long as the psiphonode is not blocked, the psiphonite can view previously blocked sites (e.g. Wikipedia).
All traffic between the psiphonite and psiphonode is encrypted. This does not mean that information passed through the psiphonode is anonymous. Psiphonode admins can monitor the traffic passing through the node.
Psiphon is a decentralized system. That means that psiphonodes do not communicate with each other nor do psiphonites need to connect to the main Psiphon web site. That also means you can’t take the login for one psiphonode and connect to another psiphonode. You must be invited to use the psiphonode by the psiphonode admin.
Psiphon is free and open source. Currently, only a Windows installer is available. Mac and Linux ports are in the works.
To see how it works from a psiphonite point of view, click here.
*Psiphonode admins can change the port number. 443 is the default.
01.Dec.06
Web Apps
Comments (2)






















