The scenario: Given we have a simple Logo, just a circle, as a dxf-File so called Drawing Interchange Format. So what is actually nessesary to fill the circle with dark blue and get is as png, svg, pdf.
Normally, one think the solution is simple just give me Visio and I import this stuff as CAD-Drawing use the fill-button and click export to the severall format. BUT it is definetly not so easy.
Although Visio supports fill out, it did actual not work at all. So I tried first to export it to a high resolution jpeg and tried to fill it out in Paint but he we got the problem of antialiasing stuff. So the edges blur out, this does look dirty and uncool. Next I exported out of visio a svg file, open it in firefox, manually set the fill style for the svg path and try to reimport it to powerpoint (tool of my choice for presentation). But as we all know Microsoft does not like SVG at all (although they are active member in the community, I still hope for svg support in IE), Powerpoint was not able to import the svg. A friend of mine imported the svg in KeyNode and export it as ppt. Now I was successful on opening the ppt with powerpoint and now I could export all my wished format from Powerpoint.
Additional I have to mention that a tried to search some free tools to edit dxf files directly, the only stuff I found is an pure french Java editor, which is in no way useable at all.
What a amatzing toolchain just to handle an dxf-file. If you got advise for me please comment.
Philipp Berger is a Phd student researching on Data Mining, CSCW, Social Media and more challenging data science problems.
Saturday, February 27, 2010
Thursday, February 4, 2010
Extreme BP Work Today
Just end up on working with Eclipse EMF and Eclipse JFace wizards. What a pain!!
Especially the construction of an Eclipse wizards is more difficult than I estimated. It just catches exceptions without any feedback, just from time to time a “Event Loopback” occurs which is easy to track. Additionally all the magic SWT style number are weird. So, you can just instantiate a new Composite with
In addition, there is no possibility to remove pages from a wizard, I temporally just monkey patch it, but I asked myself, if one should really only use constant pages, and just modify the contained composites. Another issue was the complete unchangeable order of pages, so I just added a public arraylist and redirect all accesses to the private pages of the supertype.
According EMF, it really do not fit in my mind, why one cannot inherit from data types. Especially EMF specific interfaces, which I think should be supported or at least been modeled in the Ecore model itself , are not available to inherit from.
Some nice idea for EMF would be an code synchronization plugin, which will kust update the models, if one change the parameter type of a method or just add a new attribute. Because the development process suffers from the frequent switch between code and model, just for keeping the model up to date.
Today, I just get an insight into the upcoming UML stencilset for the Oryx Editor (Oryx Project). It look great, nearly all concepts of UML get supported, but it was an hard manual matching against the UML meta model. Let’s think about a way to parse xmi meta models to stencilsets and vice versa, would be a powerful concept. I will just go on research on this topic.
Especially the construction of an Eclipse wizards is more difficult than I estimated. It just catches exceptions without any feedback, just from time to time a “Event Loopback” occurs which is easy to track. Additionally all the magic SWT style number are weird. So, you can just instantiate a new Composite with
new Composite(parent, SWT.V_Scroll);and get a Composite with a vertival scrollbar. Sounds cool, isn’t it. But if you try to add several other composites as children of the scrollable, there is no scrolling at all. I just try to get it working.
In addition, there is no possibility to remove pages from a wizard, I temporally just monkey patch it, but I asked myself, if one should really only use constant pages, and just modify the contained composites. Another issue was the complete unchangeable order of pages, so I just added a public arraylist and redirect all accesses to the private pages of the supertype.
According EMF, it really do not fit in my mind, why one cannot inherit from data types. Especially EMF specific interfaces, which I think should be supported or at least been modeled in the Ecore model itself , are not available to inherit from.
Some nice idea for EMF would be an code synchronization plugin, which will kust update the models, if one change the parameter type of a method or just add a new attribute. Because the development process suffers from the frequent switch between code and model, just for keeping the model up to date.
Today, I just get an insight into the upcoming UML stencilset for the Oryx Editor (Oryx Project). It look great, nearly all concepts of UML get supported, but it was an hard manual matching against the UML meta model. Let’s think about a way to parse xmi meta models to stencilsets and vice versa, would be a powerful concept. I will just go on research on this topic.
Monday, January 18, 2010
Call a JavaScript Function with all given arguments
Sounds easy, but it is a bit tricky. Once one have to now that this:
function test(){
do();
test();
}
ends in a recursion, because the function pointer test, only will be resolved to the value at runtime.
I ends with this:
var tmp = fn;
fn = function(){
if(!!pageTracker){
pageTracker._trackEvent("category","value")
}
return tmp.apply(this, arguments);
}
With this snippet you can add a Google Tracking Event, just by wrap it in another js-function.
function test(){
do();
test();
}
ends in a recursion, because the function pointer test, only will be resolved to the value at runtime.
I ends with this:
var tmp = fn;
fn = function(){
if(!!pageTracker){
pageTracker._trackEvent("category","value")
}
return tmp.apply(this, arguments);
}
With this snippet you can add a Google Tracking Event, just by wrap it in another js-function.
Tuesday, December 15, 2009
Nice Idea for an wave gadget
Currently after creating a wave and inviting somebody one cannot kick users out of a wave.
So the idea was to build a gadget/robot which handle a body list of wave users. The wave will get encrypted with every change the key will change.
After kicking an user out of the wave, the key of the user will not be updated, so he will not longer be able to participate at the wave.
Practically it may be possible to insert new unencrypted content to the wave, but the encryption mechanism will automatically hide unauthorized messages.
So the idea was to build a gadget/robot which handle a body list of wave users. The wave will get encrypted with every change the key will change.
After kicking an user out of the wave, the key of the user will not be updated, so he will not longer be able to participate at the wave.
Practically it may be possible to insert new unencrypted content to the wave, but the encryption mechanism will automatically hide unauthorized messages.
SWT Project Sprint Planning Session 3
Amazing, what people implement for a lecture at the Hasso Plattner Institute. Some guys really work 200% more than anybody ask for, but as contrast some feature are really just functional. Nobody seem to test the UI. So it looks like an incoherent clutch of input fields in combination with some weird checkboxes.
Guys, please use your stuff before presenting it, user will be grateful.
Guys, please use your stuff before presenting it, user will be grateful.
Working on Web Crawler
Since a couple of weeks a friend of mine and I working on a blog crawler to saving the blogosphere. Since now we saved about 50000 blogs and worked around 3 Mio web pages. Sounds much, but it is not. We challenging a lot of other crawlers around including google. Overall crawlers usually get about 300 site per second. As contrast our crawler just get 2500 site per day. That really weird.
Concerning the fact that we distributed our crawler to gain more cumputation power, but here is the problem. To guaranty that all blogs stay linked in the database and to avoid duplicates in the db we need to define a central databank , which seem to be the bottleneg.
Every crawler client just waiting severall minute for the database just to answer a very simpel select statement.
So well my database knowledge is very limited to some base stuff teached at the university. Currently I try to speed up the query using CREATE INDEX.
After all last time I heard about asychronous distributed message queues. This seems to be a good option to get the whole job handling out the database. But I think that only the INSERTs consume so much time.
So to sum up, buying new hardware is a good option.
Concerning the fact that we distributed our crawler to gain more cumputation power, but here is the problem. To guaranty that all blogs stay linked in the database and to avoid duplicates in the db we need to define a central databank , which seem to be the bottleneg.
Every crawler client just waiting severall minute for the database just to answer a very simpel select statement.
So well my database knowledge is very limited to some base stuff teached at the university. Currently I try to speed up the query using CREATE INDEX.
After all last time I heard about asychronous distributed message queues. This seems to be a good option to get the whole job handling out the database. But I think that only the INSERTs consume so much time.
So to sum up, buying new hardware is a good option.
Start Blogging
Hello World,
that my first blog, let's test it. My intention for creating this blog is primary to practise web2.0 and share my knowledge. So I hope to offer some useful informations for everyone here
that my first blog, let's test it. My intention for creating this blog is primary to practise web2.0 and share my knowledge. So I hope to offer some useful informations for everyone here
Subscribe to:
Posts (Atom)