dfbills.com blog

Mozilla blog reports success (updated)

Once the software became available at 10am PDT, it was off to the races for Mozilla.  From their blog:

“It’s been an awesome morning and afternoon here at Mozilla headquarters. We launched Firefox 3 this morning and immediately felt the love from millions of people all over the world joining us to set a Guinness World Record for most software downloaded in 24 hours.”

I guess so- they exceeded the first day downloads of Firefox 2 after just five hours with 1.6 million downloads and were serving 9,000 downloads a minute at the time of posting.

Final numbers for the first day are not yet available, but expected to be in the 5-7 million range.

Update: Firefox 3 was downloaded 8.3 million times over 24 hours.  That’s 83 terabytes!

John Lilly, Mozilla Foundation CEO, says that equates to a 4% market share of browsers worldwide on day one.

comment on this | posted in: Mac News Webdev

Expression Engine to iCal

Back in September of last year, I authored a plugin and template for the excellent Expression Engine (EE) content management system to output iCal/vCal files.  The template is rather short and I took a bit of time today to document how it works.

I had previously posted a fully working template on the EE forums.  It does seem overly simple, but everything necessary is right there.  It is a mix of PHP, EE and of course XML. 

Here’s the breakdown:

In the first block of PHP, I’m getting the current date in a format I can use and storing as a variable.  Specifically, last month in ‘d-m-Y’ format and next year in ‘d-m-Y’ format.

<?php
// last month in ‘d-m-Y’ format
$uts[‘lastmonth’] = strtotime( ‘-1 months’ ); // or, strtotime( ‘yesterday’ );
$last_month = date( ‘Y-m-d g:i A’, $uts[‘lastmonth’] );

// next year in ‘d-m-Y’ format
$uts[‘nextyear’] = strtotime( ‘+1 years’ ); // or, strtotime( ‘yesterday’ );
$next_year = date( ‘Y-m-d g:i A’, $uts[‘nextyear’] );
?>

Now, we start into XML as required by the vCal standard.

BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:BMI Event Calendar
PRODID:-//BMI/ Events//NONSGML v1.0//EN
X-WR-TIMEZONE:US/Eastern

Now, some standard EE code to get weblog data.  Here’s where I use those PHP date variables we grabbed at the beginning to limit the data returned by EE.  My weblog has > 20,000 events listed, so I list one month back and one year forward.

{exp:weblog:entries weblog=“events” status=“not closed” show_future_entries=“yes” disable=“member_data|pagination|trackbacks|categories” show_expired=“no” orderby=“date” sort=“asc” start_on=”<?php echo $last_month; ?>” stop_before=”<?php echo $next_year; ?>” limit=“1000”}

This data is wrapped in the proper XML formatting.  On my calendar, I don’t have proper times set in the weblog entries, so I leave them at midnight. (T120001)

BEGIN:VEVENT
UID:{entry_id}
DTSTAMP:{entry_date format="%Y%m%dT%H%i%sZ"}
DTSTART;VALUE=DATE:{entry_date format="%Y%m%d"}T120001
DTEND;VALUE=DATE:{entry_date format="%Y%m%d"}T120002

Here’s where I had to cleanup the data a bit to conform to the strict vCal spec with my own little vcal_encode plugin.  (vCal doesn’t like extended characters, linebreaks, etc.)

SUMMARY:{exp:vcal_encode}{title}{/exp:vcal_encode}
DESCRIPTION:{exp:vcal_encode}{long}{/exp:vcal_encode}

Finally, I wrap up the template by closing the vCal file and the EE tags.

END:VEVENT
{/exp:weblog:entries}
END:VCALENDAR

Remember that this template must be served from EE as XML and PHP must be enabled for it to work properly.  You may have named fields differently from mine, but you should be able to just plug those right in.

You can see all this in action here:

The vCal link: webcal://www.bmi.com/events/ical

The calendar: http://www.bmi.com/events/calendar/

Full template

<?php
// last month in ‘d-m-Y’ format
$uts[‘lastmonth’] = strtotime( ‘-1 months’ ); // or, strtotime( ‘yesterday’ );
$last_month = date( ‘Y-m-d g:i A’, $uts[‘lastmonth’] );

// next year in ‘d-m-Y’ format
$uts[‘nextyear’] = strtotime( ‘+1 years’ ); // or, strtotime( ‘yesterday’ );
$next_year = date( ‘Y-m-d g:i A’, $uts[‘nextyear’] );
?>BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:BMI Event Calendar
PRODID:-//BMI/ Events//NONSGML v1.0//EN
X-WR-TIMEZONE:US/Eastern
{exp:weblog:entries weblog=“events” status=“not closed” show_future_entries=“yes” disable=“member_data|pagination|trackbacks|categories” show_expired=“no” orderby=“date” sort=“asc” start_on=”<?php echo $last_month; ?>” stop_before=”<?php echo $next_year; ?>” limit=“1000”}BEGIN:VEVENT
UID:{entry_id}
DTSTAMP:{entry_date format="%Y%m%dT%H%i%sZ"}
DTSTART;VALUE=DATE:{entry_date format="%Y%m%d"}T120001
DTEND;VALUE=DATE:{entry_date format="%Y%m%d"}T120002
SUMMARY:{exp:vcal_encode}{title}{/exp:vcal_encode}
DESCRIPTION:{exp:vcal_encode}{long}{/exp:vcal_encode}
END:VEVENT
{/exp:weblog:entries}
END:VCALENDAR

One final tip- I found it very helpful to debug the rendered code using curl at the command line.  On my setup, I just pipe it into TextMate like this:

curl http://www.bmi.com/events/ical | mate

comment on this | posted in: Tips Webdev

It’s Firefox Download Day, where’s the download?

So, it’s 06.17.08- aka Firefox Download Day, where’s the download?  Looks like the peeps over at mozilla.com aren’t quite ready…

comment on this | posted in: News Webdev

Safari 4.0 developer seed emerges

Apple has unleashed the Safari 4 developer seed.  This release is available to all members of ADC.

New features include:

- latest WebKit build trunk
- SquirrelFish JavaScript engine
- ability to save webpages as “Web Applications”

comment on this | posted in: Mac News Webdev

Here we go-

Twitter is already buckling under the strain of the pre-WWDC traffic.

image

comment on this | posted in: 404 Mac News Webdev

Checking out LaterLoop

I’m trying out LaterLoop this morning.  It’s a web service that lets you save a link to read later.  They even have a slick iPhone interface and a desktop-based Read Offline or Airplane mode where you can download a ZIP file of your links and read them when you’re offline.

Seems a lot like InstaPaper, but with more features and built on the Google App Engine.  This is cool because you can use a standard google account to login.

comment on this | posted in: iPhone News Tips Webdev

Google changes favicon

Google has changed their favicon (favorite icon) to a new design. For those of you not versed in web nerdery, I’m talking about the little icon to the left of the URL bar in your browser.

old favicon
image


new favicon
image


Historically, most sites only change favicon designs when launching a new look.  This doesn’t seem to the be the case on google.com.

(1) comments | posted in: News Webdev

Adobe Dreamweaver to use WebKit

Adobe released public betas for the next generation of products yesterday.  The most exciting news is that the next version of Dreamweaver will use WebKit as its rendering engine, replacing the long-standing Opera engine.

comment on this | posted in: News Webdev

Firefox 3 is getting close to release

Mozilla is telling us to go kick the tires on the first Firefox 3 release candidate.  Only a few aesthetic changes that I noticed, but Mozilla says there are major security enhancements under the hood. Javascript performance is ridiculously fast and especially noticeable in the Google Apps.

comment on this | posted in: Mac News Webdev

I like the Twitter “server down” page

I’ve definitely seen it before and after seeing it a few times this week, I wanted to comment that I really like the Twitter “server down” page.

image

comment on this | posted in: 404 Webdev
« First  <  6 7 8 9 >