香港六合彩

1,324 views

Published on

彩话一出口立马觉得不对,又一次面红耳赤不说话了.
我乐了,说:玉儿,来,让我亲一下.
香港六合彩冷冷地说不行.于是我又蔫了.
3.不管怎么说,我的病院生活变得快乐起来,洞人们没事儿就来我这里打牌,甚至芯儿带着我班一帮娘子军们也隔三岔五地来找乐子,说是想参观一下我两腿间受的伤!
最重要的是赵玉每天下午下课后都会过来,并且每天晚上都不愿意离开,洞人们劝香港六合彩说怎么可能每天晚上都不睡觉呢?新婚燕尔也不能如此通宵达旦无日无夜地玩儿呀!?不过赵玉持意要留下来,

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,324
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

香港六合彩

  1. 1. A Tour of Roundup Paul F. Dubois AX-Division Contributing Editor, IEEE Computing in Science and Engineering
  2. 2. This talk is in increasing order of geekiness. <ul><li>What is Roundup, and why is it useful? </li></ul><ul><li>A demo </li></ul><ul><li>Some technical / managerial details and suggestions </li></ul><ul><li>Special guest appearance: real geeks from NIF </li></ul><ul><li>“Wait for it” – Radar O’Reilly </li></ul><ul><li>If your question is more geeky than my current level, wait and see. </li></ul>
  3. 3. Roundup is a versatile issue tracker. <ul><li>“ Issues” may represent: </li></ul><ul><li>Bug reports, </li></ul><ul><li>Wishes and features, </li></ul><ul><li>FAQs, </li></ul><ul><li>Reports, </li></ul><ul><li>Handy files / examples, </li></ul><ul><li>Notices to users or project members. </li></ul>
  4. 4. Issues have many parts. <ul><li>An issue </li></ul><ul><li>Is classified by a priority , </li></ul><ul><li>Annotated by a status and keywords , </li></ul><ul><li>Can be assigned to someone, </li></ul><ul><li>Can have attached files , </li></ul><ul><li>Has an email mini-list of “nosy” people. </li></ul><ul><li>Has a time-stamped audit trail . </li></ul>
  5. 5. Users submit issues and follow ups by web or email. <ul><li>Users can send mail about issues to a support address, or reply to mail received from the tracker. </li></ul><ul><li>Users can log on to the website to see / search / modify issues. </li></ul>
  6. 6. Users manage their own details. <ul><li>Using the tracker, a user can change their password, email, phone number, name, etc. </li></ul><ul><li>Registration can have email confirmation. </li></ul><ul><li>Anonymous bug reports can be allowed, or not. Not . </li></ul>
  7. 7. Choose your attitude toward the unwashed public. <ul><li>Allow anonymous users, or not, or with restrictions. </li></ul><ul><li>Give different users different abilities. </li></ul><ul><li>Show users with different privileges different views of the data. </li></ul><ul><li>Even public sites like Python’s tracker have found that anonymous bug reports are a bad idea. </li></ul>
  8. 8. Nosy lists are Roundup’s big advantage. <ul><li>New comments about an issue generate mail to the issue’s “nosy list”. </li></ul><ul><li>These custom mini-lists balance the amount of email each person gets. </li></ul><ul><li>Artificial ‘mail list’ users can be added. </li></ul>
  9. 9. The nosy lists are user managed. <ul><li>Starts with the issue’s author and anyone he adds. </li></ul><ul><li>Those who comment on the issue are added. </li></ul><ul><li>Anyone who gets “nosy” can add themselves. </li></ul><ul><li>Anyone disinterested can remove themselves. </li></ul>
  10. 10. You can email new issues to a “triage team”. <ul><li>This ensures that every new issue is seen by someone. </li></ul><ul><li>The small reactor for this is in the customization manual, but just ask me and I’ll mail you mine. </li></ul>
  11. 11. Roundup is easy to install and use. <ul><li>Download / install Python </li></ul><ul><li>Download Roundup and install runtime. No compiling required, it is in pure Python. </li></ul><ul><li>Any platform </li></ul>
  12. 12. A tracker is created in two steps. <ul><li>Creation: roundup-admin init </li></ul><ul><ul><li>This populates the tracker with database and html templates. </li></ul></ul><ul><ul><li>Edit the configuration file to state your url and email, choose some options. </li></ul></ul><ul><li>Initialize: roundup-admin initiali s e. </li></ul><ul><ul><li>Note the s , it is Australian </li></ul></ul><ul><ul><li>Edit and install server-ctl script. </li></ul></ul><ul><ul><li>Set up desired email gateway. </li></ul></ul><ul><li>Execute server-ctl start </li></ul><ul><li>Set up “keep-alive” cron job: server-ctl condstart </li></ul>
  13. 13. You have choices*. <ul><li>A tracker has: </li></ul><ul><ul><li>A database* (change what kind of db) </li></ul></ul><ul><ul><li>A database schema* (add more fields) </li></ul></ul><ul><ul><li>A set of html templates* (look and feel) </li></ul></ul><ul><ul><li>Detectors* (audit/react) </li></ul></ul><ul><ul><li>Extensions* (new, I don’t know them) </li></ul></ul><ul><li>All defaults are reasonable, but within very wide limits you can change almost everything. </li></ul>
  14. 14. One server can manage many trackers. <ul><li>An organization can run one server that serves several different trackers. </li></ul><ul><li>This makes the most sense if the different projects can agree on most customizations so that a base customization is then branched to the separate projects. </li></ul>
  15. 15. You can add Python scripts that screen and react to changes. <ul><li>“Detectors” come in two flavors: </li></ul><ul><ul><li>Auditor: called when something is about to change, and gives you a chance to veto or modify it. </li></ul></ul><ul><ul><li>Reactor: called after something has changed, gives you a chance to do something in response. </li></ul></ul><ul><li>The “nosy reactor” handles the nosy email, for example. </li></ul>
  16. 16. Here are some of our customizations. <ul><li>Project name in corner of each page. </li></ul><ul><li>Restricting assignment of issues to developers not users. </li></ul><ul><li>Adding due dates for issues. </li></ul><ul><li>Added priorities for FAQ, Notices. </li></ul><ul><li>Special treatment of status reports. </li></ul><ul><li>Customized (remembered) searches. </li></ul><ul><li>Link to “news” synchronized with source control. </li></ul><ul><li>Link to project documentation. </li></ul>
  17. 17. We use our tracker for more than bugs and wishes. <ul><li>FAQ </li></ul><ul><ul><li>An issue when it is closed can often become an FAQ. We just give the issues priority and status of “faq”. </li></ul></ul><ul><li>Status reports </li></ul><ul><ul><li>Status reports have a keyword “Status Report” and their nosy lists don’t email. </li></ul></ul><ul><ul><li>Each contributes their report to the current “issue” </li></ul></ul><ul><ul><li>Instant archive of progress reports. </li></ul></ul>
  18. 18. Non-bug issues include features and wishes. <ul><li>Features </li></ul><ul><ul><li>Explanations of “how it is”, arguments about how it should be. </li></ul></ul><ul><li>Wishes </li></ul><ul><ul><li>User / developer requests for enhancement </li></ul></ul>
  19. 19. We have additional scripts that run periodically to enhance Roundup. <ul><li>Email users a list of open issues assigned to them. </li></ul><ul><li>Email users a list of unassigned bugs. </li></ul><ul><li>Transfer comments made in source code submissions to the Roundup issues they pertain to, and close those issues if desired. </li></ul>
  20. 21. A link to “project news” on the first page shows you our main-line news directory in the project source. <ul><li>HTML link from main page to a “news” subdirectory. </li></ul><ul><li>The news subdirectory is updated periodically with the source control system’s “sync” to copy the “main/news” directory from source control. </li></ul><ul><li>This news directory has documentation of the latest changes submitted by the author along with their source changes. </li></ul>
  21. 22. Demo <ul><li>This is the demo that comes with Roundup. After installing Roundup, run it to be sure your installation works. </li></ul>
  22. 23. The email sent can be replied to, and has a link to the issue. <ul><li>From: &quot;Michael R. Zika Kull Tracker&quot; < [email_address] > To: [email_address] , [email_address] , [email_address] Subject: [issue925] Can we stop the code based on some conditional? Date: 26 Jul 2006 20:53:00 +0000 Michael R. Zika < [email_address] > added the comment: <snip> contents omitted </li></ul><ul><li>_________________________________________ Kull Issue Tracker < [email_address] > < https://bugzi.llnl.gov/kull/issue925 > </li></ul>Support address Link to issue
  23. 24. There are 3 ways to deploy the server. <ul><li>Stand-alone server on a blocked port, with proxy-pass from (possibly secure) web server. (See next slide) </li></ul><ul><li>Stand-alone server on a public port. </li></ul><ul><li>As a CGI in the web server. </li></ul>
  24. 25. I like putting Roundup “behind” the web server. <ul><li>User logs into https://myplace.llnl.gov/mytracker </li></ul><ul><li>Web server is configured with “proxy pass” to redirect this traffic to http://myplace.llnl.gov:8070/mytracker </li></ul><ul><li>Roundup server runs on blocked port 8070. </li></ul><ul><li>Root must configure the web server by adding two lines; everything else can be done as a “normal” user. </li></ul>
  25. 26. An artificial user that owns roundup is a good idea. <ul><li>User “roundup” runs the server. </li></ul><ul><li>Maintainers login as themselves, then sudo su roundup to “become” this user. This is thus a shared account without a shared password. </li></ul><ul><li>User “roundup” runs the cron jobs for server-keep-alive, mail gateway, etc. </li></ul>
  26. 27. There are two ¹ ways to configure the email access. <ul><li>Get ‘mysupport@llnl.gov’ POP account. </li></ul><ul><ul><li>Run roundup-mailgw every few minutes using a cron job to fetch mail from mail.llnl.gov. </li></ul></ul><ul><li>Use a mail alias on server’s machine that pipes mail into roundup-mailgw. </li></ul><ul><ul><li>For classified servers, use this one. User “mail” and user “roundup” must be in a group. </li></ul></ul><ul><li>¹ I lied, there is a third way I can’t explain. </li></ul>
  27. 28. Manage customizations with your source-control system. <ul><li>Main line: Roundup as shipped </li></ul><ul><li>Branch to: Ours </li></ul><ul><li>Modify Ours as desired and install tracker. </li></ul><ul><li>When a new version of Roundup arrives, install it as changes to main line, then integrate main to “Ours”. </li></ul><ul><ul><li>Use merge tools to resolve conflicts </li></ul></ul>
  28. 29. The effort is proportional to the amount of customization. <ul><li>No backup needed except as normally done on the machine. </li></ul><ul><li>Moving to a new machine is a small effort. </li></ul><ul><li>The database can export / import csv files. </li></ul><ul><li>Users do not seem to need much if any training. </li></ul>
  29. 30. Customizing is probably a 200-level job. <ul><li>HTML -> TAL -> METAL languages just for the html area. </li></ul><ul><li>Understanding of database basics. </li></ul><ul><li>Python for the detectors. </li></ul>
  30. 31. We love Roundup. <ul><li>Just the right amount of communication. </li></ul><ul><li>For many developers, Roundup is their todo list. </li></ul><ul><li>We think the email interface / nosy lists are the key. The first page displays the bug list without further action. </li></ul><ul><li>History is captured, everything is searchable. </li></ul>

×