extContent in action (part1)
Basic templates management. In the following video you will see how to split and organize the template of your future site
Content adding and editing:
Menus (templates, structure, usage)
Content Indexing and php tags options
Here you can find the final result : http://dev.ajaxinside.de/projects/extcontent/
extContent concept
Application Environment (XFCE like TaskBar and Custom WindowManager)
Content Management
Menu’s Structures
Indexing of Content Tables
This is just a technology preview developed with extJS 3.0
You can find more detailed videos here
I am not planning a release in the near future.
SDB pre-release
Used Technologie:
the ExtJS framework,
custom php to handle the server-side stuff,
a lot of patience and sleepless nights
Eclipse for web development
Here a small list of everything extra added :
- The Mighty Eclipse Platform 3.4.1
- Aptana JavaScript Editor 1.2.1.020234
- Aptana Support for EXT 2.2.004 (other framewords can be added via Aptana Update Manager)
- Aptana Web Development Tools 1.2.1.020234
- Subversive SVN Connectors 2.0.4
- SVNKit 1.2
- Zend Debugger 5.2.14
- PDT Runtime Feature 2.0.0
- RSE FTP Service 3.0.1
- RSE SSH Service 2.1.1
JRE is included but you can replace it with another one to match your arhitechture (jre folder). Currently there is a version for Windows. If i have some time i will added and one for Linux and OSX. Basically you can use the configuration and features folders and copy them over another eclipse build, but i never tried it.
I am not the author of anything ! I just combined some free plugins and features. If you care about licenses and etc., please take a look on the vendor’s sites. It’s all free software, but you never know …
This software comes with absolute no guarantee, so please use on your own risk.
Installation:
Unpack and start.
OC – new charts preview
Used technologies:
ExtJS framework
ux.Media ChartPack 2 (extjs extension)
Fusion Flash Charts
… A lot of custom work
FLV steaming – server/client side
This is the shortest how-to ever. You won’t get any extra info, the idea is to install the whole scheme fast as possible and then spend some time reading docs for each separate module.
This is how to make HTTP FLV streaming using the JW FLV Media Player and the lighttpd web server.
Here we go:
1. Installation
Install the lighttpd server. I am using Ubuntu, so i will install it via the apt-get package system:
sudo apt-get install lighttpd
2. Configuration
The first we have to do is change the default listening port to 81 (optional if you are already using apache on the same host, or whatever you decide to use) and enable the needed for flv streaming modules (mod_flv_streaming and mod_secdownload ). Edit the following file : /etc/lighttpd/lighttpd.conf and change the server.modules and the server.port parameters:
-
server.modules = (
-
"mod_access",
-
"mod_alias",
-
"mod_accesslog",
-
"mod_compress",
-
# "mod_rewrite",
-
# "mod_redirect",
-
# "mod_status",
-
# "mod_evhost",
-
# "mod_usertrack",
-
# "mod_rrdtool",
-
# "mod_webdav",
-
# "mod_expire",
-
"mod_flv_streaming",
-
"mod_secdownload", ## optional
-
# "mod_evasive"
-
)
-
flv-streaming.extensions = ( ".flv")
and
-
## bind to port (default: 80)
-
server.port = 81
Then start the lighttpd server ( Ubuntu )
sudo /etc/init.d/lighttpd start
3.1 Converting regulat video clips into .flv
Before compiling the ffmpeg binary, you have to download and install some development libraries. Please install liblame-dev and libvorbis-dev and all their dependencies:
apt-get install liblame-dev
apt-get install libvorbis-dev
Then go to your favorite source folder and download there the current svn server of ffmpeg
cd /usr/local/src/
If you don’t have subversion installed:
apt-get install subversion
Download the source code:
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
Open the downloaded directory:
cd ffmpeg/
and compile the ffmpeg binary with the following keys
make
Wait a lot of time …
and finally install it :
make install
2. Converting movies
Lets create two separate folders for “ready to be streamed movies” and “unconverted movies”
mkdir /var/www/movies/
mkdir /var/www/movies/convert_me/
mkdir /var/www/movies/flv/
Copy a favorite movie or clip in /var/www/movies/convert_me/ and then execute:
3.2 FLV files
You have to prepare your flv for streaming. I am not really a video encoding/decoding guru, so i am sharing my solution to the problem, but i am not sure it is the best possible.
Install flvtool2:
sudo apt-get install flvtool2
Put some flv movie somewhere inside your DocumentRoot folder ( for example /var/www/path/clip.flv) and then use the flvtool2 to generate the needed for the server meta-tags inside your flv video.
flvtool2 -U -p /var/www/path/clip.flv
Here i am using two keys :
-U Updates FLV with an onMetaTag event
-p Preserve mode only updates FLVs that have not been processed before
another interesting switch for whole folders will be :
-r Recursion for directory processing
As you may notice, the flvtool2 don’t have so many options at all, so it will be good to make a little more research about the features of this tool.
You can test the generated meta tags using the debug command in flvtool2.
flvtool2 -D clip.flv
Be prepared for a lot of output… It looks like this :
-
#1 Meta Tag (onMetaData): timestamp 0, size 7910, data size 7899
-
#2 Audio Tag: timestamp 0, size 274, data size 263
-
#3 Audio Tag: timestamp 26, size 274, data size 263
-
#4 Video Tag (Keyframe): timestamp 38, size 39766, data size 39755
-
#5 Audio Tag: timestamp 52, size 274, data size 263
-
#6 Video Tag (Interframe): timestamp 71, size 5289, data size 5278
-
#7 Audio Tag: timestamp 78, size 274, data size 263
-
#8 Audio Tag: timestamp 104, size 274, data size 263
-
#9 Video Tag (Interframe): timestamp 105, size 4334, data size 4323
-
#10 Audio Tag: timestamp 130, size 274, data size 263
Now your clip.flv is ready to be streamed.
4. FLV Client Player
Download the JW FLV Media Player from http://www.jeroenwijering.com/ and unpack the archive somewhere in your www directory. Create a html file in the same directory as your player with the following source:
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<head>
-
<title>JW Player for Flash</title>
-
</head>
-
<body>
-
<div id="container"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</div>
-
<script type="text/javascript" src="swfobject.js"></script>
-
<script type="text/javascript">
-
var s1 = new SWFObject("player.swf","ply","328","200","9","#FFFFFF");
-
s1.addParam("allowfullscreen","true");
-
s1.addParam("allowscriptaccess","always");
-
s1.addParam('wmode','opaque');
-
s1.addParam('flashvars','file=http://your_lighttpd_server.com:81/path/clip.flv&streamer=lighttpd');
-
s1.write("container");
-
</script>
-
</body>
-
</html>
Save it as test_stream.html and open it with your web browser ( http://your_lighttpd_server.com:81/path/mediaplayer/test_stream.html). If your paths are correct you will be able to watch your clip.flv with the flv player.
In this example i am using the same server (lighttpd) for hosting the flv player and the clip, but it is possible another webserver to be used. For example you can host your site on Apache and use lighttpd only for storing the streamed videos!

5. Some technical information to help you understand the idea
Let’s take more detailed view of the JW Player’s configuration:
-
s1.addParam('flashvars','file=http://your_lighttpd_server.com:81/path/clip.flv&streamer=lighttpd');
Whe have two parameters:
file = link to the flv file we want to stream
streamer = lighttpd
With the second parameter we are activating the native flv stream support in the lighttpd server. After you start the playback of the video and forward to a spot that has not been downloaded yes, you will notice that another parameter will be passed to the flv file :
start = # of frame to start (here is where the meta tags we generated with flvtool2 are used to index the frames in the flv file). The lighttpd parse all the requests to the flv file and starts the streaming from the requested frame.

That’s all folks.
For more info, here is where i got the info for this mini-how-to from:
http://www.jeroenwijering.com/?item=JW_FLV_Media_Player
http://www.jeroenwijering.com/?item=HTTP_Video_Streaming
http://www.inlet-media.de/flvtool2
http://blog.lighttpd.net/articles/2006/03/09/flv-streaming-with-lighttpd
OC – beta 1 (preview)
OC – Operatives Controlling Application
Developed with extjs 2.2 framework + custom php framework
Current status – Development + bugfixing
A little lesson in JS objects
-
myobject = function(){
-
// defining a method_1
-
function method_1() {
-
-
function sub_method_1() {
-
// defining some var (sum_method_1_var) that gonna be used only in the sub_method_1
-
var sub_method_1_var = 7;
-
-
// accessing the (z) var thats defined in the method_1
-
// this is only possible because sub_method_1 is a sub method of method_1, where the z var is defined
-
return sub_method_1_var+z;
-
}
-
-
// defining a var (z) that will be used in method_1 but accessible
-
// from each sub method in method_1
-
var z = 1;
-
-
// getting the sum of z + sum_method_1_var ( 1+7)
-
// output: 8
-
var something = sub_method_1();
-
return something;
-
}
-
-
//defing a value with the result from the method_1
-
result = method_1();
-
-
// all the method defined in return {} will be public and accessible for the "outside world"
-
return {
-
// defining a public method
-
public_method : function() {
-
return result;
-
}
-
};
-
}
-
// defining x as myobject
-
x = new myobject();
-
// accessing the public_method of myobject (x)
-
final_result = x.public_method();
-
// alert the result
-
alert(final_result);
A very handy tool for testing pieces of JS source is the Execute JS Add-on for Firefox
It’s the fastest and painless way to execute JS and debug if needed :

I hope this example may help someone
Microsoft Script Debugger – Why the fuck IE have to suck so bad ?!
Some time before – maybe 10 years ago I was the biggest Internet Explorer fan ever… Now we have version 7
Let me share some of my thoughts about it :
- Totally fucked up interface… I need at least a minute to find where the History is (for example)
- Don’t have any idea what the dudes used for a render Engine, but it sucks
- Slow, slow and sometimes too slow
- Some kind of shitty debuger for JS / AJAX… don’t really tell you something useful about the error in the script..
And here my small tip to all web developers – If you want to debug something under IE, install the official Microsoft Script Debugger. It’s free, but it’s nothing compared to Firebug. At least you will get some error messages.
My latest child – Orange II
As I used to live in Bulgaria, I always had an own webserver at home. And now, after 5 years working on a local installed XAMPP on my Windows box or even worst – working on the fly on customer’s server, I got my own server again. Got the hardware from ebay.de :

Pentium 4 – 1 ghz, 128 + 256 RAM, 20 GB hdd SCSI + 2×500GB RAID (USB external storage) and etc.
The distribution is Ubuntu 8.04 Server Edition. I took me only about 4-5 hours to set everything – Apache, mySQL,php, Subversion. I can only recommend Ubuntu for small servers and other low-cost solutions



