THE SUPERHEROES OF WEB DESIGN, DEVELOPMENT & MARKETING

{call the superheroes today} 407-217-2903

by Doug Justice

Well it appears as though SOPA and PIPA are tabled….for now.  But that of course won’t stop them completely as there are rumors that parts of them may still rear their ugly heads sometime in the near future.

Many Orlando Florida and Tampa Florida businesses contact Justice Solutions for Web Development and Web Design to create their next vision.  Many of these businesses see social and viral media as the next generation for their ideas and new and current websites and ask us to build and design them exactly that.  iPhone App Creation is another key part of our business and is another venue for the social and viral media outparcels…but not if SOPA and PIPA have their way.

Basically in a nutshell….if there’s copyrighted material on a website and it’s your website…you are responsible for policing it and removing that material or be fined or sued or maybe even both.  The other two big bombshells of the bills is the ability for ISP’s (your internet providers such as Century Link, Time Warner, etc.) to block at their level, any websites accused of having copyrighted material, and the ability for any private owner of copyrighted material to bring a lawsuit against a site (currently only the Justice Department can do so).

These provisions place a huge burden on the owners of the smaller sites trying to get to the levels of YouTube, Google, Facebook, etc. who could easily afford the defense costs if targeted in such a suit.  In an economy which desperately wants and needs to create new opportunities for the American people, it seems as though this legislation really could impact the already barely recovering economy.  Not to mention the fact that the whole censorship of sites “accused” of having copyrighted material on their site at the ISP level just gives me a really bad feeling about these bills.

Now do I feel something needs to be done about online piracy and protection of copyrighted materials….absolutely.  However not at the expense of causing a bigger problem than what currently exists.  Napster combated it by saying….let’s work a deal to make this legal and get you (the music owners) some money since if things continue you’ll have none.  Apple recently combated it by saying to its new iCloud subscribers…hey give us $39 a year and we’ll allow you to “legalize” your music and even give you a better sounding one while we’re at it.  The world of the world wide web is always changing and evolving, so we as a country must continue to evolve as well and not just throw up censorship as the only way to solve a problem.  We need to rethink SOPA and PIPA since otherwise we’ll all be SOL.

-Doug Justice is the CEO & Chief Superhero of Justice Solutions LLC.  He is an expert in over 10 different programming languages and development methodologies and performs analysis of company development teams, new business concepts, and web marketing potentials.

Share on TwitterSubmit to StumbleUponDigg ThisShare via email

Ok, just a quick post today about an issue that I personally encountered that about baffled the living hell out of me.  If you have Dreamweaver CS3, this is what happened to me….maybe it’ll help you.

Opened a file…php….and edited it and saved it no problem.  Went to another .php file in my same project directory and as soon as I hit the “{” character….I got the dreaded, “Adobe Dreamweaver Has Stopped Working”…and so it closes and the frustration began.  This also happened on a few .cfm ColdFusion files as well and in some cases it just involved me clicking in the code region like I was going to type something…but never got the chance as DW closed right away.

So after doing some digging that day, still couldn’t find anything.  Thankfully I found the answer which said the error was caused by….Daylight Savings Time!!!!  I had been in Arizona for many years and never changed my clocks on my computer since Arizona doesn’t change to and from Daylight Savings Time.

I thought about it and said you know, the problems did happen right on a Monday morning after the clock change…I wonder.  So following the instructions I went to C:Users<username>AppDataRoamingAdobeDreamweaver 9Configuration. (or if you have XP or Pre-Vista – C:Documents and Settings[Your username]Application DataAdobeDreamweaver
9Configuration), deleted the WinFileCache*.dat  from that directory, then restarted Dreamweaver….in a flash (no pun intended) it was working like a charm again.

I’m sure this has been fixed in later versions but just in case you’re not able to upgrade yet to CS4 and you’re still using CS3 like me, you’ll definitely want to make sure you watch for this in the future.  Hope it helps someone else….let me know if it does.

Share on TwitterSubmit to StumbleUponDigg ThisShare via email

This has been bothering me over the past couple of months and I just thought I’d share some random thoughts about things you should make sure your clients understand about web development, their expectations, and what to expect from you as their developer through, during, and after the initial development process.

  1. Let the clients know that you do actually have other clients and even though their project isn’t less important than the other clients, but please be respectful of the time that needs to be shared across all client lines.
  2. You do get what you pay for and sometimes a little bit more.  Meaning my old philosophy was to always err on the side of the client…if there’s a contractual problem that results in a few extra hours, then go ahead and do it.  However I now realize that even though you go the extra mile, the old addage my mother used to say about giving people an inch and they’ll take a yard still holds true to this day.  So give the client what they paid for…and then if there’s a problem and they want something extra, explain to them why they need to pay for that as well.
  3. Write your contracts with no guarantees.  One of my favorite films is Tommy Boy and if you remember this film, his father “Big Tom” would tell potential customers who wanted a guarantee from him about his auto parts that you can take a piece of s**t, put it in a box and slap a guarantee on it…however all you’re guaranteeing is that it is just a guaranteed piece of s**t in a box.  The same holds true in web development.  If you do quality work, let that work speak for itself.  If they want a guarantee, let them know that you provide a service contract that they can purchase that will cover certain issues if there is a problem.
  4. Don’t let yourself be taken advantage of…have your clients pay for the programming hours before they are used.  I know this is a very bold statement, however in this wacky economy right now it’s necessary.  I have 4 clients who are 90+ days out on their payments.  I’ve even shut down a website because this person hasn’t contacted me about the final payment or anything.  It’s not fair to the developer who takes a lot of time to produce quality web development work and then gets left holding the bag.  If you go into a grocery store and say…bill me…they’ll tackle you and maybe even prosecute you for shoplifting.  In the web world you should space out your payments enough so that a client doesn’t waste a ton of money if the developer doesn’t pull through, but still can satisfy the web developer’s need to get paid for their time.
  5. Always keep detailed records of the time you’re spending on a project…even if it’s a flat fee project.  The reason…you can always show your client the amount of hours a certain task has taken and if they believe they’re not getting enough work from you, you have a good backup for those discussions.  It probably would help sending those hours summaries each week as well.

I’ll probably have a few followups to this subject, but if you have any horror stories you’d like to share and what you’ve done to avoid them in the future, I think we’d all like to see them.  I’m not ragging on all clients…I have several really really good ones who are great overall…but there are a few which really get your goat…and it really isn’t fair.  So take these suggestions for what it’s worth and I hope it makes for a better client experience for you and your web development company.

Share on TwitterSubmit to StumbleUponDigg ThisShare via email

Ok, it’s time to toot our own horn today.  I’ve seen plenty of blogs on this where businesses and individuals are looking to grab data from multiple sources (that they are allowed to scrape mind you), and combine it all into one grand application or database…often to no avail and leave very frustrated comments about their trials and tribulations.

Well, we’ve been doing this for quite a while and I felt as though it was time to let other folks know about it since there are a lot of opportunities for businesses to save on some soft employee costs, reduce overhead, and increase productivity and data.

A Quick Word About Why You Should Hire a Web Development/Design Company
This is where web development companies are worth their weight in gold.  Yes, I know there’s plenty of cookie cutter do it yourself websites out there, and they are great and very affordable.  But when you have an idea that is unique, or a situation that is unique, you really don’t want what is out there available for everyone else.  I mean, honestly…if Dell used a cookie cutter build your own computer plugin, would they really be all that different from the other 100 web stores that offer the same thing at approximately the same cost?  No, you’d probably go to the place that was unique, professional looking, and looked as though they actually spent some money building a better mousetrap.  Ok…so there’s my two cents why you should actually use us….on to the good stuff.

Why You Would Need an Expert in Data Mining and Screen Scraping
Let’s say you are a company in Arizona who has an idea to put together a site that puts together all of the latest reduction in homes for sale prices.  Now there’s a bunch of websites out there that you’ve contacted and said you’re going to promote this site and obviously push the business to the various real estate agents involved.  Now comes the fun….gathering this data on a daily basis and putting it all into your application.  That’s where Justice Solutions comes in.

Grab Data, Massage Data, Import Data, Display Data
So now you hire Justice Solutions to do this seemingly impossible task.  We now take the web addresses of these various sites and create an application that will go out to each one, identify the way each site displays its data, grab it (even if it’s on multiple pages), and then perform some massaging scripts that will convert any text data into price data, etc.  We then import that data into your master database which will then be used to display the data to your website users in a unique format specific to your website.

Why It’s So Difficult
The reason this is usually such a daunting task is because if you’re not used to it, trying to identify data patterns and other things that go into dealing with data from multiple sources can be quite overwhelming.  Also, you have to be able to automate all of it so it happens quickly and without much user intervention.

We’ll Toot Today
So if you or a person you know has an idea like this, or an existing business that would benefit from this type of application, please refer them to us.  We gladly pay referral fees and would be happy to help in easing the fears of this commonly thought of, but rarely successful, business model.  Contact info@justicesolutionsllc.com for more information.

Until next time…happy coding…and mining….

Doug.

Share on TwitterSubmit to StumbleUponDigg ThisShare via email

See The Float In Action Here

    You know, nothing is more frustrating when you hear that something has been fixed in a particular software update, and then you find out that it really hasn’t. I ran into this today when I was trying to do some fixed positioning of a new web host that needed to be affixed to the bottom of the browser and to the right at all times. I heard that fixed positioning in IE7 was now possible, so like an idiot I went ahead and placed just position: fixed; into my CSS and uploaded it for testing.

    Of course in Firefox it looked and reacted fantastic. Then I opened IE7 and whoa……it was all the way shifted down at the bottom of my page like it never even looked at the CSS to position it. I’m not here to debate whether your version of IE7 works with this or not, but I can help you keep the IE6 and possibly some IE7 users who have messed up versions happy with your site design.

    The Fix
    Ok, short, simple sweet. That’s the way all web developers like it right? Well you’re gonna love this one then. First thing…add the following into your .css file or in your head tags of your page…it’ll work either way:


    * {
    margin: 0;
    }
    html, body {
    height: 100%;
    overflow: auto;
    }
    .wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: auto;
    }

    With me so far? Ok, next go ahead and create 2 more entries in your CSS substituting whatever name you are going to call the div that will contain your desired “floating” layer. In this case I’m calling it floatHer.


    #floatHer {
    position:fixed;
    bottom:0;
    right:0;
    width:720px;
    height:480px;
    z-index:7;
    }
    * html #floatHer {
    position: absolute;
    }

    Finally….and this is the cool part…just put

    around the code of the page that IS NOT SUPPOSED TO FLOAT. Keep the div that you are wanting to float outside of this tag since this is part of the magic that happens when all of this comes together on your page.

    Now upload/test your page in any browser you’d like and you’ll find your floating layer reacting just fine in IE6, Your screwed up version of IE7 like mine, Firefox, Safari, etc. Now obviously there’s some issues when it comes to scroll bars, etc., but for the basic ad you want to float on top of the web page (that’s why you googled this right?) this will work just fine.

    Until next time…happy coding!

    Doug.

    Share on TwitterSubmit to StumbleUponDigg ThisShare via email

    Shopping carts are basically a dime a dozen.  But there’s always some component of them that doesn’t quite fit into your current model.  So what do you do when you are up against a deadline and need to quickly produce a basic front end of a shopping cart to hold items and quantities in .NET using on Session Variables?

    I came up with this solution after thinking about a quick way to avoid having to read and write to a database, but not storing elaborate arrays and such to try and accomplish a very simple shopping cart structure.


    // Get the Item We're Going to Add to the Cart
    int itemID = Convert.ToInt32(Request.QueryString["itemid"]);

    // Get the Item (I use a Business Logic here, but you could easily grab the item information from your //database call or items from a grid, etc.
    item m = new item();
    itemAssembler ma = new itemAssembler();
    m = ma.ReadSingleByKey(itemID);

    // Now grab a random number so we can track the items in the cart individually

    Random rand = new Random();
    int x;
    x = rand.Next(100000, 999999);

    // Check and see....Do we have a cart already?
    if (Session["cart"] == null)
    {

    // Add the item to the cart
    NameValueConfigurationCollection cart = new NameValueConfigurationCollection();

    //Add an Item to the cart ("ITEM",Variance, ItemID,Quantity)
    NameValueConfigurationElement nvc = new NameValueConfigurationElement("ITEM," + x.ToString() + "," + "1", m.id.ToString());
    cart.Add(nvc);
    Session["cart"] = cart;
    }
    else
    {
    NameValueConfigurationCollection cart = Session["cart"] as NameValueConfigurationCollection;

    //Add an Item to the cart ("ITEM",ItemID,Quantity)
    NameValueConfigurationElement nvc2 = new NameValueConfigurationElement("ITEM," + x.ToString() + "," + "1", m.id.ToString());
    cart.Add(nvc2);
    Session["cart"] = cart;
    }

    // Now take your user to the cart view page you'd create
    Response.Redirect("your_cart.aspx");

    Now on our “your_cart” page, you can now loop through the items in the cart and display them however you’d like.


    // Let's load the items from the shopping cart into the table
    NameValueConfigurationCollection cart = Session["cart"] as NameValueConfigurationCollection;
    foreach (NameValueConfigurationElement n in cart)
    {

    //Now split the value for the Item Type, the ID, and the Quantity
    String typelist = n.Name;
    char[] sep = { ' ', ',', '.', ':', 't' };
    String[] typeitems = typelist.Split(sep);

    //Hold these values in some String Variables
    String type = typeitems[0];
    String cartitem = typeitems[1];
    String qty = typeitems[2];

    //Now set up our currency display
    System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
    nfi.CurrencyDecimalDigits = 2;
    nfi.CurrencySymbol = "$";

    //Take your business/data logic and grab the information
    item i = new item();
    itemAssembler ia = new itemAssembler();
    itemCriteria ic = new itemCriteria();

    if(ia.ReadSingleByKey(Convert.ToInt32(n.Value)) != null)
    {
    i = ia.ReadSingleByKey(Convert.ToInt32(n.Value));

    // Get the Retail Price
    int productid = i.id;
    pricing pps = new pricing();
    decimal retailprices = Convert.ToDecimal(i.retail);// +Convert.ToDecimal(i.shipping);

    //Now take the Table you have on your display page and add rows to it...
    HtmlTableRow mainrow = new HtmlTableRow();
    HtmlTableCell maincell = new HtmlTableCell();
    maincell.InnerHtml = "
    " + i.name + " Remove Item

    ";
    mainrow.Cells.Add(maincell);
    tblCase.Rows.Add(mainrow);

    }

    System.Globalization.NumberFormatInfo tnfi = new System.Globalization.NumberFormatInfo();
    tnfi.CurrencyDecimalDigits = 2;
    tnfi.CurrencySymbol = "$";

    // Now populate the items on the Total Costs Table
    lblSubtotal.Text = String.Format(tnfi, "{0:c}", subtotal);
    lblTax.Text = String.Format(tnfi, "{0:c}", tax);
    lblShipping.Text = String.Format(tnfi, "{0:c}", shipping);
    total = subtotal + shipping + tax;
    lblTotal.Text = String.Format(tnfi, "{0:c}", total);
    }

    You now have a simple shopping cart in just a few lines of code since most of the code is used to get the information about your particular item and can be streamlined even more if you wanted to store all of that into the string as well. Ok, so now that you have a way to put together a quick cart for your client before morning….happy coding

    Share on TwitterSubmit to StumbleUponDigg ThisShare via email