Archive for May, 2009

Matt Prokes, Job Seeker

Author: mprokes

Alright, so after many rounds of layoffs I was finally let go today, i had a good run (almost 3 years). So I think I am ok with it, in-fact I saw many great fellow employees go today and I can completely understand. From what I was told, I have skill sets in almost all areas of tech, so picking up a new gig shouldn’t, hopefully be so bad.

Anyway cutting to the chase, I am looking for employment in the twin cities, minnesota area.

I have a great track record, and my former bosses will vouch for it. I have lead the UI architecture/projects for many many things over the years, I have also been on back-end teams particularly in data ingestion, tagging, and syndication systems. My career has a basis in building world class internet products/properties, thus being hired by a world class company like internet broadcasting :-) .

In my early years at the company I was the professional services lead for NBC & Universal Studios, it was my job to manage, and develop software for their news properties coast to coast, work with offshore and my colleagues. I have built systems such as advertising, display, and more. Later, I was migrated to the core tools group and developed several systems and tools that are core to the business at ib, these tools are used by some of the largest media companies in the united states today to deliver content to nearly 1/2 a billion people a month.

From what I understand one of the core reasons I was laid off was basically due to the fact I was the low man on the totem pole, my list of developed products (while extensive) was not as lengthy as say a 6-7 year veteran.

I am also an indy-author as many of you probably know, and if you want to know my views on various technical subjects you can find them here. Check out my bio if you are looking for more information. One of the assets that I do have which is frequently pointed out, I am a VERY quick learner, and I am very reliable and trust worthy. I will give it to you straight, I don’t beat around the bush, I don’t play head games, and my ego is kept in check. I am here to get stuff done.

I have a huge plethora of technologies of which I know, primarily in the internet based domain. Though I am not adverse to developing desktop software, and even hardware systems. I have experience in all of today’s popular languages such as  java, php, c#, coldfusion, pretty much anything…., as well as a few not so popular ones. I would rate myself a 10 for developing client side applications. Maybe a 8 for back-end applications.

I have worked in release environments, all the hot fancy dangled development methods (agile, customer driven, xp). My preferred environment is linux, though windows is good to, I have worked with servers before, primarily tomcat and apache, I can learn other ones easily. Stay tuned for a resume.

I can be contacted at mattprokes@gmail.com / 612-735-1636, salary req are at least 60k for full-time :-) .

  • 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

1.5 Web Development And The Future

Page: #29



So what are component based applications? A developer can think of a component as a small, portable, reuseable facet of an application. Component based applications are simply applications comprised of a set of small, protable, reusable webapplications which are leveraged for a particular purpose.

I have met many developers that are great at building webapplications, I have met not nearly as many that componentize their applications on a day-to-day basis. Next generation webapplications are already beginning to focus on delivering their platform out to developers (such as facebook apps, iphone apps, etc). Where can we find real world examples of a componentized application? I would point out that many facets of webapplications such as wordpress have facilities which have been turned into components. Infact through the magic of plugins, you may even add new components to your wordpress workspace.

Other examples of componentized webapplications include things like remote flash video players,

Oops this wasn’t supposed to go out yet. Stay tuned for the completion of the article, I thought this was set for saturday.

  • 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

1.5 Web Development And The Future

Page: #28



Browser based desktop applications is an area of software that I feel has not been fully realized yet, we still have yet to see any real killer application which will drive the wave of innovation. What are these applications? Well many of the applications that you get today for your computer comes on cd’s, or sometimes they are downloaded from the web regardless traditional pc applications require installation on your pc. Browser based desktop applications, also come from the web but rather then having to install and run the software on a windows,mac,linux,etc computer these applications run from a browser environment instead. Thus any computer that supports a browser will support these applications.

Well that’s what web applications are, how are these applications different? Well they are not; except for one specific quality, a person able to run these applications from their computer when the computer is not connected to the internet. How cool is that? So imagine twittering about something you did today from your netbook in the park, and the computer updating your account as soon as it is able to get on any internet connection. This is the core focus of browser based desktop applications. They are not exclusively for the web and they are not exclusively for the desktop, rather something in-between that syncs up with the net when required but it is by no means necessary.

This is the future of how applications will be delivered to people. There is already well known technologies out there that do this as well as some not so well known ways of doing it without additional plug-ins. Some examples of technologies that allow you to deliver webapps offline include.

  1. Adobe Air
  2. Google Gears
  3. Java Applets/Web Start
  4. Javascript, through certain development techniques, and sometimes frameworks (dojo) discussed later in the book.

The advantages of delivering browser based desktop applications has everything to do with keeping software up-to-date, control of the software, as well as other things such as the ease of delivery vs. traditional methods. These applications do not always require installation and some may be installed as easily as hitting “File>Save” on your computer. From the perspective of a online company these technologies are very very useful because it will allow customers to use the products even more frequently then they already do. Finally, browser based desktop applications are a much better solution if you are trying to develop software that is cross platform all of the technologies listed above offer a well rounded level of compatibility across platforms making them excellent solutions maximizing the potential of a software product.

There are advantages and disadvantages to each of these technologies, in fact all of the technologies listed above require the customer to install a specialized plug-in just to work (EXCEPT the javascript based applications). Another disadvantage is that you may not always be able to achieve 100% market penetration, this is because any of these technologies can also be turned off. Although, as the internet progresses this is becoming less and less of an issue, it is often attributed to neo-paranoid system administrators (not as many of these as say 5 years ago) this isn’t as big issue as it used to be. To be honest, most system administrators will just ban your site on their network if they do not like what you are doing (which is reasonable, you shouldn’t playing at work anyway!).

We will be going through how to build Offline Air, Gears, and Javascript browser applications later in the book.

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

Well I finally figured out how to use wordpress scheduler, I am shocked that it took me this long to figure out. Since I do now know how to do it, I figured that it would be much more reader friendly to post around noon u.s.a central time. Since many of my readers are from the u.s.a, I might as well so that people are able to have something fresh to read over lunch :-) .

~The Author, Matt Prokes

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

Matt Buys A House

Author: mprokes

getmedia

I just wanted to let everyone know that posts may be stagnate for a bit because I am moving into a house. I still have a continued commitment to provide great quality and information. Yet I thought I would let everyone know whats coming up as well as why I haven’t been posting lately. No worries though, as soon as I find a bit of free time starting the next chapter of the book is at the top of my list.

~The Author

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

Migration Complete

Author: mprokes

The migration is complete, the content of the site is officially not part of wordpress.com any longer. I have already added some new plugins which I was looking forward to using such as Story Tools, Digg Widgets, etc. I am sure you also noticed a new theme for the site, which is very pretty.

We will probably be finishing up the introduction of the book over the weekend and also probably wrap up the first round of editing for the chapter, moving chapter 1 to beta and beginning work on chapter 2.

I might start getting into writing wordpress plugins as I would like to write one for setting up a controllable paging mechanism in a blog.

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

Migration Nearly Complete

Author: mprokes

Hopefully we didn’t lose to much through the migration process. The blog is still not at 100%, but we are getting there. I expect traffic to be down now that things are off the wordpress system. The canada coins from this theme will probably go away.

~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

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: #26



With great tools comes great power, and virtual machines are great tools! I do not think that I have mentioned this yet, but I am a huge linux fan. I have been using the operating system at home, and at work for nearly 10 years. One of the problems I had with linux early on though when it came to web development was the fact that internet explorer was not able to run on the operating system.

Linux back then had better development tools for programmers (as is the case today as well). So I was torn between wanting good development tools and needing to test my development with the most used internet browser (explorer).  At first I reverted to something called dual booting, this didn’t work out to well though because I would need to constantly shut down an operating system and start the other one.. Gahh.. Whats a programmer to do?

After searching and searching, it became clear that maybe I should start getting into virtual machines. Back then the only one that was any good was a product called VMWare, it costed money but it was well worth it at the time with the increase of productivity. These days you can find free virtual machines for pretty much any platform out there, my favorite is virtual box when it comes to linux.
virtualbox

As you can see starting up a windows environment using virtualbox is a snap, there is no need to re-start my operating system! I can test everything within the virtual machine and be confident everything all works. Todays virtual machines make things even more easy by allowing the host operating system (in this case linux) and the guest operating system (windows) to share a folder. Thus making it even more easy to work with files on both systems seemlessly.

For you mac users out there, you have several choices of virtualized software including parallels, virtualbox, vmware, and many others. Virtual environments are also used by administrators to set up development environments, and are very handy if you need to emulate a development server. Just ask your administrator to re-create a development server on a virtual box image, and send it to you. Allowing you to run a virtualized development server on your computer.

The core concepts of cloud computing and VPS’s (virtual private servers) are for the most part virtualized server environments often using a Xen hypervisor to manage resources or some other virtualization software (bochs, vmware, virtualbox, you name it). Cloud computing may leverage other technologies.

My favorite use for virtual machines though is still to leverage them for testing and development. Some things to note though, virtual machines can have significant resource overhead. So that is something to watch out for if you do not have a particularly powerful machine. Although if your machine was built in the past 2 years optimizations for VM’s have been integrated into the hardware to make these applications less of a problem.

I hope everyone goes out and tries out a virtualized environment, especially if you are a windows user. Go out and get a virtual machine, and download a version of linux (this one is open geu), and play around with it (can’t hurt anything). There are several tutorials out there on how to install linux under virtual box, so just kinda search around.

Here is a compairison list of all the virtual machines out there.

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

Audio and Video Trends

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: #25



Audio and video content are just some of the latest additions to the web development world, and web based media players have existed as recently as 2002. Some of the current limitations of media is the fact that there is not yet any standardized audio and video protocol built into the browser, although recently a video player was built with javascript (but it has no sound). Meaning that these technologies can only be leveraged through third party plugins like flash, java applets, quicktime, and realplayer

Audio:
Audio is also a continuing trend on the net, I expect that to continue, most audio players are based on flash based mp3 players these days, and you often see audo used on social networking sites particularly myspace. I will also expect to see crowd sourcing efforts with audio in the future, but I won’t clutter this book on what that might look like. Html 5 is also mandating native support for non-synthasized audio in the future.

Native Music Formats:
There is a couple natively supported audio formats in the browser; one is called .midi, although .midi media is not very good since it is an “instrumental” based media format, midi is basically synthesized music. The music  generated and played from the format that is similar to a sheet of music. Thus you can’t actually “record” music and play it back in .midi, for example you could never listen to the latest metallica recording through the midi format.

If I were to compare midi to an mp3, its a bit like comparing clip art to a picture of a person. They are both images, but one is very realistic, and the other is a drawing and not so realistic. Midi music usually sounds like the keyboard music heard back in the 1980’s, and it doesn’t always sound the same computer to computer, since it is synthasized. One advantage of midi is that a 4 minute song can usually be crammed into 70k to 80k, versus a mp3 which would be a solid 4MB to 5MB. Midi, can be leveraged to add short little sounds to you web application, and it is very efficient, and relevant in that case.

The second supported format is .wav, the wav format is similar to the one used with cd-roms (cdma) that being .wav is a loss-less format meaning that .wav audio is an exact binary copy of audio (with no compression loss, as mp3’s have). While being a lossless format is great from a quality of sound perspective, compression not being available for wav format is huge issue because a wav file can consume as much as 10MB just for 1 minute of audio. Compared to mp3’s, wavs take 10-11 times as much bandwidth and disk space, thus wavs are not really used to much in internet media because of this very issue.

Video:
Video was originally leverage (as so many things are) by porn sites, but later many popular video sites started springing up all over some of the best ones are youtube, internet archive video, hulu, and hundreds more, including many that are built into blogging software like wordpress. I expect videos to become an even more populat trend on the internet. Infact the next big fronteer for video will probably be intelligently integrating and tagging, and commenting on top of the video in real-time. This will allow search engines to begin searching video based on what people tagged and commented on it. Nothing like this exists yet, but here is a simple example.

videocomment2

While we are starting to see tagging like this on photos I expect to see comments also strapped to video and audio timelines in the near future. This will also open up a whole new world for things like video tutorials, etc.. all this can be done outside the video leveraging javascript, and then the data generated by users index and made searchable. Later in the book I may break out a javascript project which does exactly this. Crowd sourcing to the collaboration of a community to create content, and is a perfect example of crowd sourcing.  Html 5 mandates native video support for browsers, the jury is still out on the official codec that will be used although word on the street is it will be ogg/vorbis.

Media, and Bandwidth
If you decide to travel down the path of media, something you should be aware of is the intense amounts of bandwidth that it consumes, while media is excellent for a user experience at this time its bandwidth cost/profit ratio is not so good. Although you can often offset the bandwidth costs by uploading content to free services like youtube, and internet archive. Keep in mind though if you do this, the content service often mandates an open/free copyright of content on their system.

So really it is all about control of the content, if you are just planning on giving your content away, then upload it to a free service all you like. Although, if you absolutely need to retain copyrights, and don’t want to fumble around with all the legal issues associated with protecting your content on a free service, then you will need to host the content yourself and take a hit with bandwidth costs.

I expect that eventually a client technology will come along that will allow browsers to effectively make themselves a sort-of, bit-torrent-like type of technology which will allow for streamlined distribution of all web content including video. Several things need to happen though for that to become a reality, so you probably should not expect it to happen anytime soon (next 10-15 years).


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