Archive for April, 2009

Templating

Author: mprokes

Alpha Edition!, e-mail spelling/grammer/topic suggestions to mattprokes@gmail.com

previous1next1The Professional Developer Series
Volume 2, Web Development

Chapter 1.4 Web Development Trends

Page: #24


Templating is something that has been around for a while, wheither you are creating a presentation or are trying to leverage a brand through media chances are that you are in some way using a template of some sort. Programming is no different, templates are used all the time and they are important because it helps us get our job done faster.

templateexample1

What are some common examples of templates on the web? Well CSS for one is a langauge which creates a templated style for a website. Take the website that you are reading right now for instance, CSS is the reason why when you go from one page to the next the only thing that changes is the content. This is a perfect example of a styled template.

There are many different kinds of templates technologies available, but for the most part templates have a few specific things in common.

  • Use of markers for labeling where data should go, and will automatically place data at marker locations.
  • Some allow logic, to generate the template.
  • Exist to make generating styles or content more easy, and reusable.
  • Straight forward.
  • Some allow easy retrevial of data (data binders, and getters)

Many of the web standards available today focus on templating specifically since a focus of web technology is to make data more available and easy to read much of this can be achieved with templating technologies. Some of my most faviorite templating technologies out there is PURE (for javascript), XSLT, CSS, Java Swing, Flex, and many more.

  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark

Its a good question that requires a good answer. I have been kinda surprised by how the whole revolution in media happened, in many ways it was completely backwards. Books, something that should have been the first to go digital in many ways was the last. This isn’t completely true; although, it seems what has replaced today’s books are a barrage of short and sweet tutorials about various subjects. Many people would argue that commercial books have been online forever, though that is not completely true either, most are topical news articles or old pdf’s of outdated book content. Really though music was the first thing to go digital, next was video, and now we are seeing am emergence of ebooks (how backwards is that?).

Hardly ever do you see content that is completely end-to-end book-like content, and is something that would compete against packaged, and sold content. This makes reading and learning from the Internet a bit like learning from someone with sever A.D.D symptoms. Essentially rough, short, and tersely written information on how to get something done, hopping from one subject to the next, and never an overly intense discussion of the why and how. For the most part that’s the way it is today, if you want to learn how to bake cookies, you will get a recipe, but hardly do you ever find an entire synopsis on the history of baking cookies, the tips and tricks of baking, discussion of technical baking terms, and detailed content on how to get the best cookies, plus a cook book all rolled into one.

Why is this? Well first off I would say that the Internet has become very topical (which is a good thing), but with a overly topical system we lose some of the essence of the topic its self (the whys and hows, and feeling). Today’s bloggers and on-line media writers are not focusing on writing a ballade of a single subject, rather breaking subject matter down into news articles. Essentially leaving the learning curve high, and most topics only understandable to experienced users (an ivory tower of knowledge).

Most of today’s on-line writers simply don’t have time time or energy to invest in writing ballades (a book), they are to busy appeasing boss’s, or moving onto the next topic that will drive traffic (its not their job to write ballades anyway). Many of the writers that could invest the time and energy are not on-line writers at all, but rather offline writers. Which brings me back to the original question, why am I not making people pay for the books I am writing? Why are you doing it online, and free like this?

I have a solid belief that like music, and video books’ day or reckoning is coming and unlike music and video book content could be hit the hardest. We are starting to see soaring popularity of products such as the kindle, and other book readers that are being made available. Books are going to be dragged onto the on-line medium regardless if anyone likes it or not.

When that day comes, that same thing that happened to music and video will happen to books and many people know this already. So I am doing an experiment, and seeing what happens when I jump in with both feet and just let go of all control. Plus I am probably not the best writer out there anyway, and I could never get published but I will work hard and diligently to change that :-) , and I fully expect my readers will make me a better author. So moving forward…

The issue is that book companies still want to sell content, and control the content in the form of drm ebooks, and that is good and all except that we all know that torrents of books are just as easy to set up as any other content. As a general rule of thumb if you can see it or hear it, then you can digitize and distribute it (with or without permission). We also know that there is (shock) already many many torrents and p2p networks that carry large amounts of books, and that is only going to get worse. Books, like most other forms of media can, and will be commodities, and I welcome it with an alternative for people to consider.

Just because it is free  doesn’t mean that authors can’t make better, and more money then ever from their content. I am not preaching open source here. In some cases FOSS is blind faith – and I have FOSS projects.  Books over all other forms of media, video, music, you name it have the most to gain from advertising. I am posting my work on-line today as proof, that if you decide to cast all traditional means of publishing aside you probably have a pretty good chance at this new on-line world.

So how can you make money by providing free books on-line? Well first off remember that since you no longer need to put your book on paper you really do not need a publisher any more. If you write your book on-line in real-time as I am doing, the community you build while writing can act as a massive fleet of editors correcting your mistakes at every turn with the click of an e-mail (and I need all the help I can get). Your book, since it is posted in plain text is readily search-able, index-able, tag-able, and consumable. People can page through your on-line book and actually use bookmarks for what they were intended to do, marking where they left off! Your readers will thank you.

I am planning on making money with my book content, when I start generating large amounts of traffic and book chapters become “beta” versions you will start to see me “lease out” advertising spots to chapters of the book. Essentially offering exclusive targeted advertising that a user will see as they read through the book. Many people might say, neh I would just rather buy the book then see advertising. Great! See the on-line format of the book is just the medium for developing the product, once there is a  large demand for the content then it is a good enough to take offline as well generating  an advertising free e-book.

I can then decide to choose a very low-cost bare bones publisher to publish out the book. Since you don’t need editors, or people to format the book anymore all you really need is a company that will take your content and put it on paper. A person could probably create a book, and sell it to your existing users, as well as new ones for a relatively nice premium, and still be cheaper then most other books.

Even though the book would be on paper, or an e-book I will always make sure to encourage your users to go check out the digital version of the book, to see the latest updates and information where they would once again be presented with advertising (thus even more revenue). This effectively gives file sharing services would be a positive thing, because users would just be enticed even more to visit the updated version. Online books are more accurate then ebooks or paper books because you can always change the content to be the most acurate and reflect the state of the industry.

Finally since we are making changes to the book, and the book is “evolving” you could put out new “editions” of the book as both paper, and e-book every couple of years (or even monthly). We can also distribute the content world wide very easily, making ideas global, as well as providing greater profits.

Lets talk a little about educational books, educational books are needed for people trying to learn a trade as well as school systems. If we were able to provide educational books for free, everyone would have an equal opportunity to become great at a skill. Many schools though have budgets for books, and since distributing a book is free, that means  you can distribute the book for cheap, and charge the same for educational packages.

But what would a on-line book have to offer in educational packages? Plenty! First there is an opportunity to make the books more interactive. I am talking about quizzing software, lecture slide-shows, even interactive note taking for the students which an author can offer in an “educational package”.  Also imagine providing a suite of interactive activities, and ‘labs’ which can provided throughout the book.

Secondly, a novel idea would be to offer a 1 on 1′s voice conference with a class of students and include it with the educational package. An educational package would contract an hour or two of the author time (included in the package) for an extensive premium. How cool would it be for students to talk to the author of the book that they are actually reading. I am not saying that the author would talk to all classrooms that bought your book, but one could provide graded educational packages where they might task out the lower paying 1 on 1′s with people the author works with.

Leaving the higher paying educational packages exclusively for the author. This is no different then a music group “going on tour” only you are doing it from your home office. The idea of a children’s author reading their book via video conference to a classroom of children in africa is a particular favorite of mine.

Finally, all these lectures to classrooms will probably make you a pretty popular author! So at the end of the day you might be asked to go speak at conferences, and land high profile jobs. All because you decided to publish your content for free on-line. If you manage to gain a large amount of readers, the income from a book you wrote could easily equal or even exceed that of a traditional book.

Plus there will get much more recognition for the work, and it will be available for free online for years and years to come. That’s years and years of income versus something that just fizzles out after a year or two. How cool is that? Anyway, these are some of the things I plan on doing with the books being written here, for anyone who chooses to read it. I am stepping forward and experimenting with a few new ideas, and seeing where it takes me.

Regardless of what happens, I hope you enjoy the series and I wish every technologist the best of luck with your professional career. Be bold, be creative, and always look ahead.

The Author: Matt Prokes

  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark

Alpha Edition!, e-mail spelling/grammer/topic suggestions to mattprokes@gmail.com

previous1next1The Professional Developer Series
Volume 2, Web Development

Chapter 1.4 Web Development Trends

Page: #22


Javascript, now more then ever is becoming of increasing importance. For those companies that want to deliver rich platform agnostic applications out to their users, javascript is the only way to get it done. The best part is, possibilities that javascript opens up are endless and its this authors belief that we will be talking about the langauge for years and years to come. So what are some of the javascript based trends that we are seeing today, and will be seeing in the future.

Trend 1:  Stop delivering dynamic server generated web content. As webapplications progress more and more companies are finding out that really all they need a server to deliver these days is web application code, and data. Javascript is slowly trending toward being server technology agnostic, especially with the advent of json it no longer matters where the data is coming from as long as there is data, thats all that matters (data driven applications). Pretty much all web applications these days can be delivered as flat .html files.

Trend 2:  Rich Browser Applications. As web applications evolve we are finding that in many cases you can save the webapplication to the desktop and use it regardless of wheither it is online or offline! Basically allowing a person to use a browser based application as a replacement for a regular desktop application, all that is required is a javascript based browser. Technologies such as Google Gears, Dojo, and a few new ones presented in this book allow such applications to exist. We will be building a few rich browser applications throughout this book.

Trend 3:  Data Mashed Web Applications. Need to get data from many locations to build and analyse useful information? This is what data mashing, and data mining is all about. You can use javascript these days to build dynamic map content, and create collaborative information sets for your users. Information services such as Yahoo Pipes, Popfly, and Semantic Web Pipes .

Trend 4: Intelligent Web Applications. When people think artificial intilligence, often I see thoughts conjured of a computer that knows all, sees all, and can communicate fluently with humans, solving all the worlds problems. In reality AI won’t probably be something that arises from the ashes of a genius programmer that created the next HAL system. No, what is most likely to happen is the development of a system which is asked questions, and is able to dynamically analyse correct sets of existing data and come up with a solution. Computers’ intelligence based on the current state of technology is completely dependent on what we contribute to them. We often call this computational analytics, today javascript is often used to drive the next generation of intelligent web based applications.

Trend 5: Collaborative Media Applications/Groupware. This set of javascript applications is specifically targeted at collaborative media, and and communication. Applications such as google docs, facebook, myspace, youtube, and more. All of these media companies provide javascript based collaboration. Probably the most striking would be google docs collaboration tools that allow you to write a document in a tool similar to word, but it also allows several people to write a single document all at one time! Another example is chatting on facebook, you can communicate with your friends right from the website using a javascript based chat application. I expect in the future to only see more and more of these applications as their popularity increases.

Trend 6: Javascript Frameworks. Javascript as a language and native api is actually very small compared to other langauges out there. While very small, the functionality the langauge provided was very powerful. So what people started doing is building up API’s around the langauge which they could leverage to make their job of programming more easy. Frameworks were a great innovation for the language, and it is very likely that people wouldn’t think to build the collaborative applications they do today with javascript if great frameworks for the language didn’t exist. A good list of frameworks are JQuery, Dojo, YUI, MooTools, and many others. Often libraries attempt to make up for javascripts cross platform compatibility issues, and also try to make the language more easy to code.

Trend 7: Taking javascript beyond the web. I don’t know how many people know this but firefox is actually coded in javascript. Now you may sit back and wonder how can that be? The number of non-web-browser technologies based on javascript  is actually increasing, and since it is the most popular programming language in the world many organizations are beginning to offer javascript apis for their products. See, just like xml, there are many technologies out there that understand the javascript language. Projects such as firefox, linux gnome, jaxer, and many others are beginning to implement these “javascript interpreters” and thus are able to extend their applications using the javascript langauge.

Trend 8: Javascript is becoming the new duct-tape of the web. Like Perl was a few years ago for getting things done, javascript is beginning to increasingly replace that role, expect that trend to continue as we me toward a more and more online world.

  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark

Alpha Edition!, e-mail spelling/grammer/topic suggestions to mattprokes@gmail.com

previous1next1The Professional Developer Series
Volume 2, Web Development

Chapter 1.4 Web Development Trends

Page: #23


The Model View Controller (MVC) pattern has been around for years, and now more then ever it is being applied to web applications. We will be discussing more about how to implement it in your webapplications later on, but for now we just need to familiarize ourselves with what it is all about. Originally MVC was based on research done by Xerox in 1979, but really microsoft made it popular during the 90′s, when at that time a rapid evolution of user interfaces was occuring and a architectural pattern was required for managing the new complexity desktop applications were presenting.

Lets fast forward to 2008, MVC is used more then ever, and even after 20 years of popularity it is still very relevent. While not all web applications have completly migrated to using MVC, it is a trend that is still evolving and emerging as web applications (like desktop applications) become more complexed and require an architecture to manage that complexity. As a result, projects which we develop in this book will also follow a model view controller methodology.

The thing that makes MVC so great is the natural seperation of functionality, it does this by splitting applications up into natural components which serve a specific purpose such as data access (Model), Execution, and Initialization (Controller), and Interface Code (Controller). These days MVC may actually be implemented on the server side to deliver data to a client, as well as on the client side. MVC is just one of many architectural patterns, and is often mixed with other patterns that we will talk about later in the book (part 2).

This book is not about design patterns, though we will be leveraging some. I would suggest though that you read up a bit on some traditional design patterns after completing this book so you can get an idea of how you might architect your own systems in a more straight-forward manner. What we will be using is design patterns that are highly relevent to todays’ webapplication systems. You will find nuggets of web architecture suggestions later in reading.

List of architectural patterns, application architecture (simlar to house architecture).
List of  design patterns, code architecture (or common patterns in code styles)

  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark

Alpha Edition!, e-mail spelling/grammer/topic suggestions to mattprokes@gmail.com

previous1next1The Professional Developer Series
Volume 2, Web Development

Chapter 1.4 Web Development Trends

Page: #21


Several new trends have emerged over the years as web development continues to evolve and progress. Though many companies still are attempting to get it right we are starting to see signs that things are going in the right direction! Part of the problem is that web technology is still so new that many fundamental establishments of the past no longer apply and companies essentially have to take guesses on moving targets. Anyway, so lets talk about some trends that we will be seeing now and over the next few years as webapplications evolve even further!

Web development traditionally has unnessesarly been a very server heavy activity, a trend that is starting to emerge (progressivly) is a reversal of this. Since very early on it has always been this authors assumption that in order to drive the next generation of web applications as well as increase server efficiency companies will more and more start to hand off things that servers used to do to client side browsers.

What this does, is let clients more computations instead of the servers. Infact with all biase aside; and coming from both ends of the development spectrum, in the future many things that servers used to do will probably be reduced and we will begin to see a rennesance in networked applications. Although that doesn’t mean servers will be less important, quiet the reverse actually. Rather then servers delivering dynamic content as many do,  in the future servers will most likely deliver application code and dynamic data instead.

legacy-and-future-web-applications

This is a good thing! For both the web and server technology. Moving all content processing from the server to the client reduces technical debt. How? Well as long as the data fields and structures delivered to the user are always the same, it doesn’t matter what technological server platform delivered that data. In the past, often systems which would generate content would be strapped to platform specific properties, and api.

Second, notice that the content processing on the legacy system happens on the server versus future web application systems which move all that content processing to the user instead. Effectivly, reducing the amount of processing a server needs to do as well as faster server responses, and the ability to hand many many more users on a specific server when conpaired to a legacy system. The change of where processing is actually done can also from a cost perspective save on equipment, and energy.

Third, applications developed in this manner are simply more easy to debug, and greatly simplify server code. Since most business logic, and application properties are migrated to a client when something goes wrong all one really needs to do is check the data being passed back and forth between the user and the server. Firefox makes this VERY easy to do, in effect giving you a quick answer of where the issue is. From there it is just general debugging but by having at least having a required physical seperation of two primary application components, it makes debugging more easy.. more on this later. At the very least understand that a “natural seperation” of application components is often a nice side effect.

Fourth, user experience for these applications is greatly enhanced, you are able to offer features like animation, realtime data, control data flow much better, and in many cases develop a much better experience then traditional applications. You are also able to make your new program feel much more like a desktop application, as well as better performance, and features that previously would not have been possible.

Fifth, since your application is now driven by data you can virtually deliver that application not only to a user but to any system that knows how to leverage your application data! So say that company x wants to pay you $500,000 to leverage a database of yours you can do that simply by pointing them to the same server that your application uses. Simply put, mashing up the results and adding features to your application is now an easy feat, and you can extend your application to other third parties.

Wrapping things up the point we are getting to here is that web based applications are increasingly becoming more and more browser heavy. Do I see a day when servers will no longer generate content dynamically? Most definatly, as such client heavy applications are a trend that we are seeing now and will probably see well into the future.

  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark

Alpha Edition!, e-mail spelling/grammer/topic suggestions to mattprokes@gmail.com

previous1next1The Professional Developer Series
Volume 2, Web Development

Chapter 1.3 Web Development Today

Page: #18


Eclipse, by some considered the most popular development environment in the world, it is not primarly intended as front end development environment. Rather, eclipse tends to be used for backend server based development environments. Despite this, many organizations still use eclipse for front-end development since it has a nice set of features such as code versioning, unit testing, and refactoring tools.

eclipse-intro

Eclipse also has many, many nice plugins which turn the platform into a full blown web development environment. Thus making it excellent for beginning front end developers. Other features such as integrated servers, packaging systems, code formatting systems and various code management tools make eclipse the excellent platform that it is today.

I would suggest that all new developers consider taking an integrated development environment for a test drive, see how you like it, and see if it suits you well. There are various video tutorials, and eclipse tutorials out on the net for your convenience. One of the main points of learning various development platforms is to expose you with whats out there, as well as for employability.

Having knowledge in common popular development environments will make you as a developer much more enticing to organizations. As well as providing experience with the best way to get the job done. Even if you never use the environments, an exploration of the possibilities is always a positive step in the right direction.

  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark

Alpha Edition!, e-mail spelling/grammer/topic suggestions to mattprokes@gmail.com

previous1next1The Professional Developer Series
Volume 2, Web Development

Chapter 1.3 Web Development Today

Page: #20


So Aptana and Eclipse are our first examples of an IDE or (Integrated Development Environment.) The book will not be using the editors in examples, the reason being tools such as aptana and eclipse would only hinder the objectives with environment theologies. It would also strap the reader to a particular development platform when really I just want you to find out what works best for you (as a developer).

IDE’s objectives are to offer a “packaged solution” for developing in a particular technology. Meaning that when using a technology specific IDE, you will most likely have all the tools you will need for deployment of that technology. While this is great for beginners, there are also serious limitations with ide’s.

IDE Limitations:

  • Just because a tool is included in a packaged solution, doesn’t mean that tool is “the best solution”. Often individual tools will trump tools included in an ide. It is this authors viewpoint that the operating system which you work on is the best IDE around; because you can use any tool, and not just the tool which works with a development environment.
  • IDE’s consume considerable amounts of memory usually do to the amount of tools included with the environment, these development environments are also not usually very fast either since they do large amounts of analysis. This effect is multiplied with each file you have open, and since developers often have several files open at one time (usually in my case about 20), memory and speed can be a big concern. In the case of web development they just get in the way of developing. Although this is not the case for other forms of development (such as java).
  • In the case of web development specifically development from an IDE can often take more time, and be more troublesome. Most web development that we will be doing will be in a more realtime manner not particularly suited well for IDE’s.

IDE Advantages:

  • If you are just starting to do web development, and you need hand holding IDE’s are the only way to go. This book will substitute IDE hand holding with pure tips and tricks on getting things done. Although I suggest you at least download Aptana, and go through the first few chapters with it if you are a beginner. A programmer can learn a text editor any day of the week, but its a career advantage to be familar with development environments since many companies come from traditional software  (IDE’s are popular with traditional software big time), they often have the belief that they are nessesary for web development.
  • IDE’s often come with documentation packages, which will look up things like Javascript API’s automatically as you type in code. This is great if you need to become familiar with a particular library. IDE’s usually come with a good amount of documentation and tutorials in general to get you going.
  • IDE’s usually come with all the facilities that you will need to technically get the job done that you are trying to do. If you do not care if the tools aren’t the best out there, and you just want to get going IDE’s are a great way of doing that.

So really when deciding what to use it is going to be all about the best tool for the job. If your job is web development you need to figure out what the best tool for you is. There is no right way to develop software, their are only ways.

This book will not be pushing the concept of IDE’s to much because in the professional web development world many of the best tools are not centralized on a single platform. Although certain tools which exists on IDE’s (such as oXygen) may be the best tool for a particular job (xslt) this book looks at ide’s as a tool, rather then a centralized development platform.

  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark

Alpha Edition!, e-mail spelling/grammer/topic suggestions to mattprokes@gmail.com

previous1next1The Professional Developer Series
Volume 2, Web Development

Chapter 1.3 Web Development Today

Page: #19


Aptana is an excellent development environment for programmers just starting out. Thus the environment deserves mentioning, and if you want to I would suggest you give it a shot. Another reason aptana is relevent for mention, is that you may find the environment in various development shops around the country. It also supports many nice tools and wizards for developers just starting out. It also offers an integrated platform for deployment of web applications.

aptana-intro

Some really neat aptana features are include compatibility with many of the popular javascript frameworks out there as well as api documentation for those frameworks, a built in debugger, video tutorials to get you started, an integrated webserver, code refactoring tools, and integration with ftp, plus much more!

Aptana also has a large suite of web development related plugins which allow you to leverage the platform even futher! Many wizards, and tools are available in an attempt to make your web development experiences as painless as possible.

The platform supports a large set of web development langauges, but it may take some getting used to. I would sugest that you check out the video tutorials provided if you want to learn more about how to develop in the platform.

Note: The development environment is really just a re-tooling of eclipse. So if it looks somewhat similar don’t be to shocked. In fact if you already have it, aptana also comes as a plugin for eclipse rather then downloading the entire aptana platform.

The aptana eclipse plugin is also the only way to use aptana with code repository tools for versioning technologies such as CVS, Subversion, and Git.

  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark

Alpha Edition!, e-mail spelling/grammer/topic suggestions to mattprokes@gmail.com

previous1next1The Professional Developer Series
Volume 2, Web Development

Chapter 1.3 Web Development Today

Page: #17


We will be using scite in conjunction with firefox development throughout this book. SciTE, is a wonderful little light weight text editor that I found a few years back. The great thing about it is that it supports about 40->50 programming languages and the total size of the app is under 600k.

scite

You are by no means required to use it, but the book will be making use of it extensivly, similar products are TextPad, VI, and countless other text editors out there. This editor in particular has the lowest level learning curve, and overall I just prefer it.

Some of the features include, code completion (when the proper plugin is installed), refactoring tools which allow you to search code via regex, collapsable code blocks, this feature is very cool because it allows you to more easily keep track of where you are in the code, and also helps to identify the beginning and ending of a code block much more easy.

SciTEs’ tabbed environment, allows you to have multipule light weight tabs open, plus the syntax highlighting is visually easy on the eyes. One of the best parts about the editor is the ability to easily change the editor configuration, and the level of configuration options available. Finally, if you need to save a editor state for later on that can easily be done from the file menu “Save Session”.

To install it, simply go to the site and download the “Windows Executables” or “full download (830k)” which will be delivered in a zip file. Simply unzip the file, and look for a file named “SciTE”

scite-download

If you are looking for yet an even more easy installation, download the windows installer, or the “An installer that includes extensions” link. The installer may also include features that are not in the zipped version, I have never tried the installable version so I am not for certain if that is the case. Anyway if y ou are looking for more information on using SciTE, the Professional Developer Series, volume reference page has a link to a more detailed SciTE tutorials that will give you a much better in-depth look at the editor.

You will also probably pick up SciTE tips and tricks throughout the book.

  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark

Alpha Edition!, e-mail spelling/grammer/topic suggestions to mattprokes@gmail.com

previous1next1The Professional Developer Series
Volume 2, Web Development

Chapter 1.3 Web Development Today

Page: #16

The firefox development environment will be the development environment leveraged by this book, so before we dig in, I would like to first show you around firefox first. I am sure that many readers are aware of firefox as an internet browser, but more recently it has also been adapted into a wonderful development environment. So lets fire it up, and take a look at a few of the features.

firefox-screenshot

Neat! It looks the same as always, nothing to see here, its firefox as you remember it. So where is the development environment? Well, its not installed yet. See firefox has this nice little built in feature called add-ons.

firefox-overview-addons-web-developer-toolbar

The add-ons interface is a system which allows you to type in the type of thing that is needed, and it will contact the firefox website and find the appropriate extension for you! In this case we are trying to find the web developer toolbar. So to be clear, when you first get firefox the development environment doesn’t really come with it. You need to add extensions to firefox which allow it to become a development environment.

Some of the extensions that this book will be using are: Selenium, Web Developer Toolbar, Firebug, FireFTP, ColorZilla, and a few others here and there that will be mentioned throughout. We will have a tutorial on how to install things later on in the book. Anyway, when all these extensions are installed, firefox can look somthing like this if everything is enabled.

firefox-development

So what is all this stuff? Well lets start off with the web developer toolbar, some of the neat features of the tool allow things just as manipulation of page css (highly useful if you are laying things out). It also will also do cool things like capture the curent page source or css, allow you to inspect elements on the page, as well as provide various information on cookies, markup validation, and much more.

Next up is firebug, this tool has a awesome javascript debugger (by far the best in the industry). You may not know what it is now, but just take my word for it when I say its important. Firebug also has an excellent dom inspector, as well as a network inspector so you can see all the connections that firefox has made during the render of the page. It does also have a CSS editor, in someways it is more useful then the web developer toolbar css editor but in MANY ways it is inferior to the way the web developer toolbar css editor. I use firebug css when its appropriate for what I am doing.

Lets move on to selenium, selenium is cool because you can do automatic testing of your webapplications with it! Stuff like regression testing, and just UI testing in general becomes invaluable with selenium. The development environment is not shown in the previous screen (because it would take up the entire screen) but we will discuss it later.

FireFTP allows you to upload your webcontent to a FTP host on a server. Since FTP is the primary way of uploading content to webservers usually, I thought I would throw fireftp in there. It is also invaluable for inspecting FTP folder layout, as well as retaining ftp connections and working great with almost any kind of authentication that you throw at it.

Colorzilla is cool because rather then guessing what a particular color is on a webpage you can just up colorzilla dropper to tell you instead! Pretty neat huh, though I should note that it is not always perfect with images, but it is not the fault of firebug, rather the fact that some raster colors are a combination of other colors, rather then a true color. If you really need to be sure, ask the designer to write down the actual colors that they used in their mockup.

Thats the roundup of firefox browser core extensions (ones we will be using frequently), I will probably ask you to install a few others but I won’t be focusing on them as much as the extensions mentioned above. Anyway we are not done entirely yet. Lets move on to bookmarklets, you can think of these little guys as javascript applications which execute on what ever page you are looking at. Usually in the form of a bookmark, bookmarklets are very easy to install and have lots of promise.

A bookmarklet in particular we will be using frequently is the javasctipt shell. The cool thing about the JS Shell, is that it will let you execute arbitrary commands on what ever page you are looking at. It has javascript based code completion, it allows you to write full multi-line javascript applications, and generally prevents the need of switching back and forth between environments just to do some tests.

javascript-shell

  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark