Archive for the ‘Environments’ Category

Mule… MULE… mule

Author: mprokes

Well I am for sure digging deep into the webservice java world lately (I may even tip up a few examples and post them here). For those of you who do not know what mule is, I would describe it as a composite webservice based environment that is meant to ease the development of integration systems (albet with lots of XML). Really it isn’t that hard to work with, and in many cases kinda fun. You will probably see more postings on it in the future from me, but for now I just decided to take a quick break and give you guys a update on the latest and greatest tech I get to play with.

~matt

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

The Future Of the Internet

Author: mprokes

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

previous1next1The Professional Developer Series
Volume 2, Web Development

1.5 Web Development And The Future

Page: #27



The internet today is what we consider web 2.0 to be. That is people may easily contribute content to the internet from a large variety of services.  Web 2.0 also starts to view the web as an application platform, rather then just a platform to deliver content. Things such as video, audio, social networks, blogging software, web office software etc are all results of web 2.0 innovations. So lets discuss a little bit where the internet is going, by understanding the fundamental path of the internet you may also begin to align your career, organization, and software systems with where the internet is heading.

Web 3.0 or more specifically the semantic web, currently is and will continue to be an emerging trend on the internet. Something interesting about the next revolution of the internet is the fact that it will not necessarily change the way we see the internet, but rather the way we work with it.

The semantic web envisions an internet of data with meaning, an internet of descriptive content and syndicated data, web services, and dynamic data driven applications are all visions of the semantic web. So where can we see examples of the semantic web? Well tagging for one is a light weight version of the semantic web.

Since the purpose of tagging something is to categorize content, effectively saying that a specific set of content is synonymous with a category. This not only allows us to group content, but also to help the computer understand and analyze what properties similarly grouped content has in common. If a category is tagged frequently enough, the computer can even start to tag content on its own through analysis.

Other forms of the semantic web are also beginning to show some promise. For instance, tagging photos with specific people helps a computer (through image analysis) understand what a specific person looks like, in the future if its done enough, the same person may be identified in a random picture without any human interaction (through heuristics). Tagging of photos, and video content will also allows computers to be able to perform searches on this media accurately. This will also be a time when the physical world around us begins hooking up to the internet (microwaves, home heat, maybe even all the way down to your clothing steam iron that you use in the morning).

Though the semantic web is about more then just tagging, a more advanced type of tagging called RDF or the Resource Description Framework aims to turn the web into a huge global database through the linking of data (in a similar way to how html documents are linked). At the moment, frequently publishing public sets of data like this is un-feasable, partly over privacy concerns (and rightly so). Though RDF may be used within an organization internally to deliver data to secured external partners. Although, if you are just delivering data for content that is not of a sensative matter RDF may be perfect for seaching of that content on a public network. So while the web 3.0 is still in a very infant stage, it has recieved luk-warm, acceptance as people begin to implement it. Web 3.0 should allow for better searching, and better understanding of content in general. It may be another 10 years yet before web 3.0 is fully realized.

Web 4.0 (speculative) will give rise to the “a learning web” or a internet which is now able to begin working as a “assistant” along side humanity. The ultimate goal of the learning web will be for the internet to solve large scale problems presented by humanity through analysis of the vast amounts of data provided by humanity.

Anything from obesity to assisting in curing diseases the web 4.0 will act as a digitial assistant helping to solve problems as well as enhance humanity. I often see this happening through something called “crowd sourcing” solutions regarding specific topics. I believe that the web 4.0 is actually in a very infant stage on the internet at this moment, but I do see examples of it here and there (particularly in dating/matchmaking sites). Eventually the web 4.0 will begin to give rise to a global artificial intelligence, or several which may collaborate and act as assistants to humanity.  A virtualized web will also begin to be more common place. I believe it will take 20-30 years from the peak of web 3.0 before web 4.0 is fully realized.

Web 5.0 (very speculative) Now we are starting to really push the bar, but I see web 5.0 being all about “a web of humans” or a web of interconnected beings. When we start to talk about humanity and telepathy, this is probably the most likely way humanity will achieve it. Living in a web 5.0 world it is likely that humans will no longer need to attend school as children because the sum of human knowlege is just an extension of each human.

We will probably be able to express ourselves through thoughts rather then words. The ability to control the things around us with thought will probably be commonplace by this time since almost all devices will in some way be connected to the internet. Chances are our entire body health will be monitored in realtime, distance will have no meaning any longer since we will be able to share thoughts and experiences. Machines that we use will most likely be integrated with “specialized assistants” from a web 4.0 era.

Personal simulations, will be possible.  Shared data and memories will flow like water, and you will never forget anything ever again unless you want to. The technology at this point will be so integrated that there is a good chance we will be able to build and create facilities of society with our mind, storing them on computers to echo back to other users for later  (i know its pretty out there but very possible).

An internet like this is at least 90-120 years away, after web 5.0 phase is complete the web as we know it will cease to exist and be replaced with the concept of a “virtual society of thoughts”. The web 5.0 by far will take the longest to build, there may be 40-50 year gap between web 5.0 and web 4.0.  I would expect there will probably be several “versions” of the web 5.0 before we finally “get it right”.

http://en.wikipedia.org/wiki/Resource_Description_Framework
  • Reddit
  • StumbleUpon
  • Bebo
  • Yahoo Buzz
  • Delicious
  • Twitter
  • LiveJournal
  • Netlog
  • HelloTxt
  • Share/Bookmark

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

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