Mar 22 2012

The Brain Evolution System

Can YOU imagine a simple self-development tool…

… That can help you THINK FASTER and SHARPER than EVER BEFORE?

DOUBLE your ability to learn. THINK like a genius. RELEASE stress. BREEZE through your studies. UNLOCK hidden talent. SOLVE problems quickly.

Well, it’s ALL POSSIBLE – when you discover the Brain Evolution System.

The Brain Evolution System is a powerful, six-CD audio program for helping you MASTER your BRAIN – by literally CHANGING your BRAINWAVES.

It works by using special sounds to influence your brainwave patterns, helping to positively change your mood, your focus, your stress levels, your confidence – and MUCH MORE!

You’ll find yourself enjoying LIMITLESS ENERGY and MOTIVATION. Your emotional baggage will simply DISAPPEAR. Your relationships will IMPROVE. Your confidence will SOAR. You’ll experience more CREATIVE RUSHES. You’ll become IMMUNE to worries and tension.

And all because you spend JUST 30 MINUTES listening to a simple audio recording.

Would you like to learn more about what’s being called “the most powerful self-development technology on earth” … ?

I am able to offer you a special discount; the first 5 people the click on this link will be able to purchase the whole Brain Evolution System for only $100.

That’s $197 off the usual price!

http://www.brainev.com/coupon.aspx?a=rh&c=BE68367

Click on that link NOW. You won’t regret it – that’s MY GUARANTEE!


Feb 28 2012

Sending Data: The Difference between GET and POST

In HTML we can send data using two different methods in a form: GET or POST. How do you know which one to use? Unfortunately, new developers can often misuse GET and POST since they can both be used for the same ends, but with different results and sometimes unexpected outcomes. In this article, I will discuss the fundamental differences between GET and POST, when to use them and best practices when using them to send data.

Defining GET

For the basic user, GET is form data transferred in the URL as name/value pairs. When looking at the HTML specification, GET is defined as data that is to be encoded by the browser into a URL. URL encoding is a way of formatting the query string into valid data the browser can use. If you entered the day of the week, followed by the year in a form you would probably get something like this:

?day=Tuesday&year=2012

This information is appended onto the already existing URL data and the query string is useable in scripting languages such as JavaScript. The specification recommends that GET be used when the form processing is only used to get or retrieve data that does not have a lasting effect on the system. Since GET only encodes the data and places it in the URL for transport, you should only use it when the data has no lasting, observable effect on the application. The idea is that GET should not be considered “safe”.

There are many reasons why developers choose to use GET, and simply put, GET requests are more usable because:

  • They can be cached
  • They can remain the browser history
  • They can be bookmarked
  • They can be distributed and shared

The downsides: they can be hacked. You have to consider the security of your users when dealing with sensitive data and the possibility of transmitting that data in plain text for the whole world to see.

Aside from the ones I have listed above, there are other times you should not use GET:

  • When your request contains non-ASCII characters that cannot be processed in the URL
  • When using GET is that while most browsers and the RFC do not have length-related guidelines for URLs, Internet Explorer has a maximum URL length of 2,048 characters..
  • When you want to hide your form implementation methods to avoid exposing hidden fields.

When processing a GET request, several things happen. The browser constructs the URL as we described above, and then processes it as if it were following a link. The browser can determine the parts of the URL and it splits it into the host and name/value pairs. It sends a GET request to the host with the name/value pairs as an argument. The server takes the name/value pairs and caches them in the browser for later use.

Defining POST

POST is defined as form data that is to appear in the message body, after the headers and is not visible to the user. No query string is created. The data is still send as name/value pairs but remains hidden. Since there are many considerations we have to make for sensitive data and keeping it safe on the web, POST operations will always be the better choice over GET.

The HTML specification recommends that POST be used for any kind of operating such as updating data, ordering a product or sending e-mail. If the service is associated with the processing of a form that has side effects or changes the state of the application, for example the modification of a database, you should be using POST.

POST is ideally used for sensitive data and unsafe actions because the data is not transferred openly. When a POST request is made to the server, the server receives the incoming POST message, retrieves the name/value pairs from the message body and caches the data to the server. This data can be used as long as the session remains active. Once the session is terminated on the server, the POST data will be destroyed with it.
Along with what I have already talked about above, here are some reasons when you would want to use POST:

  • You don’t want the information in the URL being transferred to third-parties (like advertisers)
  • You want to send large chunks of data
  • You don’t want users to be able to tamper with the form data

The fundamental difference between GET and POST is that they respond to different HTTP requests in a different manner, and produce different results, as defined in the HTTP specifications. When determining which one to use, you should examine whether or not the data needs to be safeguarded or if it is OK to send it via plain text. Remember that actions that can change the state of the application such as database inserts or changes to files should be done via POST in order to protect the data that will be interacting with your system. GET should only be used in times when the data cannot affect the system such as a search box or email form.

Hopefully this article has helped you understand the difference between GET and POST and you are now better prepared to write applications using the appropriate method for sending data.


Apr 8 2011

Fire poi videos from the Springfield Mardi Gras celebration. It was DAMN cold but it still was fun!


Mar 3 2011

Mardi Gras and Fire Poi

This weekend is the celebration of Mardi Gras! I will be on C-Street at the Mardi Gras party from 6-8pm doing Fire Poi. Come on by and put a dollar in my hat!

Mardi Gras on C-Street


Feb 15 2011

New items in the store!

There are new items in the Rhysma store!

Have you ever wanted to celebrate the joy of the Internet cloud? Now you can with my new Yay Cloud! t-shirt

Do you love the Ninjaneer t-shirts? Check out the latest design!

Ever wonder how software is made? Based off of a humorous design diagram and a local programming firm, this shirt will make your nerd’s day!


Jan 19 2011

New Semester

A new semester has started and here is to hoping this one goes better than the last! I have a lot of sections this semester as well as taking another graduate class of my own. Always busy!

My Poi class is over for the moment and I am looking for students that want to start another beginner class as well as students that know a little already and want to start at an intermediate level with the group that just finished. Red Moon Studio has been so great about renting their space and accommodating with schedules.

I will be at the Commercial Street Mardi Gras festival on March 5 doing fire poi if anyone wants to come out and see how it’s done!


Dec 6 2010

Poi Videos!

I did some demos to promote my poi class at the Red Moon Studio. Here are videos from the demos!

Poi Video

Poi Video 2


Nov 12 2010

Progress with BrainEv

After using the program for going on three months now I am extremely happy with the progress I have made. I am less prone to irritability and stress and I have found that it is easier to keep my cool under pressure. There were some sleepless nights in the beginning as my brain adjusted but now I am getting a deeper kind of rest I haven’t been able to achieve before. I am really looking forward to what the program has in store for me.


Oct 26 2010

Object Independant Serialization C#.NET

Creating and storing serialized objects in a database is a fairly easy task.  However, the problem comes when you have created serialized objects with one application (or version of an application) and want to deserialize and use them with another.  Usually the error that you get is:

Unable to find assembly 'MyAssembly; Version=1.0.3463.18923;
Culture=neutral; PublicKeyToken=40e3171cc8066fe6'.

What?

Well the issue here is the objects that have been Serialized have a formatter transmits the information required to create an instance of an object of the correct type and version. This information generally includes the full type name and assembly name of the object. The assembly name includes the name, version, and strong name hash of the assembly.  What this ultimately means is that your serialized object data is now tied to the assembly and version that created it.

By default the deserialization process uses this formatter information to recreate the object as the correct type.  What we can do is override what the serialized object says and provide our own assembly information so that we can open our objects in another application.

First what we need is to create some add-ons for the SerializationBinder class that is part of System.Runtime.Serialization

sealed class SerializationHelper :
System.Runtime.Serialization.SerializationBinder
{
public override Type BindToType(string assemblyName, string typeName)
{
}
}

What the SerializationBinder class does is allow us to setup the assembly information and find the current object type that we want to deserialize as in this application, as opposed to the one it was created it.

First thing, we create an object of Type to hold the object type that we want to deserialize as

Type typeToDeserialize = null;

The biggest problem I ran into is the way that System.Reflection.Assembly returns assembly information. We can get the full name of the assembly like so

string currentAssembly = Assembly.GetExecutingAssembly().FullName;

Which gives us the fully qualified name of the current assembly, version and culture information. But we don’t need all that.

// In this case we are always using the current assembly
assemblyName = currentAssembly;

int index = typeName.IndexOf('.');
string obj = typeName.Substring(index+1);

index = currentAssembly.IndexOf(',');
currentAssembly = currentAssembly.Substring(0, index);

string objType = currentAssembly + "." + obj;

So here we use a little string magic to extract just the assembly name and just the object name so that we can concatenate them together into a fully qualified object name that GetType() will understand.

// Get the type using the typeName and assemblyName
typeToDeserialize = Type.GetType(objType);

This will return the CLR loaded manifest information on the object that matches the AssemblyName.Objectname that we provided to GetType. We can then return this information.

return typeToDeserialize;

Ultimately, to make sure that your deserialization process will use this new binding formatter you need to create your binary format binder as a new instance of our SerializationHelper class.

BinaryFormatter myFormat = new BinaryFormatter();

//set up a new binder so that we can maintain assembly freedom between
//serialized objects
myFormat.Binder = new SerializationHelper();

This way, when the myFormat.Deserialize() is called, the SerializationHelper class and our new overriden method will fire, causing the assembly information to be changed to the current running assembly, allowing you to deserialize objects that your current application (or version of the same application) did not create.


Oct 25 2010

Haunted House

So I am starting to think that my new house is haunted.  Creepy noises, unexplained occurances, icky feelings like you’re being watched.  Yea, this place is weirding me out.

The other day I could’ve sworn someone said my name while I was up in my closet.  It was a woman’s voice and it is really clear, like someone was calling my name down in the garden or driveway.  I pulled back the curtain to see if someone was out there but, of course, no one was.  Super creepy.

This morning when I got out of bed I came out into the hallway to go to the bathroom I heard a noise downstairs.  It sounded like a piece of silverware hitting something else in the sink.  A “clang” noise that shouldn’t have happened.  I would’ve thought the cat was on the counter if she hadn’t been in the bedroom with me just a minute before.  When I went downstairs to check out the kitchen I didn’t find anything amiss…

Can ghosts read what I put on the internet?  That creeps me out just thinking about it…