What italic means

What italic means
Finally an image that dispells all myths about the element. As you can see it’s all about presentation. Disappear you foul demon! (You have more HTML humor? Show me in the comments)

Lexical scope to appear in PHP?
I mentioned briefly, in my last post, that Wez Furlong made a patch back in March, that allows a native syntax for creating anonymous functions. This could replace the heinous create_function. Since then, I brought up Wez’ original patch again on the php-internals lists. This has prompted some hefty debate over the last week. The main […]

I mentioned briefly, in my last post, that Wez Furlong made a patch back in March, that allows a native syntax for creating anonymous functions. This could replace the heinous create_function.

Since then, I brought up Wez’ original patch again on the php-internals lists. This has prompted some hefty debate over the last week. The main argument against approving the patch, seems to be, that one would expect static scoping rules to apply to the anonymous function. After all, this is the case in similar languages, which support anonymous functions. One could only assume, that changing PHP to support this, would be a major undertaking.

One would be wrong, it seems.

Today, Christian Seiler posted a patch to allow lexical scope for anonymous functions. There are a few loose ends, but it appears to work in general. Instead of making all variables follow the static scoping rules, a new keyword (lexical) is introduced. It works similar to global, in that it must be explicitly declared, which variables are lexically scoped. This is how it looks in action:

  function getAdder($x) {    return function ($y) {      lexical $x;      return $x + $y;    };  }  $add2 = getAdder(2);  $add2(8); // return 10  

It’s probably a bit early to tell if this will find its way into the language. It’s still just a proposal and it would take some further work to get it right, but at least it appears to be technically possible. We’ll have to wait and see.

Otherwise, there’s just left to wish you all a merry Christmas.

This article provided by sitepoint.com.


Media attribute - what have you done for me lately?
I’ve been thinking for a while about the media attribute on link tags. Some people might find that thinking deep thoughts about HTML attributes is kind of strange, but I know you, my dear readers, know the feeling ;) An example, just so I know we’re on the same page: This […]

Clarke Calls for CSS Working Group to be Disbanded
Having recently announced the CSS Eleven initiative to provide designer feedback and input into the W3C’s CSS Working Group, Andy Clarke has responded to the Opera-Microsoft antitrust action by calling for the Group to be dissolved entirely and rebuilt without browser vendors in a controlling role. He considers this necessary not only […]

Having recently announced the CSS Eleven initiative to provide designer feedback and input into the W3C’s CSS Working Group, Andy Clarke has responded to the Opera-Microsoft antitrust action by calling for the Group to be dissolved entirely and rebuilt without browser vendors in a controlling role.

He considers this necessary not only because he doubts that the representatives of Opera and Microsoft can collaborate on CSS3 while locked in a legal battle, but also because he feels it’s time the future of web standards was led by those of us who will eventually use them in our daily work, not those who hope to make money by making browsers.

Clarke’s indictment of Opera’s legal action has been echoed by many in the web design community. CSS expert Eric Meyer considers the Opera move to be bad timing, coming right when Microsoft was showing promise with IE7 and the upcoming IE8:

It’s the wrong move at the wrong time, sending precisely the wrong signal to Microsoft about the importance of participating in development and support of open standards, and I can only hope that it comes to a quiet and unheralded end.

But few seem to agree with Clarke’s proposal to restructure the CSS Working Group. Many believe the group has life in it yet, while others are calling for the wholesale abandonment of the W3C process.

The voice of reason in all this seems to be Alex Russell of the Dojo Toolkit. In his article, The W3C Cannot Save Us, he explains that what is really holding the Web back is our fanatical devotion to web standards, and the expectation that they can dictate what new features should be added to web browsers.

Put simply, Zeldman is hurting you and only you can make it stop. Neither the CSS WG nor the HTML 5 WG nor, indeed, any W3C working group can define the future. They can only round off the sharp edges once the future becomes the past and that’s all we should ever expect of them. As much as they tell us (and themselves) that they can, and as much as they really would like to, the W3C cannot save us.

Long-time Tech Times readers will not be surprised that I agree with Alex. His opinion is pretty much what I said in the Tech Times #137, way back in April 2006:

In my mind, it shouldn’t be the W3C’s job to develop new standards from scratch, nor should the W3C be responsible for championing new features in individual browsers. Those are the jobs of the innovators and early adopters, who push the boundaries of the possible, producing early implementations that blaze trails for future standards to pave.

The one sticking point that Alex doesn’t mention is software patents. If browsers go out and patent every innovative feature they develop, these features will not be freely available for the W3C to standardize for adoption by the other browsers. But perhaps that’s a smaller problem than the ones we’re faced with currently.

In any case, the W3C needs to stop looking towards the future; until they do, the rest of us will be stuck in the past. The W3C is eminently capable of writing solid specs that describe what browsers do today. They should stick to that (it’s a big job!), and let the world know that adding nonstandard features to web browsers is not a crime.

The future is not built by consensus in a working group; it’s built by visionaries trying stuff out and making mistakes.

This article provided by sitepoint.com.


The state of functional programming in PHP
With the rise of Javascript, and languages like Python and Ruby, functional programming is becoming more mainstream. Even Java seems to be getting closures in the next version, so does this leave PHP lacking behind or is there an unrealised potential hidden within? Dynamic dispatch What exactly defines a functional programming language, is perhaps an open question, […]

With the rise of Javascript, and languages like Python and Ruby, functional programming is becoming more mainstream. Even Java seems to be getting closures in the next version, so does this leave PHP lacking behind or is there an unrealised potential hidden within?

Dynamic dispatch

What exactly defines a functional programming language, is perhaps an open question, but one key element is functions as data. As it happens, PHP kind-of-supports this concept; The syntax permits you to use variables as function-names, making the following possible:

  function add($a, $b) {    return $a + $b;  }  $add = "add";  $add(2, 8); // return 10  

Unlike languages with first class functions support, the variable $add isn’t a special type — It’s merely a string, which is evaluated in the context. It may just be a wrapped up eval, but superficially it works similar, once the function has been declared.

It is also possible to explicitly call a function reference with call_user_func. This is interesting, because it accepts different types of arguments, which makes it possible to call a method on an object. More on this in a moment.

Binding state

Another prerequisite for functional programming, is the ability to bind a variable to a function. This bound function serves essentially the same purpose as objects do in object oriented programming, but is usually more fine grained and more flexible.

In languages, which are traditionally associated with functional programming, functions are usually bound with variables, through something called a closure. This is a side effect of the scoping rules of those languages.

Since PHP doesn’t have lexical scope, we can’t use closures, but we can use currying to achieve the same goal. In Wikipedia’s words, currying is the technique of transforming a function that takes multiple arguments into a function that takes a single argument. If that sounds abstract, assume the following:

  $add2 = curry($add, 2); // returns a new function reference, to add(), bound with 2 as the first argument  $add2(8); // return 10  

Before you try that out, hold your horses — it won’t work, because curry isn’t a PHP function. As it turns out though, it’s possible to create it. Sort of.

Implementing curry

Without going into great details, there are two ways, currying can be implemented in PHP.

For a more detailed explanation, have a look at Partial function application in PHP.

Weighing the options

Looking at the syntax, variable-variables have a much more functional “feel” to them, than a command object. The callback pseudotype does allow one to reference an object + method-name, but even though this is supported by PHP’s internal functions, it get’s bulky in user land code. If a command object feels like functional programming with OOP syntax, then call_user_func feels like functional programming with procedural syntax.

When it comes to performance, the run-time evaluated approach has some serious shortcomings. Currying must be done by creating new static code each time and this can’t be reclaimed until the end of the process. Furthermore, the only way to bind state, using this pattern, is to rely on a global container of some sort, generating a new, unique symbol each time. Since it’s impossible to know, when the callback isn’t referred anymore, it follows, that it’s impossible to safely remove the variable from the global container. Thus, any state bound this way, will be impossible to reclaim for PHP’s memory management system, furthering the risk of the script running out of memory.

In conclusion

So, if the offset for this post was to assert the current options for functional programming in PHP, the only practical solution is currying, using command objects. The awkwardness can be somewhat smoothed out, with a library of utility classes. phunctional is an attempt at this and we might also see some of these ideas emerge into more general purpose frameworks.

Another idea, could be a language level addition to PHP. What we need, is a way to make all callbacks callable with the variable-variable syntax. I’m thinking this could be supported with a magic-method. If an object was to be used as a function, and it implemented said magic method, the method would be called. From a design perspective, it would fit fine with the other magic methods, such as __call and friends.

Declaring functions

Another limitation, which could be addressed at the language level, is the matter of declaring functions in the first place. Currently, functions must be declared in the global scope or through the use of the hideous create_function. There have been some stabs at improving this, on the php-internals team, so maybe we should be as lucky as to see this in PHP 6?

This article provided by sitepoint.com.


Manipulating innerHTML removes events
Others have written about this before, but I thought I’d mention it again, just so you don’t miss it. Aleksandar Vacić found it while playing with tables and their cells. I found it when Robert and I played with nested lists. It works the same across browers. Let me show a quick example: You have a […]

New design for friendlybit coming up
Hi. I just wanted to tell you that I’m now working on the new friendlybit. I’ve listened to your previous comments, and these are the changes I’m going to make/not make: Blog format stays, no community. You’re damn conservative (something like 95% percent said to keep it a blog). More compact writing. I’ll skip more of the […]

Min-width and Max-width template
Some problems seem to appear again and again, and one of them is page width. How wide should a site be? Should you adapt to 800px resolution? 1024px? Fully fluid with percentages? Perhaps elastic using em-units? There are lots to choose from. What I’ve found is that there’s one solution that almost always works. You […]

Safari now available on Windows
Hi, this is just a short post to let you know that Safari is now available on windows. It’s was unveiled at the World Wide Developer Conference 2007 by Steve jobs himself. I can’t stress enough how important this is for all Safari users. Most developers still use Windows when developing web sites (it’s changing, […]

CSS Tip: Positioning photos with floats
In the past I’ve discussed how the use of photos can enhance a Web site, but I’ve not discussed the code one uses to incorporate them. On campus, and elsewhere, Web designers use a variety of techniques to include their photos.

bluepavilion.jpg
Night shot of one of three recently dedicated light pavilions on Superior Avenue.

In the past I’ve discussed how the use of photos can enhance a Web site, but I’ve not discussed the code one uses to incorporate them. On campus, and elsewhere, Web designers use a variety of techniques to include their photos. Some will build complex tables to get their photos positioned just right while others will add something like hspace=”5″ vspace=”5″ align=”right” into the img tag.

Neither of these is recommended by current standards (the latter is deprecated as of HTML 4.1 but is necessary in HTML e-mail) nor do these techniques give you the control you need. A better way to do this is with Cascading Style Sheets (CSS).

Create a CSS class to float your photos to the right or left of your text

An easy way to include photos is to use the CSS property “float” to float the image to the right or left of the content that follows. One can float either the image itself or a container, such as a paragraph enclosing the image. I prefer to do the latter in case I wish to include a caption with the image.

One begins by opening the page’s existing stylesheet and defining a new class to contain the image. On this blog I typically use a class I call “photoright.” The code in the stylesheet looks something like:

.photoright {float: right; padding:2px 0px 8px 10px; margin: 0; font-size:90%; color: #7F8E29; font-style:italic; width: 200px;}

blades.jpg
Close-up of different pavilion in daylight.
This picture uses a class without the
width defined. I can add line breaks
(with varying results) or let some of the comment
push past the edge. Note how this moves the photo in.

  • .photoright is the name of the class. Usually class names don’t include things like location and color (in case one wants to change those attributes in the future) but I typically include a .photoright and a .photoleft in all of my stylesheets just to offer some flexibility, and in this case the literal naming convention seems practical.
  • float: right; indicates that the paragraph (or other entity such as a div) will float to the right of whatever content follows.
  • padding:2px 0px 8px 10px; sets the padding for the paragraph. Padding is listed in clockwise order from top to the left, thus this class would have 2 pixels of padding on top, 0 to the right, 8 below and 10 to the left. Given the existing line-height of my regular paragraphs the 2 pixels on top allow me to line up the top of my photo with the top of uppercase letters in the main text. 0 on the right lets me float the picture as far to the right as the text will allow, 8 on the bottom gives me some space for text that wraps below the photo and the 10 to the left gives me some space between the photo and the text.
  • margin: 0; specifies that I have 0 pixels of margin on all sides. I’m using padding to set my spacing rather than margins so that my captions will begin at the same left edge as my photos and because Internet Explorer may interpret margins differently than other browsers.
  • font-size:90% indicates that my caption text should be 90% the size of my normal text. Some users may prefer .9em. (I’ll leave the merits of various font-sizing methods for a later discussion.)
  • color: #7F8E29; indicates that the caption should be lime. In the Case stylesheets this would typically be the same color that one would use for h3’s. Because the text is small I’ve made this slightly darker than the usual lime color.
  • font-style:italic; specifies that the caption will be italic.
  • width: 200px; is an optional measurement specifying the width of the floated content. This number should match the width of your image and will insure that long captions wrap, rather than extend past the picture. If you plan to always use the same size image, I would recommend setting this width. If you use different sized images, you could establish separate css classes for each image size. Some users may prefer to simply keep their captions shorter than the width of their images or to use
    ’s to break the caption to fit. Note: manual line breaks will look fine on your own computer, but not necessarily on everyone else’s. Users who have adjusted the font size of their browser/user agent may still see captions jutting past the image, or line breaks that seem to occur in illogical places.
Apply the .photoright (or .photoleft) class to your page

Once the class has been added to your stylesheet you can begin to incorporate it into your pages. As the image will float to the right of any content that follows, you will want to start a paragraph, using the new style, immediately before the accompanying text. For example, in this blog entry I’ve put this at the very beginning of my entry:

Blue Pavilion
Night shot of one of three recently dedicated light pavilions on Superior Avenue.

metalgrass.jpg
Close-up of first pavilion, floated left.

In this example I’ve used a class that defines a width of 200 pixels, the same width as the photograph. Note that I’ve included a line break immediately before the caption. This ensures that the caption starts below the image. Without a break (or a space), some browsers might ignore the width and have the caption begin to the right of the image. The other two pictures are placed farther down in the copy, again preceding the adjacent text. (View source to see exact placement.) The middle image uses a different class that doesn’t define the width. I’ve left some of the caption hanging out so you can see how that works.

Using photoright and photoleft with Case templates

I’ve included the classes .photoleft and .photoright in the Case template files. These are in the current, and some past, versions. If you are using an older version that doesn’t include the classes, simply copy them from the appropriate color stylesheet. Not knowing what size photos one might wish to include, the templates do not include the width measurement, but you may add it in based on the sample above.

That is pretty much all there is to it. If you have any questions, comments or other ideas, please submit them in the comments below.

Don’t attach HTML-files in Outlook
Just a short word of warning. I thought I’d mail the min-/max-width template to a colleague at work. So I fired up Outlook, attached the file and sent it. I thought that was it, Outlook couldn’t get something simple like that wrong, could it? Yes it could! Opening the file I found some pretty nasty […]

I’m an interface developer
In his latest post Roger Johansson asks the question Are we designers or developers?. I have a simple answer for that. None of them. Let me explain: First we have these people calling themselves developers. And boy do they know programming… and math… and… no that’s all. Many have a masters degree in computer science, a […]

Podcast Recommendation: Boagworld
As many of you know, I have something of a podcast addiction. My iPod contains everything from the video mischief of Mr. Deity to the probing intellectual discussions of In Our Time–which returns from summer hiatus this week. I listen to these while walking about campus, driving around town or when trying to fall asleep at night. Alas some of these podcasts are ill-suited to the fight against insomnia. Instead of lulling me into slumber, they taunt me with ideas that I want to tinker with right away. One such Podcast is Boagworld, “the podcast for those involved in designing, developing and running Web sites.”

boagworld.jpg

As many of you know, I have something of a podcast addiction. My iPod contains everything from the video mischief of Mr. Deity to the probing intellectual discussions of In Our Time—which returns from summer hiatus this week. I listen to these while walking about campus, driving around town or when trying to fall asleep at night. Alas some of these podcasts are ill-suited to the fight against insomnia. Instead of lulling me into slumber, they taunt me with ideas that I want to tinker with right away. One such Podcast is Boagworld, “the podcast for those involved in designing, developing and running Web sites.”

Boagworld is the creation of Paul Boag and Marcus Lillington, co-founders (along with Chris Scott) of Headscape, a Web design firm in the U. K. According to their Web site, “Boagworld.com aims to educate you about the latest web innovations, teach you how to manage the development of your site and show you how to integrate your site into your broader business. Most of all it aims to put you in a position where you are not baffled by the techies who are building your site!”

Why you should listen to Boagworld

Two things struck me the first time I listened to Boagworld. 1) They’re quite entertaining, and 2) They really know what they are talking about. As soon as I heard them referring to such tried and true resources as A List Apart and Case alumnus, Eric Meyer, I knew they were on the right track. A visit to their well-organized, standards-compliant site served to confirm that they practice what they preach.

The podcasts cover a nice cross-section of topics aimed towards designers, developers, marketers and anyone else who is involved in some aspect of an organizations Web presence. As the mission statements says, “This site/podcast exists to help you poor sods who have been lumbered with the job of managing the company’s website. This responsibility is on top of your normal work and has been given to you despite the fact that you know little or nothing about the internet and building websites. It is for you that boagworld.com exists.” (I told you they were entertaining.) Shows are 50-60 minutes in length and typically feature:

  • Light hearted banter between Paul and Marcus as they share the week’s Web-related news, tips, advice and recommendations
  • Marcus’s Bit, typically focusing on an issue related to Web project/client management or marketing
  • Paul’s Corner, covering a design or development subject, and
  • Interviews with various experts, such as Patrick McNeil from Design Meltdown and Daniel Burka, the creative director at digg.com and/or book reviews

The order of the above may vary, but each week they cover a wide range of material on everything from css to social media.

Why you should read Boagworld

One of the problems with audio podcasts is keeping track of the names, links, books and other details mentioned throughout the show. This is not a problem with Boagworld as the accompanying Web site and blog includes summaries and/or transcripts of the shows including links to everything mentioned within. Rather than having to listen with pencil and paper at the ready, you can simply relax with the audio then go to the site later to follow-up on their recommendations. Archives are organized by date and subject as well as tagged by keyword, making the information easily accessible even if you can’t remember which episode featured what. The blog allows listeners to leave comments about the shows and the site also features a discussion board for further interaction with the hosts and other Web developers around the world.

Why are you still reading this? Go give it a listen!

At this point in this entry I could prattle on with various details and examples, but as I’m recommending that you listen to Boagworld, perhaps it is time that I let you do just that.

Opera’s Antitrust Complaint: Microsoft Must Support Standards
Opera has filed an antitrust complaint with the European Commission against Microsoft, alleging that Microsoft has illegally stifled competition in the browser market by tying Internet Explorer to Windows and by failing to support web standards. If this all sounds a little familiar to you, it’s because Microsoft fought a similar battle with the U.S. Department […]

Opera has filed an antitrust complaint with the European Commission against Microsoft, alleging that Microsoft has illegally stifled competition in the browser market by tying Internet Explorer to Windows and by failing to support web standards.

If this all sounds a little familiar to you, it’s because Microsoft fought a similar battle with the U.S. Department of Justice in 2001 and lost. Based on that ruling, Microsoft went to work making it possible for all of the bundled applications within Windows to be overridden by 3rd party alternatives. This facility exists today in the form of the Set Default Programs application in Windows XP and Windows Vista.

Set Default Programs window

While these measures have satisfied the U.S. Department of Justice, they have not satisfied the European courts. According to Opera’s press release, in September the European Court of First Instance ruled that Microsoft has illegally tied Windows Media Player to Windows, despite the ability to override the program’s file associations using the Set Default Programs facility in Windows, and despite the availability in Europe of Microsoft’s special ‘N’ editions of Windows, which do not include Windows Media Player, as required by a 2005 European Commission decision.

Off the back of this latest ruling, Opera is seeking to have the Commission apply the very same logic to Internet Explorer, and force Microsoft to distribute Windows either without Internet Explorer (something that Microsoft has consistently maintained is impossible in practice), or with alternative browsers bundled in.

On top of the bundling issue, Opera’s complaint also seeks to require Microsoft to implement support for web standards in Internet Explorer. This will be a much tougher one to prove. Although Internet Explorer is certainly the least standards-compliant of the major browsers today, each and every release of Internet Explorer has included improved standards support. It seems that Opera is saying that Microsoft’s slowness to develop Internet Explorer is in itself an illegal and anti-competitive act.

So what do you think? Is Microsoft doing enough to enable users to choose alternative browsers in Windows? And should browser makers be legally required to support web standards, whether they have the programming resources to devote to doing so or not?

This article provided by sitepoint.com.


Visual Studio 2008 Review
I know it’s a bit late, but as promised here’s a review of Visual Studio 2008. I’ve had it for a while now, but I wanted to wait until I’d worked on a few projects with it before I offered my opinion. Overall, it’s a solid improvement over 2005. The guys at Microsoft have made some good changes that actually improved the development experience rather than just adding a bunch of fluff.

I know it’s a bit late, but as promised here’s a review of Visual Studio 2008. I’ve had it for a while now, but I wanted to wait until I’d worked on a few projects with it before I offered my opinion.

Overall, it’s a solid improvement over 2005. The guys at Microsoft have made some good changes that actually improved the development experience rather than just adding a bunch of fluff. Unlike 2005, you’re not required to upgrade to the newest framework to use it, so you don’t have to upgrade to .NET 3.5 just yet. The IDE is generally a bit faster than 2005 and several of the features that were a headache for my team in 2005 have been made useful. The 2 most notable improvements were support for nested master pages in design view and a huge performance improvement in the table adapter editing interface.

One of the first things I noticed about the interface is the influence from Expression Web. There is a new split view for the designer and several new CSS helper tools. The split view has been in other products, like Dreamweaver, for ages and I have generally not found it very useful and initially, I felt the same way about the split view in Visual Studio. It really doesn’t help much when laying out your pages, but when writing code-behinds, it provides a much quick method for reviewing the layout and server control properties. The CSS tools, much like Expression, seem like they may be useful to those inexperienced with CSS, but for me they were more of a hindrance than help.

The biggest improvement is the javascript support. The support for the ASP.NET AJAX extensions is much improved, but that’s pretty much expected. What surprised me is the extensive intellisense support for javascript. It not only picks up the built-in javascript functions, it provides intellisense for any of your custom functions and variables. While my javascript skills are about average, our dedicated AJAX guy just wouldn’t shut up about how good the new javascript support is, which tells me it’s pretty solid. The new javascript debugging support is nice too, but it requires that you turn on the script debugger in IE, which makes any browsing outside of debugging your apps a pain.

Visual Studio 2008 is a nice step forward for Visual Studio. While some people were hoping for more features, the features that made it in are solid and the overall performance in improved. The javascript intellisense and debugging alone will make it worth getting for anybody working heavily with AJAX and the performance tweaks will satisfy impatient coders like me. There are a few shortcomings (it’s still a memory hog) but the improvements are well worth the upgrade.

This article provided by sitepoint.com.


The future of friendlybit.com
It’s vacation time and you’re allowed to lean back and just relax. A blog it’s always there though, you post to it on your spare time, and as soon as you have some a little glitch in your schedule you need to consider blogging. It’s a full time job. Current situation I use Friendly Bit as […]

Java 6 for Mac OS X Back on the Radar
Nearly two months on from the release of Mac OS X 10.5 (Leopard) and the resulting uproar from Java developers over Apple’s silent removal of preview builds of Java 6 for Mac, Apple has just as quietly released Java SE 6 Developer Preview 8, the first developer preview of Java 6 that runs on Leopard. Many […]

Nearly two months on from the release of Mac OS X 10.5 (Leopard) and the resulting uproar from Java developers over Apple’s silent removal of preview builds of Java 6 for Mac, Apple has just as quietly released Java SE 6 Developer Preview 8, the first developer preview of Java 6 that runs on Leopard.

Many developers had feared that the removal of the previous preview signalled an intent from Apple to ignore Java 6 in favour of continued minor tweaks to Java 5. It seems now that the optimists were right: Apple just needed more time to get Java 6 right, so it took a step back and made some improvements to Java 5 for the Leopard release before pressing on with its work on Java 6.

The fact remains that if Apple were only to communicate with its closest allies—software developers—in a meaningful way, we wouldn’t be left playing these guessing games over the company’s intentions.

This article provided by sitepoint.com.


Happy Holidays from SitePoint!
As I write this, most of Team SitePoint is up on the 3rd floor partying down in style. It’s the end of a big year for us, and we’ve got a lot to celebrate … but of course there’s also plenty to look forward to in the year ahead! In 2008, you can expect the following […]

As I write this, most of Team SitePoint is up on the 3rd floor partying down in style. It’s the end of a big year for us, and we’ve got a lot to celebrate … but of course there’s also plenty to look forward to in the year ahead!

In 2008, you can expect the following from SitePoint:

  • 99designs

    The new incarnation of SitePoint Design Contests that we launched this year has been so successful that we feel it’s time it was set free to make its own way in the world. This active design community will be split off onto its own site and renamed to ‘99designs’.

    Of course, this rebranding will come with a whole new visual design for the site. Watch for us to run a contest in the SitePoint Design Contests community to design the 99designs logo!

  • The SitePoint Reference

    Our CSS Reference site is already in closed beta, and we’re getting loads of great feedback from the SitePoint forum community. Early in 2008, this ‘reference to end all CSS references’ will open its doors to the world, and will be closely followed by references for HTML and JavaScript … each written by some of the foremost authorities on each technology.

  • More great books

    Our first title for 2008 will be The Art & Science of JavaScript, brought to you by a star-studded team of JavaScript experts.

  • …and lots more!

SitePoint HQ is shutting its doors as we all take some time off over the holiday season. We’ve got some great articles queued up to go live while we’re away, and a few of our regular bloggers will no doubt chime in with any breaking news, but otherwise it may be a bit quiet around here for the next week. Rest assured, we’re just saving up some energy for the exciting year ahead!

See you in 2008…

This article provided by sitepoint.com.


2 Responses to “What italic means”

  1. Isaias…

    Your living is determined not so much by what life brings to you as by the attitude you…

  2. Jessie…

    I think you are absolutely on track here!…

Leave a Reply

You must be logged in to post a comment.