
April 20th, 2009 by

Afraithe
Spocke has been working hard trying to solve the issue with pasting in various browsers, cleaning up MS Office junk etc. The result is that the new paste plugin is now included in the SVN trunk and will be released with the next TinyMCE version sometime very soon.
On other news, Microsoft has implemented TinyMCE in their many forums, MSDN, Technet, Answers, Expression and the http://social.microsoft.com/Forums.
Posted in Cool stuff, Development, Software, Work |
7 Comments »

March 31st, 2009 by

Spocke
Jules Gravinese the author of the new CF Gzip compressor package for TinyMCE has come up with a new and easy way to use TinyMCE within a CF page. So if you are a CF developer you can read more about this new method of including TinyMCE at Jules blog. We will continue to post about nice third party development of TinyMCE related projects. So if you have something interessting to show us such as a custom implementation, plugin or system drop us a mail and tell us about it. We might just blog about it here.
Posted in Cool stuff, Software |
1 Comment »

March 27th, 2009 by

Afraithe
WPTavern.com posted an interview with our good friend Andrew Ozz, currently working with the WordPress team.
I suggest you checkout the interview here.
http://www.wptavern.com/interview-with-andrew-ozz-mr-visual-editor
We continue to listen to the WordPress community (through our friends working with WordPress) and are very happy about the intergration of our editor in this most excellent blog/site engine.
Need more ppl like Andrew Ozz, for other platforms, we can simple not handle integration with every CMS system out there, if you are working on integration with other CMS, feel free to contact us if you need assistance, we will help you out as much as we can.
Posted in Blogs, Cool stuff, Development, Software |
Comments Off

March 11th, 2009 by

Spocke
We have seen quite a few TinyMCE implementations over the years but some stand out since they have some cool feature that impesses us. One of them is the TinyMCE Advanced plugin for WordPress created by Andrew Ozz. WordPress comes with TinyMCE enabled by default but only with a limited feature set.
This plugin adds all the functionality TinyMCE provides to WordPress but the feature that we think is really impressive is the way you can configure the toolbar layout by drag and dropping buttons and controls around in a nice user friendly interface.
We have seen that this plugin has become very popular in the WordPress community. So if you are a WordPress user we strongly recommend that you take a look at this plugin.
Here is a screenshot of the drag drop interface:

Posted in Cool stuff, Software |
1 Comment »

January 7th, 2009 by

Afraithe
What a start of the new year, TinyMCE has been selected Project of the Month on Sourceforge. We are very grateful for the help we have received by simply using their services.
We are now back from some vacation times and should be up to full speed, if you need help with our products, check out the forum.
As a sidenote, on the 9th of January, our company, Moxiecode Systems AB, will be 6 years old!
Expect more blogging from us soon, Spocke has promised to make some more in-deep technical stuff to put up here.
Posted in Cool stuff, Development, Software, Work |
Comments Off

December 17th, 2008 by

Afraithe
Moxiecode and Vinter celebrated moving into the same renovated office space last week (11th of December). We put together a party for our friends and collegues around the city of SkellefteƄ, with drinks and food for everyone.
Moxiecode Systems AB has been around for 6 years now counting from 9th of January next year, so this was also something of a late 5 year celebration party for us as well.
There are (unfortunately) image evidence of the whole thing. Here are some images taken just before start.

We decided it would be cool with 2000 balloons, not so cool to clean up though.

Blue and white cause both Moxiecode and Vinter have blue/white theme on logo/texts.

Fridge stuffed with all the best beers, and we had more where that came from.
If you wish to check out all the images, go to our Flickr gallery.
Merry x-mas to you all!
Posted in Cool stuff |
4 Comments »

November 12th, 2008 by

Afraithe
When you first visit the TinyMCE website and check out the examples, you see a very advanced editor, in terms of the share number of functions. But as with most software, the real power is what is behind that graphical interface, the structure and quality of the code, the way it can be configured.
If you are familiar with Javascript, and go through the documentation of TinyMCE you will quickly get a smile on your face, when you realize the power of it all, from the way you make plugins, to how the the GUI is rendered and how the window popups are managed. And it is always a rush as a developer to see when someone has made a really good implementation and configuration, when you can see that they have studied the API documentation in order to bend and twist TinyMCE to function the way they want. There is even some that have stripped away all the theme/gui stuff of TinyMCE and only use it as an engine for their CMS directly by using the API.
The challenge as a developer is not to build yourself into a corner, don’t follow a path that ultimately will lead you to producing bad or bloated code. On the last rewrite of TinyMCE a lot of thought was put into how to avoid problems like that, and I think we did an excellent job, the code base feels very solid.
One example of powerful configuration is the valid_elements and extended_valid_elements options in TinyMCE, where Spocke invented its own format that has now spread to other projects, read more about the format on the documentation page.
The same goes for our other products, MCImageManager and MCFileManager, there is so much stuff going on behind the scenes in these products its crazy, we even implemented a form of .htaccess type configuration override (but we call the files mc_access). Means that most of the options you can set in the config.php file, you can also put into mc_access files to control the configuration for different folders. For example, you could make it so that if you upload a file to a certain folder, it re-sizes those images to a fixed small size, but if you upload to a different folder, you get a big image. You can restrict access to even upload, or disable certain functions in certain folders, and much much more.
So, check the documentation, even if you are satisfied with how it works, perhaps you can find some hidden gems that are extra useful just for you.
Posted in Cool stuff, Development, Software, Work |
1 Comment »

October 13th, 2008 by

Spocke
TinyMCE is not always the perfect match if you need something really small and simple. TinyMCE is designed to be a CMS editor and it has all the features that you might need for such a task.
Some times you want something really small and simple for example on a forum or comment system. This is where PunyMCE comes into the picture it’s designed to be small and simple but yet extensible. It comes with a number of plugins that extend the functionality of the editor.
The size of PunyMCE is “puny”, about 9kb gzipped or 16kb minified. It’s library independent so it can be used with common frameworks like jQuery, Prototype, YUI etc.
But it’s important to understand that PunyMCE is not designed to be an replacement for TinyMCE nor will it ever be. TinyMCE is focused on being a robust CMS editor that produces valid output and takes care of all browser quirks. PunyMCE is focused on being small and simple, it might still have lots of browser quirks and output issues some of these can be corrected by using serverside technology.
This project was a result of a partnership with Freewebs. Kickapps has also joined the project and will help out internationalization.
So check the PunyMCE project out at:
PunyMCE
Google project
Posted in Cool stuff, Development, Software |
9 Comments »

September 11th, 2008 by

Afraithe
Yes, we released our new TinyMCE website design, fitting the forum and all examples into the design and menu system. Design is made by Arcsin.se, very nice work, a pleasure to work with.
But, he doesn’t design logos, so we launched a contest with 99Designs.com where the winner will get 1000 USD for the design, we already have a few very interesting designs there, and if you are a designer, go check it out! We where thinking of picking out the best suggestions and make a post in our forum to get some feedback from our community, we will see.
There is also a chance that the winner will be making the design for our businesscards and possibly T-shirts.
We also released a new version of the MCFileManager and MCImageManager, fixing some minor bugs, and a TinyMCE release should follow shortly.
Sure is a lot going on now!
Posted in Cool stuff, Work |
5 Comments »

June 9th, 2008 by

Spocke
I recently read an interesting blog post at Ajaxian it described that Hedger Wang discovered that some Chinese fellow was able to fix the circular reference memory leak in IE using a finally statement. This got me very exited since it would remove the need to use the unload event to cleanup memory leaks. There are lots of issues using the unload event to cleanup memory leaks I blogged about one of them earlier and using an non unload approach would make things a lot easier and more efficient.
Here is the proof of concept class and you can see it in action at the example page.
(function() {
window.EventUtils = {
eventFuncs : [],
addEvent : function(o, n, f) {
var el, id;
// Resolve element by id if needed
o = typeof(o) == 'string' ? document.getElementById(o) : o;
if (o.attachEvent) {
// Since we can't use attachEvent we need to generate an unique id for the object
// and place functions in an array one for each object
el = EventUtils.eventFuncs;
id = o._evtID;
if (!el[id]) {
// Generate new unique id
id = o._evtID = el.length;
// Add event listener old fashion way instead of attachEvent
o['on' + n] = function() {
var i, l, e = window.event, li;
e.target = e.srcElement; // Force W3C style
// Execute each event listener in order
for (i = 0, li = el[e.target._evtID], l = li.length; i < l; i++)
li[i](e);
};
// Create array with first function
el[id] = [f];
} else
el[id].push(f); // Push in more functions
// Fix the IE leak
o = null;
} else if (o.addEventListener)
o.addEventListener(n, f, false);
else
o['on' + n] = f;
return f;
},
removeEvent : function(o, n, f) {
var i, li;
// Resolve element by id if needed
o = typeof(o) == 'string' ? document.getElementById(o) : o;
if (o.detachEvent) {
li = EventUtils.eventFuncs[o._evtID];
if (li) {
// Detach event listener by looking for it and remove it from the array
for (i = 0; i < li.length; i++) {
if (li[i] === f)
li.splice(i, 1);
}
}
} else if (o.removeEventListener)
o.removeEventListener(n, f, false);
else
o['on' + n] = null;
}
};
})();
Here is a simple example on how to use the class it adds two events and removes one of them this sample code can be seen live running the example page:
var f;
EventUtils.addEvent('elm', 'click', function(e) {
alert('Listener 1: ' + e.target.id);
});
f = EventUtils.addEvent('elm', 'click', function(e) {
alert('Listener 2: ' + e.target.id);
});
EventUtils.addEvent('elm', 'click', function(e) {
alert('Listener 3: ' + e.target.id);
});
EventUtils.removeEvent('elm', 'click', f);
Posted in Blogs, Cool stuff, Development |
Comments Off