eXtreme

a blog about... whatever

Subscribe to RSS feed

Posts tagged with "widgets"

My approach to I18N in widgets

, ,

I'm finishing 7.0 release of RMF RDS widget. There are some changes in UI, new settings panel and support for I18N. I know it isn't much to translate in RMF RDS but some users from other countries asked if there is a possibility to do that. So I created "i18n" branch on git repo and so far there are 29 commits with: 22 files changed, 1400 lines added, ~400 removed (see: branch compare) - so it wasn't very easy. wink

Adding I18N support forced me to add a new "settings" panel because I had no other place for language selector. Settings panel caused adding another button to the main bar. But I found it too wide so I had to hide them, create an animation to show them with a slide. I also added an option to enable/disable animations if they are not smooth for you.

Read more...

RMF RDS with new Flash-based stream player

, , ,

Long, long time ago I wrote a blog post about making my own stream player for RMF RDS to replace WMP plugin. Yeah, it was one year ago. wink Today I've finally finished the code, tagged 6.0 commit on git repository and submitted 6.0 widget version to Opera Widgets Team for approval.

What took me so long to finish it up? Well, I've decided to abandon as3mp3streamplayer-based code (see the blog post) and write a simpler code, which was at the beginning called "The Doubtful Solution". p I've reached a conclusion it is not that bad solution comparing to problems with as3mp3streamplayer. What were these problems? Do you remember the times when music was on tapes? A tape had tendencies to jump/leap/skip. Similar thing happened on as3mp3streamplayer and I found it really annoying.

So how do I fight with increasing memory? The player checks memory usage and when it reaches 50MB the stream is reloaded. Of course as a side effect there is a little break in the playback but it happens really rarely.

Whole player code is written in haXe language and can be found on the git repository. It is really simple. Flash's External Interface is used for communication with JavaScript.

What are next steps in RMF RDS development? There is an interest in making my widget multi-language. That won't be hard, I will start coding i18n support soon. I will also integrate Last.fm scrobbling!

Stay tuned!

Opera Tips: restore settings after widget update

, ,

Tired of reconfiguring your widgets after updating them? Try a different approach: uninstall the widget, then install the new one under the same name and in the same location. Your setting will be restored because they are not deleted after uninstallation.

I'm not sure how long it is present in Opera, probably since 10.50. But I've never known about it and never found anything about it anywhere. I happened to me accidentally and the same day one user of my RMF RDS widget reported the same thing. It is not a perfect solution but it's better than nothing. up

Goodbye "Security violation"

,

No more "Security violation" in widgets? Probably this version will fix it forever (I hope!):
http://my.opera.com/desktopteam/blog/10-61-release-candidate-rc1

From changelog:
* CORE-29377 (In some cases widgets don't run)
* CORE-31426 (Widgets don't have access to network after restart)

It is needed to reinstall non-working widgets (well, for me it was necessary).

"We are aware of this bug."

,

Wohaa! So now, the only question is "When?"

Goddamn "Security violation"

, ,

Yup, "security violation" strikes back! Just to recall - the "security violation" error is the reason why for some users RMF RDS does not work and stops at "loading" messages, which means it can't connect to the data server.

I've never had that problem on my computers. Since yesterday, when Opera on my laptop autoupdated itself. RMF RDS installed there stopped working. And - what is more strange - even my solution to install it in a different than default directory works for my only on first run. All next runs end up with "security violation".

For now I have written a topic on Opera Dev Forums, hoping someone from Widgets Team will read it. And, to quote myself, I can report that to the bug wizard but, well, Opera sucks at fixing bugs (none of my reports have ever been fixed).

I have found a topic on General Widgets Formus: http://my.opera.com/community/forums/topic.dml?id=632012
About the same issue! There is a solution - hitting F5 to reload the widget but it does not work for me.

Everything because of fkn auto-update! It looks like it is not only fkn auto-update but just Opera in general.

Radio streaming in Flash

, , ,

RMF RDS 5.0 widget introduced radio stream playback powered by "WMP Firefox Plugin" (yup, firefox, it's just a name wink). I knew it isn't the best solution, but there was a great pressure on me to make the radio playback in my widget. The fastest (but not the easiest as it appeared) solution was to use that plugin. I was able to control it from JavaScript and that was enough. But I knew it is a temporary solution. (Because it isn't OS independent, it isn't even Windows independent cuz it needs that particular plugin, not even original WMP plugin!) My goal was to use something better, like Flash or

RMF RDS widget problems under 10.60

, ,

Uuuhh, it's gonna kill me. RMF RDS does not work under new 10.60 builds. And of course again it is connected with WMP Plugin. But now it looks like Opera team broke something.

Widget does not load because of:

Uncaught exception: TypeError: Cannot convert 'document.streaming.settings' to object



It means that "settings" is no longer available for WMP object. I use it for changing volume, setting new url and - of course - controlling the playback. So it really important.

I reported DSK-301554 but I have bad feelings on this. None of my previously reported issues got fixed...

Update
It works!

Addressing loading/connection issues in RMF RDS

,

I'm finishing 5.1 version of RMF RDS. Apart from stations update it will probably work better with connection problems. I've received two issue reports: issue #1, when widget window does not show up; issue #2, when widget keeps telling "loading is in progress".

Both problems have probably the same solution: installing RMF RDS under a different name and in a different directory. Don't know about issue #1 because the user with that problem hasn't answered me yet, but it solved issue #2. BTW - I think RMF RDS could not connect to any server in case #2 because it got blocked in firewall. wink I did this by mistake too.

Other changes: better performance while mouse scrolling on station list. Bad performance was caused by mouse-over event on stations which shows detailed "now playing" in top panel. Now it is inactive while scrolling and also while dragging scrollbar.

The last change is very internal and for debugging. All connection problems are now reported in Error Console. If issue #1 is still present, some reports will be shown in console so that I could find the cause of that issue. What is the relation between issue #1 (widget doesn't show up) and connection problems?

In my widget the main window is hidden on startup. Before 5.1 an animation used to show the window after everything got loaded. If a JavaScript error interrupted widget's initialization, it wouldn't reach that animation. This was the reason why there was nothing shown. It wasn't such problem before 10.50, where Error Console was shared with Browser. After 10.50 to see something in Error Console you have to right-click on widget. How to do so, when nothing is displayed? In 5.1 I moved the animation right behind some basic init stuff, so I think RMF RDS will appear even there are problems with connection.

RMF RDS 5.0 finally available for download

,

It`s here: http://widgets.opera.com/widget/7354/

Sent for approval on sunday, today's afternoon finally published by Opera Widgets Team. Couldn't it be faster?

#5 top widget author

I'm now #5 top widget author according to widgets.opera.com. A few days ago I was #7. Could someone explain me how this algorithm works? I have "1 Widgets | 126,120 Downloads", while behind me there are authors with even million downloads.

Streaming radio in RMF RDS Widget

,

It is the 3rd year of my work on RMF RDS Widget. The most anticipated and the most frequently requested feature was always the playback of radio stations directly from the widget. As we have widgets as "standalone" applications since O10.50 it was even more obvious to introduce that feature.

But "standalone widgets" feature wasn't the catalyst for me to make RMF RDS Widget play music. Before 10.50 I've made several tests of WMP plugin, but every test had ended with failure. I even managed to play the sound but it made widget window disappear. Opera 10.50 forced me to speed up and execute plans to rewrite some parts of RMF RDS. New version of our favorite browser became even more strict in security policies and that was the reason my widget didn't work (the rewritting was a little bit delayed, because I still don't use 10.50 as my default browser). I fixed everything and released 4.0 version and then decided to make a new test of WMP plugins.

Opera widget should work with any plugin (when it is enabled by <content plugins="yes" /> tag in config.xml). However, I'm pretty sure it does not. Flash works OK, there are many widgets with flash objects. But I don't know Flash and ActionScript. And I don't have Flash. But I know it is possible to make a flash object which plays radio. I googled and didn't find any which would meet my needs. That's why I have to use WMP plugins for now.

Using WMP plugin means there is no support for other platforms than Windows. I know that. But even under Windows there are problems. There are various plugins and the only one which I managed to put in my widget is called "Microsoft® Windows Media Player Firefox Plugin" - it is an official WMP plugin from Microsoft. However, because of some Opera Widgets limitations and bugs <object type="application/x-oleobject"> isn't available. I have to use <embed type="application/x-mplayer2"> which has got less features (but fortunately I can still change stream address, stop/play and adjust volume).

Good plugin detection script is needed because the code works only with that particular plugin and only with Opera 10.50+. My target is to make RMF RDS' radio playback work on flash because it would be less problematic and allow non-windows users to use that widget's feature. But for now we have to live with WMP plugin. When improper (or no) WMP plugin is detected, playback functions are disabled and widget.showNotification is shown with a message that "Windows Media Player Firefox Plugin" is needed. And this is everything I can put in that notification because they have limited length. down A click handler is available, but it is not executed after clicking. I have to believe a message on widget page will be enough for everyone.