Forum for Proposals to iCSC2005
Number:
17
Month: November
Name:
Zornitsa Zaharieva
Type:
Comments
I really like the
proposed schedule by Michal about the database technologies track and I can
participate/collaborate on any of the listed lectures or exercises.
I think we can enlarge the scope of the track and change the title to 'Data
Management and Database Technologies' and also I would like to add one more
topic in the list:
Subject: Proposal for ‘Data Management and Database Technologies Track’
1. Introduction to relational databases (1-hour lecture)
2. SQL basics (1-hour lecture)
3. SQL basics (1-hour practical exercises)
4. SQL statement tuning (1-hour lecture)
5. SQL statement tuning (1-hour practical exercises)
6. Advanced database concepts (1-hour lecture)
7. Accelerators Controls databases and interfaces (1-hour lecture)
Point 7 in brief:
The controls for the accelerators involves tremendous efforts and expertise from
an engineering point of view and yet it looks like not so many people are aware
of its presence or what is required to make the accelerators run.
This lecture will cover some of the databases and their interfaces, which
together are involved with and aid in the accelerators controls (e.g. Controls
Configuration database, LHC Entities Naming database, LHC logging database,
etc.). The aim is not to go into the smallest details, but to present the
overall requirements and functionality provided by the controls databases.
At the same time I think this will be an excellent example of how the database
theory (lectures 1, 2, 4, 6) can be applied in practice.
Zornitsa
Number:
16
Month: November
Name:
Sunil M. Dogra
Type: I have no strong view on the topic
Comments
Geometry Description
Markup Language for the STAR VMC project.
Summary
With the emergence of abstract interfaces to Geometry
modeling and Monte-Carlo simulations, the active HENP community is in need for a
solution allowing the transition and support of the many years geometry
description developed and in use by the expert teams while migrating to a new
framework. The current geometry approach in use in running experiments appeared
to be solid and has demonstrated its sturdiness, none of the new approach relies
on Monte-Carlo model specific approach but rather integrates with widely
distributed and adopted user environment such as the ROOT framework. The need
for a higher level of abstraction in this area is required: the development of
Geometry Description Markup Languages such as GDML may very well provide tools
and base in which the existing geometries can be converted, supporting the
existing framework while a transition to a new framework can be undertaken
without disruption in productivity and efficiency. We propose to study the
feasibility of using GDML (or other XML based approach) as a single source for
geometry description and develop a front-end in the STAR environment. To achieve
this goal, we propose to develop geometry parsers and converters producing TGeo
based geometry description. Static (or fixed) geometry descriptions will be
first tried and further study will propose a scheme to introduce mechanism for
interfacing geometry descriptions and databases keeping a focus on a experiment
non-specific approach.
Detailed Project description:
Experiment Simulation packages comprise three
main components: a core experiment application and geometry description, a
transport model and a geometry model. While Geant3 and/or Geant4 (and to some
extend Fluka) offers both a geometry description approach coupled to a transport
model, there is also an emerging trend in the HENP community to replace the
fundamental layers by virtual interfaces allowing for plug-and-play features of
geometry and/or transport code. The Virtual Monte-Carlo (VMC) project, aim to
provide such feature while integrated into the ROOT framework. While ambitious,
the approach do not address a transitional need running experiments have: a
migration need to allow for a smooth transition from existing framework to a new
framework. In STAR, the gstar and now starsim framework integrates a well
established geometry description front-end provided to the user as convenience
to allow external geometry descriptions, split into sub-system specific
maintained sources (or .g). Geant3 focused, the in-memory expanded G3 geometry
can be transformed into either ROOT native TGeo geometry descriptions but the
existing VMC framework do not provide an easy way to migrate from .g to TGeo or
G4 geometry modeling.
For this purpose, we propose to evaluate and use the emerging Geometry
Description Markup Language (GML). GDML allows for the definition of geometry
data in XML format, therefore providing an attractive platform independent
component to the problem (computing language independence, model independence,
...). The structure of GDML is defined by its corresponding GDML Schema. This
project would have several goals or address the following questions: Evaluate
the completeness and readiness of GDML and its peripheral tools (XML parser).
For example, does GDML adequate for the current representation of the STAR
geometry ?? Are the provided geometry volumes used in STAR present in GDML
principles ?? Work on an initial TPC+SVT (+SSD) XML based description and
develop a parser which converts the GDML XML description into TGeo based
volumes. Address or propose a solution to resolve formula used for volume
symmetry (for example, a given volume may be described as a fundamental unit
with its center positioned at (x,y,z) but repeated N times every Phi). Does GDML
offer such capabilities and how convenient for the user is the approach ?? While
the GDML solution is foreseen as viable for a flat geometry description,
geometry modeling in an intimate relation between static volumes and information
coming from database. For example, rotation angles of a volume may be coming
from a database rather than the primary input file. While the XML may be
expanded into TGeo, it is unclear how one would define the db dependencies
within the developed schema. Study and conceptualization of a database scheme is
desirable.
This project will be carried under the STAR simulation umbrella and the will be
involved (under guidance) in evaluating feasibility, studying the current GDML
V1.1 schema capabilities, developing an initial XML description, testing the
existing GDML parser (documenting findings, identifying possible pitfalls and/or
missing features), developing a GDML XML to TGeo parser & converter and
integrating his work within the STAR VMC testbed framework. Depending on time
and expertise, solutions for db interactions and design may be covered although
an initial parser would be considered as a great success.
Sunil Dogra
Number:
15
Month: November
Name:
Michal Kwiatek
Type:
Proposal for database technologies track
Following Zornitsa's post, here's a proposal for "Database technologies track".
1. Introduction to relational databases (1-hour lecture)
2. SQL basics (1-hour lecture)
3. SQL basics (1-hour practical exercises)
4. SQL statement tuning (1-hour lecture)
5. SQL statement tuning (1-hour practical exercises)
6. Advanced database concepts (1-hour lecture)
"Database technologies track" could take two mornings. My idea for the track is two-fold: those new to database technologies could familiarise themselves with it on the first day, so that on the second day they have enough knowledge to solve (as a hands-on exercise) some common performance problems. Those, who work with databases on daily basis could join the lectures at any time to learn about performance tuning, and some important issues mentioned by Zornitsa: normalization or denormalization; database constraints for enforcing data integrity – pros and cons, and more (I think this would do splendidly for the final lecture).
Please tell me what you think!
Michal.
Number:
14
Month: October
Name:
Ioannis Baltopoulos
Type:
Month: October
Comments
Hello everyone,
I hope you're all doing well after the CSC in Italy. Given the current timeframe
and the amount of work involved to prepare such an inverted school, I would like
to propose the following extension of the Web Services part of the Software
Engineering stream:
Assuming a 20 hour course
1 Hour: Introduction to Web Services
1 Hour: Benefits & relation to existing Technologies
2 Hours: Designing Web Services using UML
2 Hours: Developing Web Services in Java
2 Hours: Developing Web Services in C#
2 Hours: Securing Web Services
1 Hour: Automatic deployment of Web Services
1 Hour: Testing of Web Services (Python?)
1 Hour: Monitoring and maintenance of Web Services
2 Hours: Web Services in HEP
1 Hour: Research Topics in Web Services
1 Hour: Future of Web Services
which adds up to 17 hours. Of course this is only a draft and serves as a
starting point for discussions.
Feel free to make any comments to this proposal and express interest in any
lecture you feel comfortable delivering. You may also contact me directly using
the email bellow if you don't feel like posting to such a wide audience
Best Regards,
Yiannis
Email: ioannis(dott)baltopoulos(att)imperial(dott)ac(doot)uk
Number: 13
Month: October
Name:
Lopienski, S.
Type: I am thinking of giving two presentations
I am thinking of giving two presentations. One would
be about CVS (since
my main task at CERN is to provide central CVS service). I would like to
present CVS a bit wider that it was done at the CSC, but still from users'
point of view. My goal would be to:
- discuss basic and not so basic but still useful functionality of CVS,
- present available clients (command line clients, GUIs and IDE integrated
clients) for both Unix-like and Windows platforms,
- present others tool for CVS (Web interfaces etc.)
- show some good (and also bad) CVS users' habits
- discuss access control in CVS and security issues
- prepare some exercises to be downloaded and run for further studies.
The idea of the second presentation is not yet completely clear, but in
general, I could give a
talk about security in computer systems. More specifically:
- how to think of about security, how to design a secure computer system,
- how to make a good use of cryptography (length of keys, validity of
certificates etc.),
- threats appearing on the human-machine (or human-application) interface,
and threats coming from dishonest users,
- many real-life (and not necessarily computer-based) examples of good
security, poor security, misunderstood security and security which in fact
makes things less secure.
- etc.
I don't want to talk about any specific things like securing Linux kernel,
applying patches or preventing buffer overflow attacks - I want to go more
general.
Alternatively, I could also go into some domains where cryptography is clearly
to be applied, but there are no good, widely-used solutions yet, like e-voting (problems
of anonymity, one vote per registered voter etc.) and micropayments.
Cheers,
Sebastian
Number:
12
Month: October
Name: Zornitsa Zaharieva
Type: I have a specifc topic I would like to work on
Comments
Since I work in the area of data management, I think that I can help with the preparation of some lectures/exercises in that domain – 'Databases and related technologies'. I like Michal's idea about tuning of SQL queries but I am sure there are more topics to be addressed related to the design and optimal usage of databases (e.g. relational database design and modelling; normalization or denormalization; database constraints for enforcing data integrity – pros and cons; SQL, etc.). Apart from the relational database theory - design, optimization, etc., we can also look into the particular implementations – commercial databases and some of their special features (e.g. Oracle – Hitch Hiker’s guide to Oracle: PL/SQL, triggers, materialized views, Java in Oracle, etc.) and companion software tools that can be used for database design, implementation and also for creating interfaces for the databases (e.g. PL/SQL web toolkit, Oracle Forms, etc.). However the presented topics and the depth – only basics or more advanced, will depend on the assumed level of knowledge of the students so this has to be discussed and decided upon.
Number: 11
Month: September
Name:
Petr Olmer
Type: I have a specifc topic I would like to work on
Comments
* Formal methods of software development: UML/SDL - very probably can be included in a SW track. Apart from the theory, I have also some terribly stories that are very good for an "evening" lecture. * Distributed programming - can be a track itself, my interest is agent oriented programming, and I can cover many issues in the field, a specific Grid-oriented topic can be how to create a distributed service broker. I wonder if there's anybody who would like to adress the topic of distributed programming from another side. * And/or I can join the workflow track, if there's any. I've worked in the area for 7 years. * Data-mining: Recently I wrote a paper about so-called news-mining with help of semantic web, but I'm not sure if it is of a wide interest.
Number: 10
Month: September
Name:
Gergana Popova
Type: I have a specifc topic I would like to work on
Comments
I am interesting in the field of Business Modeling (Business Procces, Urbanisation, Workflows, etc ). Also I can participate in the topics connected with Web Services, XML. As I remember somebody proposed already this in the lection of inverted school. For me is not so clear how this inverted school will work. I catch the idea, but for me the realisation is not clear. Best regards!
Number:
9
Month: September
Name: Gergana Popova
Type: I have a specifc topic I would like to work on
Comments
I am interesting in the field of Business Modeling (Business Procces, Urbanisation, Workflows, etc ). Also I can participate in the topics connected with Web Services, XML. As I remember somebody proposed already this in the lection of inverted school. For me is not so clear how this inverted school will work. I catch the idea, but for me the realisation is not clear. Best regards!
Number: 8
Month: September
Name:
Brice Copy
Type: I have a specifc topic I would like to work on
Comments
Hello, In the light of what we have seen during CSC2004, it turns out that many latest developments in Entreprise Computing are not benefiting the physics community. Application environments like Java Entreprise (J2EE) and MS .Net are for instance exhibiting many interesting ideas that should be made more widely known. Even without using those environments, their ideas would be useful. Latest developments include : - Entreprise Design Patterns : addressing problems like scalability, caching, very large concurrency, transaction management, object relational mapping (similar to what POOL does, but in a more generic and relational friendly manner) - Inversion of Control : Exhibited in particular in frameworks like Spring (http://www.springframework.org inversion of control provides better control of your code and eases maintenance dramatically. Implementations for J2EE and .Net already exist, but the general concept would generally benefit all developers. - Latest tools for iterative development : Those include build and deployment tools such as Apache Maven and Cruise Control that integrate with your versioning system (such as CVS or Sourcesafe), your application server (Apache Tomcat, Oracle 9iAS etc...), your unit tests (JUnit), your defect tracking tool (JIRA for instance) and many other tools useful to iterative development. A global outlook on what's available could be useful to many developers attending the CERN CSC. - OLAP and Data Minig : An update is due on the subject, the promises held by OLAP and Data Mining have not yet been fulfilled, but it would be interesting to show the state of the art, what is possible, what is not etc... Francois : I have a few people interested in the topics I raise here, but I will not be back at CERN before the 10th October - feel free to email me for more details, I'll reply when I get back. To all : If you have ideas, please email me directly as I will not be able to read this forum until the 10th october. Thanks Brice Copy brice.copy(AT)cern.ch
Day:
Number:
7
Month: September
Name: Paolo Adragna
Type: I am commenting on a previous posting
Comments
Hello everybody, I write to strongly support Gerhard's idea and Maurizio's sensible observations. My experience in the world of software began exactly trying to write new code using libraries, discovering too late that the libraries were all but bug free; or been employed as a "bug catcher". Physicist who usually are involved in mantaining code or simply build new analysis program starting from already existing code have to make remakable efforts to acquire the experience Maurizio was speaking about. So I think it could be a valuable attempt to set up some lectures on this subject, because they would concern everyday life and work and not, as stated by Maurizio, only an academical exercise. Cheers, Paolo
Number: 6
Month: September
Name: Maurizio Nagni
Type: I am commenting on a previous posting
Comments
I would like to support Gerhard's idea mainly because i think that real problems ask for real solutions (as Gerhard pointed out in the end).
Usually, on my experience, software maintenance is not an easy task even if you are the original developer (have you ever tried to fix a bug after months after the production release and wondering where the hell is coming out that object?); it may happen that, the one who is fixing a bug is not the one who wrote the software, for example because the original developer is not more available (is he coding further features far from you on a beach in the Hawaii? is he gone to a concurrent company? is he your ex-husband or ex-wife as well?).
In all these "out-of-the-academic"situations you are alone with your experience, your tricks, at least your friends, but as chaotic your goal could seem, it should be some heuristic pattern that you follow to reach your final goal. It will be a great result if we will be able to define some well defined hints on how to do such dirty works.
In my idea a possible index of such presentation could be the following points:
1) How to look into the code (avoid unsignificant properties/methods/classes) and get an high altitude view of the software;
2) Different languages, different approach? (what about procedural coding? and about OO coding? IT IS A BATCH?????);
3) Adding/Fixing features style (coding using a quick and dirty add/fix is not always is a good idea.... you will use previous style or your style)
4) What tools are available for me? (perhaps the change is easy then i will use EMACS, it could be more hard then i will start to think to use some IDE..... i really have to use MAKE or i can play with ANT too?)
5) For the exercise session i would suggest:
a) a software well know to people (well known could mean the API not how the API internally work) to reduce the impact and increase the interest;
b) EASY to install on the machines;
c) complex enough (say well builded) to give some satisfaction in the end of the exercise;
d) still in an evolution phase (oh well like 99% of the software...), so you can choose both to fix a bug (we could use a previous version of the software) and to add a new (simple) feature.
The software i'm thinking on is ROOT (even if i still have to think what bug to fix or feature to add).
In the end it will be good to discuss about how to approach this problem; who could have benefits from this presentation: a) the ALL-ALONE-PROGRAMMER (your boss say to you: "You are in charge of this.... do your best!")
b) the ONE-LANGUAGE-PROGRAMMER (it could help for example in how read different languages at least for understand what they are doing?)
c) the NOT-ACADEMIC-PROGRAMMER (UML or pattern are not so much spread among the programmers)
Hope this help, Gerhard!
ciao Maurizio
Number: 5
Month: September
Name: Markus.Duda@Physik.RWTH-Aachen.DE
Type: I have a specifc topic I would like to work on
Comments
Given the codebase size for most software projects (not only for the LHC experiments), (new) users need (to know) the right tools to get started and explore and navigate such huge software projects. I will like to present Integrated Development Environments (IDE) like KDevelop or Eclipse and how one benefits for them when breaking into a new software project. Details would include tool components like code browser, documentation browser, version control systems, unit testing, bug reporting, etc.
Number: 4
Month: September
Name: Victor Engmark
Type: I have no strong view on the topic
Comments
Some topics I'd be interested in contributing to:
Web standards
Why do we even want to know? Because web pages following the standards...
require less guesswork on the part of the software reading it (usually a browser, but also speech synthezisers and Braille machines), thus increasing the speed and accuracy of the presentation
can be smaller in sheer byte-size, which is important as in 2004 http://www.useit.com/alertbox/9703a.html">62% of US Internet users are still on dial-up
are easier to maintain consistently because of separation of logic, content, and presentation
Best practices in software development
Listening to anecdotes of how to do software development can be fun, but I believe a "positivistic" summary of the proven best practices for software development can be more useful. This is a huge subject, and could be split into blocks based on lifecycle phases (design, architecture, implementation, maintenance) or software components (back-ends, front-ends, middleware, server, client, agent).</p>
Number: 3
Month: September
Name: Petr Olmer
Type: I have no strong view on the topic
Comments
(Well I have a strong view, but this post is not about it.)
Looks like Michal brought a very good issue to the spot. What do we know about our future listeners? Shouldn't we prepare tracks with the respect to their knowledge?
Example: As far as I remember, design patterns were mentioned/used several times at CSC. Can we provide a deeper presentation than just introducing them?
Number: 2
Month: September
Name: Gerhard Brandt
Type: I have a specifc topic I would like to work on
Comments
SOFTWARE MAINTENANCE
I would like to give a course (or series of lectures togehter with other participants) focussing on the last stage in the software life cycle: the maintenance of practically used software. The main focus should lie on the analysis of existing code and extracting information from it on every level of detail. this means:
- actual reading of code - use of low level tools like grep, wc - use of higher level tools like javadoc, THtml
as excercises i propose the analysis of existing software in HEP. starting with simple heuristics, understanding the technicalities, like the build process, library dependencies etc... then fixing acutal bugs in it or - on a more advanced level - adding features.
which software to use for the excercises will have to be seen. ROOT seems a good idea to me, but also the analysis software used in experiments of the participants could be used (eg. H1, BaBar CDF, D0)
why this lecture: designing code is nice and exiciting, but in practice already written software is used. at the CSC we have heard many paroles like: 'everyone knows', 'trust me' etc. applied to abstract concepts used in the design of not yet used software (mostly LHC software). opposed to this, this course aims to confront participants with actually proven software, and to learn from its bugs and features.
Number: 1
Month: September
Name: Michal Kwiatek
Type: I have no strong view on the topic
Comments
There are two topics, which I think could be presented on Inverted SCS:
(1) Design Patterns (2) Tuning of SQL Queries
ad. 1. The idea of Design Patterns is important; probably nobody is going to argue about that. Why inventing new solutions to problems that have already been solved so many times? Implementing ready-to-go solutions has many advantages: - it's cheaper, - it helps you avoid common design problems, - it gives designers and developers vocabulary, which to be shared without the need to explain each design feature.
The idea of design patterns (its benefits and limitations along with examples of most popular patterns) is a good material for both lecture and exercise session. It could be presented in a similar way to what Bob did, and it would be a nice follow-up to the Software Technologies track.
ad. 2. Many people know how to write SQL queries, but usually they don't pay attention to performance details. Very well - why should they? SQL is a declarative language, after all. The answer to that is: yes, but unless you give SQL optimazer a chance, your queries will perform very badly. There is a number of basic things that can be done, a the improvement will be huge!
The idea for the lecture would be to list those things with a small explanation. It could be followed with short exercises. However, it should be discussed if we can assume students to have knowledge of SQL. If not, then perhaps preparing more lectures on it, and joining them into a Database track, would be an idea!
Michal Kwiatek.
Number: 0
Month: September
Name: Francois Fluckiger
Type: I have no strong view on the topic
Welcome to CSC2004 participants interested in the CSC Inverted "Where students become professors".
This simple mechanism must be viewed as an optional tool to help you when considering topics, forming teams ...
We will soon publish guidelines on how actual proposals should be submitted (the procedure will be light).
In the meantime, don't hesitate to contact me, either by email, or directly if you are on the CERN site.
Francois.