Court says EU states must label Israeli settlement products
by The Associated PressBRUSSELS (AP) — The European Union’s top court says that EU countries must oblige retailers to identify products made in Israeli settlements with special labels, a ruling likely to spark anger in Israel.
The European Court of Justice ruled Tuesday that “foodstuffs originating in the territories occupied by the State of Israel must bear the indication of their territory of origin.”
It says that when products come from an Israeli settlement, their labeling must provide an “indication of that provenance.”
The EU opposes Israeli settlement expansion. It wants any product made in the settlements to be easily identifiable to shoppers and does not want them to carry the generic “Made in Israel” tag.
The Associated Press


Describe or name an object that is familiar to you. You sense the direction to the object's location, as long as that object is within 1,000 feet of you. If the object is in motion, you know the direction of its movement.
The spell can locate a specific object known to you, as long as you have seen it up close—within 30 feet—at least once. Alternatively, the spell can locate the nearest object of a particular kind, such as a certain kind of apparel, jewelry, furniture, tool, or w eapon.
This spell can't locate an object if any thickness of lead, even a thin sheet, blocks a direct path between you and the object.


The "Start" button starts the animation.
The "Stop" button stops the current active animation, but allows the queued animations to be performed afterwards.
The "Stop all" button stops the current active animation and clears the animation queue; so all animations on the element is stopped.
The "Stop but finish" rushes through the current active animation, then it stops.


@main("Whats on"){
The Cowboy from Toy Story is human in this new Highly acclaimed film
15 reviews
They finally arrive at grandma's (Not too sure haven't seen this one)
12 reviews
A 2hr film of Jack reaching for a glass of water
31 reviews
Not the internet ones
6 reviews
Trains go fast, Trains go slow, Trains go to the big screen
18 reviews
Zach Galifianakis is cool
14 reviews
Brilliant stop motion animation
33 reviews
Basically Harry potter again
13 reviews


{% extends "template.html" %} {% block content %}
This is a mask detector, an algorithm based on deep neural networks that detects people in images and write a bounding box around faces, looking if they were masks or not. This is not for security purpose.
If you are interested in more details, check this post I wrote!
I'm Galileo Parise, data scientist and matematician, and I've developed what you see during Italy's second lockdown in November, in which I had lots of free time. If you are interested in this and ohter stories, you can follow me on Linkedin and on Medium. Hoping to get soon over this situation, I hope you all good health:
please, stay safe and wear a mask.


1. Only one book is allowed for a week. You can re-issue the same book for another week if no one has made a request for the same book for another week.
2. If the book is not returned on the due date, a fine of RS.5 per day will be charged.
3.Books lost must be replaced, books damaged will be charged . (Charges will vary depending on the condition of the book.)
4. Check the book before issuing and ensure that it is in good condition.
5. Handle the books carefully.


You configure JVM memory settings for the Java application by adding parameters to the java invocation. For the cache server, you add them to the command-line parameters for the gfsh start server
command.
JVM heap size—Your JVM may require more memory than is allocated by default. For example, you may need to increase heap size for an application that stores a lot of data. You can set a maximum size and an initial size, so if you know you will be using the maximum (or close to it) for the life of the member, you can speed memory allocation time by setting the initial size to the maximum. This sets both the maximum and initial memory sizes to 1024 megabytes for a Java application:
-Xmx1024m -Xms1024m
Properties can be passed to the cache server on the
gfsh
command line:gfsh>start server --name=server-name --J=-Xmx1024m --J=-Xms1024m
MaxDirectMemorySize—The JVM has a kind of memory called direct memory, which is distinct from normal JVM heap memory, that can run out. You can increase the direct buffer memory either by increasing the maximum heap size (see previous JVM Heap Size), which increases both the maximum heap and the maximum direct memory, or by only increasing the maximum direct memory using -XX:MaxDirectMemorySize. The following parameter added to the Java application startup increases the maximum direct memory size to 256 megabytes:
-XX:MaxDirectMemorySize=256M
The same effect for the cache server:
gfsh>start server --name=server-name --J=-XX:MaxDirectMemorySize=256M
JVM stack size—Each thread in a Java application has its own stack. The stack is used to hold return addresses, arguments to functions and method calls, and so on. Since Geode is a highly multi-threaded system, at any given point in time there are multiple thread pools and threads that are in use. The default stack size setting for a thread in Java is 1MB. Stack size has to be allocated in contiguous blocks and if the machine is being used actively and there are many threads running in the system (Task Manager shows the number of active threads), you may encounter an
OutOfMemory error: unable to create new native thread
, even though your process has enough available heap. If this happens, consider reducing the stack size requirement for threads on the cache server. The following parameter added to the Java application startup limits the maximum size of the stack.-Xss384k
In particular, we recommend starting the cache servers with a stack size of 384k or 512k in such cases. For example:
gfsh>start server --name=server-name --J=-Xss384k gfsh>start server --name=server-name --J=-Xss512k
Off-heap memory size—For applications that use off-heap memory, specifies how much off-heap memory to allocate. Setting
off-heap-memory-size
is prerequisite to enabling the off-heap capability for individual regions. For example:gfsh>start server --name=server-name --off-heap-memory-size=200G
See Using Off-heap Memory for additional considerations regarding this parameter.
Lock memory—On Linux systems, you can prevent heap and off-heap memory from being paged out by setting the
lock-memory
parameter totrue
. For example:gfsh>start server --name=server-name --off-heap-memory-size=200G --lock-memory=true
See Locking Memory for additional considerations regarding this parameter.


| Model Name | Model Name |
|---|---|
| Status | Loading model ... |
| FPS | 0 |
| Graphics API | ... |
This is a clone of my other glTF rendering toy. The only difference is that it renders wire frames of the glTF models.
The idea is to keep hidden face removal working, and to remove lines between primitive shapes that are on the same plane.
This is done by performing two passes:
The following keys change the function of mouse-dragging:
| M | Model Movement |
| R | Model Rotation |
| S | Model Scaling |
| Z | Zoom |
The following keys perform the specified actions:
| ⬅ | Previous model |
| ➡ | Next model |


A Hackathon is an intense event that brings together designers and
developers along with industry experts to identify problems and create
software solutions, usually within 24-48 hours. Whether that's high
school, undergrad, or graduate, we believe you can get something out
of the event.


Ghana Statistical Service to conduct second trial census
Accra, Nov. 18, GNA - The Ghana Statistical Service (GSS) will begin the second phase of the multi-staged Trial Census for the 2020 Population and Housing Census with listing of structures from today Monday 18 November 2019.
The Trial Census Night will be the midnight of Sunday November 24th, 2019, and the actual field enumeration will begin from Monday 25th of November to 7th December 2019.
A statement signed by Professor Samuel K. Annim, the Government Statistician, said the conduct of the Census was in accordance with the Statistical Service Law, 2019 (Act 1003), which empowered the Statistical Service to conduct Population and Housing Census in Ghana every 10 years in the month of March.
The Trial Census is in accordance with the United Nations’ recommendations guiding the conduct of Population and Housing Censuses worldwide.
The Population and Housing Census is the only statistical operation that takes detail information of every single individual found within the borders of the country at a particular point in time usually referred to as the Census night.
The information collected is beneficial to and would be disaggregated by national, regional, district and community level and good for decision making at the level of governance as well as for business decision-making.
It will also be used by industry and academia.
The districts selected for the second phase of the Trial Census, are Aowin Municipality in the Western North Region, Ekumfi District in the Central Region, Kpone Katamanso Municipality in the Greater Accra Region and the Krachi Nchumuru District in the Oti Region.
While only a part of the Aowin and Kpone Katamanso Municipalities will be covered under the second Trial Census, the whole of the Krachi Nchumuru and Ekumfi Districts will be covered.
The Statistical Service entreat all persons resident within the selected communities to cooperate with the census officials in order to ensure a successful Trial Census.
GNA


First
Hand
Dashboard
Master Data
Qutations
Operations
Reports
Admin
Maps
User Profile
Toggle navigation
Home
5
Notification 1
Notification 2
Notification 3
Another notification
Search
ADMIN
Action
Another action
Home Page
Admin
Settings
Branches
Branches
New
Delete
Code
Name
Arabic Name
Inactive
Notes
ALEXANDRIA
ALEXANDRIA
ALEXANDRIA
CAIRO
CAIRO
CAIRO
×
Branch
Code
Name
Arabic Name
Country
Select Country
ADMIN
MOSTAFA
MA
MOHAMED
SHERIF
TEST
City
Select City
ADMIN
MOSTAFA
MA
MOHAMED
SHERIF
TEST
Phone1
Phone2
Mobile 1
Fax
Address
ZipCode
Notes
Inactive


Head Blacksmith Flutter:
I am Head Blacksmith Flutter of the Black Anvil Guild here in the Town of Oren. Can I be of service to you? Hmm... It's been a busy season here already, what with all these Artisans coming over for a class transfer to Warsmith.
Listen to information about 2nd class transfer.
Sub Class.
Clan.
Alliance.
Quest.


OPPOSITES ATTRACT
UNBREAKABLE
Written and Directed by M. Night Shyamalan
With Bruce Willis, Samuel L. Jackson
PG-13 107 min.
2 chiles
Make no mistake about it. As sure as his middle name is Night, M. Night Shyamalan has a taste for the dark side. When he grabbed our attention last year it was with an absorbing story called The Sixth Sense about a little boy who saw dead people, and Bruce Willis turned out to be one of them. This time it's Bruce Willis who sees the dead people. He's David Dunne, the only survivor of a train that jumps the rails at high speed; everyone around him is killed, and he walks away without a scratch.
The train wreck puts him in the news, and he's contacted by an eccentric comic book collector named Elijah Price (Samuel L. Jackson). Elijah is the opposite of David - his bones snap like fine china. In school he was so brittle the kids called him Mr. Glass, and he got so bitter he wouldn't go outside to play till his mother bribed him with comic books.
Comic books changed Elijah's life and gave him purpose. As an adult he runs a rare comic gallery, selling first editions and original art, and when he hears about David's miraculous survival of the train wreck he becomes convinced that David may be an indestructible man with extraordinary powers. "These are mediocre times", he tells David; the world is primed for an action messiah, a man uniquely equipped to do battle for good and foil the forces of evil. In other words, a superhero.
David's initially skeptical, and who can blame him, but the more he tests Elijah's crazy theory the saner it begins to look.  Never been hurt, except one time as a boy when he nearly drowned. Not only that, but he turns out to have "super" powers. He even has his superhero's weakness, his own kryptonite.
He may be unbreakable physically, but he's pretty fragile emotionally, and his domestic life is on the verge of falling apart. His wife Audrey (Robin Wright Penn) sleeps in the guest room, and his son Joseph (Spencer Treat Clark) is pathologically attached to his old man, especially when the kid starts buying into Elijah's theory that his dad's a superhero.
Shyamalan writes a fascinating premise and an elegant story, but his weakness comes out in the telling. His characters ask and tell each other things that are justified only as exposition. He's hooked on atmosphere, using blue filters so regularly he might as well be shooting underwater, and he has Willis moving most of the time in what amounts to a virtual catatonic trance. You can understand David's stunned slowness in the aftermath of the train wreck, but it goes on, scene after scene, until you want to reach up through the screen and slap him out of it. As the movie pours on the water imagery, David himself seems to be moving underwater, and while it may feel dramatic as hell from his side of the screen, it soon becomes irritating from ours.
It's a shame, because so many fine elements are there. The story is original, a lot of the imagery is powerful, clues are scattered with the same intriguing cleverness that made The Sixth Sense such a satisfying puzzler. There are scenes of marvelous subtlety, such as one in which Elijah explains to a prospective buyer in his gallery the iconic complexities of a beautiful piece of original superhero comic art. There are some terrific performances, particularly Jackson, with his bent body and large head cocked at a painful angle, eyes set deep in shadowy darkness that reflects the anger and anguish of a tortured soul. Also impressive is Robin Wright Penn as the wife in a marriage that has gone south for no clear reason other than her husband's comatose personality, who seizes on the miracle of his miraculous survival as a chance to fan the fading embers back to life. Willis has the physicality for a comic book hero, with his square jaw and bulging muscles, but the studied lifelessness of his performance robs the character of the dynamism it needs. As he moves away from his action movie phase, he's becoming almost unbearable sensitive, relating wistfully to little boys and simplifying his range of expression down to one. His appealing cocky swagger has died hard, with a vengeance
Unbreakable has a strong core story, but it rambles at the edges. When it gets into the climactic sequence, with Willis plunging into his destiny hooded like Death or the Unabomber as he rights wrongs and defends the weak and distressed, it seriously loses its grip.
Shyamalan, who makes a Hitchcockian appearance as a suspected drug dealer, is fond of surprise endings, and he serves up a doozy here. He uses a lot of upside-down imagery throughout the film - comic book covers shown upside down, television watched upside down, a sign dangling - and he means to turn us upside down as well. It's an ingenious comic book twist, but the movie cries out for an infusion of a little comic book energy as well.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


You are viewing an historical archive of past issues. Please report new issues to the appropriate project issue tracker on GitHub.
Comments
-
Greg Hurrell
Yeah, I can't really see the problem either. I'm a Mac OS X user myself, but I personally have tested the procedure on Windows XP (SP 3) with rubyinstaller-1.8.7-p299.exe and devkit-3.4.5r3-20091110, and it worked for me.
-
anonymous
My bad : for some reason the ruby runtimes were missing from the PATH environment variable. CommandT works as expected (and it's amazing).
-
Greg Hurrell
Ok, glad to hear you got it working.
-
Greg Hurrell
Status changed:
- From: new
- To: closed
Add a comment
Comments are now closed for this issue.


--- layout: page status: publish published: true title: Public Safety author: display_name: Jessie Pechmann email<EMAIL_ADDRESS>date: '2012-06-19 11:06:38 -0600' categories: [] tags: - sgid - Data - statewide - public safety - safety - emergency - correctional - jail - fire stations - law enforcement - police - police stations - firemen - policemen - airport police - border patrols - community policing - constables - drug enforcement agents - indian reservation police - jails - juvenile detention hones - military police - prisons - secret service - transit police - united states bureau of alchol - tobacco - federal bureau of investigation - united states marshals ---
The following data is available for download:
Society.CorrectionalFacilities contains locations for jails and prisons in Utah. A jail or prison defined by the Department of Justice consists of any facility or location where individuals are regularly and lawfully detained against their will. This includes Federal and State prisons, local jails, and juvenile detention facilities, as well as law enforcement temporary holding facilities. Locations which function primarily as law enforcement offices are included in this dataset if they have holding cells.
There are no constraints or warranties with regard to the use of this dataset.
General Utah GIS data inquiries<EMAIL_ADDRESS>Society.FireStations includes any location where fire fighters are stationed or based out of, or where fire fighting equipment is stored. This definition includes fire stations that are both private and public entities, and fire stations that primarily fight forest or grassland fires. Fire fighting training academies are also included.
General Utah GIS data inquiries<EMAIL_ADDRESS>Society.LawEnforcement contains locations for law enforcement facilities in Utah. Law enforcement facilities are defined as any location where sworn officers of a law enforcement agency are regularly based or stationed. Law enforcement facilities are at least partially publicly funded. This law enforcement dataset includes federal, state, local and special jurisdiction facilities. Examples of law enforcement facilities included are municipal police, county sheriffs, state police, school police, park police, railroad police, and federal police.
General Utah GIS data inquiries<EMAIL_ADDRESS>Society.PSAPLocations represents the primary Public Safety Answering Point (PSAP) locations in Utah. The Salt Lake County Sheriff Office PSAP is secondary. The dataset was created in December 2004 by geocoding the PSAP addresses provided by the E911 Executive Committee.
General Utah GIS data inquiries<EMAIL_ADDRESS>Society.PSAPBoundaries represents Primary Safety Answering Point (PSAP) boundaries in Utah. Countywide PSAP jurisdiction boundaries are based on the SGID10.BOUNDARIES.Counties data layer, as of July 26, 2012. PSAP jurisdictions representing individual cities are based on the SGID10.BOUNDARIES.Municipalities data layer, as of July 26, 2012. The data also includes jurisdictional boundary representations of the Navajo Nation Tribal Lands, Hill Air Force Base, and Colorado City.
General Utah GIS data inquiries<EMAIL_ADDRESS>Society.StateAgencyDispatch represents State Dispatch Boundaries.
General Utah GIS data inquiries: agrc@utah.gov


A British woman was sentenced to just a year in prison for performing an illegal butt injection that caused a 34-year-old American woman's death
by Ashley CollmanNBC New York
- Donna Francis, 39, was sentenced to one year in jail Thursday for killing 34-year-old Kelly Mayhew in 2015 with a botched butt injection.
- The judge, prosecution, and Mayhew's family were upset with the short sentence, which was a term of her extradition from the UK.
- Francis had pleaded guilty to the criminally negligent homicide and unauthorized practice of a profession charges.
- Visit Insider's homepage for more stories.
A 39-year-old British woman was sentenced to a year in jail on Thursday for causing the death of a 34-year-old Maryland woman with a botched butt injection she was not licensed to give.
Kelly Mayhew traveled to New York City in 2015 with her mother, and paid Donna Francis $1,600 to get a silicone injection in the basement of a Queens home that Francis used as her clinic, NBC New York reported.
Francis, who was neither a licensed nurse nor doctor, injected Mayhew with silicone she bought from eBay, and when Mayhew started reacting to the injection, she fled the house without calling 911, prosecutors said. Mayhew died at the house in her mother's arms, after the silicone entered her bloodstream and caused a fatal embolism.
NBC New York
Francis fled to her native UK a day later, and was tracked down by NBC New York reporters in London in 2017.
She spent the next few years fighting extradition to the US to face trial for Mayhew's death, a battle that she lost.
But the British judge who eventually signed off on her extradition in August required that American prosecutors agree to only sentence her to a maximum of one year and that her sentence be served at a county jail instead of a prison.
The judge, prosecution, and Mayhew's family were all noticeably upset with the short sentence in court on Thursday.
Judge Kenneth Holder told Francis that she "got away with murder."
"To say that I'm not happy with this plea and this sentence is an understatement," Holder added.
NBC New York
Assistant District Attorney George DeLuca-Farrugia called Francis a coward nine times during the sentencing hearing, saying it "pains me that we can't give her more than one year."
Francis had pleaded guilty to charges of criminally negligent homicide and unauthorized practice of a profession, the New York Post reported.
While Mayhew's mother wiped away tears, her son Richard Lane read a letter she wrote, detailing how Mayhew's last words were "Mommy, hold my hand."
When it was Francis' turn to talk, she apologized for causing Mayhew's death.
"My sincere apologies, and I'm sorry for all the years this has been going on," Francis said. "I'm just sorry."


|
|
|
|
Phonstop ceiling and wall panels offer excellent absorption
and high durability. Also, Phonstop does not shrink or expand under
wet conditions, making it ideal for applications
where humidity is a factor.
Phonstop panels are Class 1 fire-rated and available for adhesive
and drop-in ceiling applications. Both the adhesive and ceiling
grid Phonstop panels provide excellent sound absorption and
have Noise Reduction Coefficients (NRC) up to 0.90, depending
on installation.
Phonstop can be finished in a variety of different paints, or plastered
for a monolithic appearance. Panels for adhesive application come with
two edge options, one face with a 3/8" chamfer bevel, and one face with
a square edge. Phonstop is made of lightweight sintered glass which is
easy to cut and install.
Product Data Sheet
Pricing
| Pattern |
Color |
Sheet
Size |
Thickness |
Sheets
Per Box |
Coverage |
Part # |
Price
Per Tile |
Phonstop
(Adhesive) |
Lt. Grey |
24" x 24" |
2" |
N/A |
4 sq.ft. |
PS-V-2 |
$38.00 |
Phonstop
(Adhesive) |
Lt. Grey |
24" x 48" |
2" |
N/A |
8 sq.ft. |
PS-V-4 |
$75.00 |
Phonstop
(Grid) |
Lt. Grey |
24" x 24" |
1" |
N/A |
4 sq.ft. |
PS-E-2 |
$26.00 |
Please call for more information regarding adhesive, plaster, sealer, and primer.<PHONE_NUMBER>
|
|
|


Whether you are looking to invest in a new property, need help selling your current one or renting and managing it, or anything else real estate-related, we can make it happen. With our years of experience in the high end of the market, we are just a click away.
Find Out MoreWe work hard to meet your expectations
We make sure all our services are quickly delivered
We take care of legal requirements and provide advice you need
Customer Care and Support 24x7
Ready to start your next project with us? That's great! Give us a call or send us an email and we will get back to you as soon as possible!
Registered Office: Manuelli Ltd, 191 Doddington Grove, SE17 3TD, London, Zone 1. Registered Company Number: 09811401 Registered in England & Wales.


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
1 NAFR HIGH COURT OF CHHATTISGARH AT BILASPUR WRIT PETITION (CIVIL) NO. 761 OF 2020 RSPL Limited, through Mr. Jaswinder Singh, S/o Mr. Babu Singh, Plant Manager, having it's Unit at PH No. 100/28, Khasra No. PH 31,33, 34 & 37, Village Achholi, District Raipur (CG), having its registered Office at 199-121 (Part) Block P&T, Fazal Ganj, Kalpi Road, Kanpur - 208012 (UP) ... Petitioner versus C.G. Environment Conservation Board, through its Regional Officer, Commercial Complex, C.G. Housing Board Colony, Kabir Nagar, Raipur (CG) ... Respondent
For Petitioner : Mr. Daleep Dhyani, Advocate, along with Mr. Vikas Shrivastava, Advocate.
For Respondent : Mr. Animesh Tiwari, Advocate.
Hon'ble Shri Justice P. Sam Koshy Order on Board 27/02/2020
1. Challenge in the present Writ Petition is to the Annexure P-1, dated 6.2.2020, passed by Respondent - Chhattisgarh Environment Conservation Board assessing the liability upon the Petitioner for payment of Rs. 1.14 Crores towards environmental compensation.
2. It is relevant here to take note of a petition, i.e., WPC No. 4677/2019 (M/s. Suryoday Wires v. State of Chhattisgarh & Others), which stood decided by this Court vide its order dated 17.12.2019. While deciding the said Writ Petition, this Court had taken into consideration the observations made by the Hon'ble Supreme Court in the case of Bhopal Gas Peedith Udyog Sangathan & Others Vs. Union of India & Others [2012 (8) SCC 326] wherein the Hon'ble Supreme Court in paragraphs 40 and 41 has held as under:-
"40. Keeping in view the provisions and scheme of the National Green Tribunal Act, 2010 (for short the 'NGT Act') particularly Sections 14, 29, 30 and 38(5), it can safely be concluded that the environmental issues and matters covered under the NGT Act, Schedule 1 should be instituted and litigated before the National Green Tribunal (for short 'NGT'). Such approach may be necessary to avoid likelihood of conflict of orders between the High Courts and the NGT. Thus, in unambiguous terms, we direct that all the matters instituted after coming into force of the NGT Act and which are covered under the provisions of the NGT Act and/or in Schedule I to the NGT Act shall stand transferred and can be instituted only before the NGT. This will help in rendering expeditious and specialized justice in the field of environment to all concerned.2
41. We find it imperative to place on record a caution for consideration of the courts of competent jurisdiction that the cases filed and pending prior to coming into force of the NGT Act, involving questions of environmental laws and/or relating to any of the seven statutes specified in Schedule I of the NGT Act, should also be dealt with by the specialized tribunal, that is the NGT, created under the provisions of the NGT Act. The Courts may be well advised to direct transfer of such cases to the NGT in its discretion, as it will be in the fitness of administration of justice."
3. Taking into consideration the aforesaid decision of the Hon'ble Supreme Court and the amendment that has been brought in the Air (Prevention & Control of Pollution) Act, 1981 by way of insertion of Section 31B and also the provisions of the Water (Prevention and Control of Pollution) Act, 1974 wherein an amendment had been brought by insertion of Section 33B, both of which providing an appeal directly to the National Green Tribunal, and also g iven the fact that this Court in the case of "M/s. Suryoday Wires" (supra) has already taken a stand that the matter arising from the orders passed by the Chhattisgarh Environment Conservation Board would be appealable to the National Green Tribunal, the present Writ Petition also therefore would not be sustainable at this juncture.
4. Accordingly, reserving the right of the Petitioner to approach the National Green Tribunal assailing the impugned order, the present Writ Petition is disposed of.
Sd/-
(P. Sam Koshy) /sharad/ JUDGE


The following scripts can be overridden by adding query params in the current window where key is the script's id, and value is the path to the new script to test with.
| id to override | current path |
|---|
It's recommended to open a new Incognito Window before each test run/loop. Running in Incognito prevents user-added extensions from running, and provides more accurate data since optimizations and artifacts that the JavaScript engine may have collected from previous test runs will not be present.
Any user activity, such as scrolling or backgrounding the browser window, could affect the performance of the code under test. Most consistent samples are collected by kicking off a test and keeping hands away from the keyboard and mouse until the test run is finished.
Filters
ng-repeat="row in ctrl.rows"
ng-repeat="row in ctrl.rows | orderBy:'name'"
ng-repeat="row in ctrl.rows | orderBy:['name', 'index']"
ng-repeat="row in ctrl.rows | orderBy:rawProperty('name')"
ng-repeat="row in ctrl.rows | orderBy:[rawProperty('name'), rawProperty('index')]"
Debug output:


Call for more councils to publish details of donations given to councillors
by Stephen McNeiceCouncils are being criticised for not publishing details of any political donations given to their councillors.
A National Integrity Index of all 31 local authorities shows that just 10 are displaying their councillors' political donations or their ethics declarations.
The Transparency International Ireland research finds Fingal and South Dublin County Councils are the most transparent, while Kerry and Westmeath Councils are the worst performing.
Their report points to Wexford, Galway County and Kilkenny councils as having seen the biggest improvements.
Overall, TI Ireland claims too few councils are open with their efforts to tackle the risk of corruption.
Speaking about the findings, Dr Elliott Jordan-Doak from TI Ireland said it is vital the public knows if their councillors are receiving donations.
He explained: "Although we did see an improvement overall, we'd like to see more councils post the donations statements and the ethics declarations of councillors - these pieces of information are crucial for ensuring transparency.
"Basically we want to know that councillors have nothing to hide."
He added: "We don't have enough money on who is funding councillors - we don't have the donation statements.
"Of course they're available in person... but, as I said, [putting] them online would be to make the whole process more transparent."
You can see the full ranking of local authorities below.
Local Authorities 2019 Results
| Ranking | Council | Score (out of 30) |
% |
| 1. | Fingal County Council South Dublin County Council |
22 | 73 |
| 3. | Monaghan County Council | 21 | 70 |
| 4. | Kildare County Council | 20 | 67 |
| 5. | Dublin City Council Kilkenny County Council Meath County Council Wexford County Council |
19 | 63 |
| 9. | Clare County Council Donegal County Council Galway City Council Tipperary County Council Wicklow County Council |
18 | 60 |
| 14. | Cavan County Council Dún Laoghaire–Rathdown County Council Limerick City and County Council |
17 | 57 |
| 17. | Sligo County Council | 16 | 53 |
| 18. | Cork City Council Cork County Council Galway County Council Roscommon County Council Waterford City and County Council |
15 | 50 |
| 23. | Carlow County Council Laois County Council Leitrim County Council Louth County Council |
14 | 47 |
| 27. | Longford County Council Mayo County Council Offaly County Council |
13 | 43 |
| 30. | Kerry County Council Westmeath County Council |
12 | 40 |


RETURN OF THE JEDI A film review by Steve Rhodes Copyright 1996 Steve Rhodes
RATING (0 TO ****): *** 1/2
RETURN OF THE JEDI (1983) features the same old cast as the first two STAR WARS episodes in a rehash of previous themes. Now with a cast this talented and material this strong, rehashing is not necessarily bad. This time the Galactic Empire's forces lead by Lord Darth Vader (David Prowse acting with James Earl Jones's voice) has again build a Death Star and is still out to destroy the Rebel Alliance. This Death Star is, of course, even more powerful than the previous one and has the Emperor (Ian McDiarmid) personally supervising its construction.
You may remember from the last episode that Han Solo (Harrison Ford) owed Jabba the Hutt (Mike Edmonds) money so Jabba in a fit of rage had him frozen and sent to Jabba's planet. The film starts with the rescue of Han from Jabba by Luke Skywalker (Mark Hamill), Princess Leia (Carrie Fisher), Lando Calrissian (Billy Dee Williams), C-3PO (Anthony Daniels), R2-D2 (Kenny Baker), and Chewbacca (Peter Mayhew). The rest of the movie is ostensibly about the destruction of the Death Star by the rebels, but actually the film is about the inherit conflict in the duality of man and the thin line between good and evil. Will Darth Vader turn Luke to the dark side or will Luke turn Darth Vader to the good? Each is confident, and until the end it is not clear whose power will prove stronger.
The character creations in all the STAR WARS series are delightfully imaginative. Jabba and his minions are testaments to the grotesque and the obese. After being grossed out by Jabba's huge rolls of jelly like fat, I suspect a large number of people must have run out of the theater to hit the pay phones to call 1-800-OutFat or some such number. A better advertisement for fat clinics I have not seen. By the way, I thought one of Jabba's entourage was at least a kissing cousin to the gargoyles that populate the movie GREMLINS.
Yoda (Frank Oz) appears again in the show to complete Luke's training as a Jedi. Luke thinks he is already one, but Yoda admonishes him, "Not yet. One thing remains. One things remains, Vader. You must confront Vader, and then a Jedi you will be." I love the flowery language the writers (Lawrence Kasdan and George Lucas) give Yoda. Yoda poetically warns Luke, "Anger, fear, depression. The dark side are they." Luke's training also needs help from his old mentor Obi-Wan (Alec Guinness). He appears in a vision telling Luke, "You will find that many of the truths we cling to depend upon your point of view." This is a show of secrets revealed, but you will not find them out here. See the movie.
The sets (Norman Reynolds) and visual effects (Richard Edlund, Dennis Muren, and Ken Ralston) are even more elaborate than in the first two episodes. My favorite is the little hover-bikes on which they go screaming through the California redwood trees. That they could control the bikes while traveling at the high speed they are going makes no sense, but hey, this is science fiction afterall. The special effects continue to be a great blend of the old and the new: bows and arrows vs. blasters (laser guns) and hang gliders vs. large mechanical dinosaurs outfitted with laser cannons.
RETURN OF THE JEDI introduces sweet furry new creatures called Ewoks. They were a hit at the time, but I am surprised there wasn't at even a bigger marketing tie in with them. Looked like great toys for the age 2-9 set to me.
The acting in the movie was good. My favorite was James Earl Jones. His voice must be the richest and most powerful of any actor living today. Hamill, whom I found to be a big disappointment in the last episode, has more energy and does his part less on autopilot in this one. His performance here still pales in significance to his work in STAR WARS, which is the only film he has ever been great in.
Although the show was excellent, there were several letdowns for me. First and foremost, I missed the incredible humor from the first two. There are laughs in RETURN OF THE JEDI, but overall the writers and the director (Richard Marquand) approach the show too reverentially. Second, I missed the romantic angle. There was some aspects of it in this episode, but not much.
RETURN OF THE JEDI runs a bit long at 2:14. The film is correctly rated PG and the scariest part is the monsters which I suspect will be more than most kids under 5 or 6 can handle. There is no sex, nudity or profanity I can remember, but the STAR WARS groupies will undoubtedly send me one or two minor cuss words I missed. Most of them pointed out after my review of THE EMPIRE STRIKES BACK that Mark Hamill had been in a car accident with some sure that it was before the movie and others equally sure it was after. I recommend RETURN OF THE JEDI strongly as does my son Jeffrey (just turned 7). Since my favorite was STAR WARS, I asked Jeffrey which one of the three he liked best, and he said this one, but would refused to say why. In the end he voluntarily confessed that the reason was the skimpy harem outfit that Jabba has Princess Leia wear. Not a reason I would have guessed! I give the movie *** 1/2.
**** = One of the top few films of this or any year. A must see film. *** = Excellent show. Look for it. ** = Average movie. Kind of enjoyable. * = Poor show.  Totally unbearable.
REVIEW WRITTEN ON: April 20, 1996
Opinions expressed are mine and not meant to reflect my employer's.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The split()
method splits a String object into an array of strings by separating the string into substrings.
str.split([separator[, limit]])
separator
separator
is treated as a string or a regular expression. If separator
is omitted, the array returned contains one element consisting of the entire string. If separator
is an empty string, str
is converted to an array of characters.limit
split()
method still splits on every match of separator
, but it truncates the returned array to at most limit
elements.The split()
method returns the new array.
When found, separator
is removed from the string and the substrings are returned in an array. If separator
is not found or is omitted, the array contains one element consisting of the entire string. If separator
is an empty string, str
is converted to an array of characters.
If separator
is a regular expression that contains capturing parentheses, then each time separator
is matched, the results (including any undefined results) of the capturing parentheses are spliced into the output array. However, not all browsers support this capability.
split()
The following example defines a function that splits a string into an array of strings using the specified separator. After splitting the string, the function displays messages indicating the original string (before the split), the separator used, the number of elements in the array, and the individual array elements.
function splitString(stringToSplit, separator) { var arrayOfStrings = stringToSplit.split(separator); console.log('The original string is: "' + stringToSplit + '"'); console.log('The separator is: "' + separator + '"'); console.log('The array has ' + arrayOfStrings.length + ' elements: ' + arrayOfStrings.join(' / ')); } var tempestString = 'Oh brave new world that has such people in it.'; var monthString = 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'; var space = ' '; var comma = ','; splitString(tempestString, space); splitString(tempestString); splitString(monthString, comma);
This example produces the following output:
The original string is: "Oh brave new world that has such people in it." The separator is: " " The array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it. The original string is: "Oh brave new world that has such people in it." The separator is: "undefined" The array has 1 elements: Oh brave new world that has such people in it. The original string is: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec" The separator is: "," The array has 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec
In the following example, split()
looks for 0 or more spaces followed by a semicolon followed by 0 or more spaces and, when found, removes the spaces from the string. nameList
is the array returned as a result of split()
.
var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand '; console.log(names); var re = /\s*;\s*/; var nameList = names.split(re); console.log(nameList);
This logs two lines; the first line logs the original string, and the second line logs the resulting array.
Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand Harry Trump,Fred Barney,Helen Rigby,Bill Abel,Chris Hand
In the following example, split()
looks for 0 or more spaces in a string and returns the first 3 splits that it finds.
var myString = 'Hello World. How are you doing?'; var splits = myString.split(' ', 3); console.log(splits);
This script displays the following:
Hello,World.,How
If separator
contains capturing parentheses, matched results are returned in the array.
var myString = 'Hello 1 word. Sentence number 2.'; var splits = myString.split(/(\d)/); console.log(splits);
This script displays the following:
Hello ,1, word. Sentence number ,2,.
split()
var str = 'asdfghjkl'; var strReverse = str.split('').reverse().join(''); // 'lkjhgfdsa' // split() returns an array on which reverse() and join() can be applied
Bonus: use ===", "#Identity_strict_equality_(===) operator to test if the original string was palindrome.
Created by Mozilla Contributors, license: CC-BY-SA 2.5


React + Everything
This is a series of examples on how to use React.js with many different frameworks and libraries.


The purpose of any writing is to influence the reader
Without the writing of reports, there can be no science. No matter how important an experiment may be and no matter how well the experiment may have been designed and executed, all will come to waste if what was done and the results that were obtained are not reported effectively. Scientific jobs are found and lost on the basis of ability or otherwise to communicate. While the manipulation of pieces of apparatus is a major activity of scientists. Only by preparing reports can you make people aware of your effort. If you want to be an effective practising scientist. You will need to develop robust communication skills.
During your training in the department you will be expected to develop two essential skills that are necessary for working as a biochemist. First you will need to learn to the collection of data. Secondly, you will need to learn about how results of a scientific study are presented. Although we will introduce you to various pieces of equipment and procedures, we cannot overemphasize the idea that the fundamental skills that you must acquire relate to the collection of data and effective presentation of results.
General requirements
At present we expect that most reports will be hand written. You should ensure that your reports are prepared neatly and that all words are legible. A simple fact that many students seem to be unaware of is that you cannot get credit for what the one is marking your work cannot read.
Present your material in a logical manner so that the reader can follow your presentation easily. Your writing should be broken up into suitable paragraphs. Each paragraph should deal with only one main idea. Consider a paragraph as a unit of thought. Typically a paragraph will contain key sentence that will be supported by the other sentences in the paragraph. A sentence should deal with one idea only. you should say one thing at a time.
You can test wether or not you are presenting information effectively. If you can summarize the content of a paragraph in one sentence you are doing things right. If not you need more paragraphs
Version of English
Throughout your study with us, you should use the Zimbabwe version of English. which is almost indistinguishable from the origional British English. Do not use American English in which, for example, colour is not spelt color, centre as center, plough as plow. Words like hemoglobin or anemia are not Zimbabwean English.
Buy a dictionary
You will not be able to write effectively unless you get into the habit of checking information in dictionaries. You are strongly advised to buy a dictionary. Because dictionaries differ in the usefulness, you should choose the one to buy carefully.
In the introduction you should address three issues that will help the reader to understand what you report.
Fistly you need a clear statement of what you are investigating and why the subject is releveant or interesing.
Secondly you need to provide information on what is already known on the subject you are investigating. The information may concern the methods that you will use for measurements or the materials and organisms and tissues that will be manipulated.
Having placed the subject in context, you need to explain how you approached the problems. There usually several ways of dealing with problems and you need to indicate how you adopted a certain approach. Here you can define the scope of what you did
Finally somewhere near the last sentence of the last paragraph of the introduction, you should make a clear statement of what you set out to do.
Indeed, you make the statement the first sentence of the introduction itself. The statement of the objective of a study is one of the most important sentences in a report and must be crafted very carefully. You should, therefore pay special attention to what you set out to do. Reports are judged on the basis of how well the stated objectives are achieved.
Materials and methods
The materials and methods section of a report includes a description of what was done including how the data was collected, materials used and the conditions under which measurements were made.
In a proper scientific paper, the Materials and methods section should include enough detail for someone working in a similar area to repeate the measurements. In your class reports, you should state what you did as succinctly as possible without including details of procedures. Use the past tense to avoid the personal "l" or "we". Where the experimental activity was done in sections, each section must be summarized. The ability to extract releveant information and prepare a summary is one of the signs that you understood what you were doing. You can then refer to the laboratory manual.
when referring pieces of equipment such as spectrophotometersm pH meters or centrifuges. You should refer to the actual make of the equipment. Measurements should be described in roughly the same order in which the measurements were made.
You should not present your description of procedures as instructions such as "Place test tubes in a water bath..."
Results
The results section of a report typically contains three types of information, graphs, tables, and pictures. Of the three types of results, you will be concerned with only graphs, and tables during the class exercises.
The Results section is extremely important because here you provide the evidence for whatever conclusions that you will make. The results must be presented in a manner that helps you to persuade the reader toarrive at the same conclusion as a way of deciding usefulness of a dictionary is to look up how the word "asprin" is defined. If the definition uses words that must be looked up again, do not buy the dictionary.
I recommend the latest version of the Oxford Advanced Learners Dictionary. In addition to the usual definitions, the dictionary has sections on how to prepare reports and make presentations. Do yourself a favour and acquire a copy. A good dictionary is once of the most effective tools of practicing biochemist.


--- layout: post title: open62541 firststep on windows categories: [technology] tags: [industry] ---
OPC UA is a promising standard for future industrial applications. There are many implementations in C, C++, Python and Java.
open62541 is a pure C99 implementation, which could be a good option for embedded systems. I’ve commit some minor updates to it and I want to start learning it from the beginning.
The first step according to the manual is a simple server.
Let’s have a try on Windows with MingW64
gcc
compiler.
mkdir ~/tutorials
git clone git@github.com:open62541/open62541.git
cd ~/tutorials/open62541
git submodule update --init --recursive
Terminal logs:
# git clone git@github.com:open62541/open62541.git Cloning into 'open62541'... remote: Enumerating objects: 57578, done. remote: Counting objects: 100% (573/573), done. remote: Compressing objects: 100% (334/334), done. remote: Total 57578 (delta 282), reused 435 (delta 219), pack-reused 57005 Receiving objects: 100% (57578/57578), 39.99 MiB | 1.92 MiB/s, done. Resolving deltas: 100% (43025/43025), done. Updating files: 100% (1941/1941), done. # git submodule update --init --recursive Submodule 'deps/mdnsd' (https://github.com/Pro/mdnsd.git) registered for path 'deps/mdnsd' Submodule 'deps/ua-nodeset' (https://github.com/OPCFoundation/UA-Nodeset) registered for path 'deps/ua-nodeset' Cloning into '~/open62541_tutorials/open62541/deps/mdnsd'... Cloning into '~/open62541_tutorials/open62541/deps/ua-nodeset'... Submodule path 'deps/mdnsd': checked out '3151afe5899dba5125dffa9f4cf3ae1fe2edc0f0' Submodule path 'deps/ua-nodeset': checked out '5fdc7d480901e405c78e5b0f429c7fcdbeef4d5d'
Install msys2 and open the shell, execute:
pacman -S mingw64/mingw-w64-x86_64-cmake mingw64/mingw-w64-x86_64-gcc
cd ~/tutorials/open62541
cmake -DUA_ENABLE_AMALGAMATION=ON .
cmake --build .
After a successful compile, there will be a lib and two source code files:
# ls ~/tutorials/open62541/bin libopen62541.a # ls ~/tutorials/open62541/open62541.* open62541.c open62541.h
cd ~/tutorials
mkdir step1
cp open62541/open62541.* step1/
cp open62541/examples/tutorial_server_firststeps.c step1/
# ls ~/tutorials/step1/ open62541.c open62541.h tutorial_server_firststeps.c
Because tutorial_server_firststeps.c
is written to be compiled together with the code base. If you want to compile with single file distribution, the #include
part at the beginning should be changed, the whole code is like below:
#include "open62541.h" #include <signal.h> #include <stdlib.h> static volatile UA_Boolean running = true; static void stopHandler(int sig) { UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, "received ctrl-c"); running = false; } int main(void) { signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler); UA_Server *server = UA_Server_new(); UA_ServerConfig_setDefault(UA_Server_getConfig(server)); UA_StatusCode retval = UA_Server_run(server, &running); UA_Server_delete(server); return retval == UA_STATUSCODE_GOOD ? EXIT_SUCCESS : EXIT_FAILURE; }
gcc -std=c99 open62541.c -lws2_32 tutorial_server_firststeps.c -o step1.exe
There will be a new executable file step1.exe
. When it is executed, it will print these logs:
# ./step1.exe [2021-11-04 19:21:20.084 (UTC+0800)] warn/server AccessControl: Unconfigured AccessControl. Users have all permissions. [2021-11-04 19:21:20.084 (UTC+0800)] info/server AccessControl: Anonymous login is enabled [2021-11-04 19:21:20.084 (UTC+0800)] info/server AccessControl: x509 certificate user authentication is enabled [2021-11-04 19:21:20.084 (UTC+0800)] warn/server Username/Password configured, but no encrypting SecurityPolicy. This can leak credentials on the network. [2021-11-04 19:21:20.084 (UTC+0800)] warn/userland AcceptAll Certificate Verification. Any remote certificate will be accepted. [2021-11-04 19:21:20.104 (UTC+0800)] info/network TCP network layer listening on opc.tcp://kimi.im:4840/
Then you can use UaExpert to view the server info.


--- layout: layout --- {% include header.html %} {% include nav.html %} {% include about.html %} {% include projects.html %} {% include contact.html %} {% include posts.html %}


Formats a number in the percent format of a locale. If not specified, the default locale is used. To get the percentage value,
the input number is multiplied by 100.
Format, decimalSymbol and groupSymbol may also be given explicitly.
0.95
37.5
locale
isPercentAlready - If this argument is set to "1" , the input number is not multiplied by 100
content - the number to be formatted
format - The default depends on the locale. For Norwegian Bokmål as well as for American English, the format it "#,##0.###"
decimalSymbol - The default depends on the locale. For Norwegian Bokmål, it's ",". For American English, it's "."
groupSymbol - The default depends on the locale. For Norwegian Bokmål, it's " ". For American English, it's ","
See also .


California State University, Northridge (CSUN)
Skip to main content
Home
Documentation
Powered-by Metaphor
Github
Powered-By Metaphor:
Profiles
Stories
Research
Affirmative Action Database (AA2)
AS Metro Pass
More coming soon... :D


Installing Roundup
Contents
Overview
Broken out separately, there are several conceptual pieces to a Roundup installation:
- Roundup trackers
- Trackers consist of issues (be they bug reports or otherwise), tracker configuration file(s), web HTML files etc. Roundup trackers are initialised with a “Template” which defines the fields usable/assignable on a per-issue basis. Descriptions of the provided templates are given in choosing your template.
- Roundup support code
- Installed into your Python install’s lib directory.
- Roundup scripts
- These include the email gateway, the roundup HTTP server, the roundup administration command-line interface, etc.
Prerequisites
Roundup requires Python 2.5 or newer (but not Python 3) with a functioning anydbm module. Download the latest version from http://www.python.org/. It is highly recommended that users install the latest patch version of python as these contain many fixes to serious bugs.
Some variants of Linux will need an additional “python dev” package installed for Roundup installation to work. Debian and derivatives, are known to require this.
Optional Components
You may optionally install and use:
- Timezone Definitions
- Full timezone support requires pytz module (version 2005i or later) which brings the Olson tz database into Python. If pytz is not installed, timezones may be specified as numeric hour offsets only.
- An RDBMS
- Sqlite, MySQL and Postgresql are all supported by Roundup and will be used if available. One of these is recommended if you are anticipating a large user base (see choosing your backend below).
- Xapian full-text indexer
The Xapian full-text indexer is also supported and will be used by default if it is available. This is strongly recommended if you are anticipating a large number of issues (> 5000).
You may install Xapian at any time, even after a tracker has been installed and used. You will need to run the “roundup-admin reindex” command if the tracker has existing data.
Roundup requires Xapian 1.0.0 or newer.
- pyopenssl
- If pyopenssl is installed the roundup-server can be configured to serve trackers over SSL. If you are going to serve roundup via proxy through a server with SSL support (e.g. apache) then this is unnecessary.
- pyme
- If pyme is installed you can configure the mail gateway to perform verification or decryption of incoming OpenPGP MIME messages. When configured, you can require email to be cryptographically signed before roundup will allow it to make modifications to issues.
- Windows Service
- You can run Roundup as a Windows service if pywin32 is installed.
Getting Roundup
Note
Some systems, such as Debian and NetBSD, already have Roundup installed. Try running the command “roundup-admin” with no arguments, and if it runs you may skip the Basic Installation Steps below and go straight to configuring your first tracker.
Download the latest version from http://www.roundup-tracker.org/.
For The Really Impatient
If you just want to give Roundup a whirl Right Now, then simply unpack and run demo.py (it will be available as roundup-demo script after installation).
This will set up a simple demo tracker on your machine. [1] When it’s done, it’ll print out a URL to point your web browser at so you may start playing. Three users will be set up:
- anonymous - the “default” user with permission to do very little
- demo (password “demo”) - a normal user who may create issues
- admin (password “admin”) - an administrative user who has complete access to the tracker
| [1] | Demo tracker is set up to be accessed by localhost browser. If you run demo on a server host, please stop the demo when it has shown startup notice, open file demo/config.ini with your editor, change host name in the web option in section [tracker], save the file, then re-run the demo program. |
Installation
Set aside 15-30 minutes. There’s several steps to follow in your installation:
- basic installation steps if Roundup is not installed on your system
- configuring your first tracker that all installers must follow
- then optionally configure a web interface
- and optionally configure an email interface
- UNIX environment steps to take if you’re installing on a shared UNIX machine and want to restrict local access to roundup
- additional language codecs
For information about how Roundup installs, see the administration guide.
Basic Installation Steps
To install the Roundup support code into your Python tree and Roundup scripts into /usr/bin (substitute that path for whatever is appropriate on your system). You need to have write permissions for these locations, eg. being root on unix:
python setup.py install
If you would like to place the Roundup scripts in a directory other than /usr/bin, then specify the preferred location with --install-scripts. For example, to install them in /opt/roundup/bin:
python setup.py install --install-scripts=/opt/roundup/bin
You can also use the --prefix option to use a completely different base directory, if you do not want to use administrator rights. If you choose to do this, you may have to change Python’s search path (sys.path) yourself.
Configuring your first tracker
To create a Roundup tracker (necessary to do before you can use the software in any real fashion), you need to set up a “tracker home”:
(Optional) If you intend to keep your roundup trackers under one top level directory which does not exist yet, you should create that directory now. Example:
mkdir /opt/roundup/trackers
Either add the Roundup script location to your PATH environment variable or specify the full path to the command in the next step.
Install a new tracker with the command roundup-admin install. You will be asked a series of questions. Descriptions of the provided templates can be found in choosing your template below. Descriptions of the available backends can be found in choosing your backend below. The questions will be something like (you may have more templates or backends available):
Enter tracker home: /opt/roundup/trackers/support Templates: classic Select template [classic]: classic Back ends: anydbm, mysql, sqlite Select backend [anydbm]: anydbm
Note: “Back ends” selection list depends on availability of third-party database modules. Standard python distribution includes anydbm module only.
The “support” part of the tracker name can be anything you want - it is going to be used as the directory that the tracker information will be stored in.
You will now be directed to edit the tracker configuration and initial schema. At a minimum, you must set “main :: admin_email” (that’s the “admin_email” option in the “main” section) “mail :: host”, “tracker :: web” and “mail :: domain”. If you get stuck, and get configuration file errors, then see the tracker configuration section of the customisation documentation.
If you just want to get set up to test things quickly (and follow the instructions in step 3 below), you can even just set the “tracker :: web” variable to:
web = http://localhost:8080/support/
The URL must end in a ‘/’, or your web interface will not work. See Customising Roundup for details on configuration and schema changes. You may change any of the configuration after you’ve initialised the tracker - it’s just better to have valid values for this stuff now.
Initialise the tracker database with roundup-admin initialise. You will need to supply an admin password at this step. You will be prompted:
Admin Password: Confirm:
Note: running this command will destroy any existing data in the database. In the case of MySQL and PostgreSQL, any existing database will be dropped and re-created.
Once this is done, the tracker has been created. See the note in the user_guide on how to initialise a tracker without being prompted for the password or exposing the password on the command line.
At this point, your tracker is set up, but doesn’t have a nice user interface. To set that up, we need to configure a web interface and optionally configure an email interface. If you want to try your new tracker out, assuming “tracker :: web” is set to 'http://localhost:8080/support/', run:
roundup-server support=/opt/roundup/trackers/support
then direct your web browser at:
and you should see the tracker interface.
Choosing Your Template
Classic Template
The classic template is the one defined in the Roundup Specification. It holds issues which have priorities and statuses. Each issue may also have a set of messages which are disseminated to the issue’s list of nosy users.
Minimal Template
The minimal template has the minimum setup required for a tracker installation. That is, it has the configuration files, defines a user database and the basic HTML interface to that. It’s a completely clean slate for you to create your tracker on.
Choosing Your Backend
The actual storage of Roundup tracker information is handled by backends. There’s several to choose from, each with benefits and limitations:
| Name | Speed | Users | Support |
|---|---|---|---|
| anydbm | Slowest | Few | Always available |
| sqlite | Fastest(*) | Few | May need install (PySQLite) |
| postgresql | Fast | Many | Needs install/admin (psycopg) |
| mysql | Fast | Many | Needs install/admin (MySQLdb) |
- sqlite
This uses the embedded database engine PySQLite to provide a very fast backend. This is not suitable for trackers which will have many simultaneous users, but requires much less installation and maintenance effort than more scalable postgresql and mysql backends.
SQLite is supported via PySQLite versions 1.1.7, 2.1.0 and sqlite3 (the last being bundled with Python 2.5+)
Installed SQLite should be the latest version available (3.3.8 is known to work, 3.1.3 is known to have problems).
- postgresql
- Backend for popular RDBMS PostgreSQL. You must read doc/postgresql.txt for additional installation steps and requirements. You must also configure the rdbms section of your tracker’s config.ini. It is recommended that you use at least version 1.1.21 of psycopg.
- mysql
- Backend for popular RDBMS MySQL. You must read doc/mysql.txt for additional installation steps and requirements. You must also configure the rdbms section of your tracker’s config.ini
You may defer your decision by setting your tracker up with the anydbm backend (which is guaranteed to be available) and switching to one of the other backends at any time using the instructions in the administration guide.
Regardless of which backend you choose, Roundup will attempt to initialise a new database for you when you run the roundup-admin “initialise” command. In the case of MySQL and PostgreSQL you will need to have the appropriate privileges to create databases.
Configure a Web Interface
There are five web interfaces to choose from:
- web server cgi-bin
- cgi-bin for limited-access hosting
- stand-alone web server
- Zope product - ZRoundup
- Apache HTTP Server with mod_python
- WSGI handler
You may need to give the web server user permission to access the tracker home - see the UNIX environment steps for information. You may also need to configure your system in some way - see platform-specific notes.
Web Server cgi-bin
A benefit of using the cgi-bin approach is that it’s the easiest way to restrict access to your tracker to only use HTTPS. Access will be slower than through the stand-alone web server though.
If your Python isn’t installed as “python” then you’ll need to edit the roundup.cgi script to fix the first line.
If you’re using IIS on a Windows platform, you’ll need to run this command for the cgi to work (it turns on the PATH_INFO cgi variable):
adsutil.vbs set w3svc/AllowPathInfoForScriptMappings TRUE
The adsutil.vbs file can be found in either c:\inetpub\adminscripts or c:\winnt\system32\inetsrv\adminsamples\ or c:\winnt\system32\inetsrv\adminscripts\ depending on your installation.
More information about ISS setup may be found at:
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
Copy the frontends/roundup.cgi file to your web server’s cgi-bin directory. You will need to configure it to tell it where your tracker home is. You can do this either:
- Through an environment variable
- Set the variable TRACKER_HOMES to be a colon (“:”) separated list of name=home pairs (if you’re using apache, the SetEnv directive can do this)
- Directly in the roundup.cgi file itself
- Add your instance to the TRACKER_HOMES variable as 'name': 'home'
The “name” part of the configuration will appear in the URL and identifies the tracker (so you may have more than one tracker per cgi-bin script). Make sure there are no spaces or other illegal characters in it (to be safe, stick to letters and numbers). The “name” forms part of the URL that appears in the tracker config “tracker :: web” variable, so make sure they match. The “home” part of the configuration is the tracker home directory.
If you’re using Apache, you can use an additional trick to hide the .cgi extension of the cgi script. Place the roundup.cgi script wherever you want it to be, rename it to just roundup, and add a couple lines to your Apache configuration:
<Location /path/to/roundup>
SetHandler cgi-script
</Location>
CGI-bin for Limited-Access Hosting
If you are running in a shared-hosting environment or otherwise don’t have permission to edit the system web server’s configuration, but can create a .htaccess file then you may be able to use this approach.
Install flup
Create a script roundup_stub in your server’s cgi-bin directory containing:
#!/usr/bin/env python # if necessary modify the Python path to include the place you # installed Roundup #import sys #sys.path.append('...') # cgitb is needed for debugging in browser only #import cgitb #cgitb.enable() # obtain the WSGI request dispatcher from roundup.cgi.wsgi_handler import RequestDispatcher tracker_home = '/path/to/tracker/home' app = RequestDispatcher(tracker_home) from flup.server.cgi import WSGIServer WSGIServer(app).run()
Modify or created the .htaccess file in the desired (sub-)domain directory to contain:
RewriteEngine On RewriteBase / RewriteRule ^(.*)$ /cgi-bin/roundup_stub/$1 [L]
Now loading the (sub-)domain in a browser should load the tracker web interface. If you get a “500” error then enable the “cgitb” lines in the stub to get some debugging information.
Stand-alone Web Server
This approach will give you faster response than cgi-bin. You may investigate using ProxyPass or similar configuration in apache to have your tracker accessed through the same URL as other systems.
The stand-alone web server is started with the command roundup-server. It has several options - display them with roundup-server -h.
The tracker home configuration is similar to the cgi-bin - you may either edit the script to change the TRACKER_HOMES variable or you may supply the name=home values on the command-line after all the other options.
To make the server run in the background, use the “-d” option, specifying the name of a file to write the server process id (pid) to.
Zope Product - ZRoundup
ZRoundup installs as a regular Zope product. Copy the ZRoundup directory to your Products directory either in INSTANCE_HOME/Products or the Zope code tree lib/python/Products.
When you next (re)start up Zope, you will be able to add a ZRoundup object that interfaces to your new tracker.
Apache HTTP Server with mod_python
Mod_python is an Apache module that embeds the Python interpreter within the server. Running Roundup this way is much faster than all above options and, like web server cgi-bin, allows you to use HTTPS protocol. The drawback is that this setup is more complicated.
The following instructions were tested on apache 2.0 with mod_python 3.1. If you are using older versions, your mileage may vary.
Mod_python uses OS threads. If your apache was built without threads (quite commonly), you must load the threading library to run mod_python. This is done by setting LD_PRELOAD to your threading library path in apache envvars file. Example for gentoo linux (envvars file is located in /usr/lib/apache2/build/):
LD_PRELOAD=/lib/libpthread.so.0
export LD_PRELOAD
Example for FreeBSD (envvars is in /usr/local/sbin/):
LD_PRELOAD=/usr/lib/libc_r.so
export LD_PRELOAD
Next, you have to add Roundup trackers configuration to apache config. Roundup apache interface uses the following options specified with PythonOption directives:
- TrackerHome:
- defines the tracker home directory - the directory that was specified when you did roundup-admin init. This option is required.
- TrackerLanguage:
- defines web user interface language. mod_python applications do not receive OS environment variables in the same way as command-line programs, so the language cannot be selected by setting commonly used variables like LANG or LC_ALL. TrackerLanguage value has the same syntax as values of these environment variables. This option may be omitted.
- TrackerDebug:
- run the tracker in debug mode. Setting this option to yes or true has the same effect as running roundup-server -t debug: the database schema and used html templates are rebuilt for each HTTP request. Values no or false mean that all html templates for the tracker are compiled and the database schema is checked once at startup. This is the default behaviour.
- TrackerTiming:
- has nearly the same effect as environment variable CGI_SHOW_TIMING for standalone roundup server. The difference is that setting this option to no or false disables timings display. Value comment writes request handling times in html comment, and any other non-empty value makes timing report visible. By default, timing display is disabled.
In the following example we have two trackers set up in /var/db/roundup/support and /var/db/roundup/devel and accessed as https://my.host/roundup/support/ and https://my.host/roundup/devel/ respectively (provided Apache has been set up for SSL of course). Having them share same parent directory allows us to reduce the number of configuration directives. Support tracker has russian user interface. The other tracker (devel) has english user interface (default).
Static files from html directory are served by apache itself - this is quicker and generally more robust than doing that from python. Everything else is aliased to dummy (non-existing) py file, which is handled by mod_python and our roundup module.
Example mod_python configuration:
#################################################
# Roundup Issue tracker
#################################################
# enable Python optimizations (like 'python -O')
PythonOptimize On
# let apache handle static files from 'html' directories
AliasMatch /roundup/(.+)/@@file/(.*) /var/db/roundup/$1/html/$2
# everything else is handled by roundup web UI
AliasMatch /roundup/([^/]+)/(?!@@file/)(.*) /var/db/roundup/$1/dummy.py/$2
# roundup requires a slash after tracker name - add it if missing
RedirectMatch permanent ^/roundup/([^/]+)$ /roundup/$1/
# common settings for all roundup trackers
<Directory /var/db/roundup/*>
Order allow,deny
Allow from all
AllowOverride None
Options None
AddHandler python-program .py
PythonHandler roundup.cgi.apache
# uncomment the following line to see tracebacks in the browser
# (note that *some* tracebacks will be displayed anyway)
#PythonDebug On
</Directory>
# roundup tracker homes
<Directory /var/db/roundup/support>
PythonOption TrackerHome /var/db/roundup/support
PythonOption TrackerLanguage ru
</Directory>
<Directory /var/db/roundup/devel>
PythonOption TrackerHome /var/db/roundup/devel
</Directory>
Notice that the /var/db/roundup path shown above refers to the directory in which the tracker homes are stored. The actual value will thus depend on your system.
On Windows the corresponding lines will look similar to these:
AliasMatch /roundup/(.+)/@@file/(.*) C:/DATA/roundup/$1/html/$2
AliasMatch /roundup/([^/]+)/(?!@@file/)(.*) C:/DATA/roundup/$1/dummy.py/$2
<Directory C:/DATA/roundup/*>
<Directory C:/DATA/roundup/support>
<Directory C:/DATA/roundup/devel>
In this example the directory hosting all of the tracker homes is C:\DATA\roundup. (Notice that you must use forward slashes in paths inside the httpd.conf file!)
The URL for accessing these trackers then become: http://<roundupserver>/roundup/support/` and http://<roundupserver>/roundup/devel/
Note that in order to use https connections you must set up Apache for secure serving with SSL.
WSGI Handler
The WSGI handler is quite simple. The following sample code shows how to use it:
from wsgiref.simple_server import make_server
# obtain the WSGI request dispatcher
from roundup.cgi.wsgi_handler import RequestDispatcher
tracker_home = 'demo'
app = RequestDispatcher(tracker_home)
httpd = make_server('', 8917, app)
httpd.serve_forever()
To test the above you should create a demo tracker with python demo.py. Edit the config.ini to change the web URL to “http://localhost:8917/“.
Configure an Email Interface
If you don’t want to use the email component of Roundup, then remove the “nosyreaction.py” module from your tracker “detectors” directory.
See platform-specific notes for steps that may be needed on your system.
There are five supported ways to get emailed issues into the Roundup tracker. You should pick ONE of the following, all of which will continue my example setup from above:
As a mail alias pipe process
Set up a mail alias called “issue_tracker” as (include the quote marks): “|/usr/bin/python /usr/bin/roundup-mailgw <tracker_home>” (substitute /usr/bin for wherever roundup-mailgw is installed).
In some installations (e.g. RedHat Linux and Fedora Core) you’ll need to set up smrsh so sendmail will accept the pipe command. In that case, symlink /etc/smrsh/roundup-mailgw to “/usr/bin/roundup-mailgw” and change the command to:
|roundup-mailgw /opt/roundup/trackers/support
To test the mail gateway on unix systems, try:
echo test |mail -s '[issue] test' support@YOUR_DOMAIN_HERE
Be careful that some mail systems (postfix for example) will impost a limits on processes they spawn. In particular postfix can set a file size limit. This can cause your Roundup database to become corrupted.
As a custom router/transport using a pipe process (Exim4 specific)
The following configuration snippets for Exim 4 configuration implement a custom router & transport to accomplish mail delivery to roundup-mailgw. A configuration for Exim3 is similar but not included, since Exim3 is considered obsolete.
This configuration is similar to the previous section, in that it uses a pipe process. However, there are advantages to using a custom router/transport process, if you are using Exim.
- This avoids privilege escalation, since otherwise the pipe process will run as the mail user, typically mail. The transport can be configured to run as the user appropriate for the task at hand. In the transport described in this section, Exim4 runs as the unprivileged user roundup.
- Separate configuration is not required for each tracker instance. When a email arrives at the server, Exim passes it through the defined routers. The roundup_router looks for a match with one of the roundup directories, and if there is one it is passed to the roundup_transport, which uses the pipe process described in the previous section (As a mail alias pipe process).
The matching is done in the line:
require_files = /usr/bin/roundup-mailgw:ROUNDUP_HOME/$local_part/schema.py
The following configuration has been tested on Debian Sarge with Exim4.
Note
Note that the Debian Exim4 packages don’t allow pipes in alias files by default, so the method described in the section As a mail alias pipe process will not work with the default configuration. However, the method described in this section does. See the discussion in /usr/share/doc/exim4-config/README.system_aliases on any Debian system with Exim4 installed.
For more Debian-specific information, see suggested addition to README.Debian in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=343283, which will hopefully be merged into the Debian package eventually.
This config makes a few assumptions:
- That the mail address corresponding to the tracker instance has the same name as the directory of the tracker instance, i.e. the mail interface address corresponding to a Roundup instance called /var/lib/roundup/trackers/mytracker is<EMAIL_ADDRESS>- That (at least) all the db subdirectories of all the tracker instances (ie. /var/lib/roundup/trackers/*/db) are owned by the same user, in this case, ‘roundup’.
- That if the schema.py file exists, then the tracker is ready for use. Another option is to use the config.ini file (this changed in 0.8 from config.py).
Macros for Roundup router/transport. Should be placed in the macros section of the Exim4 config:
# Home dir for your Roundup installation
ROUNDUP_HOME=/var/lib/roundup/trackers
# User and group for Roundup.
ROUNDUP_USER=roundup
ROUNDUP_GROUP=roundup
Custom router for Roundup. This will (probably) work if placed at the beginning of the router section of the Exim4 config:
roundup_router:
driver = accept
# The config file config.ini seems like a more natural choice, but the
# file config.py was replaced by config.ini in 0.8, and schema.py needs
# to be present too.
require_files = /usr/bin/roundup-mailgw:ROUNDUP_HOME/$local_part/schema.py
transport = roundup_transport
Custom transport for Roundup. This will (probably) work if placed at the beginning of the router section of the Exim4 config:
roundup_transport:
driver = pipe
command = /usr/bin/python /usr/bin/roundup-mailgw ROUNDUP_HOME/$local_part/
current_directory = ROUNDUP_HOME
home_directory = ROUNDUP_HOME
user = ROUNDUP_USER
group = ROUNDUP_GROUP
As a regular job using a mailbox source
Set roundup-mailgw up to run every 10 minutes or so. For example (substitute /usr/bin for wherever roundup-mailgw is installed):
0,10,20,30,40,50 * * * * /usr/bin/roundup-mailgw /opt/roundup/trackers/support mailbox <mail_spool_file>
Where the mail_spool_file argument is the location of the roundup submission user’s mail spool. On most systems, the spool for a user “issue_tracker” will be “/var/mail/issue_tracker“.
As a regular job using a POP source
To retrieve from a POP mailbox, use a cron entry similar to the mailbox one (substitute /usr/bin for wherever roundup-mailgw is installed):
0,10,20,30,40,50 * * * * /usr/bin/roundup-mailgw /opt/roundup/trackers/support pop <pop_spec>
where pop_spec is “username:password@server” that specifies the roundup submission user’s POP account name, password and server.
On windows, you would set up the command using the windows scheduler.
As a regular job using an IMAP source
To retrieve from an IMAP mailbox, use a cron entry similar to the POP one (substitute /usr/bin for wherever roundup-mailgw is installed):
0,10,20,30,40,50 * * * * /usr/bin/roundup-mailgw /opt/roundup/trackers/support imap <imap_spec>
where imap_spec is “username:password@server” that specifies the roundup submission user’s IMAP account name, password and server. You may optionally include a mailbox to use other than the default INBOX with “imap username:password@server mailbox“.
If you have a secure (ie. HTTPS) IMAP server then you may use imaps in place of imap in the command to use a secure connection.
As with the POP job, on windows, you would set up the command using the windows scheduler.
UNIX Environment Steps
Each tracker ideally should have its own UNIX group, so create a UNIX group (edit /etc/group or your appropriate NIS map if you’re using NIS). To continue with my examples so far, I would create the UNIX group ‘support’, although the name of the UNIX group does not have to be the same as the tracker name. To this ‘support’ group I then add all of the UNIX usernames who will be working with this Roundup tracker. In addition to ‘real’ users, the Roundup email gateway will need to have permissions to this area as well, so add the user your mail service runs as to the group (typically “mail” or “daemon”). The UNIX group might then look like:
support:*:1002:jblaine,samh,geezer,mail
If you intend to use the web interface (as most people do), you should also add the username your web server runs as to the group. My group now looks like this:
support:*:1002:jblaine,samh,geezer,mail,apache
The tracker “db” directory should be chmod’ed g+sw so that the group can write to the database, and any new files created in the database will be owned by the group.
If you’re using the mysql or postgresql backend then you’ll need to ensure that the tracker user has appropriate permissions to create/modify the database. If you’re using roundup.cgi, the apache user needs permissions to modify the database. Alternatively, explicitly specify a database login in rdbms -> user and password in config.ini.
An alternative to the above is to create a new user who has the sole responsibility of running roundup. This user:
- runs the CGI interface daemon
- runs regular polls for email
- runs regular checks (using cron) to ensure the daemon is up
- optionally has no login password so that nobody but the “root” user may actually login and play with the roundup setup.
If you’re using a Linux system (e.g. Fedora Core) with SELinux enabled, you will need to ensure that the db directory has a context that permits the web server to modify and create files. If you’re using the mysql or postgresql backend you may also need to update your policy to allow the web server to access the database socket.
Additional Language Codecs
If you intend to send messages to Roundup that use Chinese, Japanese or Korean encodings the you’ll need to obtain CJKCodecs from http://cjkpython.berlios.de/
Public Tracker Considerations
If you run a public tracker, you will eventually have to think about dealing with spam entered through both the web and mail interfaces.
The customisation documentation has a simple detector that will block a lot of spam attempts. Look for the example “Preventing SPAM”.
Maintenance
Read the separate administration guide for information about how to perform common maintenance tasks with Roundup.
Upgrading
Read the separate upgrading document, which describes the steps needed to upgrade existing tracker trackers for each version of Roundup that is released.
Further Reading
If you intend to use Roundup with anything other than the default templates, if you would like to hack on Roundup, or if you would like implementation details, you should read Customising Roundup.
Running Multiple Trackers
Things to think about before you jump off the deep end and install multiple trackers, which involve additional URLs, user databases, email addresses, databases to back up, etc.
- Do you want a tracker per product you sell/support? You can just add a new property to your issues called Product, and filter by that. See the customisation example adding a new field to the classic schema.
- Do you want to track internal software development issues and customer support issues separately? You can just set up an additional “issue” class called “cust_issues” in the same tracker, mimicing the normal “issue” class, but with different properties. See the customisation example tracking different types of issues.
Platform-Specific Notes
Windows command-line tools
To make the command-line tools accessible in Windows, you need to update the “Path” environment variable in the Registry via a dialog box.
On Windows 2000 and later:
- Press the “Start” button.
- Choose “Settings”
- Choose “Control Panel”
- Choose “System”
- Choose “Advanced”
- Choose “Environmental Variables”
- Add: “<dir>Scripts” to the “Path” environmental variable.
Where <dir> in 7) is the root directory (e.g., C:\Python22\Scripts) of your Python installation.
I understand that in XP, 2) above is not needed as “Control Panel” is directly accessible from “Start”.
I do not believe this is possible to do in previous versions of Windows.
Windows Server
To have the Roundup web server start up when your machine boots up, there are two different methods, the scheduler and installing the service.
1. Using the Windows scheduler
Set up the following in Scheduled Tasks (note, the following is for a cygwin setup):
Run
c:\cygwin\bin\bash.exe -c "roundup-server TheProject=/opt/roundup/trackers/support"
Start In
C:\cygwin\opt\roundup\bin
Schedule
At System Startup
To have the Roundup mail gateway run periodically to poll a POP email address, set up the following in Scheduled Tasks:
Run
c:\cygwin\bin\bash.exe -c "roundup-mailgw /opt/roundup/trackers/support pop roundup:roundup@mail-server"
Start In
C:\cygwin\opt\roundup\bin
Schedule
Every 10 minutes from 5:00AM for 24 hours every day
Stop the task if it runs for 8 minutes
2. Installing the roundup server as a Windows service
This is more Windows oriented and will make the Roundup server run as soon as the PC starts up without any need for a login or such. It will also be available in the normal Windows Administrative Tools.
For this you need first to create a service ini file containing the relevant settings.
It is created if you execute the following command from within the scripts directory (notice the use of backslashes):
roundup-server -S -C <trackersdir>\server.ini -n <servername> -p 8080 -l <trackersdir>\trackerlog.log software=<trackersdir>\Software
where the item <trackersdir> is replaced with the physical directory that hosts all of your trackers. The <servername> item is the name of your roundup server PC, such as w2003srv or similar.
Next open the now created file C:\DATA\roundup\server.ini file (if your <trackersdir> is C:\DATA\roundup). Check the entries for correctness, especially this one:
[trackers] software = C:\DATA\Roundup\Software
(this is an example where the tracker is named software and its home is C:\DATA\Roundup\Software)
Next give the commands that actually installs and starts the service:
roundup-server -C C:\DATA\Roundup\server.ini -c install roundup-server -c start
Finally open the AdministrativeTools/Services applet and locate the Roundup service entry. Open its properties and change it to start automatically instead of manually.
If you are using Apache as the webserver you might want to use it with mod_python instead to serve out Roundup. In that case see the mod_python instructions above for details.
Sendmail smrsh
If you use Sendmail’s smrsh mechanism, you will need to tell smrsh that roundup-mailgw is a valid/trusted mail handler before it will work.
This is usually done via the following 2 steps:
- make a symlink in /etc/smrsh called roundup-mailgw which points to the full path of your actual roundup-mailgw script.
- change your alias to "|roundup-mailgw <tracker_home>"
Linux
Make sure you read the instructions under UNIX environment steps.
Solaris
You’ll need to build Python.
Make sure you read the instructions under UNIX environment steps.
Problems? Testing your Python...
Note
The run_tests.py script is packaged in Roundup’s source distribution - users of the Windows installer, other binary distributions or pre-installed Roundup will need to download the source to use it.
Remember to have a database user ‘rounduptest’ prepared (with password ‘rounduptest’). This user must have at least the rights to create and drop databases. Documentation: details on adding MySQL users, for PostgreSQL you want to call the createuser command with the -d option to allow database creation.
Once you’ve unpacked roundup’s source, run python run_tests.py in the source directory and make sure there are no errors. If there are errors, please let us know!
If the above fails, you may be using the wrong version of python. Try python2 run_tests.py or python2.X run_tests.py where X is in the set 3,4,5,6 depending on the version(s) of python installed. If that works, you will need to substitute python2 or python2.X for python in all further commands you use in relation to Roundup – from installation and scripts.


--- layout: default title: Contact summary: Thank you for contacting Form.io! ---
We appreciate your interest and look forward to hearing more about your specific requirements. Please let us know how we can help and we will get back with you as soon as possible!


{{detail.nleReason}}
{{detail.nleDesc}}
{{detail.lunchText}}
NO LUNCH ORDERED
{{detail.addltxt}}
{{detail.extcare}}


25°
CLOUDY
New York, New York
1st Jan
Inspired by: https://codepen.io/nerios/full/jWjmby/. Implemented using FlexBox.


Avaliable Protocol Templates
Custom Protocol Templates
all built-in protocol templates refer to the device service released by edgex, such as device-virtual, device-rest, device-mqtt, device-modbus
this device service doesn't need to set protocol properties


|
XV6
|
#include <mmu.h>
Public Attributes | |
| uint | link |
| uint | esp0 |
| ushort | ss0 |
| ushort | padding1 |
| uint * | esp1 |
| ushort | ss1 |
| ushort | padding2 |
| uint * | esp2 |
| ushort | ss2 |
| ushort | padding3 |
| void * | cr3 |
| uint * | eip |
| uint | eflags |
| uint | eax |
| uint | ecx |
| uint | edx |
| uint | ebx |
| uint * | esp |
| uint * | ebp |
| uint | esi |
| uint | edi |
| ushort | es |
| ushort | padding4 |
| ushort | cs |
| ushort | padding5 |
| ushort | ss |
| ushort | padding6 |
| ushort | ds |
| ushort | padding7 |
| ushort | fs |
| ushort | padding8 |
| ushort | gs |
| ushort | padding9 |
| ushort | ldt |
| ushort | padding10 |
| ushort | t |
| ushort | iomb |
| void* taskstate::cr3 |
| ushort taskstate::cs |
| ushort taskstate::ds |
| uint taskstate::eax |
| uint* taskstate::ebp |
| uint taskstate::ebx |
| uint taskstate::ecx |
| uint taskstate::edi |
| uint taskstate::edx |
| uint taskstate::eflags |
| uint* taskstate::eip |
| ushort taskstate::es |
| uint taskstate::esi |
| uint* taskstate::esp |
| uint taskstate::esp0 |
| uint* taskstate::esp1 |
| uint* taskstate::esp2 |
| ushort taskstate::fs |
| ushort taskstate::gs |
| ushort taskstate::iomb |
| ushort taskstate::ldt |
| uint taskstate::link |
| ushort taskstate::padding1 |
| ushort taskstate::padding10 |
| ushort taskstate::padding2 |
| ushort taskstate::padding3 |
| ushort taskstate::padding4 |
| ushort taskstate::padding5 |
| ushort taskstate::padding6 |
| ushort taskstate::padding7 |
| ushort taskstate::padding8 |
| ushort taskstate::padding9 |
| ushort taskstate::ss |
| ushort taskstate::ss0 |
| ushort taskstate::ss1 |
| ushort taskstate::ss2 |
| ushort taskstate::t |


It’s widely known that it’s illegal to update UI components directly from threads other than main thread in android. This a rule in Android world, we can’t violate it. But, so many situations we need update UI when we finish something in separated thread. This is a basic problem, it will refer more important concepts related thread.
Looper
-
Class used to run a message loop for a thread.
-
The
Looper
class maintains a synchronizedMessageQueue
, which contains a list messages.It reads and processes items from aMessageQueue
. -
Threads by default do not have a message loop associated with them, to create one, call
prepare()
in the thread that is to run the loop, and thenloop()
to have it process messages until the loop is stopped. -
It’s associated with the thread within which the
Looper
is created. This association is kept forever and can’t be broken nor changed. Also note that a thread can’t be associated with more than one Looper. -
The
Looper
class is usually used in conjunction with aHandlerThread
(a subclass of Thread). -
There are 2 methods to terminate a Looper:
-
Looper.quit()
-
Looper.quitSafely()
-
-
Most interaction with a message loop is through the
Handler
class.
Handler
-
Allow you send and process
Message
andRunnable
objects associated with a thread’sMessageQueue
. -
Each
Handler
instance is associated with a single thread and that thread’s message queue. Multiple Handler instances can be bound to the same thread. -
It is bound to the thread / message queue of the thread that is creating it.
-
There are two main uses for a Handler:
-
To schedule messages and runnables to be executed as some point in the future.
-
To enqueue an action to be performed on a different thread than your own.
-
Message
-
Defines a message containing a description and arbitrary data object that can be sent to a Handler. This object contains two extra int fields and an extra object field that allow you to not do allocations in many cases.
-
While the constructor of Message is public, the best way to get one of these is to call
Message.obtain()
or one of theHandler.obtainMessage()
methods, which will pull them from a pool of recycled objects.
HandlerThread
-
HandlerThread
is a handy class for starting a new thread that has a Looper.prepare(), Looper. -
You generally need a thread attached with a Looper when you want sequential execution of tasks without race conditions and keep a thread alive even after a particular task is completed so that it can be reused so that you don’t have to create new thread instances.
Once a HandlerThread is started, it sets up queuing through a Looper and MessageQueue and waits for incoming messages to process:
HandlerThread handlerThread = new HandlerThread("HandlerThread");
handlerThread.start();
// Create a handler attached to the HandlerThread's Looper
mHandler = new Handler(handlerThread.getLooper()) {
@Override
public void handleMessage(Message msg) {
// Process messages here
}
};
// Now send messages using mHandler.sendMessage()


|
1 |
2 |
3
- 5pm:
Delphi Development Webinar
|
4 |
5
|
| 6 |
7
- 5pm:
Delphi RESTful Services Class
|
8
-
6:30pm: John's 18th birthday
|
9 |
10
|
11 |
12 |
| 13 |
14
- 5pm:
Participate Delphi Coding challenge
|
15 |
16 |
17
- 5pm:
Artifical Intelligence with Delphi
|
18 |
19 |
| 20 |
21
- 5pm:
Delphi Machine Learning Webinar
|
22
|
23 |
24
- 4pm:
Delphi Database Development Class
|
25
-
11:59pm: Deadline to apply for summer internship
|
26
|
| 27
|
28
- 5pm:
Delphi Certification Exam Preparation
|
29 |
30
- First
day of fall semester
|
31
|
|


User Groups
Some community members manage local Godot user groups. Anyone is welcome to join or create a local community!
Community map
This map lists all physical venues and online community hosted by community members. Scroll down to view a list of online communities.
Physical community Online community
{% for country in site.data.communities %}{{ country[0] }}
-
{% for community in country[1] %}
- {{community.name }} ({% for link in community.links %}{{ link.title }}{% unless forloop.last %}, {% endunless %}{% endfor %}) {% endfor%}
If you run a local community and would like to have it listed here, please send an email to webmaster at godotengine · org.


This was the tribute to Sergio Ramos
by BeSoccerWhen the players of the Spanish national team came on to the pitch to face Malta, the stands at the Ramon de Carranza stadium welcomed Sergio Ramos with a tribute. The photograph above was taken previously and the Federation revealed the 'making of' it.
He is loved by many and also hated by some, but what is unquestionable is that he is vital for the Spanish national team, as well as Real Madrid, where he has spent the most part of his career and where he has reaped almost all of his triumphs.
In the last game that Robert Moreno's team had to play, a tribute was organized to his past and present.  In this one the defender could be seen with several of his European titles.
When the centre-back left the pitch after being substituted, a clear tactic from his coach so that he could receive a standing ovation, the fans got up to thank him for his good work. The Sevillian has his home very close to Cadiz and has already boasted a lot about Andalucia.
But all great things are made with time and effort and the Federation wanted to bring to light how the image, that went around the stadium, was actually made. He had to stand in front of the photographer and do several different poses.
Featured links


The ExpressZip application is open-source software. The source code for the application is stored in the following location:
<Installation Directory>\ImageServer\docs\samples\ExpressZip
You are free to modify and redistribute the software subject to the conditions of the Apache 2.0 license. A copy of the license is included with the source code. Alternatively, you can view the license online at the following URL:


Widgets
- Components
- Widgets
Happy Customers +24%
Calendar
-
10Meeting with Team09:30 AM4
-
12Dentist11:00 AM
-
15Brandon Birthday07:00 PM2
-
21Flight Paris10:00 PM30
Messages Box
New Meeting
-
Brandon Smith
-
Louis Henry
-
Nathan Hunter
-
Megan Duncan
-
Beverly Oliver
-
Lisa Garett
-
Peter Collins
-
Michael Bradley
Files
Hit Rate
Happy Customers
Meeting successfully created
Brandon wrote Hi David, what's up?
Hi Brandon, fine and you?
I'm working on the next update of Elisyam
Brandon wrote I can't wait to see
I'm almost done
I updated the server tonight
Didn't you have any problems?
No!
Great!
See you later!
-
Notifications Email
-
Notifications Sound
-
Chat Message Sound


Orc
Some info about Orcs.
Look at that -- more info here too.
Breton
Some info about Bretons.
Look at that -- more info here too.
Imperial
Some info about Imperials.
Look at that -- more info here too.
Note: Only has 40 (instead of 45) skill bonus points.
Redguard
Some info about Redguards.
Look at that -- more info here too.
Nord
Some info about Nords.
Look at that -- more info here too.
High Elf
Some info about High Elves.
Look at that -- more info here too.
Dark Elf
Some info about Dark Elves.
Look at that -- more info here too.
Wood Elf
Some info about Wood Elves.
Look at that -- more info here too.
Argonian
Some info about Argonians.
Look at that -- more info here too.
Khajiit
Some info about Khajiits.
Look at that -- more info here too.