Saturday, July 08, 2006

Source code search engines

Krugle (good branding here) gets a $6 million IPO for a source code search engine:

"Finding Code: Finding, evaluating and downloading the right code is a common developer task that consumes massive amounts of developer time. 'This process has difficulties because of the way software projects and components are currently accessed on the Internet', notes Ken Krugler, Krugle’s co-founder and CTO. 'While current search engines are OK at finding Web pages, they don’t crawl source code repositories, archives or knowledge bases, and they don’t leverage the inherent structure of code to support the types of searches programmers need'" (Source).

When will there be an open source annotated code repository for, let's say, Blg Software written in PHP?

Web 2.0: Offline web apps

Gabor's blog observes that the problem of offline access to web apps will have to be solved before moving everything to browsers and web apps becomes feasible.

Larry Ellison and Sun's idea of a network computer was never realized because you don't always have a network. He hits the nail on the head:
"Display the UI in the browser, either by faking it or by actually running an application server locally."
Anyone who has fumbled around with dozens of complex GUIs like Java's Swing, Windows Forms, or the much easier Tcl/Tk which was the standard with Python for so long, has no doubt thought: Why not just use the browser as a GUI running off a local server (127.0.0.1) ? I do exactly that and it works.

Local servers are trivial easy to get going nowadays with EasyPHP, XAMP, or another version of WAMP or some other version of LAMP.

The idea of a collapsible network whereby offline you're using your local server and you connect to the internet via you local server as a proxy server seems viable. I'm just thinking economy of effort here. Assuming most people are lazy and have a lot of other things they coldbe doing with their time than mess around with the idiosyncracies of various GUIs.

I'd like to use DHTML plus Ajax and/or Flash as a GUI everywhere.

Ways that computer programming is like sex

The decline of western civilization is enumerated in this thought stimulating and long poetic conceit: programming is sex. Love this one:

"...there’s some odd people who pride themselves on their lack of experience."

This is called humility, a virtue that goes hand in hand with experience.

Friday, July 07, 2006

Multi column layout in CSS

Finally, support for multi-column layouts in CSS. Support for something that is completely standard in most weblogs.

It will be easy to make the blog into the main page of the website, easier to find a way to cram everything onto one page using CSS and not having to resort to tables and tag soup. The problems of multi-column are described in the article:

"The implications for web developers coding in CSS are tremendous. The only way to create multiple columns in CSS now is by jumping through hoops. A simple two column layout requires breaking a content-box into two child boxes and floating them. Try adding another column and you’ll find it almost a nightmare to code it with enough hacks so that every major browser renders it to a reasonable degree of similarity. I have yet to see a fluid four column layout using current CSS box model techniques."

The details:

"The W3C's CSS working group recently released a draft of a new multi column layout module--to be included (with possible modifications) into the CSS 3 specs. For those web developers that have been lamenting the lack of adequate multi column support in current supported versions of the CSS specs, this is an exiting addition."



read more | digg story

Monday, February 06, 2006

FCKeditor for Movable Type

FCKeditor is a very popular server-side posting editor for Movable Type.

The official website has a demo where you can test it out. If you like it, you can download it, unzip it, upload it to your server, test it, and then make the parameter settings necessary to integrate it with Movable Type and make it the default posting editor (link above), i.e. use it as the default posting editor. The general nature of the approach used is discussed here. There is also an official Wiki site that provides documentation.

Note the "image insert and upload" functionality is not straightforward to get working and was the subject of a recent thread. I'm still trying to get it working.

Blog Clients

Blog posting editors can operate from the client-side in a browser like Firefox or Internet Explorer or from the server-side in the default posting editors that come with blogging software like Blogger, Movable Type, Wordpress, or Nucleus or with add-on editors like FCKeditor (please excuse the name which supposedly comes from the initials of the author).

Client-side editors have the advantage of a more seamless interface. You don't have to modify server-side software. The Metaweblog API is used to make postings to the weblog. The Metaweblog API in turn uses XML-RPC. The modifications [1,2,3]typically require some knowledge of computer programming, backups in case you need to restore the old system, and reapplication of the modifications after upgrades, which all complicate things. There's a well-written criticism of the Metweblog API basically arguing that there are more natural ways to do it like HTTP GET and POST or SOAP, that there are security issues, and also that more functionality like settings, search, and blogroll maintenance should be be included in the interface.

WYSIWYG editors for composing blog entries are important if you want to insert photos, illustrations, or diagrams. If you have a multi-blog scenario with many contributing bloggers, some are probably using Microsoft Word or Open Office, so you'll need to cut and paste from these documents. The normal server-side, html-based, post editors are not very convenient for cutting and pasting from other formats.

Blog clients are necessary if post editing is at all sophisticated like this. Unfortunately, finding the right fit can often be difficult and much of the software is commercial which is to be expected perhaps, since time and attention to producing high-quality software tuned to the specific needs of users takes time and money.

The Wikipedia policy of not allowing commercial links that you can see on the page linked to is a little unrealistic and doesn't reflect reality.

Thursday, February 02, 2006

Blogging: The Basic Posting Formats

Intro to Blogging Rhetoric 101.

Here are the seven basic blog posting formats:

1. Link-only (few words, a bookmark like del-icio-us)
2. Link blurb (2 lines-few paragraphs, maybe an extract)
3. Brief remark (1-3 short paragraphs)
4. List
5. Short article (under 500-700 words)
6. Long article (700+ words)
7. Series postings (500-1000 words each)

"Some formats work best for commentary or explanation, others for alerts and references, etc."

The "brief remark" is "a blog posting that generally is just 1-3 short paragraphs long. It can contain virtually any kind of content: an observation on current events, an idea, an event announcement, a question for readers, an anecdote, a joke, a description, etc."

Tuesday, January 31, 2006

Web host software ban lists

After carefully choosing a web hosting service and carefully choosing server-based blogging software, surprise, surprise!

The blogging software I chose is on a ban list at the web host Lunarpages, a ban list that I cannot even find on Google with reasonable key word searches.

Apparently, it is not a complete ban. Sometimes Lunarpages only complains as this recent page shows.

In the software evaluation stage before choosing, a quick Google search with the name of the web host and the name of the software would probably be good enough to find any problems or issues.

Monday, January 30, 2006

Modularity and Conservative IT Philosophy II

"If it ain't broke, don't fix it" is one way of expressing the idea of software modularity or information hiding

"In computer science, the principle of information hiding is the hiding of design decisions in a computer program that are most likely to change, thus protecting other parts of the program from change if the design decision is changed.

"Protecting a design decision involves providing a stable interface which shields the remainder of the program from the implementation (the details that are most likely to change).

"In modern programming languages, the principle of information hiding manifests itself in a number of ways, including encapsulation (given the separation of concerns) and polymorphism."

These concepts also have application to web design.

Conservative IT philosophy
and Movable Type choice

Everyone seems to be moving to Wordpress, I thought. Then I read: "About.com switching to Wordpress", but since I'm new to weblog development and I really don't know what features to look for in weblogs, I chose a traditional conservative IT approach . I chose Movable Type. Reports of features that didn't work and features that didn't work the way you'd expect them to, like the new WYSIWYG editor's rendering of lists scared me. I have deadlines to meet.

I wasn't that impressed with Movable Type either. Hundreds of sites have customized MT though, so you at least have examples of what can be done with it with an expenditure of customization effort.

The choice would have been different if I had a better overall view of blog functionality and how Wordpress compared with Moveable, if technical writers could describe software from the top-down better [Knuth's Literate Programming, Software Documentation], but I'm still making my way through the Open source Jungle. What I'd choose for my own personal use is different from what I'd choose for a company.

Syndicated Headlines in a Sidebar Widget

Now we're getting somewhere. Microcontent in sidebar widgets! Here's a quote:

"Here I thought I'd document how you can add a list of syndicated headlines from Feeds.App as a sidebar widget.

"It's really quite simple since Feeds.App has a couple of layout widgets already built into it since its release a year ago. Its just a matter of creating it in such a way that the Sidebar Manager can find it.

Sunday, January 29, 2006

Sidebar Updates in Weblogs

Microcontent in a weblog sidebar that is updated frequently, what to do?

Usually weblog sidebars only have things like archives, blog rolls, or ads.

There seem to be two options:

1. A blog in a sidebar
2. Separate little boxes running down the sidebar.

Maybe the Sidebar Manager Plugin will do this.

Online Magazine Table of Contents

Online magazines like Slate and the new Seed Magazine usually have short descriptions of articles on the front page. How do you get blog software like Movable Type to do this? The developers of the Seed site provide some hints, but is there a quick and natural way to display microcontent in sidebars?

Let's say you want short descriptions of new content running down the right sidebar, a new content blog that is displayed on the front page in addition to the main blog running down the center column.

Let's say this new content blog is updated everyday, then to avoid link rot you need to only keep one day's worth of new content in this blog (or use permalinks after the first day), otherwise the link to an article will point to the top of the page, not the article.

Separate little boxes running down the right sidebar would be better, but that's not a blog.

Multiple Blogs on One Page

With Movable Type's Multiblog Plugin more than one blog can be displayed on a page. For instance, you could have the blog entries of individual reporters running down the right sidebar of the page like Majority Report does. The above link is to the documentation which is a little bit hidden.

"Rebuild control" is the core functionality: "MultiBlog allows you to define blog rebuild dependencies." From the documentation: "the ability to create rules that will cause other blogs to rebuild their indexes when another blog has an entry posted to it." Namely, let's say a reporter posts to a sub-blog and rebuilds her blog, this new entry is included on the front page which is also rebuilt.