Stuts VS Tapestry - I need some ammo

classic Classic list List threaded Threaded
31 messages Options
12
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Lance Java
> When it comes to SEO I think you'll find this link interesting:
>
http://code.google.com/intl/de-DE/web/ajaxcrawling/docs/getting-started.html

I have come across this page before and it looks like a whole lot of rules
and processes that need to be in place in order to support ajax crawlable
sites. Does struts2 "just work" for ajax crawlability or does the team need
to follow strict guidelines and practices? Tapestry simply works out of the
box. Since the ajax fragments are known on the server, it can decide
whether to use partial page (XHR + javascript) or full page update as part
of the framework.

On Thursday, 26 January 2012, Christian Grobmeier <[hidden email]>
wrote:
> Please don't get me wrong, there are many things in which Tapestry
> beats other frameworks. Not only Struts. Look at the hyped Wicket
> framework. I have used it and can say I really dislike it. It is
> utterly complex and the docs are the worst thing I have ever seen.
> With Tapestry I could create a simple CRUD in 2 hours, without any
> knowledge.
>
> When it comes to SEO I think you'll find this link interesting:
>
http://code.google.com/intl/de-DE/web/ajaxcrawling/docs/getting-started.html

>
> I expect my users to have JS on these days. And if I need JS I do a
> webapplication, not just a website. Websites can be easily optimized
> with Struts2. Webapplications - well do I need or even want to crawl
> calculations or some other stuff? In my case not.
>
> Anyway I fully agree that the frontend technology used by Tapestry
> (components, yeah) is ways better then what is currently offered by
> Struts.
>
> But one should not say easily framework x is dead, just because
> something is here which is better.
>
> If it comes to ammo:
> - T5 has excellent docs (compared to Wicket)
> - T5 is so easy to learn (compared to Wicket) as Struts 2
> - T5 supports view components (S2 does not, or not out of the box)
>
> My personal killer feature: class reloading. Can only be done with
> JRebel in S2. It saves much time, and time is money. Explain your
> managers every deployment costs 4 minutes, you need to do 15 a day.
>
> Cheers
>
>
> On Thu, Jan 26, 2012 at 11:44 AM, Lance Java <[hidden email]>
wrote:
>> One killer argument is SEO (search engine optimisation). Is your webapp
>> publicly available and do you want to appear high in google results?
>>
>> Whilst google's algorithms are hidden, it is known that if searching for
a

>> ferarri, a site like
>>
>> www.mysite.com/cars/ferarri
>>
>> will appear higher in the search results for a site like
>>
>> wwww.mysite.com/cars?make=ferarri
>>
>> I'm not familiar with struts2 but if you are returning json, chances are
>> that a lot of the site is invisible to the google crawler which does not
>> execute javascript.
>>
>> Tapestry first draws pages with HTML (all links are simple a href=). It
>> then decorates the page with ajax if javascript is available. This has
the
>> benefit that it gracefully degrades for clients with javascript disabled
>> (think screen readers and the google crawler). If you have designed your
>> tapestry pages correctly to return null for ajax actions where isXhr() is
>> false (see taha's @XHR annotation) your pages should gracefully degrade.
>>
>> I'm not sure about struts2 but I know many sites will simply stop working
>> and may simply display a blank page if javascript is disabled (I think
this
>> might be the case with GWT). Perhaps you could try turning off javascript
>> in the browser then viewing each of your POC sites and get a feel for
what
>> a crawler will see. I know there are tools to help with SEO out there.
>>
>> Lance
>>
>> On Thursday, 26 January 2012, Christian Grobmeier <[hidden email]>
>> wrote:
>>> Hey guys,
>>>
>>> while I agree that T5 is amazing I must say Struts2 is not so bad as it
is
>>> discussed here. There are far more bad frameworks out there. At least S2
>> is
>>> not dead, it is actively maintained and developed. Anyway - T5 does have
>>> some pretty cool features (class reloading, it is amazing, or
components)

>>> which I really love. On Struts side I enjoy the easiness: make up an
>> action
>>> and return json. This way you have more a service layer with Struts and
>> can
>>> do whatever you want with JavaScript on the frontend.
>>>
>>> Again, I agree T5 is a great framework.
>>>
>>> Cheers
>>> Christian
>>>
>>> On Thu, Jan 26, 2012 at 10:58 AM, Dmitriy Vsekhvalnov <
>>> [hidden email]> wrote:
>>>
>>>> Seriously?  Struts vs. T5?
>>>>
>>>> Go look to market which people you can find more easily & cheaper. At
the
>>>> very end someone have to support the app.
>>>>
>>>> Personally i will never go to pick-up struts job because it is dead.
>>>> Unless you pay me significant more for my wasted time :)
>>>>
>>>> T5 simply the best web-framework in java world. So if you tied to java
-
>>>> go with it. If not.. you know :)
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Jan 26, 2012 at 12:50 PM, Thim Anneesens <
[hidden email]

>>>wrote:
>>>>
>>>>>  Thanks for the ammo guys ;).
>>>>>
>>>>> Thim.
>>>>>
>>>>>
>>>>> On 01/26/2012 10:20 AM, Kalle Korhonen wrote:
>>>>>
>>>>> (Thim, you don't know what poor English is...) It's always difficult
>>>>> to win these arguments on technical merits alone, especially because
>>>>> they are often looked at one-by-one instead of as a whole. If at all
>>>>> possible, try to find an angle that your organization or your manager
>>>>> deeply cares about. For example, if you had more people with Tapestry
>>>>> experience than Struts people, that'd be a winning argument for me if
>>>>> I was a manager. If you can't find anything else, try this: Struts is
>>>>> a dying architecture, as proven by these graphs:
>>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Christian Grobmeier
In reply to this post by Thiago H de Paula Figueiredo
On Thu, Jan 26, 2012 at 1:36 PM, Thiago H. de Paula Figueiredo
<[hidden email]> wrote:

> Yep, Struts 2 isn't bad, but Tapestry and almost any other
> component-oriented framework, even JSF, is way better than Struts 2. And
> please, never ever think about adopting Struts 1. It sucks in every single
> way possible.
> I realized that when I was the instructor of a Struts 1 course many years
> ago.
> Students often asked: why so many lines of code for so little functionality?
> They were right. Struts 1 barely changed in the last 8 years.

+1

S1 is horrible. It was pain to learn back then. S2 is ways better.
But not every component framework is better - I am really
dissappointed by Wicket.


>
>
> --
> Thiago H. de Paula Figueiredo
> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and
> instructor
> Owner, Ars Machina Tecnologia da Informação Ltda.
> http://www.arsmachina.com.br



--
http://www.grobmeier.de
https://www.timeandbill.de

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Christian Grobmeier
In reply to this post by Thiago H de Paula Figueiredo
On Thu, Jan 26, 2012 at 1:39 PM, Thiago H. de Paula Figueiredo
<[hidden email]> wrote:
> On Thu, 26 Jan 2012 08:03:17 -0200, Christian Grobmeier
> <[hidden email]> wrote:

> I can't imagine how doing this in Tapestry wouldn't be easier than Struts,
> any version:
>
> package a.b.c.pages;
>
> public class JsonResponse {
>
>        JSONObject void onActivate() {
>                JSONObject object = new JSONObject();
>                ...
>                return object;
>
>        }


I do this in Struts (with my own S2 json plugin)


@JSON
class MyAction {

   @JSON
   private Map results = ...;
}

I need to put a note into struts.xml that I want a json response
instead of a normal.
(struts.xml is another dinosaur i don't like on s2, but there is the
convention plug which supports annotations)


>
> }
>
> --
> Thiago H. de Paula Figueiredo
> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and
> instructor
> Owner, Ars Machina Tecnologia da Informação Ltda.
> http://www.arsmachina.com.br



--
http://www.grobmeier.de
https://www.timeandbill.de

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Christian Grobmeier
In reply to this post by Thiago H de Paula Figueiredo
On Thu, Jan 26, 2012 at 1:42 PM, Thiago H. de Paula Figueiredo
<[hidden email]> wrote:

> On Thu, 26 Jan 2012 09:05:33 -0200, Christian Grobmeier
> <[hidden email]> wrote:
>
>> I expect my users to have JS on these days. And if I need JS I do a
>> webapplication, not just a website. Websites can be easily optimized
>> with Struts2. Webapplications - well do I need or even want to crawl
>> calculations or some other stuff? In my case not.
>
>
> Could you explain this paragraph? I really don't get it. What do you mean by
> optimization?

I am sorry.
I meant "optimized for SEO".
I do not use ajax for "standard" content, which then can be easily
optimized for SEO using S2


>
>
>> My personal killer feature: class reloading. Can only be done with
>> JRebel in S2. It saves much time, and time is money. Explain your
>> managers every deployment costs 4 minutes, you need to do 15 a day.
>
>
> Agreed. Managers love anything that cut costs (and developer time is $$$)
> and live class reloading reduces development time an awful lot. Ask anyone
> who once developed in Tapestry and then needed to use another web framework.

Like me.

I started with Wicket, and was so dissappointed. My time was going
away, so I needed to choose something I could rely on: Struts. I knew
it already, no surprises. THen another customer asked me to do some
stuff in Tapestry... which was great fun!

>
>
> --
> Thiago H. de Paula Figueiredo
> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and
> instructor
> Owner, Ars Machina Tecnologia da Informação Ltda.
> http://www.arsmachina.com.br



--
http://www.grobmeier.de
https://www.timeandbill.de

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Christian Grobmeier
In reply to this post by Lance Java
On Thu, Jan 26, 2012 at 1:47 PM, Lance Java <[hidden email]> wrote:

>> When it comes to SEO I think you'll find this link interesting:
>>
> http://code.google.com/intl/de-DE/web/ajaxcrawling/docs/getting-started.html
>
> I have come across this page before and it looks like a whole lot of rules
> and processes that need to be in place in order to support ajax crawlable
> sites. Does struts2 "just work" for ajax crawlability or does the team need
> to follow strict guidelines and practices? Tapestry simply works out of the
> box. Since the ajax fragments are known on the server, it can decide
> whether to use partial page (XHR + javascript) or full page update as part
> of the framework.

In Struts you have to do stuff you get for free with Tapestry. You
need to take care on this yourself, at least to my knowledge. The only
chance is someone (or you) writes a Struts 2 plugin for that, which
seems to be a pretty complicated task.

>
> On Thursday, 26 January 2012, Christian Grobmeier <[hidden email]>
> wrote:
>> Please don't get me wrong, there are many things in which Tapestry
>> beats other frameworks. Not only Struts. Look at the hyped Wicket
>> framework. I have used it and can say I really dislike it. It is
>> utterly complex and the docs are the worst thing I have ever seen.
>> With Tapestry I could create a simple CRUD in 2 hours, without any
>> knowledge.
>>
>> When it comes to SEO I think you'll find this link interesting:
>>
> http://code.google.com/intl/de-DE/web/ajaxcrawling/docs/getting-started.html
>>
>> I expect my users to have JS on these days. And if I need JS I do a
>> webapplication, not just a website. Websites can be easily optimized
>> with Struts2. Webapplications - well do I need or even want to crawl
>> calculations or some other stuff? In my case not.
>>
>> Anyway I fully agree that the frontend technology used by Tapestry
>> (components, yeah) is ways better then what is currently offered by
>> Struts.
>>
>> But one should not say easily framework x is dead, just because
>> something is here which is better.
>>
>> If it comes to ammo:
>> - T5 has excellent docs (compared to Wicket)
>> - T5 is so easy to learn (compared to Wicket) as Struts 2
>> - T5 supports view components (S2 does not, or not out of the box)
>>
>> My personal killer feature: class reloading. Can only be done with
>> JRebel in S2. It saves much time, and time is money. Explain your
>> managers every deployment costs 4 minutes, you need to do 15 a day.
>>
>> Cheers
>>
>>
>> On Thu, Jan 26, 2012 at 11:44 AM, Lance Java <[hidden email]>
> wrote:
>>> One killer argument is SEO (search engine optimisation). Is your webapp
>>> publicly available and do you want to appear high in google results?
>>>
>>> Whilst google's algorithms are hidden, it is known that if searching for
> a
>>> ferarri, a site like
>>>
>>> www.mysite.com/cars/ferarri
>>>
>>> will appear higher in the search results for a site like
>>>
>>> wwww.mysite.com/cars?make=ferarri
>>>
>>> I'm not familiar with struts2 but if you are returning json, chances are
>>> that a lot of the site is invisible to the google crawler which does not
>>> execute javascript.
>>>
>>> Tapestry first draws pages with HTML (all links are simple a href=). It
>>> then decorates the page with ajax if javascript is available. This has
> the
>>> benefit that it gracefully degrades for clients with javascript disabled
>>> (think screen readers and the google crawler). If you have designed your
>>> tapestry pages correctly to return null for ajax actions where isXhr() is
>>> false (see taha's @XHR annotation) your pages should gracefully degrade.
>>>
>>> I'm not sure about struts2 but I know many sites will simply stop working
>>> and may simply display a blank page if javascript is disabled (I think
> this
>>> might be the case with GWT). Perhaps you could try turning off javascript
>>> in the browser then viewing each of your POC sites and get a feel for
> what
>>> a crawler will see. I know there are tools to help with SEO out there.
>>>
>>> Lance
>>>
>>> On Thursday, 26 January 2012, Christian Grobmeier <[hidden email]>
>>> wrote:
>>>> Hey guys,
>>>>
>>>> while I agree that T5 is amazing I must say Struts2 is not so bad as it
> is
>>>> discussed here. There are far more bad frameworks out there. At least S2
>>> is
>>>> not dead, it is actively maintained and developed. Anyway - T5 does have
>>>> some pretty cool features (class reloading, it is amazing, or
> components)
>>>> which I really love. On Struts side I enjoy the easiness: make up an
>>> action
>>>> and return json. This way you have more a service layer with Struts and
>>> can
>>>> do whatever you want with JavaScript on the frontend.
>>>>
>>>> Again, I agree T5 is a great framework.
>>>>
>>>> Cheers
>>>> Christian
>>>>
>>>> On Thu, Jan 26, 2012 at 10:58 AM, Dmitriy Vsekhvalnov <
>>>> [hidden email]> wrote:
>>>>
>>>>> Seriously?  Struts vs. T5?
>>>>>
>>>>> Go look to market which people you can find more easily & cheaper. At
> the
>>>>> very end someone have to support the app.
>>>>>
>>>>> Personally i will never go to pick-up struts job because it is dead.
>>>>> Unless you pay me significant more for my wasted time :)
>>>>>
>>>>> T5 simply the best web-framework in java world. So if you tied to java
> -
>>>>> go with it. If not.. you know :)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Jan 26, 2012 at 12:50 PM, Thim Anneesens <
> [hidden email]
>>>>wrote:
>>>>>
>>>>>>  Thanks for the ammo guys ;).
>>>>>>
>>>>>> Thim.
>>>>>>
>>>>>>
>>>>>> On 01/26/2012 10:20 AM, Kalle Korhonen wrote:
>>>>>>
>>>>>> (Thim, you don't know what poor English is...) It's always difficult
>>>>>> to win these arguments on technical merits alone, especially because
>>>>>> they are often looked at one-by-one instead of as a whole. If at all
>>>>>> possible, try to find an angle that your organization or your manager
>>>>>> deeply cares about. For example, if you had more people with Tapestry
>>>>>> experience than Struts people, that'd be a winning argument for me if
>>>>>> I was a manager. If you can't find anything else, try this: Struts is
>>>>>> a dying architecture, as proven by these graphs:
>>>



--
http://www.grobmeier.de
https://www.timeandbill.de

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Thiago H de Paula Figueiredo
In reply to this post by Christian Grobmeier
On Thu, 26 Jan 2012 10:49:39 -0200, Christian Grobmeier  
<[hidden email]> wrote:

> I do this in Struts (with my own S2 json plugin)

Point to Tapestry, which does this out-of-the-box without plugins! :)

> @JSON
> class MyAction {
>
>    @JSON
>    private Map results = ...;
> }

Thanks for the example. :) Does it support nested properties and arrays?  
I'm talking about this:

Nested property: c.d:
{
        a: 'b';
        c: {
                d: 'e'
        }
}

> I need to put a note into struts.xml that I want a json response
> instead of a normal.
> (struts.xml is another dinosaur i don't like on s2, but there is the
> convention plug which supports annotations)

That's another huge Tapestry advantage: the lack of declarative navigation  
rules that plague Struts (any version) and JSF. IMHO declarative  
navigation rules an experiment that failed miserably. A solution (and a  
very bad one) in search for a problem.

--
Thiago H. de Paula Figueiredo
Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,  
and instructor
Owner, Ars Machina Tecnologia da Informação Ltda.
http://www.arsmachina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Thiago H de Paula Figueiredo
In reply to this post by Christian Grobmeier
On Thu, 26 Jan 2012 10:51:33 -0200, Christian Grobmeier  
<[hidden email]> wrote:

> I am sorry.
> I meant "optimized for SEO".
> I do not use ajax for "standard" content, which then can be easily
> optimized for SEO using S2

Tapestry has SEO built-in: pages and their activation context. For when  
this is not enough, we have URL rewriting (the LinkTransformer API since  
5.2, URLRewriter for 5.1).

--
Thiago H. de Paula Figueiredo
Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,  
and instructor
Owner, Ars Machina Tecnologia da Informação Ltda.
http://www.arsmachina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Thiago H de Paula Figueiredo
In reply to this post by Christian Grobmeier
On Thu, 26 Jan 2012 10:55:19 -0200, Christian Grobmeier  
<[hidden email]> wrote:

> In Struts you have to do stuff you get for free with Tapestry. You
> need to take care on this yourself, at least to my knowledge. The only
> chance is someone (or you) writes a Struts 2 plugin for that, which
> seems to be a pretty complicated task.

Writing a Tapestry add-on package is quite easy and it has the advantage  
of working without any additional configuration.

I forgot one huge advantage of Tapestry over Struts (and many other  
frameworks as well) which managers would love: the amount of code you need  
to write is lower (sometimes way lower), and less code => less bugs =>  
less $$$ spent on development.

--
Thiago H. de Paula Figueiredo
Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,  
and instructor
Owner, Ars Machina Tecnologia da Informação Ltda.
http://www.arsmachina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Thim Anneesens
In reply to this post by Christian Grobmeier

I think that the with SEO, clear error pages and graceful degradation I
have 3 silver bullets.

I just tested graceful degradation and it works perfectly with no extra
work in the code and that is something that is not available in Struts 2.
As Tiago said, the activation context makes it very easy to make
readable url. In fact we could say that a Tapestry URL is by default a
readable URL. This will demonstrate once more the care that has been put
in the overall architecture of T5 (Kudos to the T5 Team).

Thanks guys, and I hope I'll be able to add a new site to the Tapestry
portfolio soon.

Thim.

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Christian Grobmeier
In reply to this post by Thiago H de Paula Figueiredo
On Thu, Jan 26, 2012 at 2:01 PM, Thiago H. de Paula Figueiredo
<[hidden email]> wrote:
> On Thu, 26 Jan 2012 10:49:39 -0200, Christian Grobmeier
> <[hidden email]> wrote:
>
>> I do this in Struts (with my own S2 json plugin)
>
> Point to Tapestry, which does this out-of-the-box without plugins! :)

Well, in turn I can choose between 2 json plugins :-) But well, many
people want their framework to be able to do anything.

>> @JSON
>> class MyAction {
>>
>>   @JSON
>>   private Map results = ...;
>> }
>
>
> Thanks for the example. :) Does it support nested properties and arrays? I'm
> talking about this:
>
> Nested property: c.d:
> {
>        a: 'b';
>        c: {
>                d: 'e'
>
>        }
> }

Yes, you can do this:

@JSON
class MyAction {
   @JSON String a = "b";
  @JSON Map m = ..
}

and so on which will result in something like you said.
The plugin is here, if you want to take  alook:
https://github.com/grobmeier/jjson

Struts has pretty less to do with it, except for a ResultType
implementation which uses JJSON.

Cheers

>>   private Map results = ...;
>> }
>

>
>> I need to put a note into struts.xml that I want a json response
>> instead of a normal.
>> (struts.xml is another dinosaur i don't like on s2, but there is the
>> convention plug which supports annotations)
>
>
> That's another huge Tapestry advantage: the lack of declarative navigation
> rules that plague Struts (any version) and JSF. IMHO declarative navigation
> rules an experiment that failed miserably. A solution (and a very bad one)
> in search for a problem.
>
>
> --
> Thiago H. de Paula Figueiredo
> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and
> instructor
> Owner, Ars Machina Tecnologia da Informação Ltda.
> http://www.arsmachina.com.br



--
http://www.grobmeier.de
https://www.timeandbill.de

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Stuts VS Tapestry - I need some ammo

Thim Anneesens
In reply to this post by Thiago H de Paula Figueiredo
It's true that I got allot of answers. Somebody said also something about the documentation and I must agree that the quality of it is impressive. Jumpstart also helps you find solutions to common problems. Tapestry users seem also very vibrant about the technology (I know I am :) ) and that is a good sign for the future.

On 01/26/2012 01:46 PM, Thiago H. de Paula Figueiredo wrote:
On Thu, 26 Jan 2012 06:33:14 -0200, Thim Anneesens [hidden email] wrote:

Hello Tapestry users,

Hi!

Many people said many good reasons. I'd just add the community (the mailing list usually provides very good answers in very short times), the framework flexibility (you have at least one way to change almost any Tapestry behavior and to add functionality) and the live class reloading, which improves developer productivity dramatically (and your manager will love to hear this).


--
Thim Anneessens
IT Department

ictjob group

ictjob.be
Tel: +32 2 725 73 00
Ikaroslaan, 2
B-1930 Zaventem
ictjob.lu
Tel: +352 621 364 792
12, rue Eugène Ruppert
L-2453 Luxembourg
jobtic.fr
Tel: +33 9 81 25 19 66
19 rue Martel
75010 Paris
ticjob.es
Tel: +34 911 25 43 11
Calle Santo Tomé 4, 5B
28004 Madrid
ictjob.de
Tel: +49 711 91 41 07 32
Humboldtstr. 32
70771 Leinfelden-Echterdingen
12
Loading...