by Jonathan at 06/20/2012

As the resident techy I get asked a lot about what computer to buy. What brand(s) do I recommend? Should I get a laptop or a desktop? I often have the same answers and ask the same questions to people who ask me this, so I thought I would attempt to answer them in an easy to reference place.

What Brand?

For me the easier to answer question here is what not to get.

Stay away from these brands:

  1. E-Machine (never ever ever.....ever!)
  2. Gateway (who bought emachine)
  3. Acer (who bought Gateway)
  4. Apple (you iSheep)

Why?

After working in the PC repair business I've learned E-machine are terrible pieces of junk. If the person receiving computers at a repair store (who has limited knowledge of computers) can guess what's wrong with your computer, that's a bad sign. The top problem is the motherboard, and it's proprietary. That means that emachine is the only person who makes motherboards just like this. Repair cost: $300 just for the parts!*

What about the other 2 and 3? You know when you buy food and it says "packaged in a facility that also packages peanuts"? Same thing here. Of course, Gateway and Acer where bad deals before but now they're all the same company. Just back away slowly.

Apple? "But all the cool kids in college get one" Yeah and they're the ones whining about the government not paying their bills. Other then the complete lack of real software (besides Adobe products, Office and Snake), the proprietary parts, the brand premium, and the general zombie like qualities of Apple's user base... what's not to love. Sorry, that was a free rant. *cough* moving along...

I recommend Dell usually.

These brands are usually ok:

  1. Dell
  2. HP/Compaq (Although I would buy and HP over the Compaq)
  3. Toshiba (Laptop)
  4. Sony (Laptop)

Why?

In both professional (three years) and personal experience I've had the least amount of issues from Dell. Dell computers do have their issues for sure, but so do the rest of them. I have had more problems from HP compare to Dell over the years but HP tends to make decent computers these days. I'll cover 3 and 4 in the next section.

When I talk about problems I'm referring to a couple of things together. First, is the computers overall performance and the issues that I had with the actual machine. Second, is the company themselves and their reputation as I've come to know it over the years. Third, is the technical/customer support. All the brands fail big time here. The exception to this, which you likely won't be privileged to, is the Enterprise support. If you spend the big bucks on servers you get the call center in Texas not in India.

No one makes a perfect computer. No one! If "Worst Buy"'s "Lack of Knowledge Squad" tells you different, they're lying. (Apologize to you one or two beetle driving techy's that do know what you're doing).

Laptop or Desktop? (or Tablet)

An equally difficult question to answer. It depends. It depends on what you want to use the machine for. It depends on how much you want to spend. With all of the options you have negative and positive trade offs.

Mobility:

My first question back to you is mobility. Do you want to be able to sit on the couch and watch TV or take a long on a trip? Obviously, with a desktop (other than the "All-In-One", which I don't like for their lack of field repairable-ness) have zero mobility. Their stuck to the desk unless you unplug everything and plug it back in. You'd almost think that's why the call it a deskTop. :) If that's not important to you then move a long and consider the other categories.

Power:

Desktops and laptops can have very similar hardware specifications these days. For the purpose of these article I went through Dell's web store picking out a laptop and a desktop and trying to match their specs as best I could. I also added a comparison to the Samsung Galaxy Tab 2 10.1 tablet. Keep in mind that the tablet spec's are very limited vs their bigger brothers so it's not kiwi to kiwi.

 DesktopLaptopTablet
Processor  Intel i3 (3.3 Ghz)  Intel i3m (2.4 Ghz)  1 Ghz
Memory  6 GB DDR3 1600Mhz  6 GB DDR3 1600Mhz (Shared)  16 GB
Graphics  Integrated Intel Graphics  Intel® HD Graphics 3000  (couldn't find information)
Speakers  Extra  Included  Included
Monitor  Extra - 18.5"  Included - 15.6"  Included - 10.1"
Storage  1 TB  500 GB  16-32Gb
Inputs  16x DVD/RW, 8-in-1 card reader, keyboard, mouse  8x DVD/R, keyboard, mouse  SD reader, on screen keyboard, touch screen, Front/Back Camera
Outputs  Speakers not included  Speakers built in  Speakers built in
Connectivity  Wired, Wireless  Wired, Wireless, Bluetooth, Mobile broadband can be added  Wireless, Bluetooth, Mobile broadband can be added (carrier provided)
Battery Life  None, you unplug it, it dies   6 cell battery  7,000 mAh

Are you still with me? Take a deep breath it's ok. We can get through the technical bumbo jumbo.

The laptop and desktop had very similar processors. This is typically a benchmark of speed in a computer. The laptop did have a mobile processor which means that it it's not quite as powerful but uses less power (consumption). The tablet obviously has the disadvantage here, but you're not likely to use a tablet for anything that is heavily CPU/processor intensive except for a few games and poorly written applications.

The memory was also about the same in desktop and laptop. The catch here is that the laptop's memory is shared. What that means is the laptop will share its memory with the Graphics card. If you looked at the computer specs from within Windows you would notice the laptop will not display 6 Gb's of available memory, but rather what is left after the video card takes some (usually can be configured). Before you get excited about the larger amounts of memory for the tablet, it's not the same. Tablets while capable of multitasking are just not the same as a full fledged computer. I welcome a better explanation from any technology person who could provide a better one.

I had to add speakers and a monitor to my cart for the desktop. Both laptop and tablet come with them. The advantage the desktop has here is that the monitor is field replaceable. What that means if the monitor on the desktop goes bad (or you want a bigger one), you can simply go buy an new one, replace the bad one and throw it away.

The desktop clearly wins in storage. It has double the storage space of the laptop. The laptop has over ten times the storage space the tablet can have at its max.

The desktop can record faster (DVD/CD) than the laptop but you probably won't notice. The tablet obviously doesn't have an optical drive. That's not needed because an optical drive is not the primary method of obtaining new software for any smartphone/tablet.

All three device can support a wireless network connection. Only the tablet lacks the hard wired connection, but why would you want that anyway? While all three could support mobile broadband, you will usually find that in a laptop or a tablet over the desktop. You can get WiFi only tablets. If you buy a tablet from a cellular company you will be forced into a monthly data plan for the device.

Battery life. Your mileage will very. Both batteries will last longer or shorter depending on what you're doing with them. Watching a movie or playing a game will drain the batteries faster than checking email or simple surfing.

On that note. You can get a desktop with better power supplies (Bronze+). There are power supplies for desktops that only consume what they need (40w) vs taking it all, all the time (300w+).

Cost:

I was surprised at the cost comparison. I thought they would be close but not as close as it was. In cart, the desktop (Inspiron 660) was $697.96, the laptop (Inspiron 15R) $624.95 and the tablet $399.99. Both computers where from Dell's website and the tablet from Samsung's website at the time of this writing. Both computers had a printer added to the cart. Additionally, the desktop had speakers and a monitor. No other upgrades where chosen except where needed to get the specs to be comparable.

There are more expensive and more powerful desktops and laptops. There are cheaper ones too, of course. I recommend buying between a $500-$700 rage for mid range computers. Any thing else than that and you could be replacing it sooner had you spent a little more out of the gate.

Beware of "Extended Warranties" from Box Marts. Most computers have a one year manufacturers warranty with them. Buying these extended warranties means that you pay for a 3 year warranties but only get two extra. In the first year "Worst Buy" is going to ship it back to the manufacturer just like you would. If you're super careless or have kids that might use it, the only warranty I would get it would be an "accidental damage warranty". This covers you in the event that you do something really mean to the poor computer. Otherwise warranties only cover manufacture defects not problems you caused.

I had mentioned I'd cover Toshiba and Sony in this section. Toshiba and Sony both make pretty good electronics. However, their laptops tend to cost more to repair then Dell and HP. Toshiba and Sony make their propitiatory parts more difficult to get compare to Dell or HP making the parts more expensive*.

Summary:

So what should you buy? It depends.... Still. Either of these desktops and laptops will be just fine for emailing, documents, general surfing, some video editing and lite gaming. The tablet is well suited for the purposes it is giving but if you add a bluetooth keyboard to make typing easier, you practically have a laptop. I would have shot myself trying to write this article on a tablet.

To me a laptop is still a great mid point between tablets and desktops.

Run away from netbooks! You will not be happy with it.

The coming of Windows 8 might bring some interesting things to the table if Mircosoft does it right.

I hope this helps. Feel free to leave me a comment with questions and suggestions.

As always, all copyrights belong to their holders. This information is provided as is and without warranty. Basically, this article is nothing but my opinion and that's it. It's your own fault for anything else. :)

 Mobility(Horse) PowerPower (Consumption)WeightPrice
Desktop  None  Excellent  Poor-Good  You're not lugging this thing around are you?  $697.96
Laptop  Good  Good  Good  5.84 lbs  $624.95
Tablet  Excellent  Poor  Excellent  1.28 lbs  $399.99

* Last I knew this was true, and this is talking about out right replacement not a hack fix or cable to make it work for you tech people out there whinny on the inside.

Tags: , , | Categories:

by Jonathan at 06/14/2012

When creating database driven websites, specially centered around users, I often have to fill in fake data while testing  so I can see what the results of screen would be if I had say a hundred entries.

Today I came a cross a great website for generating a file (CSV, SQL scripts, TSV, and even pipeSV) to help me populate my database without writing a for loop that offered very little in variety in names, address, etc.

That website is fakenamegenerator. The bulk generator is here, which is what I wanted.

They offer a nice range of fields to choose from and is easy to reorder them. Including latitude and longitude which is awesome. Some down sides I see are that there is no way to reuse a field. For instance, I need a phone and fax. Fax was a missing field and with no option to reuse "phone" I had to use some regex magic before the data was usable. It is also missing a combine name field. You get "Given" and "Surname" but again, manipulation was required before I could import the data into my table. I also wish that you could specify the column names and the table name like you can at identitygenerator.

However, identitygenerator had less options as far as what could be generated and overall fakenamegenerator was better suited to what I wanted.

 

The SQL file I received from fakenamegenerator:

 

Your other option for none "customer" or "user" data is a nice for loop like this:

declare @i int;
     set @i = 1;
     while (@i < 21)
     begin;

     INSERT INTO student
         ([title])
    VALUES
          (
          'foo' + convert(varchar,@i)
          );
     set @i = @i + 1;

     end

Hope that helps you in your database/development journeys!

I have no affiliation with any of the companies mentioned other then using their free services today while working on a project. Of course, the usual copy right blah blah

Tags: | Categories:

by Jonathan at 06/08/2012

No I don't mean we're getting in a boat.

What is Phishing?

 

"Phishing is attempting to acquire information (and sometimes, indirectly, money) such as usernames, passwords, and credit card details by masquerading as a trustworthy entity in an electronic communication. Communications purporting to be from popular social web sites, auction sites, online payment processors or IT administrators are commonly used to lure the unsuspecting public. Phishing is typically carried out by e-mail spoofing or instant messaging and it often directs users to enter details at a fake website whose look and feel are almost identical to the legitimate one. Phishing is an example of social engineering techniques used to deceive users, and exploits the poor usability of current web security technologies" -Wikipedia

 

I get a lot of email. I have several email accounts for things that I manage and of course personal email. It's interesting to note how many companies will sell your email address. The most comical (sort of) reason I know that this takes place is when I get phishing email about games/websites where I know that the company themselves is only aware of me email. I don't usually join forums or any websites outside of the company official sites. Case in point. Runescape. Runescape is a game that I used to play a long time ago and haven't logged in in ages. I CONSTANTLY get phishing emails about Runespace. I can deduce that since Jagex (makers of Runescape) had my email address that they sold it. Now I'm on a list somewhere that says "hey this guy plays this game. Let's see if we can get him to give us his password so we can hack into other stuff".

Rant about companies selling your email address complete.

Moving on. So how does one identify phishing emails? Here, I'll show you. First you examine the email

First we have "Dear players". Wrong. The company in question would not reference more then one person at a time even in a bulk email. Additionally, the company would likely reference you by either a username or part of your name.

Second. Noticed that the comma between "management" and "to" is incorrect. It's likely that larger companies have teams of people who prepare emails to go out. It's highly unlikely they will contain grammatical and spelling errors. Note: I do not have teams of people preparing email so I am excused of grammar/spelling errors in this post :)

There's also the double colon at then end of that line (and the ugly words "click here" but that's rant for another day).

Perhaps their greatest blunder in this email is the link itself. The link reads "http://https://" This is just amateurish. It's an invalid URL. A url must be http or https (the S means secure, which is supposed to make you feel better about the link) it can't contain both. On top of that when you hover your mouse over the link it doesn't point the URL that it's made to look like. This is perhaps the best way of identifying phishing. The link it actually goes to is http://something.ur-login.in/blahblah definitely not the website for the company's corporate page or the games site.

Finally, you can also identify phishing by examining the header information of an email.

The "Received" and "Return-Path" are both gibberish, another excellent sign. If an email is legitimate 99% of the time these two things will either be related to the company that is claiming that sent it, at least make readable sense, or be easily traced back to the company.

The "X-Mailer" is outlook express. Almost no large company would use Outlook Express to send email and no large company would use an email client to send bulk email to all of their users. If you work for a large company and you are doing either of these things...... What is wrong with you

 

My parting pieces of advice to you is these.

  • When in doubt, assume that it's a fraud. Better safe then sorry.
  • In the case of "your account has been compromised" or "needs to be verified"
    • Go directly to the companies website. NOT from the email.
    • Search online. Big companies are in the news somewhere about this kind of thing
    • CALL THEM! If you get ones of these from your "bank" call the nearest branch and ask! Banks will NEVER EVER EVER ask you to identify yourself via email. If you work for a bank and you do these things... What is wrong with you
  • Setup a second email address just for spam. If you think a company is going to sell your email address (and LOTS do) then give them a special address you know you use for that purpose. Or use a trash account like mailinator -- be warned: do NOT use mailinator for anything you wouldn't want others to read.
  • Read more: Microsoft has this nice little article about it
Tags: | Categories:

by Jonathan at 03/15/2012

Working on a project to post some data to a sharepoint 2010 list via powershell thought I would share the code

$assembly = [Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions")
$url="http://SERVER/_vti_bin/listdata.svc/LISTNAME"
$webclient = new-object System.Net.WebClient
$webclient.UseDefaultCredentials = $true
$webclient.Headers.Add("Accept", "application/json")
$webclient.Headers.Add("Content-Type", "application/json; charset=utf-8");
$stringToUpload="{`"Title`":`"test`"}"
$resultString=$webclient.UploadString($url,$stringToUpload)

Replace SERVER and LISTNAME with your info on line 2

Tags: , , | Categories:

by Jonathan at 04/02/2011

So if you have ever programmed for longer than well about 5 seconds you have probably run into an error. So what to do with the errors? I found out about this fantastic little trick for error handling in VB.Net that helped me with a SaaS project I'm working on.

As most dynamic projects go I needed to pass information from a text box into SQL statement (Linq2SQL, stored proc). Again, as most dynamic projects go I knew that I would need to valid what went into the text box before using it. In this case I need to verify that

1) the text box actually had something in it, if not set it to zero,

 

if TbSomething.text = "" then TbSomething.text = 0

2) verify that what was in the textbox was a number and 3) that it was a positive number.

Try
	i = CInt(TbSomething.Text)
	If i < 0 Then Throw New Exception("Negative Number")
	Catch ex As InvalidCastException
		errormsg += "Must be a number<br/>"
	Catch ex As Exception When ex.Message = "Negative Number"
		errormsg += "Must be a positive number<br/><br/>"
End Try

master.errormsg = errormsg

The interesting part of this was the When clause. When using Catch and an Exception type is not enough or you are using a custom Exception you can use the When clause to additional conditions. Then When clause could execute a method or be a simple comparison as above. Another example was using it to allow the application to retry an operation and finally give up if a condition was true thus allowing the Catch When to fire.

Once the error(s) where caught I used the error display method I wrote about in this post

Tags: , , , , , , | Categories:

by jpeterson at 01/08/2011

I often find myself needing to display some kind of message to the users of my application. Be it an error message or to notify the user an operation has completed. I hate rewriting code. So I wanted a way in which I could have a placeholder in a master page and be able to programmatically display error messages. Of course the other benefit of placing this in  a master page is being able to update the styles or controls in one place. I would hate to find myself needing to make a simple change to the class name of a div I’ve placed all over a huge project. Here’s my solution:

Place the following code in your master page: (note you will need jqueryui for this)

 

<div class="ui-widget" id="Div_Warning_Container" runat="server" visible="false" style="width: 600px;">
<div class="ui-state-highlight ui-corner-all" style="margin-
top: 20px; padding: 0pt 0.7em;">
<p><span class="ui-icon ui-icon-info" style="float:
left; margin-right: 0.3em;"></span>
<strong><asp:Literal ID="LitGlobalWarningMsgTitle"
runat="server" /></strong> <asp:Literal ID="LitGlobalWarningMsg" runat="server" /></p>
</div></div>



<div class="ui-widget" id="Div_Error_Container" runat="server" visible="false"
style="width: 600px;">
<div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
<p>
<span class="ui-icon ui-icon-alert" style="float: left; margin-
right: .3em;"></span>
<strong><asp:Literal ID="LitGlobalErrorMsgTitle" runat="server" /></
strong><br />
<asp:Literal ID="LitGlobalErrorMsg" runat="server" /></p>
</div>
</div>

 

You now have an nice little area for error messages and a separate one for general informational messages

In your master page code behind:

 

'be sure to set the title AFTER the message. the message property will automatically set a title
Public Property errormsg() As String
Get
Return LitGlobalErrorMsg.Text
End Get
Set(ByVal value As String)
errormsgtitle = "Error(s):"
LitGlobalErrorMsg.Text = value
Div_Error_Container.Visible = True
End Set
End Property
Public Property errormsgtitle() As String
Get
Return LitGlobalErrorMsgTitle.Text
End Get
Set(ByVal value As String)
LitGlobalErrorMsgTitle.Text = value
End Set
End Property
'be sure to set the title AFTER the message. the message property will automatically set a title
Public Property warningmsg() As String
Get
Return LitGlobalWarningMsg.Text
End Get
Set(ByVal value As String)
warningmsgtitle = "Warning:"
LitGlobalWarningMsg.Text = value
Div_Warning_Container.Visible = True
End Set
End Property
Public Property warningmsgtitle() As String
Get
Return LitGlobalWarningMsgTitle.Text
End Get
Set(ByVal value As String)
LitGlobalWarningMsgTitle.Text = value
End Set
End Property

 

From your child (or is it slave?) page you can then do:

master.errormsg = "Text"
master.errortitle = "Title"

Be sure to set this:

<%@ MasterType VirtualPath="Site.master" %>

and set autoeventwireup to true

Ta Da!

Tags: | Categories:

by jpeterson at 10/27/2010

So I've got a hosting plan at Godaddy (i.e. you are here) with about 7 sites on the hosting package. Problem is that my development is based on .Net 4 and blogengine is running (as of this post) .Net 3.5. The blog engine will run like this without any problems (at least in my experience), the problem comes when attempting to make new posts. I kept getting a 500 error message.

Solution:

Either allow VS 2010 to update your web.config file, which would involve downloading blogengine locally and setting it up in VS or make these changes to your web.config file:

Line 34-43:

From:
<compilation debug="false">
            <assemblies>
                <add assembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
           
To:
<compilation debug="false" targetFramework="4.0">
            <assemblies>
                <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                </assemblies>

Line 46:

From: <httpRuntime enableVersionHeader="false" useFullyQualifiedRedirectUrl="true" maxRequestLength="16384" executionTimeout="3600" requestLengthDiskThreshold="16384"/>
To: <httpRuntime enableVersionHeader="false" useFullyQualifiedRedirectUrl="true" maxRequestLength="16384" executionTimeout="3600" requestLengthDiskThreshold="16384" requestValidationMode="2.0"/>

Line 51:

From: <pages enableSessionState="false" enableViewStateMac="true" enableEventValidation="true">
To:<pages enableSessionState="false" enableViewStateMac="true" enableEventValidation="true" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">

 

If you decided to let VS update the web.config file you still MUST add requestValidationMode="2.0" to line 46. Hope it works for you. Happy posting!

Tags: , , , , | Categories:

by jpeterson at 10/06/2010

Mostly blogging to myself here because I had to look this up again :) This is one of the ways to use CSS to center your website designs. I like this method better then the margin 0px auto method as that method has caused some other alignment issues where this method doesn’t. So here’s the code:

#wrapper { position: absolute; left: 50%; margin-left: -350px; width: 700px; }

Notice that is margin-left: -(width+borders+padding)/2.

The wrapper div should be placed outside of all other content.

 

Update:

 

@Kevin Gillen

suggests:


A more simple option would be something like this:

.wrapper
{
     width: 700px;
     margin-left: auto;
     margin-right: auto;
}

And, you'd specify your div as follow

<div class="wrapper"> ... content in here ... </div>

 

Tags: | Categories:

by jpeterson at 09/30/2010

This doesn't really have to do with programming but I want to share this anyway. I've seen lots of people "like" these pages on facebook that once you go to the fan page the page has instructions to "unlock" their "secret" content. Here's an example

 

 

 

 

 

 

 

 

 

 

 

 

 

(click to enlarge)
Things like this scream at me as insecure and/or scam-ish. Notice the "Terms of Use" at the bottom, safely tucked away below the large white space and the "call to action buttons"? After clicking on "Terms of Use" you get this: "While pressing one of the buttons you are allowing the system to publish on your profile. We have good intentions; if you think otherwise please let us know :) ." (bold added) This is one of the few pages I've seen that actually tell you what's going on. Still though what exactly do those buttons do? Why let's look at the source. Warning: a bit nerdy here :)

Code:

<iframe src="http://www.facebook.com/plugins/like.php?href=http://www.facebook.com/pages/5-things-all-girls-want-guys-to-do-on-a-first-date/134286739953058&amp;layout=button_count&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=21" style="border: medium none; overflow: hidden; width: 80px; height: 26px;" allowtransparency="true" id="lpcframe" name="lpcframe" scrolling="no" frameborder="0"></iframe>

<iframe style="width: 100%; height: 40px; border: medium none; opacity: 0;" src="http://www.facebook.com/sharer.php?u=http://www.facebook.com/pages/5-things-all-girls-want-guys-to-do-on-a-first-date/134286739953058" scrolling="no"></iframe>

<a href="http://truthsexposed.com/man/landing.php">Step 3</a>

What is all that? Both the first two buttons are link directly to the facebook share url. What that means is that when clicking on those buttons those pages are added to your "other likes" on your facebook profile and added to your wall (which causes all of your friends to do it too). This should concern you. Why? Because these things happen without you realizing it (most of the time). Unfortunately, you are giving your express permission to do this because it does require a response from you (i.e. clicking the button(s)). If that wasn't bad enough often when you click the final step to actually view the information there some survey or something that you must complete to see their magical content.

So what do you do if you really what to see the content? I stumbled across this website http://www.bypassfanpages.com/ (warning: there is some not so nice language and other things you may not wish to see/read on this site). They've got post from a lot of these pages that reveals the content directly.

In conclusion, you really should go look at your profile and review the applications you have given permissions to and the pages you have "liked".

To review the pages:

  1. go to facebook.. duh
  2. click edit my profile (beside your picture)
  3. go to likes and interest
  4. click show other pages (at the bottom)
  5. remove

To review applications:

  1. go to facebook
  2. click account at the top right
  3. click application settings
  4. change the "show" drop down list to each one, one at a time and carefully look at what applications you have enabled. There's so many! Do you really need 4 "pieces of flair" applications?
  5. remove
Tags: , , | Categories:

by jpeterson at 09/29/2010

You never know who might be coming behind you after you've spent time coding a large (or small for that matter) application so be kind, follow good practices.

  • Either make your variables easy to figure out what they do or take the time to comment your functions and code.
  • Three "M's" of coding Modular, Modular, Modular!

    There have been countless times that I've been able to use the same block of code  (or slight variations as the project calls for) to do the same thing in an entirely different project. I hate coming behind someone else, looking at their code and wondering why they repeated something unnecessarily.
  • Folder Structure

    Keep neat folder structures. Keep your CSS under a “styles” or “css” folder. Images under “images”. Not doing this is almost as bad as not doing the above. I don’t want to sift through folders upon folders looking for that one last js file I needed.
  • Reinventing the wheel

    Yeah it’s nice that you wrote that really long fancy function to find the aspect ratio of an image but someone already did that. Don’t waste your time just to put your name on it. You’ve got better things to do. I’m all for taking something and adding function to what’s already there, but complex code may have already been provided by some really nice person on asp.net or stackoverflow.
  • Errors

    Make sure you have try catch blocks. Your clients (and possibly their clients) will at some point but something in that textbox that you weren’t planning for and you will wonder why on earth they tried that. On that note, validation user input. If you are going to reference their last name in some other page or portion of the application… you might want to check they entered it.

So those are a few that I could come up with. What do you think? (and be nice this is my first attempt at this :)

Tags: | Categories: