Microsoft Expression Studio

The instructor of my XHTML class told us to download Adobe Dreamweaver to do HTML pages quickly. Adobe has a 30 day trial that anybody can. Well I got the program installed. The user interface does not look intuitively obvious.

Then my instructor said he could give us Microsoft Expression Studio free of charge. He made us install it in the computer lab. While it might not do as much as Adobe Dreamweaver, it is surprisingly easy to use.

After knocking out web pages with Express Studio, I wondered if it was worth it to learn how to hand code HTML pages. The verdict is yes. You will know how to debug any problem you encounter. You will also understand the setting much better than somebody who started by pointing and clicking.

Web Developers

I checked out this graphic today comparing web designers and web developers. The most striking difference was the average salaries. Designers make around $47k, while developers pull in $85k. Now why would anyone choose to be a design with statistics like that?

One common feature between the two is that neither job will get you props with the ladies. That is just too bad. Personally I want to be more than just a web developer. And I also want to earn more than the average $85k. So I need to step up my game and learn databases as well.

HTML Text Area

I am learning about HTML forms right now. The final control I was placing on my form was a textarea. The thing was supposed to be about 3 rows tall. However when I displayed my form in the browser, there were scroll bar controls on the right side. But there was not even any text in the textarea. I searched without sucess for some type of attribute to set in order to remove these scrollbar controls.

There had to be a way to have a plain textarea without any scrollbar controls. I figured it out eventually. You got to display your web page in the FireFox browser instead of Internet Explorer.

Ryan Dahl Speaks

I read another blog post by an author who interviewed Ryan Dahl. Ryan is the creator of "node.js". This is a program that is good for easily creating a network based program. The program is only available in source code format. You need to compile it yourself on your machine. The only thing it requires is that Python be on your box.

The node.js set of APIs are similar to those for browsers. The main object in node is a process. A key tenet of the system is that your calls should never have to wait on anything such as file I/O.

Dahl is proud that node supports HTTP. He says that although the protocol may seem trivial, it is actually quite complicated under the covers. Node gives you the ability to code in JavaScript even though your programs don't run in the web browser.

Node is built on the V8 JavaScript engine. A main goal of node is to be super fast. Dahl boasts that it can handle 822 requests per second. That performs favorably to the ultra fast Nginx server. Dahl did concede that node is probably not the best solution for really large web sites.

Flash Development

I read an article that talked about the state of Flash development. A couple years ago, Flash developers were making around $50k a year. However the article stated Flash developers make upwards of $150k. Bamm. That's a nice chunk of change. I thought I would look into this.

Checked out some local job listings. There were indeed a number of Flash developer positions in the area. Some of them even posted their salary ranges. However the highest paying ones were $100k or maybe one $110k job. No salaries were even close to $150k.

The jobs themselves required graphic design skills. You also need to know ActionScript. Not sure what that is exactly. However I am not a Flash developer. May never become one. I am always looking for the high compensation technical areas. Flash might not be on the top. It still could be worthwhile to investigate a little further.

Block Versus Inline

HTML elements can generally be classified as either block or inline. Block elements take up the full width of their area, and normally have a new line before and after the element. An inline element takes up only the width it requires, and does not force a newline.

Some examples of block elements are p, div, h1, blockquote and ul. Examples of inline elements are span, a, strong,
, and img. Note that the image element actually behaves a little like both types of elements. Table is another element that is not strictly block or inline.

Blocks can contain other blocks and inline elements. They take up the entire width of their parent content box. They normally begin on a new line. Block element are also called block-level elements. They describe structure.

Inline elements can online contain text or other inline elements. They do not break the flow. They also do not form new blocks. Inline elements join with other inline elements horizontally, and wrap only if they reach the end of the parent content box. Inline elements are also called text-level elements. They usually describe the appearance. You cannot set the width of inline elements. Their width are controlled by their containers. Be warned that Internet Explorer does not follow this last rule.

In all of this, you should know that the type (block or inline) that an element normally is can be redefined using the display tag. Here are some more rules. Elements in the body are either block or inline. An inline element cannot be directly under the body level tags. Knowing block and inline can separate you from the rank and file HTML coders.

The Rise of HTML5

I tried to visit a site that would produce a Google style logo for me. Imagine my surprise when I got a message greeting me as an "old timer". It then went on to say that the site I was visiting required HTML5. It recommended I download Chrome or Firefox to view the site.

Normally I would not think twice about this. I would just click to go to some other site. But I just went through an upgrade to Microsoft Internet Explorer 8. The upgrade was a difficult path. My initial tries resulted in error. Had to get some help getting the thing installed and working.

I also thought that HTML5 was not even a standard yet. The current standard should be XHTML, which is HTML4 plus a little XML. What is going on here? Must be some Google ploy to battle with Microsoft. Maybe I will try going to the site with Firefox. But this better be a damn good site with all this trouble.

More on Node.js

I keep reading a lot about Node in blogs. Here is what more I have learned. Node is a command line tool. Programs can run it by calling sys.exec(). It works in UNIX, but not Windows yet. You install it by downloading the source code for it. It is geared toward network and file I/O. None of the calls block. You get an immediate promise and a future callback. Some call it the future of web development.

Ryan Dahl is the creator of Node. It currently is around 11k lines of C++ code, along with 6k lines of JavaScript. How do you like that? The JavaScript helper is itself written partially in JavaScript.

Node is good for small projects. It does not scale that great if you are dealing with large files. This is server side JavaScript for a lot of connections. The author believes frameworks will be written on top of Node. I am going to try to learn JavaScript, and then dive into Node.

Nodejs

There was an informal poll conducted about what technologies web developers thought would be relevant in 5 years. This is a tough one because things change quickly on the web. However I noticed a number of developers thinking that nodejs would be around. To tell you the truth, I had no idea with nodejs was. I need to get in touch with modern web development quick.

Nodejs is evented input/output for JavaScript. It makes it easier to build network programs that scale. The node program runs the JavaScript. It sleeps until the operating system alerts it that it has work to do. The node uses a small amount of memory per connection. There is not a new thread created for every connection.

This is similar to the Ruby Event Machine or Python's Twisted. I am planning to learn JavaScript from a college class in the upcoming semester. Perhaps after that I can appreciate what nodejs has to offer.

Cloud Computing the Microsoft Way

So how do you migrate your applications to the cloud? Well you have to start with security. Your app has to work with a Secure Token Service (STS). The user enters authentication as a claim. The STS gives the user a token which is presented to the application. The token is in the Security Assertions Markup Language (SAML). Your app has to trust the STS. Then you are ready for business.

Next up you need to move your database to the cloud. Microsoft has SQL Azure. This is a scaled down version of SQL Server 2008. Make sure you app works with SQL Server 2008 first. Then review whether all the features you use are supported by SQL Azure. Beware that your connections to the database will be throttled. You got to dump the designs which connect to the database and hold the connection for the life of your app.

These are a few tips to get you started. Personally I have stayed away from cloud computing. The system I work on is complex enough with having to add another layer of trouble to it.

The End of UML

You don't hear much about the Unified Modeling Language any more. Perhaps it is stable. Or maybe it has become obsolete. Code generation and diagramming has become passe.

I am fine with this. Personally I like coding more than drawing pictures. That does not mean that design itself has been thrown out. Just the previous craze of using tools to draw diagrams.

Guess what? I can't remember the last time I opened up Rational Rose and did any design work with it. And I also don't recall the last time I sketched out a UML diagram for a developer to see. Oh well. Easy come easy go.

HTML 5 Versus Flash

Developers are very familiar with Flash technology. It has both power and flexibility. Right now Flash owns the online marketing arena. Banners are pretty much written with Flash.

HTML 5 is new. It is based on an open standard. If you are doing mobile apps, HTML 5 might be for you. You might want to learn it if you are a developer. I hear that HTML 5 development opportunities are growing fast.

Companies do not have to choose Flash or HTML 5. You can code up your apps in both, and support multiple implementations of your app. You want to reach as many people as possible. Use the right tools and language for the job, even if you need to support multiple platforms.

Change in Schema

Our system used to only receive input data as large ASCII flat files. These were generated on a daily basis by some mainframe computers. The loading process on our system parsed the files according to a record layout. The result was inserted into an Oracle database which our applications query.

Last year we started receiving some files in XML format. There was a big concern about the size of such files. The old input files were minimal. You just got the data arranged in a specified format. Many worried the overhead of XML tags would make the files too large to handle. So far we have not received too much data in these files. The technique has not been volume tested.

Now we are preparing to receive a combination of XML and ASCII text files next year. There will be format changes for both of these files. The ASCII text files just have a different record layout. The XML files will be formatted according to a new schema. I suspect in the future that we will only receive files in XML format. Then we will only have to deal with XML schema changes. The real thing to look out for is the growth of XML input file size. We do have a plan to split the XML files into small chunks that we can reasonably process.

DrupalCon 2010

Drupal users just had their first users conference. It was called DrupalCon. The conference was hosted by Microsoft Corporation.

Know that Drupal is an open source framework. About one percent of web sites use Drupal. The word Drupal is Dutch meaning drop.

The framework was created back in 2001. Its creator formed the company Acquia to provide support for the framework. This company does things like provide training.

Google Chromium

Google has unleashed their Chromium project. It is a native client SDK. This enables you to use C++ code run by your Internet browser. The C++ code can be called from HTML and JavaScript. It is supposed to make your functionality more powerful. You can access all kinds of C++ libraries.

The browser is becoming the default experience for users. Google wants the browser to be the next generation operating system. Some people are concerned about this new power being available in the browser.

This might be good if people write POSIX compliant code so it can run on all kinds of platforms. Google is positioning this technology for cloud computing. Knowing Google, this might be in Beta for a while.

Others wonder whether Chromium offers anything beyond what the Java Virtual Machine and applets can give you. C++ programmers might think this is just like Microsoft's ActiveX technology. Btw, I got all this info from readwriteweb. So props to them.

SAML

REST is hot right now. However it does not give you good access to security standards. What are you to do? Well one thing is for sure. Don't roll your own security code. That will take too long, and it will be full of holes.

I just read up one guy proposing RESTful apps to use security assertion markup language (SAML). This standard is an accepted way to do authentication. It is an alternative to WS-*.

They say SAML has a rich syntax. I can't tell for sure yet. I have only just read about. However it sounds like something to look into if you are going RESTful.

Altova MissionKit


Altova has released a 64 bit version of its MissionKit tool suite. It is supposed to give you a performance advantage, especially when dealing with huge XML files. Altova says that this version can help you edit XML files that are a couple hundred megabytes large.
This latest update is Version 2010 Release 2. You can get the update for free if you have a subscription. Otherwise this thing is going to cost you a bit of money. MissionKit is composed of a number of tools such as the famous XMLSpy XML editor. I know the developers and testers in my company all want a copy of XMLSpy. The other tools may not be as important.
We process relatively small files in our production environment. So for now we run a 32-bit version of XMLSpy. However things may ramp up once the customer gets comfortable with our XML loading software. Maybe a copy or two of MissionKit 64-bit is in order for next year.

Service Oriented Architecture

These days everybody is using SOA to sell things. It seems to be a marketing term now. Initially it was a technical term to describe apps communicating with SOAP.

Now I am hearing that SOA is being redefined to represent some best practices in software development. It describes using simplistic messaging. It also refers to open and scalable systems. That sounds like good techniques to me.

Like most developers, I was excited to hear about SOA. I recall a VIP from our company addressing huge amounts of developers in my building. When he mentioned SOA, the developers were happy and cheering.

Now unfortunately SOA is being used by everybody. It does not mean much to me any more. I hope this new best practices style of SOA takes over. We shall see.

Microsoft and HTML 5

Previously all browser manufacturers cooperated with changes in HTML 5. That included everyone except Microsoft. This meant that developers had to code two versions of their web site. One would be specific to Internet Explorer. That is no fun.

HTML 5 supports Scalable Vector Graphics support. Some have speculated that Microsoft is concerned that SVG infringes on the Silverlight solution space. Luckily Microsoft is no longer holding out on HTML 5. They joined the SVG working group. Things are looking better for HTML 5.

Clear Web Pages

We have all seen a bunch of crazy web pages that annoy users. This is just a bad idea. You want to entice users to come to your pages, not alienate them. So what things do you need to concentrate on?

Color is a key component. Don’t use funky background colors on web pages. The same applies to the font colors. Bright colors are bad.

Another major component is the text. Don’t use weird affects on the text. You should also be sure to avoid huge fonts.

Finally you got to limit or avoid the use of animation and video. Web pages should be quick to load and easy to view.