DevHints

Archive for the ‘internet’ Category

I have a friend who has been, like many others, totally sucked into the world of marketing called Apple. I don’t have anything against Apple, and I actually own a Mac and quite like a lot of the stuff that it does, but I’m the last person to fall for a marketing gimmick.

Like we all know, Apple is king of ooo-aaaaah marketing. They come up with glorified terms like “Breakthrough Internet communications device” that means that the phone has a browser and wifi. There’s nothing wrong with it, but I wish more people would see through it in some cases. Like the case of Safari.

“The best browser in the world.” That’s what Apple likes to call Safari, and from a marketing point, they should. The problem, however, is that people Mac Fanboys all propagate that line throughout everything and they really believe it. I mean, why shouldn’t they?

Safari is great! It really is the best. I mean, it looks good. It has and RSS reader build in, even though it doesn’t work that great. It can read HTML, XHTML, XML and more! It can execute JavaScript! It works with Flash! Um, it has a build in search box that only searches Google. OH! It does TABS…if you go into the preferences and enable them, anyways. I almost forgot, it has it’s own rendering engine so that websites look more like Apple thinks they should. Eh…and it does JavaScript it’s own way too. Hmm…it doesn’t follow those silly CSS standards! It restyles input elements the way Apple thinks they should look! F5 doesn’t do that irritating “Refresh” thing! Tab won’t select links so I can’t accidentally use my keyboard to browse instead of the non-ergonomic mouse that causes carpel tunnel!

Seriously now. Safari is just not a very matured browser. It’s sort of like a beta version of Mozilla blended with IE5. Sure, it looks good, but it really lacks what so many other browsers include. You can’t really customize it like Firefox with extensions and user styles. It doesn’t offer support for all of the standards like Opera…nor is it as fast at executing Javascript. It doesn’t even offer the nifty shortcuts that Internet Explorer offers.

Honestly, it’s a pain in the ass. Especially if you’re a website designer. It gives us just one more browser to test code in, and usually we have to make changes and sacrifices to allow Safari’s retarded engine to display the page as intended.

Advertisements

I’m currently about half-way finished with a project that allows a user to check their Myspace Mail inbox through WML and WAP (mobile internet standards). The user simply visits this service, dubbed mBridge at the moment, on their mobile phone. They will be prompted for their Myspace login information. mBridge will pass the credentials on to Myspace and retrieve the 10 most recent messages, strip any code, and display them for the user to read. For those of you interested in how this works, read on.

First, mBridge has a login page written in WML that includes a form allowing the user to type their email and password for Myspace. After the user submits this information, mBridge will take it and use it to connect to Myspace via sockets. A socket is opened to myspace.com, headers for the homepage are written, and a token is retrieved. mBridge then opens a socket to login.myspace.com and uses a POST request to send the user credentials. After a few redirects and setting of cookies, we have a valid session with Myspace. mBridge retrieves the mail center page and uses a regex to grab the dates on all of the messages, their subjects, and the message ids of all of them. Now we open a socket for each message found in the inbox and retrieve the content.

The subject lines are stripped of repetitive “RE:” flags and the messages are stripped of code that won’t display properly in a mobile browser. The user is sent a list of links to each of the messages for them to read. When they read a message, they have a link to respond to the message.

When a message is sent, we log back in, visit the mail center, read the message, simulate a click on the reply button, and insert the mobile users response in the field before clicking send.

Will Myspace try to stop this from happening? While it’s possible that they will change the login method, links, or method for sending message, we can always adapt to it. If your browser can login, so can a script. It is also possible that they will incorporate JavaScript into the service to set cookies that we would otherwise miss with a script, but we can always determine the behavior of the script and make it work no problem. It is possible for Myspace to start blocking our IP address, but we can go buy more. Myspace can force users to verify a CAPTCHA before logging in, but we will develop OCR that can answer them just as accurately as a human, or pass them on to the mobile user and allow them to answer them.

The only thing Myspace might do is try to shut us down through legal methods. I’m not aware of anything illegal about what mBridge does, though I’m not a lawyer. I’d hope that since Myspace does not have a service competing with this they won’t get their panties in a bunch that their customers don’t have to login to something they made to get their messages, but really, can they continue to expect people to put up with a lack of updates, no integration with mobile phones, and constant errors?

One of the most common things people do with CSS is change the style of the links in a page. I’d highly recommend it since the default links usually won’t work with your color palette, considering they are bright blue, bright purple, and bright red.

To simply make all links the same color with the default styling, simply add the following line to your CSS file or style tag:

a { color: #FFAACC; }

You’ll want to replace the hex color code with one of your own, though. Lets go a bit farther and setup some different styles for the links and hover actions.

a:link, a:visited {
color: #FFAACC;
text-decoration: none;
}
a:hover, a:active {
color: #EE99BB;
text-decoration: underline;
}

Here we have links that will change color when hovered over. They will appear by default without an underline, but when hovered over, the underline will appear. This makes the links a bit more interactive, and usually it helps visitors distinguish links from non-links.

Yup, we’re back in college, only your professor is hardly politically correct and he’s learned by actually doing it. We’re going to hit some basic points of design that I see a lot of amateurs missing that you should definitely know about.

Rules are meant to guide, and there are always good reasons to break them. The same goes with laws, but we’re talking about design. You should learn to follow the rule, until you really know what you are doing and you can justify breaking the rule.

Your first rule: simplicity. I don’t mean fail to use CSS to style your page and just write one paragraph in plain text with no colors or layout. I do mean don’t clutter your website up with images that don’t complement each other, use 13 different colors, or fill every inch of the page with something. Doing this just makes your page chaos.

Rule two: uniformity. Your website should match the rest of your website, both in the design and the way things are done. If you put together all the pages of your website in a similar fashion, users will learn the website quicker and be able to navigate better. The same goes for each page. If you always use the same style font and color for a header, users will be able to pick that out easier.

Third rule of design: function. Apple actually says function is a part of design, and I agree. If you design a website that isn’t functional, it’s a poor design. You should always think of the end user when you develop and design to ensure that things work like they should and everything is easy to use.

Those are the core of design. Learn them and use them and you will have more success.

I’ll admit, this is the second attempt at writing this article. There is so much information and it all relates to all the rest, so it’s hard to piece it together correctly. I simplified this a LOT, so forgive me if you’re looking at something that explains things in technical details.

First, the basics. Your computer has some sort of ethernet adapter in it. Some are wireless, and some are wired. Either way, that ethernet adapter allows you to connect to other computers in your local area network (LAN). Usually, you have some sort of hub (router, switch, etc) that all your computers talk to. This hub helps all of the computers on your LAN talk to each other without having to plug in to each other directly. If you only have one computer you’re probably plugged straight into the modem, otherwise you probably have your hub plugged into your modem.

Your modem is like your ethernet adapter, only it allows your LAN to talk to a wide area network (WAN) like the internet. Cutting out all the technical stuff, when you connect to the internet, your ethernet adapter talks to your hub, your hub talks to your modem, then your modem talks to the rest of the internet. When it does that, it will reach the equivalent of a modem on the other end which will talk to the hub on the other end, and finally it will talk to the computer you are trying to get to.

Here’s a diagram to help make sense of all that:

The Internet Diagram

The computer that you end up talking to on the other end has a special name: server. It gets this name because it serves documents and files. It’s essentially just another computer, though they typically don’t have peripherals (keyboard, mouse, monitor, etc) attached and they usually come in a flatter box to fit in a rack.

The language that your computer uses to talk to a website depends on what you are trying to do. If you are trying to browse the web, you’re computers are going to be speaking HTTP – Hyper-Text Transfer Protocol. This protocol allows the two computers to communicate to fulfill your request for a document. If you are sending files, you might be using FTP, or if you’re using IRC, it’s a protocol of its own.

So you can see there are a lot of different protocols that your computer can use to access the internet. For now, you can just focus on HTTP since you probably won’t be doing a lot of development with the other protocols if you’re making typical websites; however, you should still recognize that they exist.