Google Analytics gets new interface
Seams that Google is experimenting with new Analytics features. Few moments ago I logged into my analytics account, and noticed some new stuff.
Most of new features comes down to the possibility to compare two graph at the same time, like page views vs visits (picture 1), or page views of some section on site vs total site page views (picture 2)
And all of the sudden, they switched back to old interface, probably they still have some bugs in new interface.
Here are some screen shots from new interface:


Viewed 75784 times by 24108 viewers
Our site gets ripped, but gues what, we caught them.
Help us digg this and learn this guys a lesson .
This afternoon i get a call from Veljko, my friend and partner at DevPulse saying: "guess what someone ripped our site, please log on ICQ, you must see this."
Now that was a shocker
While i waited for icq to connect, i thought that someone probably has seen our site at cssmania.com or some other gallery, and modified our design in some way. But, boy I was wrong.
And there it was:
www.vibe-industries.nl/index.html
Upon first look i did not even see any major resemblance except that place where logo stands, but more that I looked more things i noticed.
-Structure is basically the same.
-Header and footer are same height as on original site.
-Header background is same as on original site.
-Footer colors are not changed at all.
etc...
Then i looked at the source code...
Now this was priceless, i mean should i even comment on this?
http://www.vibe-industries.nl/index.html
<link href="devpulse.css" rel="stylesheet" type="text/css" />
Or even this?
<h1 class="welcome-text"><span>Welcome to DevPulse</span></h1>
And we have a winner:
<div class="logo"><a href="index.html">DevPulse Web Development and Consulting</a></div>
Here is what I'm talking about,take look by your self.
![]()
It was by far the worst and most amateur case of site rippoff that i ever seen in my life.
And it happened to us
Now what i want from you is to spread this link and/or digg this story.
They did not ask me when they ripped our site, so I'm not even gonna try to contact them, they will find out sooner or later.
Let this public humiliation be a lesson to them.
p.s.
to guys at vibe-industries.nl,
if someone else designed your site that does not take responsibility off you, you should always give important job like this to some professional and not to someone who did this.
Viewed 85596 times by 22492 viewers
Thunderbird 2
Few minutes ago I found out that new Thunderbird is out, so I've decided ti give it a try.First thing that i noticed is native Gmail support. You just enter your gmail username and Thunderbirad creates new account automatically.
Also now you can tag your messages, and search now works "as you type".
Screenshot:

(Click for larger image)
Viewed 124037 times by 43427 viewers
AJAX - Episode 1
We will start with rather simple example.
Scenario:
We have 3 files:
- index.html - our main file
- updater.php - simple PHP script that prints current date and time
- prototype.js - prototype javascript library
Why prototype? Because I love it ![]()
If you wanna use prototype for your projects, you can download it from here HERE
First we start withi index.html file, you can see demo here
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type='text/javascript' src='prototype.js'></script> <style type="text/css"> body{margin:0px;padding:0px;background:#565656;text-align:center;color:#414141;font:normal 14px "Trebuchet MS";} #container{margin:50px auto;border:solid 4px #561112;padding:10px;width:400px;background:#e1e1e1;} #time_div{border:solid 1px #cacaca;margin:10px;background:#ffffff;} </style> <title>Untitled Document</title> </head> <body> <div id="container"> <h1>Ajax 001 example</h1> <div id="time_div">not loaded yet</div> <input type="button" onclick="updateTime('time_div');" value="update" /> </div> </body> </html>
Next, we add actual Javascript that make this little script work in the first place.
(you must put it somewhere between <head> and </head> tags):
<script type="text/javascript"> updateTime = function(elm){ // assign time_div object to myElement var myElement=$(elm); // change innerHTML, and CSS style of time_div ona a single line myElement.update('Loading...').setStyle({background: '#ffd1d1',color:'#a1a1a1'}); // make AJAX request to updater.php script new Ajax.Request('updater.php', { // if we get any response: onSuccess: function(transport) { // // change innerHTML of time_div (print response from PHP), and change colors to normal myElement.update('Server time: ' +transport.responseText).setStyle({ background: '#ffffff',color:'#000000' }); } }); } </script>
Now you can see true power of prototype, instead of writing:
type="text/javascript"> var myElement=document.getElementById(elm); myElement.innerHTML='Loading...'; myElement.style.background= '#ffd1d1'; myElement.style.color='#a1a1a1';
as we would in standard javascript, we end up with this:
var myElement=$(elm); myElement.update('Loading...').setStyle({background: '#ffd1d1',color:'#a1a1a1'});
That may not look like big thing, we saved just a few lines, but we included 74kB Javascript library!?! Actually this is not as bad as it seams:
-Prototype is very well written, and well documented library.
-You may strip down all unused functions, and reduce size of prototype.js
-By using prototype (or some other javascipt framework), you can reduce your development time.
Next we write simple PHP file that prints current date and time. IF you wonder what does sleep(1) means, answer is really simple: it just pauses script execution for one second, so you can actually see "Loading... " text and background color change
![]()
updater.php
<?php sleep(2); echo date("D M Y H:i:s"); ?>
whole script:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type='text/javascript' src='prototype.js'></script> <script type="text/javascript"> updateTime = function(elm){ // assign time_div object to myElement var myElement=$(elm); // change innerHTML, and CSS style of time_div ona a single line myElement.update('Loading...').setStyle({background: '#ffd1d1',color:'#a1a1a1'}); // make AJAX request to updater.php script new Ajax.Request('updater.php', { // if we get any response: onSuccess: function(transport) { // // change innerHTML of time_div (print response from PHP), and change colors to normal myElement.update('Server time: ' +transport.responseText).setStyle({ background: '#ffffff',color:'#000000' }); } }); } </script> <style type="text/css"> body{margin:0px;padding:0px;background:#565656;text-align:center;color:#414141;font:normal 14px "Trebuchet MS";} #container{margin:50px auto;border:solid 4px #561112;padding:10px;width:400px;background:#e1e1e1;} #time_div{border:solid 1px #cacaca;margin:10px;background:#ffffff;} </style> <title>Untitled Document</title> </head> <body> <div id="container"> <h1>Ajax 001 example</h1> <div id="time_div">not loaded yet</div> <input type="button" onclick="updateTime('time_div');" value="update" /> </div> </body> </html>
Viewed 33859 times by 6813 viewers



