# unBlogged

## My 5 wishes for Opera (tagged)

I've been tagged by Non-Troppo. I was expecting this, hehe.

Here are my 5 wishes:

1. Developers, developers, developers. I obviously want web developers tools. Even when something doesn't work properly in Opera, I try to debug the problem with Firebug in Firefox - trying to figure out what could go wrong in Opera. The available Opera developer tools are not (good) enough.
2. Performance improvements all over. Fix the serious performance issues with transparent PNGs.
3. Stability.
5. Improved accessibility and usability: a query interface and native GUI on KDE, Gnome, Mac OS X, and Windows.
6. Improved BiDi support. Make YtseJam happy.

Also, don't forget my huge wish list for Opera 10.

Picking the people to tag is harder. I tag Lucian Marin. I'm out of ideas. Anyone wants to be tagged?

Hello guys!

Today Opera Software has released a new site: The Opera Developer community site. The purpose is great, and I like major web browsers having their own developer community sites.

As the title of this post announces ... the site already had published my first tutorial . If you've read my previous blog posts, it's not a big surprise my first tutorial is about voice interactivity. Currently, very few know about VoiceXML, and there are very few tutorials. Most of them reach only the level of "Hello world". Therefore, my tutorial goes much further, by actualling telling you how to really put voice to use in your site. I didn't write yet-another tutorial about AJAX, XHTML, CSS, DOM, or JavaScript. I wanted something different.

Go ahead and read the tutorial from dev.opera or from my own server (mirror).

Thanks very much to TarquinWJ and Jax. The tutorial has reached the level of maturity you are seeing thanks to both of them .

Any suggestions or comments are welcome.

## What's interesting now

Hello!

If you know me, you'll probably wonder what I find as interesting reading currently, what I find interesting that's happening now. So, here are a few links (no specific order):

- Server-Sent Events (Event Streaming) in Opera 9. This opens up a lot of possibilities.

- Web Forms 2. Which is now a W3C Working Draft too. Again, implemented in Opera 9.

Just think of some cool web app to build with all these.

Interesting articles:

- Some W3C controversy. This post talks about many other complaints from W3C contributors. Interesting, for me, and for others too.

- Advocating for web standards, about the quality of courses in colleges and universities: "Back to school, back to reality" and "On quality education". No wonder why many self-proclaimed experts still use tables and frames for layouts.

- Again, advocating for web standards, old "news" for some, but surprisingly not many really know/care: "Web standards and the new professionalism" and "A web professional can never stop learning".

I dare you read all subsequent links on the above posts .

## Opera Chat log analyzer

, , , ...

Hello!

Did you know you can enable logging in Opera Chat? It works with Opera 8 and 9. Perhaps with Opera 7 too (I am not sure).

To enable logging for Opera Chat edit your mail/accounts.ini file and add/change:
Incoming Log File=c:\path\to\your_file.log

... for the [account] you want.

The generated log is debug mode, almost unreadable by humans. Plus, it's a single file: no separate files for private messages or channels.

Because of this I have made script that parses the log and generates human readable files.

One tiny problem: Opera does not include the log start/end date (only the time), which forces me to guess the log date. Log date guessing works by catching all UNIX timestamps sent by the IRC server , user signon, topic date, etc.

The script creates files for private chats, channels and one \$server file

For one file of 166.4 MB on AMD Duron 1.3ghz 512MB RAM with 7200 RPM HDD running Ubuntu 6.06 Linux, PHP 5.1.2 ... parsing took about 5 minutes. The script generated 135 files (12.3 MB). Average speed: 502 KB/s.

For this release I have optimized the code for better speed, initially this script was 3 times slower.

The script was tested on irc.opera.com and irc.freenode.net.

The output is text, not HTML.

Generally the script should run fine, but you can easily brake it. If you improve the script please send the updated file to me.

You need only PHP, nothing else. It probably works with PHP 4 too (I only tested with PHP 5.1).

Rename the file to .php. Uploaded as .txt to avoid conflicts.

Thanks and let me know if you find this useful. Any comments suggestions are welcome!

## Opera 10+ wishlist

Hello!

Here's my wish list for Opera 10, sorted by importance. Opera Internet Suite is already very big, so many things can be improved. This wishlist is big. I have included things from Opera Watch too, things I also consider needed.

Be warned: some items are asking for too much!

Must have:

*1. Fix the bugs. Not just rendering bugs.

There's one particular rendering bug I want fixed: PNG transparency (when the image file loads slowly).

*2. Speed: cut down the "fat" when starting Opera with a big cache, lots emails, contacts, whatever. There are also pages which scroll slowly (I can provide examples).

Another speed issue: PNG transparency .

Yet another speed issue: high number of items in address bar autocomplete.

*3. Site compatibility. Yes, some sites still don't work.

I know these problems are not caused by the browser. Somehow get all Yahoo and all Google working. That's what matters most. It's very "sad" to say "uhm, dude, the site you are trying to view does not support the browser I just recommended to you. No, no, wait! It's not Opera, it's Google/Yahoo the one to be blamed!" That's what usually happends, and ... when you start with the technical details about why the site works differently in Opera, you've lost the case. The usual saying goes "yeah, awesome browser, but it can't even fully support two of the most popular sites".

General:

*1. Better BitTorrent client. Allow more connections at once (provide an option to change max. connections for the BT protocol). This is needed because I can't currently use Opera to download torrents, since I only get to download from 5 people, which each sends me 1 kb/s. Verrryyy slow.

This basically asks for a usable BT client .

*2. Trackerless DHT support for BT.
*3. Allow selecting individual files from a BitTorrent file.
*4. Add more options for Site Settings.
*5. Make Search engines editor usable. It currently adds separators on a "per-guessing" basis. I have to manually clean search.ini. Allow us to edit separators too.
*6. Rich text copy/paste.
*7. Allow using wild cards for Server in Site Settings. For example, I can't disable cookies system-wide and just enable them on all yahoo.com (they have many subdomains).
*8. Remember all form inputs between sessions and when closing tabs.
*9. Autocomplete/suggestions drop-down in Search field (same as in upcoming Firefox). Allow us to add other search engines with autocomplete.
*10. Implement a serious form autocomplete feature (wand is not enough).
*11. Overall better drag-n-drop support. Under Linux I can't drag a file in an Email Composer window to attach a file .
*12. Import/export/sync emails, contacts, bookmarks, settings, every from/to online, files, Outlook, Thunderbird, Firefox, Evolution, Eudora, The Bat, iCal, PDAs, etc.
*13. Inline spell checker (for any language, not just engrish): for any input type=text, textarea and any field in Opera browser (email/notes composer, chat, search, etc).
14. Add to Search engines editor alll features from the ini file.
15. Bookmarks database with tagging, integration with online services. Allow easy installation of new services.
20. SOCKS proxy support.
21. Widget transparency support for Linux.
22. Make printing better than the one in IE 7. Again, not something I use.
23. Backups for everything as a single package, or each feature: emails, contacts, bookmarks, etc.
24. Page rendering output to PNG/JPEG/TIFF files, with included command line option for automation.
26. Cache browser: per server, per date, etc. Similar to history.
27. Make the search field automatically search everything in Opera. When I start typing I want to see results from notes, chat logs, history, bookmarks, contacts, emails, feeds, cache files (yes, even the HTML content), and everything one can think of . This would simply rock, if properly implemented.
28. Add to the opera:// protocol the possibility of adding menu items, keyboard shortcuts, mouse gestures, voice commands and more (same as for toolbar buttons).
29. Delete private data based on a selected interval. For example, this would allow me to delete data generated this week. This would prove to be a really nice feature. Or... delete private data on exit.
30. Right-click Widget > Uninstall (quick way to remove a widget, useful for development).
31. Save page with images should be the default option. Even "experts" fail first time to save pages with images included. It's not "intuitive" to have the Type dropdown. So make "Save page with images" as the default, or ... add a checkbox in the dialog, or add a separate option in the File menu.
32. Open Document Format support? Anyone?
33. My.Opera Center. This is the ultimate Update Manager and lots more.
34. Maybe ... add SCP support. This should work as FTP does.

User Interface:

*0. Status bar enabled by default. It is about time .
*1. The new WebForms 2 inputs don't look good enough. Improvements needed.
*2. Add a nice "callout" graphic for the RSS icon, for first-time users, quickly explaining the functionality. Many users don't know what's that, so you guys need to "advertise" this.
*3. When the first-time user closes Opera, inform him/her about the functionality of remembering the open tabs. Allow him/her the option to change the behaviour. Again, a nice feature which needs advertising.
*4. Fix the Accesskeys list. The order in which it displays the links is weird.
*5. Make the accesskeys list clickable.
*6. Add a border to accesskeys list. It's not very nice how it looks now.
*7. Some consistency issues: take a look at Cookies manager, Wand manager, Site editor, Search editor, Preferences > Advanced > Downloads. The "Add/edit/delete" buttons are some times ordered as: Add/edit/delete; other times they are ordered as: Add/delete/edit. Fix this!
*8. In the above dialogs: the position of the Add/edit/delete buttons should be changed a bit. Move Delete button at the bottom of the list, so users don't delete something by mistake.
*9. Error console as a tab and as a panel.
*10. Fix the Error console: for example, now if I pick to view just SVG errors I still see the network errors.
*11. The Windows panel must show the highlighted tabs (the ones which finished loading, the Chat tabs with new messages). Some users like using the Windows panel instead of the tabs: so, please provide similar functionality.
*12. The Windows panel must allow a single click to activate the tab. Same reason as above.
13. Show the number of emails in *current* view. For example, in Received folder Opera now shows 11268 emails, even if I have only selected to view unread messages (about 5 emails). This is not intuitive.
14. Resizable Search field.
15. The dialog asking for password remembering should not disturb my work. Make it non-modal.
16. Show a smiley in the address bar when a page is valid (no error generated in the console).
17. Improve native skin for Linux (KDE, GNOME, XFCE, and probably for Windows XP/Vista too). Make it look really native .
18. Add thumbnails to the Windows panel?
19. Enable thumbnails by default for tab cycling and improve the interface (currently they don't look right).
20. Improve the looks of the thumbnail tooltip over the tabs. It doesn't look nice right now (IMHO).
21. The simplified Preferences > General dialog looks "empty" and "unfinished" when one knows how it looked in Opera 8. Maybe this needs rearranging the elements.

Email, chat, notes, newsfeeds:

*0. IMAP must work properly. Make all those guys who complain about IMAP happy for once and for all. I am not a user of IMAP myself, but this is really needed.
*1. Rich text editor for email and notes composer. No, I won't use it. However, it is important.
*2. Allow disabling external embedded scripts/images/objects in newsfeeds too (I do NOT like banners in newsfeeds). I currently have to change to text-only view to get rid of advertising.
*3. Chat logs with integrated viewer and search.
*4. Fix grouping of single discussions (threads).
5. Rework the filters. They seem OK at a first glance. Using them is not so OK. The problem I seem to have is with AND/OR/NOT filters. I can't get expected results.
6. Delete attachments.
7. The Newsfeeds drop-down in the Mail panel should also contain "All", so I can see all of them in one view. To get this functionality I have to use the menu "Flux RSS" > "Lire les flux" (en français).
8. Allow running UserJS in Chat and Mail.
9. The ability to keep an IRC channel open in Opera even if you close it’s tab, and then being able to re-open it as if you never closed it via the chat panel of the sidebar.
10. "Auto connect to this network at startup" checkbox for IRC networks, and the option to turn off automatic opening of IRC channels in tabs when connected/joined.
11. PGP/GPG/S-MIME support. Needed by many (except me).
12. Title for Notes.
13. Read newsfeeds in panel(s). Allow the user to group multiple feeds in a single panel. Provide a JS and a CSS we can edit to change the display and the behaviour.
14. Live Bookmarks.
15. Allow editing Contact birth date. Also, allow me to setup a reminder.
16. Make Contacts and Notes as the mail database. Add labels for contacts and notes, so they can showup in multiple places.
17. Allow me to set multiple reminders for a single note. All reminders should showup in the new Calendar panel, with a nice timeline. Reminders via email, via chat, via popup. Look at Yahoo! Calendar, that's good enough .
18. Rename labels to tags (read: make noobs happy).
19. Allow add/deleting/renaming labels/tags for Mail client.
20. Add GUI for editing the Reply/forward template, per account, per contact.
21. Add templates for new messages, per account, per contact.

Developer-related:

*1. JavaScript debugger.
*2. DOM Inspector. At least as good as the one in FF.
*3. Live HTTP headers monitor and requests generator. Like LiveHTTPHeaders extension for Firefox.
*4. UserJS files must be given personal storage, similar to widgets.
*5. All links in Source Viewer must be clickable. The ones pointing to JS, CSS, iframes, frames, etc. should open in the source viewer (hold shift for new tab).
*6. Make the source viewer faster (scrolling is slow).
*7. Quick search in source viewer.
*8. Line numbers, find & replace, tab size setting, and word wrap for source viewer.
*9. opera:config must provide descriptions for all options. This can be done by connecting to opera.com and fetching the description of the INI setting the user wants (show "?" for each); by fetching all descriptions automatically (no "?" for each setting); by including the descriptions in the installer (this might not be nice for you guys, since this slows down the release cycle). This can be done, you guys already have a page with all the needed information: Opera's settings file explained.
*11. The Info panel must also make all the URLs clickable with two "versions": online (the real URL) and local (from cache). The locals must open in Source Viewer and allow us to quickly edit and save.
*12. I like the iframes list from the Info panel. I would also need lists for: images, objects, CSS files, and scripts. As above: local (from cache) and online (real URL).
13. Source viewer as a panel.
14. Better source highlighting (it's not good enough right now).
15. A bundled set of UserJS scripts and UserCSS files for aiding development (mostly debugging). This should be included in Opera by default, or very easily available on the opera.com site (it needs advertising, otherwise developers won't ever know of them).
16. 3D Canvas.
17. Microformats (like hCard).
18. Maybe Python, Perl and/or Ruby alongside JavaScript.
19. Give higher powers to UserJS, extension-like. More details in "My Opera Center".

CSS:

*1. css3-background (this would prove very helpful in many cool designs)
*2. column layout
*3. more css3-selectors
4. Anything new and fixed is good. This list could be really big, with each property I want. Just add more, because that's what matters.

Voice:

1. Support for SAPI 4, SAPI 5 and Festival (for Linux).
2. Support for Linux.
3. Support for CSS generated content with media type speech.

Almost impossible, but worth asking for.

Security: phishy filter . Make n00bz happy.

Last, but not least, if you guys implement half of the above, rename Opera 10 to "Operateng System" .

Read more in the "My Opera Center" post. This is something new which would integrate update manager, remote settings, remote backup, etc. It also integrates developer features.

* is a "must have" for Opera 10

## My Opera Center proposal for Opera 10

Hello!

This part of my wish list for Opera 10+. Only a proposal, not something real!

My Opera Center aims to replace the skins and panels parts from Appearance. Also, it replaces the Search Editor, Keyboard shortcuts manager, Toolbars, Mouse Gestures, and Menus from Preferences. Thus, simplifying the Preferences dialog.

It is also a one place for Update Manager, which is a very requested feature. Last, but not least, Customization Center is partly local GUI in Opera, and partly an online service, making use of my.opera.com.

Let me first explain what new capabilities Opera would be nice to have (but not required):

1. UserJS files with full power.
a) Add/edit/delete menu items, dialogs, toolbars, keyboard shortcuts, mouse gestures, voice commands.
b) Read/write local files and remote files (via HTTP, FTP, SCP, whatever).
d) Personal settings storage.
e) Ability to have UserJS files execute on Opera startup, without any page. Yes, these are extensions.
f) Allow running UserJS in panels, Mail, Chat, opera:about/config/cache/plugins/whatever, ftp:// and scp://.
g) Allow changing c3nform.vxml while running (this requires a way to force reparsing of the modified VXML forms from DOM).

2. Ability to add/edit/delete dialogs.ini setups (like we can change the language).
3. Ability to add/edit/delete c3nform.vxml setups (same as above).
4. Ability to add/edit/delete new toolbars (previously requested).
5. An editor for menus, like we have for shortcuts. Or... if you guys wanna make users really happy provide a menu editor as the one in KDE.
6. An improved keyboard shortcuts editor (hint: I like the editor in KDE).
7. Widgets should be given full access to local and remote files.
8. Panels should be given the same power as UserJS. Plus, they should be given access to the current page I am viewing, via DOM.
9. ability to use multiple filter.ini files at once.

Having this set of capabilities would be nice. Yes, I know these would bring serious security issues. This problem can be solved. An ideea is provided.

To better understand what I want from the My Opera Center you should know about Debian package management: apt and repositories . Yes, I know this is a radical/weird approach.

The online "My Opera Center" should allow users of my.opera publish "packages" and "meta-packages".

Packages can be of several types:

1. UserJS files:

b) for any site, or site-specific (similar to current behaviour).
c) define rights: access local files (read/write), access remote files (read/write), widgets storage, modify menus, toolbars, dialogs, etc
d) Each file should contain a unique signature in the comment which is checked by Opera, before execution. The comment also tells Opera what permissions does the script need. Signature must be checked with the my.opera.com server. Therefore, unauthorised scripts don't run wild. If a script asks for the wrong permissions, or the signature is invalid, or the my.opera.com does not "like" it, then Opera must not run it at all.

By default UserJS files should be handled as now (if, for example, the user downloads a file from an unknown location and saves it in the UserJS folder).

2. UserCSS files:

a) exchange "internal" CSS files used by Opera: about.css, info.css, chat.css, email.css, whatever.
b) per site, or general (as now).
c) again, signature needed. However, this does not need permission management.

3. Search engines in a new format, which can also tell Opera how to auto-fetch suggestions (like Google and Yahoo have in Firefox).

4. language files
5. dialogs
7. toolbars
8. Aural User Interfaces (c3nform.vxml)
9. keyboard shortcuts
10. mouse gestures
11. voice commands
12. skins
13. panels, with all applicable permission management
14. widgets, with all applicable permission management
15. filter ini files
16. plugins. Yes, we want to download Flash automatically, and keep it updated.

All packages, of course, having versioning, dating, etc. Thus the site can provide support for future versions of Opera, and opens the possibility of implementing the Update Manager.

No normal user can post a package without any prior review.

Each package can have the following additional permission bit: "Make public". Enabling this, you allow others use the package in meta-packages. So, authors can share among themselves packages in various "meta-packages".

Meta-packages are just packages in which the author selects packages out of his own and other "public packages". When Opera downloads a meta-package, it will also download the packages "linked" in.

Meta-packages can be posted without any prior review.

If the meta-package dependencies change, Opera should warn you about new packages being installed and old ones being removed.

Meta-packages can also contain meta-packages which are not conflicting. For example, one could make a meta-package out of his user styles, userjs files. One can choose to download only these, or download the entire meta-package which includes toolbars, menus, etc.

The "My Opera Center" in the Opera Internet Suite should allow browsing the site (in a dialog, as we browse for skins, or in a tab, as we browse for widgets) to install (meta)packages. The user should be given the option to interchange packages. I'm imagining a tree view of the meta-packages and packages, with checkboxes. It should allow me to check any of the menus, from any package, or to select all of them at once (if i check the meta-package).

Optionally, users should be given the option to login with username and password of my.opera.com account, directly in the Opera browser. After login, the user should be given the option to upload all backup all data online, with included multiple snapshots management and data restoring.

And ... if you guys wanna bring the open-source spirit into the ecuation: make a specification detailing how the package manager works. Also, provide a way in opera.ini to add/edit/delete the repositories.

Important to many users is providing the option to revert to "factory settings".

Settings for how often to check for updates, and what to check for.

All the above opens many, many possibilities. For example, one could create many setups: Firefox-clones, IE-clones, Email client-specialised setups, and lots more. It would also provide one of the features asked by many: adblocking with automatic updates.

Disclaimer: This is all "food for thought", ideas and suggestions. I'd be happy if Opera Software, or even Firefox would implement such advanced features. IMHO, Opera has many of the needed capabilities in place.

## Despre interactivitatea vocală pe web

Another article in Romanian, introducing voice interactivity on the web for new users (not developers!).

Interactivitatea vocală este o suită de standarde web ce permit dezvoltatorilor web să adauge comenzi vocale în siteuri. În funcţie de capabilităţile siteului, utilizatorul poate să facă absolut tot ce poate cu mouse-ul şi cu tastatura.

Important de ştiut despre interactivitatea vocală este că un dezvoltator web nu implementează el algoritmii de recunoaştere vocală şi nici de sintetizare vocală, ei doar programează regulile de recunoaştere vocală şi oferă textul pentru sintetizare. Adică ... ei asociază, de exemplu, pronunţarea cuvântului "Help" cu o pagină. Bineînţeles că regulile de recunoaştere vocală pot să fie mult mai avansate, ajungând chiar la recunoaşterea frazelor pronunţate. Dezvoltatorul web depinde de implementarea navigatorului web (capabilităţile de recunoaştere şi calitatea sintetizării). Deşi pare "neplăcut" este defapt un avantaj pentru dezvoltatori şi utilizatori. Asta deoarece utilizatorul nu va auzi pe fiecare site o altă voce şi recunoaşterea vovală va fi întotdeauna la fel de bună. Pentru dezvoltatori este avantajos din punct de vedere practic: cum ar fi să-şi programeze ei afişarea paginilor web la ora actuală? În primul rând nu se oferă tehnologiile necesare (adică destul de avansate) pentru a putea face implementări la standarde web în site-uri.

Pentru a începe să foloseşti interactivitatea vocală pe site-uri este necesar să foloseşti un navigator web ce implementează aceste tehnologii foarte noi, să ai un microfon bun, placă de sunet şi boxe. Singurul navigator cu aşa ceva disponibil pentru toţi, la ora actuală, este Opera 9 pentru Windows. Acesta se descarcă de pe www.opera.com. Se instalează în mod normal. După pornire trebuie activată capabilitatea de interactivitate vocală: mergi la Tools > Preferences > Advanced > Voice. Acolo trebuie bifată opţiunea "Enable voice-controlled browsing". Acum Opera va descărca fişierele necesare.

După cum se observă totul este în limba engleză pentru că Opera Software are momentan implementarea realizată în parteneriat cu IBM şi ceea ce le-a fost oferit este doar pentru limba engleză, pe Windows.

După descărcare se pot introduce comenzi vocale: trebuie doar tastat Scroll Lock (în funcţie de setările de la Voice Preferences). Pentru a controla navigatorul Opera comenzile încep cu "Opera". De exemplu, "Opera quit", "Opera previous page", "Opera go to home page" şi altele. Pentru mai multe comenzi, uită-te la comenzile vocale disponibile în documentaţie (tastează F1).

Pentru a cere navigatorului Opera să-ţi sintetizeze vocal textul de pe pagină trebuie doar să-l selectezi şi să tastezi V sau să dai click dreapta de unde alegi "Speak selection".

Site-uri cu interactivitate vocală sunt foarte puţine. Dacă doreşti să testezi un site cu aşa ceva, intră pe www.robodesign.ro/pronet. Acolo trebuie să treci site-ul la limba engleză (click pe legătura "English" care se găseşte sub bara de navigare a site-ului, în dreapta). Comenzile vocale disponibile pe prima pagină sunt:

- visit nume-pagină (de exemplu "visit offers", "visit support", "visit contact"
- speak content
- help
- change language (pe prima pagină)
- news 1, news 2 ... până la 10 (pe prima pagină)

Pentru a testa şi alte comenzi vocale, poţi folosi modulul de administrare al site-ului: www.robodesign.ro/pronet/admin. Acolo poţi adăuga pagini noi ale căror titlu trebuie să-l spui atunci când doreşti să intrii pe pagină folosind o comandă vocală. Astfel poţi observa cum funcţionează (mai ales dacă te vei uita prin surse).

Utilitatea acestor tehnologii web este evidentă în cazul utilizatorilor cu handicap.

Interesant este de urmărit evoluţia acestor tehnologii web pe viitor.

## I won ... a national contest

Hello!

I participated in a national contest for applied informatics. I, of course, won the city phase and went to the national contest.

I also won the national contest. I'm first .

The site with which I participated is PRO-net. I wrote a presentation in Romanian language, see it here.

For those many people who don't know any Romanian, highlights of the presentation:

- I wrote all the code, my twin brother did all the graphics. Yes, that means we did NOT copy anything.

- the interface uses only a CSS layout (no tables!).

- site purpose: professional, clean, accessible, and technologically advanced.

- clean semantical markup code.

- bilingual site: romanian and english. You can change the language from the front page (in the upper right corner, under the menus).

- client-side technologies: valid (x)HTML 4.01 Strict, valid CSS 2, valid RSS 2, DOM 2 Core, DOM 2 Events, ECMAScript 3 (JavaScript 1.5), XMLHttpRequest (AJAX), designMode (WYSIWYG editing), and Flash 8.

- administration module (Content Management System): upload/rename/delete multiple files at once, add/edit/delete pages, sub pages and news. Pages and sub pages can also be reordered.

- our own WYSIGWYG editor which is fully functional on Opera 9 (latest weeklies) and Firefox 1.5. Using a completely different code structure than any other online WYSIWYG editor: total separation between code, GUI layout, design and even separate iframe. It allows editing pages with live CSS preview, exactly as viewing the saved document. The code is also extensible, meaning I can easily add new capabilities. The interface is loaded via "AJAX" (that's XMLHTTPRequest).

- the front page Flash 8 animation works with Flash 7 too (Linux included). If the client has no Flash at all, no problem, since the Flash animation is not shown, it's replaced by an image which looks almost identical. I do not use any server-side/client-side detection at all. Just proper HTML code .

- server-side technologies: PHP 5 (running in Apache 2), XML, DOM 2 Core. The site can have multiple languages (using, of course, Unicode) and multiple interfaces (via CSS and/or XSLT).

- the site code structure is made so I can easily extend and add new functionality to the site.

- the generated page is manipulated via DOM during PHP code execution, not as a string. Therefore, I can easily change any part of the document, in any moment.

- and ... the bonus: voice interactivity. Yes, it works only in Opera 8+, but because of a bug I've reported (XHTML+CSS bug, not related to Voice), you have to use the latest Opera 9 weeklies. For voice interactivity I used the following client-side technologies: XHTML+Voice 1.2, VoiceXML, SRGS ABNF, SISR, XML Events, SSML and ACSS. Adding/deleting pages in the administration module also adds/deletes voice commands.

- highly compatible site: tested with Lynx, Opera 8, Opera 9, Firefox 1.0, Firefox 1.5, IE 6, IE 7, Konqueror 3.5. Must work with any browser which implements HTML. Compatibility is not affected by voice-related technologies.

## Raggregator - my first widget

Hello!

Even if I am not a ((very) big) fan of the whole widgets idea, I saw the usefulness in using them for various quick info. Such as weather and news aggregation.

There are too many per-site widgets, and weather widgets.

The new Widgets competition organized by Opera motivated me to make this widget - who wouldn't want that PC? Therefore, I present you the Raggregator version 1 .

Features:

- support for RSS 2.0 and Atom 1 feeds.
I don't currently have support for all the 9 incompatible RSS versions.
- unlimited number of feeds.
- minimize any feed you want.
- few settings can be changed in the widget (if you edit js/settings.js): number of maximum entries per feed, entry summary length, default feeds, and scroll speed.
- easy internationalization. *All* strings are in js/messages.js. Any new translations will be gladly posted. I won't currently add the Romanian translation, I want to first finish the second version of the widget.

I have many new features planned for the second version:

- better support for more feed versions and formats (maybe not only RSS/Atom).
- the ability to show detailed information for each entry and each feed (beyond the "what's new at a glance"). Something like a ... full-featured feed aggregator: satisfying all my news feed aggregation needs.
- the "minimal mode" which will act like a news ticker (scrolling the title of the feed entries).
- per-feed settings: auto-update interval, number of entries to show, hide visited entries, hide in news ticker.
- maybe grouped entries, acting similar to Planet Planet. This would allow the user to make a single group in which they can add as many feeds as they want. All the feed entries would then be sorted by date, showing *all* of them as one. This is something I'd prefer in many cases.
- maybe title editing for each group, for each feed, so you can change the title provided by the author of the feed.
- some display settings, like show dates on/off, show summaries, colours, themes, font size, etc.
- the ability to reorder the feeds (move up/down).
- and more...

Based on the above ideas I want to have some really important structure changes. I want the widget to be *the* aggregator .

After finishing the second widget version ... I might make a site-version, not just a widget (something like the JavaScript RSS/Atom parser by TarquinWJ). I won't keep it Opera-only, *but* I won't do *any* compatibility-related changes. I'll just stick to the web standards (if Firefox doesn't support them, sorry). Internet Explorer is, without doubt, out of the discussion.

Have fun using the current version. I hope I'll have to make the second version - the above ain't guaranteed .

I have submitted the widget to the competition today, in the very last minutes. Yes, I've been very busy: I worked on this widget only in the last couple of days.

The experience of making the widget was really interesting. Too bad there's no support for alert, confirm and prompt within widgets. I also found a bug: crash when using mouse gestures (in the latest weekly build). The bug seems to affect any widget and any page. One another, more serious, annoyance is in widgets you can't use the title attribute for any element to show a nice tooltip. Do we have to write our own tooltip scripts for anything simple?

Good luck to all participants in the competition.

P.S. All coding is done only by me. All design is done only by my twin brother.

Update (2006/05/03): To err is human. I was claiming this widget has support for Atom 2 feeds. There's no Atom 2. There's only Atom 1. Sorry guys. I don't know how I made this mistake, because I always knew there's only Atom 1 .

I found out about this mistake only now because M. David Peterson from atom-syntax mailing list published a message asking Opera staff to fix the description of my widget.

I have contacted Gautam Chandna (from My Opera staff) and he has fixed the description (the widget file is OK, no need for updating).

For those wondering if I won the competition: no, I didn't.

## JavaScript console comparison

Hello!

I was working today on some site. I made a mistake in the JavaScript. I was looking into the code source in an entirely wrong place, trying to fix it. That's thanks to Firefox . Opera provided really helpful error message. Take a look at the screenshot, if you don't believe me. Tell me which browser helps you fix your code?

In the screenshot you'll see the JavaScript console from FF 1.5 and the one from Opera 9 TP 2.