text:
Pioneers History Project
DMACC > DMACC Pioneers > Pioneers History Project > West Des Moines Campus
Pioneers History HomeCurrently selected
The Beginning Story
DMACC Board of Trustees
Pioneers Recollections
Campus & Center Histories
Instructional Program Histories
Special Topic Papers
Departmental Histories
Academic Histories
Pioneers Home
Located at 5959 Grand Avenue in West Des Moines, Iowa, the DMACC West Des Moines Campus was designed with the varying needs of today's students in mind. The campus environment is one that brings people and technology together with the purpose of creating effective learning solutions.
Most jobs in the future will require education beyond high school. West Campus offers two-year degrees in arts and science and technical education. DMACC West Campus technology programs and certificates will equip students with the technology and knowledge they need to succeed in the ever-changing workplace while arts and science (AA and AS) degrees prepare students for transfer to four-year institutions.
DMACC West Campus has partnered with a number of technology-solution providers who rank among the best in their respective areas of expertise. Through these partnerships, the campus is able to provide not only the latest in technology, but also is able to stay current and even ahead of the rapid changes occurring every day in technology. For some partners, the campus serves as a regional training site for technology solutions as they become available.
Before West Campus
The enrollment base at Valley High School had an impact on the startup enrollment at the West Campus. West Des Moines Valley High evening college credit courses got started as a result of several staff at DMACC. Simpson College offered classes and the West Des Moines Valley Adult Education Director wanted DMACC to supplement Simpson's offerings.
Winston Black was originally assigned to West Des Moines Valley. Because of his other responsibilities, it seemed a good fit for the West Des Moines Valley evening classes to become a part of the Off Campus Credit function. The Off Campus Credit office was already offering courses at Ames, Perry, Newton, Indianola, and other schools, so the addition of West Des Moines Valley was a simple addition.
The Off Campus Credit program was able to expand for the following reasons:
DMACC offered Microsoft products such as Word and Access to the DMACC staff, applying those products within the design for Off Campus Credit growth. The College had an excellent resource person, Rod Bergren, who was always available to help design databases and reports. A team designed Access data bases and reports for part-time faculty to acquire text books and maintain schedules.
The part-time faculty data base enabled DMACC to manage a sizable listing of potential part-time faculty. As DMACC expanded to West Des Moines Valley, staff was available to teach the courses.
The textbook database allowed DMACC to order complimentary text books for all new faculty, and for existing faculty who needed a new edition. The text books for West Des Moines Valley were sold through the Urban Campus.
Scheduling was simplified. West Des Moines also had a huge Adult Education program which had to be merged with DMACC'S offerings.
The transition for West Des Moines was a little "bumpy" because the buildings were not completed on time. The plan was to open the West Campus book store early so that the DMACC students at Valley could become acquainted with the new facility while attending Valley. The problem occurred when the bookstore did not open on time and the books had to be delivered to the Valley High School and sold to individual students.
West Lakes Center for Professional Development
DMACC's West Lakes Center for Professional Development operated at 6000 Westtown Parkway from 1997 through 2000. The space consisted of two large computer labs and three large classrooms.
Center Director MD Isley was assisted by an Advisory Board made up of business and information technology professionals from key companies in the West Des Moines area and offered a variety of continuing education courses, credit courses and professional training programs that were designed to serve the employees and residents working or living in the area. The majority of courses were information technology related.
The Center was heavily utilized during the years of 1998 and 1999 to provide accelerated COBOL programming education to area employers and employees in preparation for the looming "Y2K" computer programming crisis that never came to fruition.
Serving as an "early" presence in West Des Moines, the Center provided support and planning space for the developing DMACC West Campus.
Dr. Joseph Borgen, President of DMACC and Dr. Kim Linduska, Executive Vice President of Academic Affairs, wanted the campus to offer something different to DMACC students. Dr. Anthony Paustian was employed two years before the campus opened with a background in marketing, technology, leadership and education. Soon after his employment, Dr. Paustian began to assemble a team to plan for a unique campus.
The West Campus team conceived of the campus as an "educational mall" with the purpose of creating a dynamic, stimulating, interactive learning experience—a 24/7 learning community that attracted and retained students. The designers believed that the campus should serve students whose changing needs the campus would anticipate into the new millennium.
Designing the West Campus
Once technology was fully implemented and tested at the West Campus, the plan was to conduct follow-up analysis to determine whether or not the outcomes were positive. If the technology was determined to be positive (help DMACC be strategically competitive), an administrative plan for training, implementation, and analysis would be created and submitted to central administration for approval.
The Synerg.e® Center
The concept of synergy formed the basis for the Synerg.e® Center and the West Campus. Synergy is defined as when the "whole is greater than the sum of its parts." By partnering with a number of local and regional companies, worldwide suppliers of new and emerging technologies, and academic leaders at all levels, the result was intended to be something new and exciting…something that changed people's perceptions about the context of education and training.
Initial programs at West Campus focused on the areas of Telecommunications/Telephony, Programming, Software Applications, Computer Networking, Internet 2 Technologies (including E-Commerce), Business Administration, and Liberal Arts. The primary intent was to reach and serve new students who previously had not attended DMACC.
Phase I of the West Campus was to consist of the creation of an approximately 50,000 square foot building that included a 128-seat theater style auditorium, four flexible lab rooms, 11 dedicated labs, a large commons area, a contemporary coffee shop, traditional administrative offices, and rooms dedicated to corporate training (for Synerg.e® partners and the public). The facility was designed to accommodate 1,000 students and customers at any one time. Plans were in place to expand the institution to approximately double the size of the initial phase within the first 8 to 10 years, following completion of the first phase.
Preparing to Open the Campus—a timeline
August 2000 - Jay Nickelson was hired as a Telecommunications Instructor.
January 2001 - Charles Pytleski (Networking Instructor), Chad Dittmer (Programming and Internet Technology Instructor), and Galen Briggs (Telecommunications Instructor) were hired.
February 2001 - Discussions begin pertaining to the telephone and data network infrastructure for West Campus.
March 2001 - Order for a new phone system using Siemens Rolm remote for West Campus placed on hold--began exploring alternatives to using the ICN for telecommunications services at the West Campus.
March 2001 - Several meetings took place regarding data, telephone, and desktop.
April 2001 - Nortel Networks, Siemens/Norstan, Marconi, and Cisco were approached to bid the new campus infrastructure. A converged voice and data network was desired.
May 2001 - A voice-over IP network (converged) would be installed.
Summer 2001 -The faculty of the telecommunications program wrote a textbook for their first-term students to be used on handheld Pocket PCs. Chad had completed months of research and generally tech playing with handhelds and wireless networks. Telecommunications students would receive an iPaq PocketPC and utilize it for their classes.
October 2001 -Moved in. Compaq PCs had no floppy or CD drives--a step toward thin client. All the monitors were flat screens, and the majority of classrooms had projectors, white boards, and Smart carts. Some classrooms had Smart boards. Instructors had access to VCRs and overhead projectors. Shortly after moving in, West Campus had WiFi. The iPaq handheld initiative was started.
Summer 2003 - Cisco multipoint video was installed.
Winter 2006 - Fiber connection to West Des Moines started.
Although classes officially began in August of 2001, the DMACC West Campus opened its doors for classes on October 1, 2001. The initial focus of the campus class offerings was to concentrate on computer science/data processing, electronics and telecommunications. Liberal arts class offerings were very limited as a result. Over time, demand for liberal arts and business administration offerings grew, and these programs now comprise the majority of West Campus offerings. Due to the bursting of the Dot Com bubble in 2002 and a subsequent decrease in demand for technology courses, adjustments were made to the faculty with the elimination of courses and positions. In the years since, technology programming at West has dramatically increased along with a matching increase in course offerings and faculty.
Celebrate! Innovation Exhibition
Innovation has always been a core value of the West Campus since its beginning. Created in 2008 and designed to inspire students through an interactive environment, the Celebrate! Innovation Exhibition stresses the importance or creative thinking by surrounding students, staff and faculty with numerous examples of innovative thinking that have formed the narrative of American imagination. Through the use of tangible exhibits and artifacts, video, and larger-than-life photos and images, the campus shows how a diverse group of inspired people from varying backgrounds chose to actively contribute to society by adding value to everyday life. These visual stimulators have been incorporated into classroom instruction and student assignments to provide a unique learning experience.
The Celebrate! Innovation Exhibition was listed by the state of Iowa's department of tourism in 2012 as a destination spot for visitors, and hundreds of people from the community come to campus each year to visit the exhibition.
ciWeek (Celebrate! Innovation Week)
In 2010, Celebrate! Innovation Week (ciWeek) was created and now occurs annually during the first week of March. The week provides students and the community opportunities to engage with people (some famous, all inspired) who have dreamed, created, and accomplished. With more than 14 keynote presentations from people all over the nation and globe, it's a thought-provoking and interactive week, where students listen, absorb, and engage without the stress of the regular class routine (classes are suspended for two days to allow students' undivided attention). The week is also simulcast in HD to all DMACC locations, so students across the entire district can both participate and engage as well.


text:
Alveograph
wheat flour Alveograph
The early 20th century was a time of extensive research to better understand—and better control—the properties of flours used to produce quality breads. In 1920, Marcel Chopin contributed to this effort and filed a patent describing the Extensometer (French patent no. 525.986). The Extensometer simulates the expansion of a cell in dough, which it reproduces by expanding a previously prepared dough disk under precise conditions. The invention was supplemented in 1937 (French patent no. 925-017), when Marcel Chopin himself added an extractor kneader to his invention. The Alveograph was born!
What is an Alveograph anyway?
The Alveograph is an apparatus for measuring the properties of wheat flours based on the observation of the deformation of a dough bubble. An Alveograph is always comprised of two inseparable parts: the kneader and the Alveograph itself.
Despite being less spectacular and photogenic, the kneader-extractor is undoubtedly the most important part of the assembly. Successful kneading accounts for 80% of a successful test. Technically, the kneader is designed to perform optimal kneading of a 250 gram flour mixture with 50% added water (15% H2O base). This brings us to the constant hydration test. The sequence involves one minute of mechanical kneading followed by one minute of manual kneading and then an additional six minutes of mechanical kneading. The minute of manual kneading is crucial because it ensures that all the flour undergoes hydration and kneading and that there are no remaining areas in the mixing bowl with unhydrated flour. At the end of this period, the direction of rotation of the mixer (the kneading element) is reversed in order to push the dough through a calibrated window used to determine the thickness of the piece of dough. It is likely this part where Marcel Chopin's inventive genius was the most strongly exhibited. By giving the mixer its particular curved shape, it is possible not only to push the dough out of the kneader in a straight line, but also to align the protein chains to form a homogeneous gluten network. Many attempts have been made to work with doughs from other kneaders, but none have been able to achieve the levels of repeatability and reproducibility (see "Estimating a method's accuracy") achieved with the original kneader-extractor.
As they are extracted, five pieces of dough are cut, rolled, cut into disks, and placed in a resting chamber. This phase, which is carried out under specific temperature and humidity conditions, is also very important for the success of the test. It is during this period that the protein chains finish their structuring.
The next step consists of placing the piece of dough onto the Alveograph and pressing it at a set speed to give it a defined thickness. The piece of dough is then inflated with a calibrated flow of air while the system records the change in pressure inside the bubble over time, until the film of dough breaks. This operation is repeated on the five pieces of dough, and the five measurements are averaged to obtain the final result.
The Alveograph's curve shows the pressure as a function of time. What the curve shows is closely comparable to what happens when we try to inflate a balloon.
At first, the piece of dough resists deformation. Because air is continuously added and the volume receiving this air is small, the internal pressure increases. The more the dough resists, the greater the pressure. On the curve, the maximum value "P" corresponds to the dough's tenacity (resistance). To a baker, this is known as the dough's "consistency."
As with a balloon, once the resistance is exceeded (due to the addition of air), the piece of dough will start to form a bubble. In the case of dough, the bubble's volume increases very rapidly, and its internal pressure drops, causing the curve to start descending. This will happen more quickly if the dough is not very elastic. The rate in decrease between the "P" value and the pressure value at a particular point on the curve is used to measure the "elasticity index." This elasticity represents the dough's capacity to retract after deformation, which explains why some pizza doughs have an unfortunate tendency to be the wrong size.
The bubble continues to deform until the dough film is so thin that it breaks, exactly like a balloon bursts if it is over-inflated. The time elapsed before reaching this breaking point is also expressed as a distance and represents the "G" or "L" both of which correspond to the dough's extensibility. For bakers, this concept expresses the dough's capacity to stretch.
Other parameters are also calculated, such as "W" for the total area under the curve, also known as the "baking strength." We can also calculate the P/L ratio to compare tenacity versus extensibility.
All of these properties depend on the quality of the proteins (which have varying levels of tenacity, extensibility, and elasticity), the damaged starch, and the ash content (which increases tenacity), along with the various added ingredients.
Today, the Alveograph is an internationally recognized standard method (see "Standardization"). It is the preferred tool of millers, who use it to choose and mix their wheats, inspect and improve flours, and comply with specifications. It is also widely used in the secondary processing industry among ingredient suppliers, breeders, research institutes, and others.
Unlike some traditional ideas, the Alveograph is by no means limited to a particular type of wheat or flour. It is equally effective in processing hard and soft wheats (there is even a protocol for durum wheat) (see "Hardness") and flours for cookies, crackers, all types of bread (baguettes, sandwich breads, and flatbreads), pasta, and pizza.
The Alveograph continues to evolve today through new protocols (e.g., with adapted hydration) and completely open testing conditions (speed, time, and temperature), allowing it to adapt to modern challenges.
Constantly evolving in line with its designer, the Alveograph today is recognized both for quality control and as the go-to instrument for developing new products.

redpajama_set_name: RedPajamaCommonCrawl


Beautifully custom upgraded open kitchen w/breakfast bar&nook, cabinet pantry&desk.Granite counters&tile back splash.Stainless sink&appliances w/5 burner Gas cook top, B.I. microwave, double oven&dishwasher.Nice master suite w/W.I.closet, updated master bath w/dual vanity&upgraded lighting&faucets.Upgraded 18 in tile floors in most living areas& carpeted bedrooms, multiple lighted ceiling fans, 2in. white blinds, upgraded 5in baseboards≠wer HVAC. Outside beautifully landscaped w/large freeform patio.


Herbs, suffrutices, shrubs or small trees. Leaves opposite. Inflorescence terminal but appearing lateral, 1-2-flowered. Flowers actinomorphic. Corolla salver-shaped; lobes overlapping to the left. Ovary of 2 carpels; disk composed of 2 glands. Fruit composed of 2 follicles (although one may abort); follicles cylindric, acute. Seeds oblong, black; testa rugose.
Hyde, M.A., Wursten, B.T., Ballings, P. & Coates Palgrave, M. (2019). Flora of Zimbabwe: Genus page: Acokanthera.


Professor John Conrad Jaeger, Emeritus Professor of Geophysics in the Australian National University, died recently after a long illness, aged 71 years. Born in Sydney on 30 July 1907, he was educated at the Universities of Sydney and Cambridge.
After a distinguished academic career, Professor Jaeger was invited to set up a Department of Geophysics in the Research School of Physical Sciences at ANU. Under the direction of Professor Jaeger the Department of Geophysics (now the Research School of Earth Sciences) developed rapidly into one of the leading research groups of its kind in the world.
Professor Jaeger had a most distinguished career as a mathematician, physicist and geophysicist. He was a man of great scholastic achievement; he published more than 130 articles in the scientific literature, and was author or co-author of six books in applied mathematics and rock mechanics, which are regarded as standard works in their field. In 1954 Professor Jaeger was elected a Fellow of the Australian Academy of Science. He was its Vice-President during 1958-1959, and in 1970 he was elected a Fellow of the Royal Society (London).
'Jaeger, John Conrad (1907–1979)', Obituaries Australia, National Centre of Biography, Australian National University, http://oa.anu.edu.au/obituary/jaeger-john-conrad-523/text524, accessed 23 April 2019.


Our Vintage Romance chocolate squares are made in the UK from smooth milk chocolate coverered in silver or gold foil and banded in white or ivory. Why not place in favour boxes, organza bags or scatter on the tables to give your guests a delicious and edible table confetti, these chocolates really do make the perfect wedding sweets and favour fillers.
They also match the rest of the Vintage Romance range.
Approx Size: 35mm x 35mm x 5mm weight 5gms.


text:
Home › News › News Releases › FFRF denounces religious staff event in Miss. school district
FFRF denounces religious staff event in Miss. school district
The Freedom From Religion Foundation is urging a Mississippi public school district to refrain from unconstitutional religious promotion after district staff members were subjected to proselytization during a mandatory event.
A district community member reported to FFRF, a national state/church watchdog, that Lee County Schools hosted a professional development event at The Orchard church on July 31. This "convocation" was reportedly a required event for all district employees. District administrators invited Pastor Bryan Collier, a Methodist minister, to deliver the keynote address during the event. Collier apparently also delivered an address at last year's convocation, and in both instances has used the opportunity to promote his personal religious beliefs to those assembled.
FFRF Associate Counsel Sam Grover wrote to the district urging it to cease unconstitutionally hosting events at churches and to ensure in the future that speakers at district-sponsored events do not promote their personal religious beliefs to a captive audience of public school educators.
"No teacher should have to listen to a preacher's sermon delivered from a church pulpit in order to teach in Lee County Schools," Grover writes. "Lee County Schools should not require any of its employees to enter a church in order to attend professional development events and certainly should not incorporate religious remarks into those events."
Not only does this religious ceremony amount to governmental endorsement of religion, it is also exclusionary of the minority religious and nonreligious staff members whose religious beliefs do not align with the brand of Christianity being promoted by the school.
"Teachers that choose not to attend not only risk losing their teaching license, but also risk damaging their reputation among faculty members and administrators," Grover added. "Forcing minority religious and nonreligious employees to make such a choice is inappropriate and undermines the very purpose of hosting district-wide community-building events."
"This religious promotion is not only problematic from a constitutional perspective, but it is also a harmful violation of staff's freedom of conscience," comments FFRF Co-President Annie Laurie Gaylor. "Including exclusionary and divisive religious rhetoric in official district events is a detriment to the entire school community."
The Freedom From Religion Foundation is a national nonprofit organization with more than 30,000 members across the country and in every state, including in Mississippi. FFRF's purposes are to protect the constitutional principle of separation between church and state, and to educate the public on matters relating to nontheism.


Pit your peach, and dice it, skin on.
Core your apples, and dice them small, skin on.
Slice your jalapeño in half. Wear gloves if you are sensitive to capsaicin. Remove the seeds, and dice finely.
Combine in your medium saute pan with 2 Tbsp. of sugar, and cook down. If you want it spicier, add in half of the seeds.
Once everything will easily mush, quickly run it through your blender, with a bit of water (just enough to get things moving).
Then return to the pan with one more Tbsp. sugar, and cook through.
Makes 12 servings of 1 Tbsp. This is about 8 servings. It makes just a bit more than a cup.


text:
Deathgarden : BLOODHARVEST
THIS GAME HAS BEEN INCLUDED IN THE FOLLOWING SPECIALS
Dead by Daylight + Deathgarden
ENTER A SPECTACULAR DYSTOPIAN BLOOD SPORT
Set in the near future, DEATHGARDEN™ revolves around a spectacular real blood sport that became the most popular entertainment on the planet. Players choose to team up as one of the five agile Runners or to embody the Hunter, a heavily armed competitor whose mission is to kill the Runners, preventing them from escaping The Garden.
Deathgarden pits individual cunning against strategy and teamwork–a lone but lethal Hunter against a team of dextrous Runners. Both sides must prove their skills and take control of the procedurally-generated Garden.
Asymmetric Confrontation
Power vs Agility
: In this fast-paced action title, one powerful Hunter must hunt down five agile Runners, who seek to complete an objective and escape the Garden.
A Procedurally Generated Garden
: Each map is procedurally generated within the 'Garden', a nano-printed environment in which Runners willingly enter to compete against the powerful Hunter. Each match boasts a different 'Garden' layout, which forces both sides to adapt their strategy to the environment and creates exhilarating, memorable moments.
Gameplay First
: Deathgarden embraces the "no grind" or "no pay to win" philosophy. New gameplay content (Gardens, Weapons, Abilities & Perks, etc.) will be instantly available to all players upon the content's release.
Windows 7, 8, 8.1, x64
Intel Core i5-2500K or AMD FX-8120 Eight-Core
Nvidia GeForce GTX 770 or AMD Radeon HD 7970 / R9 280 X
Broadband Internet connection
20 GB available space
Set in the near future, DEATHGARDEN™ revolves around a spectacular real blood sport that became the most popular entertainment on the planet. Players choose to team up as one of the five agile Runners or to embody the Hunter, a heavily armed competitor whose mission is to kill the Runners.
Publisher: Behaviour Digital Inc.


text:
Tribes in News
Kanikkaran Tribe
ByLotusArise January 3, 2023 January 3, 2023
Kanikkaran are a tribal community found in the southern parts of Kerala and Tamil Nadu states.
According to 2011 census there are 24,000 Kanikkars, dwelling in forests or near to forests in Thiruvananthapuram and Kollam in Kerala, and Kanyakumari and Tirunelveli districts in Tamil Nadu.
Though they cultivate everything and make agriculture as the main profession, they have a special liking for fishing and hunting.
Kaanikkar Nritham is a form of group dance performed as a rural offering.
The Kanikkars are semi-nomadic, living in temporary huts of bamboo and reeds. These are generally situated on hillsides.
Previously they practiced slash-and-burn cultivation, but this was banned in the late 19th century.
The community also collects minor forest produce, especially honey.
The Kanikkars climb ropes at the base of cliffs where nests are located, and collect honey and put it in baskets.
Q1. Which of the following statements are correct regarding Kanikkaran tribe?
Kanikkaran are a tribal community found in Kerala and Tamil Nadu.
They dwell in the forests of Nilgiri ranges in Kerala and Tamil Nadu.
Which of the following statements are correct?
b. 1 and 2 only
c. 1 and 3 only
d. 1, 2 and 3
Answer: c. 1 and 3 only


MILWAUKEE--(BUSINESS WIRE)--Aug. 20, 2018-- The Marcus Corporation (NYSE:MCS), today announced the appointment of Douglas A. Neis as executive vice president of The Marcus Corporation. He will also continue to serve as chief financial officer and treasurer.
In addition to his leadership and achievements at The Marcus Corporation, Neis was honored as CFO of the Year by the Milwaukee Business Journalin 2011. He holds a bachelor's degree in accounting from Marquette University.


Must be in unlimited manner and collect the map pieces from your UC1 bosses that seem at some points in the sport With this trouble. You should defeat the bosses with the fury Strengthen or he wont fall the map piece.
One particular Piece Treasure Cruise Hack is our new up-to-date variety of the preoccupation and goes hand in hand with the many tricks you need to even further your delight and overpower. The hack gadget can accommodate you limitless sources for that redirection to no close, As an illustration, large beli and gems. The study course during which the hack gadget will work will make this hack system to generally be the ideal because it obliges no download.
I obtain myself logging a number of hours of play, everyday, and It truly is nonetheless equally as entertaining as After i started out. The quest for more figures and leveling them up keeps me hooked.
Employing pure talent to demolish their opponent are classified as the Procedure models, full of fan-favorites and one particular of the present strongest shades out in the intervening time. It's also crucial to point out that Technique units have a number of units which might be viewed as Powerful.
Strategize and choose your favorite A single Piece people, regardless of whether They can be mates or foes. Form combos and offer substantial problems as you use your characters distinctive Particular abilities. Re-enact the thrilling showdowns from the first story of One Piece.
To be a Just one Piece enthusiast, It can be fun to relive the Tale. Sport Participate in is pleasurable and keeps it attention-grabbing with new material. I'm addicted and would advise. Only downside is You cannot put this over a SD card since it does acquire up lots of Area over the cellular phone.


text:
ICTA > Publications > What is wrong with evidence based policy, and how can it be improved?
Saltelli A., Giampietro M. "What is wrong with evidence based policy, and how can it be improved?". Futures. 2017
The present crisis of science's governance, affecting science's reproducibility, scientific peer review and science's integrity, offers a chance to reconsider evidence based policy as it is being practiced at present.
Current evidence based policy exercises entail forms of quantification – often in the form of risk analysis or cost benefit analyses – which aim to optimize one among a set of policy options corresponding to a generally single framing of the issue under consideration. More cogently the deepening of the analysis corresponding to a single view of what the problem is has the effect of distracting from what could be alternative readings. When using evidence based policy those alternative frames become a kind of 'uncomfortable knowledge' which is de facto removed from the policy discourse. All the more so when the analysis is supported by extensive mathematical modelling.
Thus evidence based policy may result in a dramatic simplification of the available perceptions, in flawed policy prescriptions and in the neglect of other relevant world views of legitimate stakeholders. This use of scientific method ultimately generates – rather than resolving – controversies and erodes the institutional trust of the involved actors.
We suggest an alternative approach – which we term quantitative story-telling – which encourages a major effort in the pre-analytic, pre-quantitative phase of the analysis as to map a socially robust universe of possible frames, which represent different lenses through which to perceive what the problem is. This is followed by an analysis where the emphasis in not on confirmatory checks or system optimization but – the opposite – on an attempt to refute the frames if these violate constraints of feasibility (compatibility with processes outside human control); viability (compatibility with processes under human control), and desirability (compatibility with a plurality of normative considerations relevant to the system's actors).
Andrea Saltelli, Mario Giampietro
http://dx.doi.org/10.1016/j.futures.2016.11.012


text:
Press release | 12 Jan, 2023
IUCN welcomes appointment of Razan Al Mubarak as UN Climate Change High-Level…
Gland, Switzerland, 12 January 2023 (IUCN) - The International Union for Conservation of Nature (IUCN) today welcomed the news that its President, Razan Al Mubarak, has been appointed as UN Climate…
IUCN Statement | 20 Nov, 2022
IUCN expresses concern over slow progress at COP27 while welcoming recognition…
As COP27 closed today, IUCN, the International Union for Conservation of Nature, expressed its concern over the slow progress in tackling the climate crisis. At the same time, IUCN welcomed the clear…


Never underestimate the power of innovative graphics and design choices to further your business objectives. The most successful companies harness effective visuals to influence how people think and feel about their brand. Bold and creative signs, murals, and wraps get people talking. After attending an event or visiting a space, unique visuals will stick in their minds, building positive associations for weeks, months, or even years to come.
As one of the top adhesive vinyl printing companies in New York, we have the pleasure of helping countless companies and organizations enhance their spaces and events. Here are just a few of our favorite projects from the past year!
ExtremeReach, a full-service video advertising company, asked us to make their event space more dynamic and interesting. We designed and installed vinyl walls graphics throughout the venue, immersing attendees in their brand no matter where they were. A large standing logo that we constructed out of dense foam also served as a memorable feature for the event's participants.
We were overjoyed to once again produce all the graphics for AdExchanger's Programmatic I/O event, which took place at the Grand Hyatt hotel in Midtown this year. Attendees of the award-winning events and media company's conference — the largest event focused on programmatic media and marketing in the world — saw our striking sign as they entered the venue's lobby. We created the sign with acrylic dimensional lettering, PVC, LED lights, and aluminum railing, all of which combined to great effect.
Our adhesive vinyl wall mural for the AIA gave us a tremendous opportunity to flex our creative muscles. We installed the mural in an exhibit featuring talented artists and architects from all over the world.
Toptal — a remarkably innovative company that provides freelance designers, finance experts, and software engineers to other companies — needed an innovative solution for an event in NYC. They wanted to prominently display their logo without sacrificing floor space. To accommodate their wishes, we used a CNC router to cut their logo from a dense foam, creating a self-standing 3D logo that added a new dimension to their event graphics. The talent recruiting company also wanted to put their own twist on the standard step and repeat photo wall. By designing and producing custom dimensional logos for their sponsors, we helped them create a one-of-a-kind experience.
Our recent work in John F. Kennedy International Airport serves as a prime example of inventive advertising. We installed adhesive vinyl wraps on construction barricades, turning otherwise bland and unused space into a vehicle to help our client spread brand awareness. Additionally, the airport asked us to help make their food court area more dynamic. With vinyl wraps covered in fruit patterns and new acrylic dimensional lettering for their sign, we made their food court a more welcoming and enticing place to dine.
This third-party vendor risk management platform wanted to make their office more vibrant and exciting. This project highlights the power of brand-focused graphics to create a unified, immersive environment that helps spaces come alive. By installing adhesive vinyl graphics depicting their logo and company values, we helped them infuse their office with more company spirit.
We take great pride in our ability to create ingenious visual solutions across a wide range of media. Need the services of a cutting-edge book company in Manhattan? Want vivid, eye-catching graphics for an event in San Francisco? We can provide. Call us at 212-571-7019 to learn more.


We would like to personally welcome you to join us, our winemaking and vineyard team, and the rest of the extended J. Lohr family as we take an in-depth, behind the scenes look at our vineyards and winery practices during our 2017 Produced and Bottled by J. Lohr Trade Camp. We will bring together an intimate group of our influential industry partners, just like you, to explore our Chardonnay and Cabernet programs in Monterey and Paso Robles, California. Our team has developed a memorable, hands-on, four-day camp experience that goes beyond theory and places you in the thick of Harvest 2017 at J. Lohr, to learn firsthand what separates us from our competition.
Camp will begin with a welcome reception, tasting and dinner on Monday evening at the Asilomar Lodge, located along the scenic, coastal HWY 1 in Monterey, CA. Your second day, Tuesday, will take you to the heart of the Arroyo Seco AVA and will focus on our Chardonnay vineyards in Monterey County, complete with a tour. Later that afternoon, our new white wine facility in Greenfield will be the setting for two blind tastings and a sensory seminar before you head down to Paso Robles. You will experience Paso Robles' newest luxury accommodations, the Allegretto Vineyard Resort, and will enjoy an intimate winemaker dinner downtown that evening. Then, get ready for Day 3. On Wednesday, you will start your day with a tailgate breakfast among our Cabernet vines in the El Pomar District of the Paso Robles AVA, and will then gain hands-on experience at harvest in our Paso Robles winery. That evening will be capped off with an inspired food and wine pairing that you will prepare with other camp attendees and our chef. The week will wrap up on Thursday, Day 4, with an introduction to our new vineyard properties, a marketing take-away presentation and a final Cabernet tasting.
Please join us Monday, September 11th – Thursday, September 14th. We are happy to assist you with recommendations for arrival and departure, and we will arrange transportation to camp from the airport of your choosing, along with transportation to the airport at the conclusion of camp.
Ready to embark on Produced and Bottled by J. Lohr Trade Camp? Please contact our Camp Coordinator, Jennifer Hamm, at jhamm@jlohr.com to begin your journey!


In a shot taken at the Charelston, SC Cigar Factory, the bride laughs as she is dancing with her new husband during the lively reception.
The The Cigar Factor in Charleston, SC features historic wood columns, hardwood floors and original elements of the 1881 building. The walls are rustic brick and have floor-to-ceiling windows that show a view of the Arthur Ravenel Jr. Bridge. This venue was perfect for this bride and groom, vintage feel with a since of homeyness for their reception. This picture really captured a unique moment between the bride and groom like none other. The bride and groom are in their own little world enjoying being newly weds, surrounded by friends and family. Her hand gently touching his face and laughing in their own moment together.


text:
Kręgouste, krągłouste, smoczkouste (Cyclostomata) – grupa wodnych kręgowców o otworze gębowym w kształcie okrągłej przyssawki. Nazwa krągłouste obejmuje minogi i śluzice zaliczane do bezżuchwowców. Postać wydłużona, robakowata, bez łusek, ciało pokryte śluzem, pozbawione żeber, szkieletu pasa barkowego i miednicowego. Nie występują płetwy parzyste. Są to zwierzęta drapieżne, padlinożerne lub pasożytnicze (niektóre półpasożytnicze). Stosunkowo prymitywnie zbudowane – mają nieparzyste nozdrza, czy segmentowane umięśnienie. Szkielet osiowy stanowi struna grzbietowa, u minogów także znajdujące się nad nią łuki naczyniowe.

Pokrewieństwo krągłoustych jest niejasne – analizy morfologiczne sugerują, że to grupa parafiletyczna (minogi bliżej spokrewnione z żuchwowcami niż ze śluzicami), podczas gdy według badań molekularnych Cyclostomata są monofiletyczne.

Przypisy

Bibliografia

Bezżuchwowce

redpajama_set_name: RedPajamaWikipedia


text:
About time Nepal broke ground in the field of IT
On the second day of Kantipur Conclave, one of the panel dialogues held was on the topic 'Can Nepal do IT?', in the Capital on Monday.
Moderated by Suman Shakya, the panellists included Biswas Dhakal President of F1 Soft Group, Asheem Mansingh Basnet, Regional Director of Pathao, and Akanksha Tyagi, Founder of Social Friendly, India.
The discussion began with the introduction of the panellists and their involvement in the Information Technology sector of Nepal.
All of the panellists were of the view that it was about time that Nepal make a mark in the IT sector with internet penetration crossing the 65 percent mark.
Tyagi pointed out two perspectives on how Nepal can move ahead in the IT sector. First, she specified the fact that the IT sector has two facets—users and creators. Panellist Tyagi was of the view that instead of being users only Nepali IT professionals should focus on being creators too.
Secondly, Tyagi stated that the creators must be able to determine the area of focus adding that the products and services offered by IT must cater to the needs of the locals.
"IT is not just about understanding and implementing the current trends in vogue around the world," she said, "IT is also about understanding the geography, culture and language of a region and being able to give solutions to a common problem."
Panellist Basnet spoke at length about the disruption that their ride-sharing service has brought about in the way people commute. The thought was echoed by Dhakal of F1 Soft Group.
Both the panellists were of the view that Nepal needs disruption through IT and that their individual ventures have been doing so whether it is through mobile banking, online payment system, or ride-hailing services.
"We have disrupted the way people were moving, the way people wanted to move or wanted their logistics to happen," said Basnet.
Similarly, the panel also shared views about securing one's personal data either that be of an individual or an organisation. All of the panellists stressed on the need to raise awareness among people about the trappings of IT specially on social media platforms.
Stating that the Nepali population is relatively new to the world of internet, Dhakal stressed on the need to educate netizens about the contents of the internet. "The government should work towards educating the public rather than issuing restrictions to prevent the breach of data," said Dhakal.
Meanwhile, Tyagi said that the issue of IT security is a continuous and collaborative process. She said that most social media users fail to browse through the privacy options of any social media site and this lack of knowledge leads to personal data being out in the public. She said, "The users should be educated on the necessity of accessing privacy options on social media platforms because IT security is a two-way effort—from the users and the creators."
A day in the life of Sajha Yatayat's only female driver
Disgraced anti-graft official Pathak under investigation for money laundering
At a half-century-old Sanskrit college, there is a will, but there is no money
Dealy in final verdict from top court makes it difficult for tax office to recover Sumargi's unpaid taxes
After widespread criticism, Kathmandu Metropolitan City revises smart parking fees in New Road
Teachers and officials of prison schools call for better study environment in jails
Most Read from Valley


text:
The Griffin Door Not Closed Yet
Published at 12:56 pm on September 2, 2009
Parry Cardenas
Like the Steve Miller Band — which recently appeared at the Erie County Fair — the owners of meatpacking district super-club the Griffin are keeping the dream alive. Despite rumors (including a post of ours) that the Griffin hasn't paid promoters in months and was expected to close, owner Chris Reda tells us it's not that bad. "We couldn't be happier with the turnout," he says. "Every night that we're open, we're busy, and we're open five nights a week." We even got word after our item ran last week that the Griffin was playing host to several Fashion Week events. We called to find out exactly how many.
First, we called Megan from Nadine Johnson, who reps the club. She put us in touch with Chris Reda. He told us, "As far as which Fashion Week events we're having, I'm not sure. We have ten events for ten days, but Karrie Goldberg of Cage Consulting should know." Karrie told us we should talk to Sasa Nikolic of Fingerprint Communications, which we did. His total count is two: "a Duckie Brown Spring/Summer 2009 Fashion Show after-party, and an OK! magazine party to celebrate Kim Kardashian as a contributing beauty editor." Well, so it's not dead. However, if Reda counts two parties as ten, one worries about his facility with numbers. So what about those unpaid promoters? "I don't even take care of the accounting," Reda says. That's comforting.
By: Joshua David Stein
Previously on Grub Street...
Locanda Verde Is Now Seating Diners in the Courtyard
Il Buco Chandelier Saves Marriage
Tables Available at Elettaria, One If by Land, Two If by Sea; Scarpetta Fully Booked
Copyright FOODD - NY Mag


GearmanBundle is a bundle for Symfony2/3/4 intended to provide an easy way to support developers who need to use job queues. For example: mail queues, Solr generation queues or Database upload queues. For Symfony Flex you can use the recipe in the contributed repository to get started quickly.
Check the documentation in ReadTheDocs.
Some recipes will be written soon. If you have some ideas and you want to share them with us, don't hesitate to open a RFC issue or a Pull Request.
All code is Symfony2 Code formatted, so every pull request must validate phpcs standards. You should read Symfony2 coding standards and install this CodeSniffer to check all code is validated.
There is also a policy for contributing to this project. All pull request must be all explained step by step, to make us more understandable and easier to merge pull request. All new features must be tested with PHPUnit.
If you'd like to contribute, please read the Contributing Code part of the documentation. If you're submitting a pull request, please follow the guidelines in the Submitting a Patch section and use the Pull Request Template.


Those words came to mind after visiting The Village at Grand Traverse Commons, a mixed-use commercial development on the grounds of a former state psychiatric hospital in Traverse City, Michigan.
Surely, the entrepreneurs who have repurposed a swath on the massive property view the development of apartments, condominiums, shops, restaurants and offices differently. For them, the development breathes new life into decaying buildings that have remained empty since 1989, when laws and treatment theories moved away from housing people with mental illnesses in large, isolated, and congregated facilitates.
I understand the civic impulse to preserve the sprawling complex. The main building's Victorian-Italianate design is architecturally significant and is listed on the National Register of Historic Places. Like similar institutions around the country built in the late 19th Century, the Northern Michigan Asylum was built around the theory that "beauty is therapy." Essentially, the idea was that pleasant surroundings, such as having tastefully landscaped grounds and fresh flowers produced from the on-campus greenhouse year-round, would be therapeutic.
However, as an advocate for people with disabilities, I find the notion of commercializing a site where people struggled with mental and other illnesses unsettling. For example, I winced at the spooky imagery on a web site promoting a twilight tour of the complex as an "otherworldly experience" where one can "…listen for the creaks and groans of the asylum 'cottages' settle at night." Such language perpetuates many negative stereotypes about people with mental illness!
Certainly, the grounds of the Grand Traverse Commons are lovely. In fact, the area near the one-time asylum's farm has been developed into The Botanic Garden at Historic Barns Park, incorporating existing meadows, hillsides and a pair of large Victorian barns. In a nod towards its history, the garden is being organized as a series of 19 interlocking "healing gardens" forming a ribbon through the length of the property. Plans call for featuring a traditional Native American "medicine wheel" garden, a medicinal herb garden and labyrinth, a wheelchair-accessible garden, a meditation garden, a water garden, and educational and recreational areas.
The tranquil imagery promoted in this part of the development seems more fitting for the site's history. Nonetheless, I can't help but think that for anyone who was ever "sent away" to the asylum – or whose loved one lived there – this remains hallowed ground. No amount of architectural rehabilitation or public relations spin can alter that. In short, the Grand Traverse Commons isn't my idea of a place to live, work, or seek entertainment. The short driving tour of the complex that I took during a recent vacation will remain my only visit.
Molly Klocksin has been a Case Advocate at Disability Rights Nebraska for 16 years. She holds a B.A. in Journalism from the University of Wisconsin-Eau Claire and an M.A. in Counseling from Doane University, Lincoln, Nebraska.


I hired Todd to clean my carpets and sofa. Todd came in very professional explained to me the procedure and problems about the pet stains. It was absolutely an amazing job. Todd I thank you and recommend you to all my friends.
I would highly recommend this company. Todd did an amazing job on our carpets. I referred Todd to my father-in-law as well and he was equally pleased. I wouldn't hesitate to use this company again. Thank you for great service!
Wow! Todd and assistant Jamie did an amazing job on the carpets in our house, did not think it was possible. They were courteous, friendly and very professional. Did not take long to complete the job and the results were amazing.
Exceptional job done by Todd. His quote was the lowest we received. He was professional, punctual and honest about what dirt/stains he could remove from the carpet vs those stains that may not come out. The carpets were not cleaned for 8 years and I was amazed how clean they looked afterwards. We will be using this company for all our future carpet cleaning needs.
Amazing Results cleaned the carpets in 4 rooms and a set of stairs. The carpets are fairly old but they look quite revitalized. I am happy with the job job they did, and the cleaners were helpful in organizing a mutually convenient time on short notice.


text:
"""Central module for managing add ons, i.e. additional modules,
models, datasets, etc. that can be used by the toolbox, but are
not part of the toolbox.

"""

from typing import List

import argparse
import importlib
from enum import Enum

# Taken from https://stackoverflow.com/a/19330461
class AutoEnum(Enum):
    """
    Automatically numbers enum members starting from 1.

    Includes support for a custom docstring per member.

    """
    __last_number__ = 0

    def __new__(cls, *args):
        """Ignores arguments (will be handled in __init__."""
        value = cls.__last_number__ + 1
        cls.__last_number__ = value
        obj = object.__new__(cls)
        obj._value_ = value
        return obj

    def __init__(self, *args):
        """Can handle 0 or 1 argument; more requires a custom __init__.

        0  = auto-number w/o docstring
        1  = auto-number w/ docstring
        2+ = needs custom __init__

        """
        if len(args) == 1 and isinstance(args[0], str):
            self.__doc__ = args[0]
        elif args:
            raise TypeError('%s not dealt with -- need custom __init__' % (args,))

class Types(AutoEnum):
    """The different types of add ons avaliable for the Toolbox.
    """
    module = "a python module (with the same name)"
    tool = "a tool of the toolbox"
    data = "a dataset"
    model = "a (pretrained) model"

# type: Types
#     the type of resource
# info: str
#     a human readable description of the resource
_infos = {
    'numpy': {
        'type': Types.module,
        'info': 'NumPy is the fundamental package for scientific computing'
                ' with Python.'
    },
    'tensorflow': {
        'type': Types.module,
        'info': 'tensorflow'
    },
    'keras': {
        'type': Types.module,
        'info': 'keras'
    },
    'appsdir': {
        'type': Types.module,
        'info': 'appsdir'
    },
    'matplotlib': {
        'type': Types.module,
        'info': 'matplotlib'
    },
    'keras': {
        'type': Types.module,
        'info': 'keras'
    },
    'cv2': {
        'type': Types.module,
        'info': 'OpenCV'
    },
    'caffe': {
        'type': Types.module,
        'info': 'caffe'
    },
    'PyQt5': {
        'type': Types.module,
        'info': 'PyQt5'
    },
    'pycuda': {
        'type': Types.module,
        'info': 'pycuda'
        # conda install -c lukepfister pycuda
    },
    'lucid': {
        'type': Types.module,
        'info': 'A collection of infrastructure and tools '
                'for research in neural network interpretability.'
    },
    'autoencoder': {
        'type': Types.tool,
        'info': 'A tool for inspecting autoencoders',
        'use': False
    },
    'advexample': {
        'type': Types.tool,
        'info': 'A tool for inspecting adversarial examples',
        'use': False
    },
    'imutils': {
        'type': Types.module,
        'info': 'A series of convenience functions to make '
                'basic image processing functions such as translation, '
                'rotation, resizing, skeletonization, displaying '
                'Matplotlib images, sorting contours, detecting edges, '
                'and much more easier with OpenCV and both '
                'Python 2.7 and Python 3.'
    },
    'dlib': {
        'type': Types.module,
        'info': 'Dlib is a modern C++ toolkit containing '
                'machine learning algorithms and tools '
                'for creating complex software to solve real world problems.'
    },
    'imagenet': {
        'type': Types.data,
        'info': 'The ILSVRC2012 dataset. A image classification dataset '
                'with 1K classes and more than 1M labeled training images.'
    },
    'alexnet': {
        'type': Types.model,
        'info': 'A classical deep network model for image classification.'
    },
    'ikkuna': {
        'type': Types.module,
        'info': 'A tool for monitoring neural network training.'
    }
}

def get_addons(type: Types):
    """Obtain a list of all registered addons of the given type.
    """
    return [name for name, info in _infos.items()
            if info['type'] == Types.module]

def available(name: str, type: Types=None):
    """Check if an add on is available, i.e. installed on the system.

    Parameter
    ---------
    name:
        The name of the add on. If type is not given, this should
        be a valid key in the _infos dictionary.
    type:
        The Type of the add on.
    """
    if type is None:
        type = _infos[name]['type']
    if type == Types.module:
        spec = importlib.util.find_spec(name)
        return spec is not None
    if type == Types.tool:
        return True
    else:
        return False

def use(name: str, set: bool=None, type: Types=None):
    """Check if an add on should be used.

    This is not used yet, but it may be used for more fine grained
    customization of what resources should be at a given run of the
    toolbox, allowing to deactivate resource intense add ons that are
    not needed for the task at hand.

    Parameter
    ---------
    name:
        The name of the add on. If type is not given, this should
        be a valid key in the _infos dictionary.
    set:
    type:
    """
    if type is None:
        type = _infos[name]['type']
    if set is not None:
        _infos[name]['use'] = set
        return
    return available(name) and _infos[name].get('use', True)

def install(name, force=False):
    if available(name):
        return

import argparse

class UseAddon(argparse.Action):
    """Auxiliary class for parsing command line options.
    Turn on use of given addon.

    """

    def __init__(self, option_strings: List[str], dest: str,
                 nargs: int=None, **kwargs) -> None:
        """Initialize the :py:class:`UseAddon` instance. This is intended to
        be invoked automaitcally by the argparse.ArgumentParser, when
        an argument is added with action=UseAddon.

        Parameter
        ---------
        option_strings: List[str]
            The list of command line options that will trigger this Action.
        dest: str
            The name of the attribute to be added to the object returned
            by parse_args().
        nargs: int
            The number of additional command line arguments to be consumed.
        default:
            The value produced if the argument is absent from the command
            line.
        help:
            A brief description of what the argument does.
        """
        if nargs is not None:
            raise ValueError("nargs not allowed")
        super().__init__(option_strings, dest, nargs=0, **kwargs)

    def __call__(self, parser: argparse.ArgumentParser,
                 namespace: argparse.Namespace,
                 values: List[str], option_string: str=None) -> None:
        """This method is expected to be invoked by the
        argparse.ArgumentParser's parse_args() method in reply to
        detecting one of the relevant option strings on the command
        line.

        In addition to setting the respective destination value in the
        namespace, this will use the actual resource (named by the
        dest attribute of this :py:class:`UseAddon`)

        Parameter
        ---------
        parser:
            The ArgumentParser calling this method.
        namespace:
            The namespace for storing values in reply to an command
            line option.
        values:
            The list of additional command line arguments provided as
            values for this Option
        option_string:
            The actual option string found on the command line.

        """
        use(self.dest, True)
        setattr(namespace, self.dest, values)

redpajama_set_name: RedPajamaGithub


text:
Gambia suffers another drop in TI ranking in corruption report
Dec 5, 2013, 9:33 AM | Article By: Nfamara Jawneh
The Gambia has yet again gone down in its ranking in the yearly Global Corruption Perception Index (CPI) rankings, released by anti-corruption body Transparency International.
The 2013 report, released this week, ranked The Gambia at 127 out of 177 countries and territories worldwide, thus giving a grade of 28 percent alongside Mali, Madagascar, Lebanon, among others.
The country has drop from 105 in last year's global ranking.
The report noted that there was no country in the world that is hundred percent corruption-free.
Denmark and New Zealand are the countries with the highest grade of 9.5, followed by Sweden and Finland, while Somalia, North Korea and Afghanistan were the lowest with ones.
''The fact that a country scores higher or lower in the index doesn't mean necessarily that the country is more corrupt. It's a perceptions index. Now, the countries that have improved the most according to the Corruption Perceptions Index are Myanmar, Laos, Senegal, Brunei - all of those have gone up five or six points,'' Alejandro Salas, Director of Transparency International's Americas Department wrote.
The Berlin-based NGO stressed that while the results of corruption are clear, the real extent of the problem is harder to pin down. It says that corruption is shadowy and secretive by nature.
Based on expert opinion, the index measures the perceived levels of public sector corruption in countries worldwide, scoring them from 0 (highly corrupt) to 100 (very clean).
Covering 177 countries, the 2013 index paints a worrying picture. While a handful perform well, not one single country gets a perfect score. More than two-thirds score less than 50.
Transparency International stressed that the need for greater accountability is clear, and leaders cannot look the other way. But recognizing the problem is only the first step – governments need to turn pledges into actions.
All citizens deserve bribe-free services, and leaders that are answerable to the public, not to powerful friends. Working together, we can make this a reality.
Meanwhile, Transparency International is the global civil society organisation leading the fight against corruption.
Through more than 90 chapters worldwide and an international secretariat in Berlin, TI raise awareness of the damaging effects of corruption and works with partners in government, business and civil society to develop and implement effective measures to tackle it.
Two-year-old boy in need of urgent overseas treatment
Youth and Children Centre for Arts Foundation holds Inter-Schools competition
FGM campaigner Jaha Dukureh makes prestigious list
Promoting entrepreneurship
Is GPA a Team in Crises?
Court orders state to produce Sabally's former case file


These Terms and Conditions will be construed solely in accordance within the laws of the State of New Jersey, without giving effect to principles of conflicts of laws.
Any actions, proceedings or suits concerning or relating to the agreement to purchase a Subscription to our Premium Services or any other Service may only be brought in a court of competent jurisdiction in Monmouth County or in the U.S. District Court • Southern District of New York and each party hereby consents to the jurisdiction and venue of such court, and waives any objections thereto.
In the event any provision of these Terms and Conditions is determined to be invalid, such invalidity will not affect the validity of remaining provisions.
These Terms and Conditions constitute the complete agreement between you and compwiz4u.com and its Third Party Service Providers with respect to this Site and supersedes all prior communications and agreements.
Compwiz4u.com may at any time, in its sole discretion, revise these Terms and Conditions.
Our aim is to please our customers so we are offering a full money back guarantee if you are not happy for any reason whatsoever.


text:
Michelle Dunston, LeFrak City Tenants Association
by Benjamin Fang Queens Ledger
Jan 15, 2020 | 6564 views | 0 | 817 | |
For the last year, Michelle Dunston has served as the president of the LeFrak City Tenants Association.
With more than 5,000 families living in the 4,605-apartment complex in Corona, her role is to lead the organization to inform, educate and empower the residents.
The tenants association also serves as a bridge among tenants, management and the broader community.
Among their top concerns is keeping tenants safe, as well as adequate heat and hot water.
"Safety is always a priority because we have a lot of children here,"she said.
That's why the LeFrak City community was shocked after a ten-year-old boy, Shree Panthee, was fatally struck by a city sanitation truck last week in front of the building complex.
Dunston said representatives from the Department of Transportation had been at "every one of my meetings" before the incident to explore different ways to make the area safer.
"It's just a busy area," she said. "We've got more malls, so we got more people. It's really become a city in a city. It's a lot of people moving around all day."
Dunston, who also works as a crossing guard supervisor for the 110th Precinct, said the tenants association will continue to work with management, the community and city agencies to make sure LeFrak City stays safe.
The association, which has been around for more than four decades, hosts meetings every other month. Their board meets every month.
"I want to work very hard to make sure that this doesn't happen over here again," Dunston said.


We've just put up a slide show of fall colors in the Northeast Kingdom.
The pictures were taken today and yesterday (October 2nd and 3rd). The color is still not at its best, but it is not bad either, so if you are coming to Vermont this week, the Northeast Kingdom is where you will see the best color.
We've heard that there could be frost here on Thursday and Friday which will spur on the color.
Thanks, Tim, for publishing the pictures you took today. Gives a lot of encouragement as to what the weekend could bring, especially if lower temperatures do move in for a couple of early mornings.
I feel sure it will be another great visit to Vermont. Thanks for you help.
Two questions: What lake is it? Is the photo from high above the lake taken from the road or is it from a hiking trail?
Thanks for the display, it gives an insight of what is around the corner.
About a mile south of the lake you will see 2 parking areas. Go into the one on the right side under the trees and you will see the forest road.
Tim, you should check out Job's Pond off the Newark Road in Brighton. Conditions should be good for some great photos. I was there Sunday and it was beautiful.
I failed to mention that last Saturday while I was tracking color conditions that just south of Troy are some excellent farm landscape views.
Troy is located pure north. Real nice area that exhibits views of rolling farmland with views of distant mountain ranges.
Wow great shots. I was just there 09/30 and reported this on 10/01. Just look at what 2 days can do to the foliage.
It is very late at night. I just returned from a 540 mile run through Vermont.
Central Vermont Green to very mild yellowish green.
I think the Northeast Kingdom will exhibit some true fall colors within 8 days from now.
The color is just not there yet, but you can tell that something is about to happen very, very soon. The change will occur in the higher elevations first, which everyone will see perfectly from the roads. So don't let elevation word fool anyone. It will be awesome to see.
I hated to return back to the house. The country in Vermont is so breath taking it does not matter what season you visit. The farm landscapes and mountain ranges are so scenic.
By the way I did see a moose. Farmers are laying out the pumpkins.
Sorry for the short, blunt post. Good Night.


text:
/* $Id$ */

/*  I N C L U D E S  ************************************************/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include <sys/types.h>
#include <stdlib.h>
#include <rpc/types.h>
#include <string.h>
#include <ctype.h>

#include "decode.h"
#include "rules.h"
#include "treenodes.h"
#include "snort_debug.h"
#include "util.h"
#include "generators.h"
#include "log.h"
#include "parser.h"
#include "snort.h"
#include "tag.h"

#include "sfxhash.h"

#include "ipv6_port.h"

/*  D E F I N E S  **************************************************/
#define MAX_TAG_NODES   256

/* by default we'll set a 5 minute timeout if we see no activity
 * on a tag with a 'count' metric so that we prune dead sessions
 * periodically since we're not doing TCP state tracking
 */
#define TAG_PRUNE_QUANTUM   300
#define TAG_MEMCAP          4194304  /* 4MB */

/*  D A T A   S T R U C T U R E S  **********************************/
/**Key used for identifying a session or host.
 */
typedef struct _tagSessionKey
{
    snort_ip sip;  ///source IP address
    snort_ip dip;  ///destination IP address

    /* ports */
    uint16_t sp; ///source port
    uint16_t dp; ///destination port

} tTagSessionKey;

/**Node identifying a session or host based tagging.
 */
typedef struct _TagNode
{
    /**key identifying a session or host. */
    tTagSessionKey key;

    /** transport proto */
    uint8_t proto;

    /** number of packets/seconds/bytes to tag for */
    int seconds;
    int packets;
    int bytes;

    /** counters of number of packets tagged and max to
     * prevent Eventing DOS */
    int pkt_count;

    /** packets/seconds selector */
    int metric;

    /** session or host mode */
    int mode;

    /** last UNIX second that this node had a successful match */
    uint32_t last_access;

    /** event id number for correlation with trigger events */
    uint16_t event_id;
    struct timeval event_time;

    void* log_list;  // retain custom logging if any from triggering alert

} TagNode;

/*  G L O B A L S  **************************************************/
/**host tag cache */
static SFXHASH *host_tag_cache_ptr;

/**session tag cache */
static SFXHASH *ssn_tag_cache_ptr;

static uint32_t last_prune_time;
static uint32_t tag_alloc_faults;
static uint32_t tag_memory_usage;

static bool s_exclusive = false;
static unsigned s_sessions = 0;

// TBD when tags leverage sessions, tag nodes can be freed at end
// of session.  then we can configure this to allow multiple
// (consecutive) sessions to be captured.
static const unsigned s_max_sessions = 1;

/*  P R O T O T Y P E S  ********************************************/
static TagNode * TagAlloc(SFXHASH *);
static void TagFree(SFXHASH *, TagNode *);
static int TagFreeSessionNodeFunc(void *key, void *data);
static int TagFreeHostNodeFunc(void *key, void *data);
static int PruneTagCache(uint32_t, int);
static int PruneTime(SFXHASH* tree, uint32_t thetime);
static void TagSession(Packet *, TagData *, uint32_t, uint16_t, void*);
static void TagHost(Packet *, TagData *, uint32_t, uint16_t, void*);
static void AddTagNode(Packet *, TagData *, int, uint32_t, uint16_t, void*);
static inline void SwapTag(TagNode *);

/**Calculated memory needed per node insertion into respective cache. Its includes
 * memory needed for allocating TagNode, SFXHASH_NODE, and key size.
 *
 * @param hash - pointer to SFXHASH that should point to either ssn_tag_cache_ptr
 * or host_tag_cache_ptr.
 *
 * @returns number of bytes needed
 */
static inline unsigned int memory_per_node(
        SFXHASH *hash
        )
{
    if (hash == ssn_tag_cache_ptr)
    {
        return sizeof(tTagSessionKey)+sizeof(SFXHASH_NODE)+sizeof(TagNode);
    }
    else if (hash == host_tag_cache_ptr)
    {
        return sizeof(snort_ip)+sizeof(SFXHASH_NODE)+sizeof(TagNode);
    }

    return 0;
}

/** Allocate a TagNode
 *
 * Alocates a TagNode while guaranteeing that total memory usage remains within TAG_MEMCAP.
 * Least used nodes may be deleted from ssn_tag_cache and host_tag_cache to make space if
 * the limit is being exceeded.
 *
 * @param hash - pointer to SFXHASH that should point to either ssn_tag_cache_ptr
 * or host_tag_cache_ptr.
 *
 * @returns a pointer to new TagNode or NULL if memory couldn't * be allocated
 */
static TagNode * TagAlloc(
        SFXHASH *hash
        )
{
    TagNode *tag_node = NULL;

    if(tag_memory_usage + memory_per_node(hash) > TAG_MEMCAP)
    {
        /* aggressively prune */
        struct timeval tv;
        struct timezone tz;
        int pruned_nodes = 0;

        tag_alloc_faults++;

        gettimeofday(&tv, &tz);

        pruned_nodes = PruneTagCache((uint32_t)tv.tv_sec, 0);

        if(pruned_nodes == 0)
        {
            /* if we can't prune due to time, just try to nuke
             * 5 not so recently used nodes */
            pruned_nodes = PruneTagCache(0, 5);

            /* unlikely to happen since memcap has been reached */
            if (pruned_nodes == 0)
                return NULL;
        }
    }

    tag_node = (TagNode *)calloc(1, sizeof(TagNode));

    if (tag_node != NULL)
        tag_memory_usage += memory_per_node(hash);

    return tag_node;
}

/**Frees allocated TagNode.
 *
 * @param hash - pointer to SFXHASH that should point to either ssn_tag_cache_ptr
 * or host_tag_cache_ptr.
 * @param node - pointer to node to be freed
 */
static void TagFree(
        SFXHASH *hash,
        TagNode *node
        )
{
    if (node == NULL)
        return;

    if ( node->metric & TAG_METRIC_SESSION )
        s_exclusive = false;

    free((void *)node);
    tag_memory_usage -= memory_per_node(hash);
}

/**Callback from session tag cache to free user data.
 * @param key - pointer to key to session tag
 * @param data - pointer to user data, to be freed.
 * @returns 0
 */
static int TagFreeSessionNodeFunc(void *key, void *data)
{
    TagFree(ssn_tag_cache_ptr, (TagNode *)data);
    return 0;
}

/**Callback from host tag cache to free user data.
 * @param key - pointer to key to session tag
 * @param data - pointer to user data, to be freed.
 * @returns 0
 */
static int TagFreeHostNodeFunc(void *key, void *data)
{
    TagFree(host_tag_cache_ptr, (TagNode *)data);
    return 0;
}

/**Reset all data structures and free all memory.
 */
void TagCacheReset(void)
{
    sfxhash_make_empty(ssn_tag_cache_ptr);
    sfxhash_make_empty(host_tag_cache_ptr);
}

#ifdef DEBUG_MSGS

/**
 * Print out a tag node IFF we are current in debug_flow
 *
 * @param np tagnode pointer to print
 */
static void PrintTagNode(TagNode *np)
{
    if(!DebugThis(DEBUG_FLOW))
    {
        return;
    }

    printf("+--------------------------------------------------------------\n");
    printf("| Ssn Counts: %d, Host Counts: %d\n",
           ssn_tag_cache_ptr->count,
           host_tag_cache_ptr->count);

    printf("| (%u) %s:%d -> ",
            np->proto,
           inet_ntoa(&np->key.sip), np->key.sp
        );

    printf("%s:%d Metric: %u "
           "LastAccess: %u, event_id: %u mode: %u event_time.tv_sec: %"PRIu64"\n"
           "| Packets: %d, Bytes: %d, Seconds: %d\n",
           inet_ntoa(&np->key.dip), np->key.dp,
           np->metric,
           np->last_access,
           np->event_id,
           np->mode,
           (uint64_t)np->event_time.tv_sec,
           np->packets,
           np->bytes,
           np->seconds);

    printf("+--------------------------------------------------------------\n");
}

#endif /* DEBUG */

/**
 * swap the sips and dips, dp's and sp's
 *
 * @param np TagNode ptr
 */
static inline void SwapTag(TagNode *np)
{
    snort_ip tip;
    uint16_t tport;

    tip = np->key.sip;
    np->key.sip = np->key.dip;
    np->key.dip = tip;

    tport = np->key.sp;
    np->key.sp = np->key.dp;
    np->key.dp = tport;
}

void InitTag(void)
{
    unsigned int hashTableSize = TAG_MEMCAP/sizeof(TagNode);

    ssn_tag_cache_ptr = sfxhash_new(
                hashTableSize,              /* number of hash buckets */
                sizeof(tTagSessionKey),     /* size of the key we're going to use */
                0,                          /* size of the storage node */
                0,                          /* disable memcap*/
                0,                          /* use auto node recovery */
                NULL,                       /* anr free function */
                TagFreeSessionNodeFunc,     /* user free function */
                0);                         /* recycle node flag */

    host_tag_cache_ptr = sfxhash_new(
                hashTableSize,       /* number of hash buckets */
                sizeof(snort_ip),    /* size of the key we're going to use */
                0,                   /* size of the storage node */
                0,                   /* disable memcap*/
                0,                   /* use auto node recovery */
                NULL,                /* anr free function */
                TagFreeHostNodeFunc, /* user free function */
                0);                  /* recycle node flag */
}

void CleanupTag(void)
{
    if (ssn_tag_cache_ptr)
    {
        sfxhash_delete(ssn_tag_cache_ptr);
    }

    if (host_tag_cache_ptr)
    {
        sfxhash_delete(host_tag_cache_ptr);
    }
}

static void TagSession(Packet *p, TagData *tag, uint32_t time, uint16_t event_id, void* log_list)
{
    DEBUG_WRAP(DebugMessage(DEBUG_FLOW, "TAGGING SESSION\n"););

    AddTagNode(p, tag, TAG_SESSION, time, event_id, log_list);
}

static void TagHost(Packet *p, TagData *tag, uint32_t time, uint16_t event_id, void* log_list)
{
    int mode;

    DEBUG_WRAP(DebugMessage(DEBUG_FLOW, "TAGGING HOST\n"););

    switch(tag->tag_direction)
    {
        case TAG_HOST_DST:
            mode = TAG_HOST_DST;
            break;
        case TAG_HOST_SRC:
            mode = TAG_HOST_SRC;
            break;
        default:
            mode = TAG_HOST_SRC;
            break;
    }

    AddTagNode(p, tag, mode, time, event_id, log_list);
}

static void AddTagNode(Packet *p, TagData *tag, int mode, uint32_t now,
                uint16_t event_id, void* log_list)
{
    TagNode *idx;  /* index pointer */
    TagNode *returned;
    SFXHASH *tag_cache_ptr = NULL;

    DEBUG_WRAP(DebugMessage(DEBUG_FLOW, "Adding new Tag Head\n"););

    if ( tag->tag_metric & TAG_METRIC_SESSION )
    {
        if ( s_exclusive )
            return;

        if ( s_sessions >= s_max_sessions )
            return;

        s_exclusive = true;
        ++s_sessions;
    }
    if(mode == TAG_SESSION)
    {
        DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"Session Tag!\n"););
        tag_cache_ptr = ssn_tag_cache_ptr;

    }
    else
    {
        DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"Host Tag!\n"););
        tag_cache_ptr = host_tag_cache_ptr;
    }
    idx = TagAlloc(tag_cache_ptr);

    /* If a TagNode couldn't be allocated, just write an error message
     * and return - won't be able to track this one. */
    if (idx == NULL)
    {
        ErrorMessage("AddTagNode(): Unable to allocate %u bytes of memory for new TagNode\n",
                     (unsigned)sizeof(TagNode));
        return;
    }

    IP_COPY_VALUE(idx->key.sip, GET_SRC_IP(p));
    IP_COPY_VALUE(idx->key.dip, GET_DST_IP(p));
    idx->key.sp = p->sp;
    idx->key.dp = p->dp;
    idx->proto = GET_IPH_PROTO(p);
    idx->metric = tag->tag_metric;
    idx->last_access = now;
    idx->event_id = event_id;
    idx->event_time.tv_sec = p->pkth->ts.tv_sec;
    idx->event_time.tv_usec = p->pkth->ts.tv_usec;
    idx->mode = mode;
    idx->pkt_count = 0;
    idx->log_list = log_list;

    if(idx->metric & TAG_METRIC_SECONDS)
    {
        /* set the expiration time for this tag */
        idx->seconds = now + tag->tag_seconds;
    }

    if(idx->metric & TAG_METRIC_BYTES)
    {
        /* set the expiration time for this tag */
        idx->bytes = tag->tag_bytes;
    }

    if(idx->metric & TAG_METRIC_PACKETS)
    {
        /* set the expiration time for this tag */
        idx->packets = tag->tag_packets;
    }

    DEBUG_WRAP(PrintTagNode(idx););

    /* check for duplicates */
    returned = (TagNode *) sfxhash_find(tag_cache_ptr, idx);

    if(returned == NULL)
    {
        DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"Looking the other way!!\n"););
        SwapTag(idx);
        returned = (TagNode *) sfxhash_find(tag_cache_ptr, idx);
        SwapTag(idx);
    }

    if(returned == NULL)
    {
        DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"Inserting a New Tag!\n"););

        /* if we're supposed to be tagging the other side, swap it
           around -- Lawrence Reed */
        if(mode == TAG_HOST_DST)
        {
            SwapTag(idx);
        }

        if(sfxhash_add(tag_cache_ptr, idx, idx) != SFXHASH_OK)
        {
            DEBUG_WRAP(DebugMessage(DEBUG_FLOW,
                                    "sfxhash_add failed, that's going to "
                                    "make life difficult\n"););
            TagFree(tag_cache_ptr, idx);
            return;
        }

        DEBUG_WRAP(PrintTagNode(idx););
    }
    else
    {
        DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"Existing Tag found!\n"););

        if(idx->metric & TAG_METRIC_SECONDS)
            returned->seconds = idx->seconds;
        else
            returned->seconds += idx->seconds;

        /* get rid of the new tag since we are using an existing one */
        TagFree(tag_cache_ptr, idx);

        DEBUG_WRAP(PrintTagNode(returned););
    }
}

int CheckTagList(Packet *p, Event *event, void** log_list)
{
    TagNode idx;
    TagNode *returned = NULL;
    SFXHASH* taglist = NULL;
    char create_event = 1;

    /* check for active tags */
    if(!sfxhash_count(host_tag_cache_ptr) && !sfxhash_count(ssn_tag_cache_ptr))
    {
        return 0;
    }

    if(p == NULL || !IPH_IS_VALID(p))
    {
        DEBUG_WRAP(DebugMessage(DEBUG_FLOW, "bailing from CheckTagList, p->iph == NULL\n"););
        return 0;
    }

    DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"Host Tags Active: %d   Session Tags Active: %d\n",
			    sfxhash_count(host_tag_cache_ptr), sfxhash_count(ssn_tag_cache_ptr)););

    DEBUG_WRAP(DebugMessage(DEBUG_FLOW, "[*] Checking session tag list (forward)...\n"););

    IP_COPY_VALUE(idx.key.sip, GET_SRC_IP(p));
    IP_COPY_VALUE(idx.key.dip, GET_DST_IP(p));
    idx.key.sp = p->sp;
    idx.key.dp = p->dp;

    /* check for session tags... */
    returned = (TagNode *) sfxhash_find(ssn_tag_cache_ptr, &idx);

    if(returned == NULL)
    {
        IP_COPY_VALUE(idx.key.dip, GET_SRC_IP(p));
        IP_COPY_VALUE(idx.key.sip, GET_DST_IP(p));
        idx.key.dp = p->sp;
        idx.key.sp = p->dp;

        DEBUG_WRAP(DebugMessage(DEBUG_FLOW, "   Checking session tag list (reverse)...\n"););
        returned = (TagNode *) sfxhash_find(ssn_tag_cache_ptr, &idx);

        if(returned == NULL)
        {
            DEBUG_WRAP(DebugMessage(DEBUG_FLOW, "   Checking host tag list "
				    "(forward)...\n"););

            returned = (TagNode *) sfxhash_find(host_tag_cache_ptr, &idx);

            if(returned == NULL)
            {
                /*
                **  Only switch sip, because that's all we check for
                **  the host tags.
                */
                IP_COPY_VALUE(idx.key.sip, GET_SRC_IP(p));

                returned = (TagNode *) sfxhash_find(host_tag_cache_ptr, &idx);
            }

            if(returned != NULL)
            {
                DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"   [*!*] Found host node\n"););
                taglist = host_tag_cache_ptr;
            }
        }
        else
        {
            DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"   [*!*] Found session node\n"););
            taglist = ssn_tag_cache_ptr;
        }
    }
    else
    {
        DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"   [*!*] Found session node\n"););
        taglist = ssn_tag_cache_ptr;
    }

    if(returned != NULL)
    {
        DEBUG_WRAP(DebugMessage(DEBUG_FLOW, "    ! Found tag node !\n"););

        returned->last_access = p->pkth->ts.tv_sec;
        returned->pkt_count++;

        if ( returned->metric & TAG_METRIC_SECONDS )
        {
            if(p->pkth->ts.tv_sec > returned->seconds)
            {
                returned->metric = 0;
                create_event = 0;
            }
        }

        if ( returned->metric & TAG_METRIC_BYTES )
        {
            int n = p->pkth->caplen;

            if ( n < returned->bytes )
                returned->bytes -= n;
            else
                returned->metric = 0;
        }

        if ( returned->metric & TAG_METRIC_PACKETS )
        {
            if ( returned->packets > 1 )
                returned->packets--;
            else
                returned->metric = 0;
        }
        if ( !(returned->metric & TAG_METRIC_UNLIMITED) )
        {
            /* Check whether or not to actually log an event.
             * This is used to prevent a poorly written tag rule
             * from DOSing a backend event processors on high
             * bandwidth sensors. */
            /* Use the global max. */
            /* If its non-0, check count for this tag node */
            if ( ScTaggedPacketLimit() &&
                returned->pkt_count >= ScTaggedPacketLimit() )
            {
                returned->metric = 0;
            }
        }

        if ( create_event )
        {
            /* set the event info */
            SetEvent(event, GENERATOR_TAG, TAG_LOG_PKT, 1, 1, 1,
                    returned->event_id);
            /* set event reference details */
            event->ref_time.tv_sec = returned->event_time.tv_sec;
            event->ref_time.tv_usec = returned->event_time.tv_usec;
            event->event_reference = returned->event_id | ScEventLogId();
            *log_list = returned->log_list;
        }

        if ( !returned->metric )
        {
            DEBUG_WRAP(DebugMessage(DEBUG_FLOW,
                "    Prune condition met for tag, removing from list\n"););

            if (sfxhash_remove(taglist, returned) != SFXHASH_OK)
            {
                LogMessage("WARNING: failed to remove tagNode from hash.\n");
            }
        }
    }

    if ( (u_int)(p->pkth->ts.tv_sec) > last_prune_time + TAG_PRUNE_QUANTUM )
    {
        DEBUG_WRAP(DebugMessage(DEBUG_FLOW,
                                "Exceeded Prune Quantum, pruning tag trees\n"););
        PruneTagCache(p->pkth->ts.tv_sec, 0);
        last_prune_time = p->pkth->ts.tv_sec;
    }

    if ( returned && create_event )
        return 1;

    return 0;
}

static int PruneTagCache(uint32_t thetime, int mustdie)
{
    int pruned = 0;

    if (mustdie == 0)
    {
        if(sfxhash_count(ssn_tag_cache_ptr) != 0)
        {
            pruned = PruneTime(ssn_tag_cache_ptr, thetime);
        }

        if(sfxhash_count(host_tag_cache_ptr) != 0)
        {
            pruned += PruneTime(host_tag_cache_ptr, thetime);
        }
    }
    else
    {
        TagNode *lru_node = NULL;

        while (pruned < mustdie &&
               (sfxhash_count(ssn_tag_cache_ptr) > 0 || sfxhash_count(host_tag_cache_ptr) > 0))
        {
            if ((lru_node = (TagNode *)sfxhash_lru(ssn_tag_cache_ptr)) != NULL)
            {
                if (sfxhash_remove(ssn_tag_cache_ptr, lru_node) != SFXHASH_OK)
                {
                    LogMessage("WARNING: failed to remove tagNode from hash.\n");
                }
                pruned++;
            }
            if ((lru_node = (TagNode *)sfxhash_lru(host_tag_cache_ptr)) != NULL)
            {
                if (sfxhash_remove(host_tag_cache_ptr, lru_node) != SFXHASH_OK)
                {
                    LogMessage("WARNING: failed to remove tagNode from hash.\n");
                }
                pruned++;
            }
        }
    }

    return pruned;
}

static int PruneTime(SFXHASH* tree, uint32_t thetime)
{
    int pruned = 0;
    TagNode *lru_node = NULL;

    while ((lru_node = (TagNode *)sfxhash_lru(tree)) != NULL)
    {
        if ((lru_node->last_access + TAG_PRUNE_QUANTUM) < thetime)
        {
            if (sfxhash_remove(tree, lru_node) != SFXHASH_OK)
            {
                LogMessage("WARNING: failed to remove tagNode from hash.\n");
            }
            pruned++;
        }
        else
        {
            break;
        }
    }

    return pruned;
}

void SetTags(Packet *p, OptTreeNode *otn, uint16_t event_id)
{
   DEBUG_WRAP(DebugMessage(DEBUG_FLOW, "Setting tags\n"););

    if(otn != NULL && otn->tag != NULL)
    {
        if (otn->tag->tag_type != 0)
        {
            RuleTreeNode* rtn = getRuntimeRtnFromOtn(otn);
            void* log_list = rtn ? rtn->listhead : NULL;

            switch(otn->tag->tag_type)
            {
                case TAG_SESSION:
                    DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"Setting session tag:\n");
			            DebugMessage(DEBUG_FLOW,"SIP: %s  SP: %d   ",
                            sfip_ntoa(GET_SRC_IP(p)), p->sp);
                        DebugMessage(DEBUG_FLOW,"DIP: %s  DP: %d\n",
					        sfip_ntoa(GET_DST_IP(p)),p->dp););
                    TagSession(p, otn->tag, p->pkth->ts.tv_sec, event_id, log_list);
                    break;
                case TAG_HOST:
                    DEBUG_WRAP(DebugMessage(DEBUG_FLOW,"Setting host tag:\n");
    			        DebugMessage(DEBUG_FLOW,"SIP: %s  SP: %d   ",
	    			        sfip_ntoa(GET_SRC_IP(p)),p->sp);
                        DebugMessage(DEBUG_FLOW, "DIP: %s  DP: %d\n",
                            sfip_ntoa(GET_DST_IP(p)),p->dp););
                    TagHost(p, otn->tag, p->pkth->ts.tv_sec, event_id, log_list);
                    break;

                default:
                    LogMessage("WARNING: Trying to tag with unknown "
                            "tag type.\n");
                    break;
            }
        }
    }

    return;
}


Problem: How to promote ann innovative yet unknown product?
Solution: A hyper-simple page serves all that the visitor needs to graspthe nature of the service within seconds. The explanatory and eye-catchy banner and the 4 step graphic deliver the 1-2 punch.


text:
BSG welcomes Virgin Media launch of 50Mbps service
BSG welcomes Virgin Media's announcement of its new 50Mbps service, currently available to 5m homes on the Virgin network. This is the first major commercial rollout of next generation broadband, and represents a significant step in the development of the UK's knowledge economy infrastructure.
Commenting, Antony Walker, CEO of the BSG said, "This is a very significant development in the context of next generation broadband deployment in the UK. Over the last two years the debate has moved on significantly, and this last year has seen intentions to deploy expressed by both Virgin Media and BT.
"With the launch of this service, Virgin have moved the debate on again. The impact this service has on the market will tell us a lot about how next generation broadband will develop in the UK.???
DCF Report – Research on Very Hard to Reach Premises: technical and commercial analysis
Digital Connectivity Forum has published primary research by leading consultancy Analysys Mason on the commercial and technical practicalities of providing... read more
Proposed licence fees for 412-414 MHz paired with 422-424 MHz
Ofcom has published the proposed licence fees for the 412–414 MHz and 422–424 MHz paired spectrum which is currently licensed... read more
Ofcom evaluation of the 2015 pricing reforms for calls to non-geographic numbers
Ofcom has published an evaluation of changes it made in 2015 to the regulation of calls to non-geographic numbers. There are two... read more


When one visits places like Phuket, Koh Samui and the Maldives, it's assumed that a spa treatment is a certainty in your itinerary. Another place that often tops this list is Bali. During my recent stay at the Bulgari Hotels & Resorts on the island, I decided against venturing out of the resort to get my pampering fix, staying on-site instead because I'd heard a lot of good reviews about Bulgari's spas; and also because pictures of the facilities were too beautiful to pass up trying.
The oceanfront spa is a short walk from the hotel pool, both of which sit at the brim of the Uluwatu cliffs. Perhaps its most outstanding feature is the hand-carved teak wood Joglo House that houses the spa's welcome pavilion. Transported from the Northeastern Central Javanese city of Kudus, the antique structure has intricate carvings on the outer surface that reflect the Javanese, Chinese and Arabic cultures, as well as the vestiges of the old Hindu Majapahit Empire converging to the city of Kudus over the years.
Past the threshold, I was fussed over with questions about my day so far, a cup of iced hibiscus tea and details about my treatment. As breezy as check-in was, I was swiftly ushered to a room, giving me the opportunity to glance at the grounds. Along with six treatment rooms and two Royal Pavilions with outdoor gardens, stimulating rain showers and plunge pools, the spa has an open-air relaxation lounge, an upscale yoga pavilion, a swimming pool, a beauty salon, fitness centre and aromatic steam rooms.
I opted for a simple body treatment and chose to go with the Bulgari Balinese Massage, a 90-minute freestyle massage using Balinese techniques. As with all the spa sessions, mine began with a foot ritual to cleanse and gently exfoliate. Next, I chose the scented body oil I wanted my therapist to use as she introduced to me the range of E'SPA products that the spa employs. Given that I've been on the 'natural ingredients' path just recently in my daily skincare regime, I was happy to learn that the oil was just one of the brand's numerous items that uses essential oils and pure extracts in its formula.
There were a few areas of concern that I wanted my therapist to focus on — along with the rest of my aching body — and fortunately, she massaged my limbs back to top working order with consistent strength and precision. My personal barometer for a good massage is whether or not I find myself tensing or flexing over the course of the treatment. Thankfully, even when rubbing out knots and stretching out my limbs per the Balinese way, my therapist was careful and conscious of pushing me just to my limits. More than that, the ambience was a good mix of comfort and class as the room was just big enough for one and I never once had to request for a change in room temperature or music level.
Unfortunately, I couldn't spare the time to relax even more — if that were possible at that point — as I had to get ready to leave for a sunset Uluwatu Temple visit. As I made my way back where I came from, I took one last longing look at the relaxation lounge with its sweeping ocean views, plunge pool, and as many organic tonics and ginger and coconut cookies you could eat, promising myself that one day, I'd be back again.


text:
LWM Publications Bookstore
Articles by Jan Magiera
Aramaic Insight
Articles by E. W. Bullinger
Articles by George Mueller
Bible Customs
Everyday Life in the Holy Land
Aramaic Links
Languages of the Bible
The Bible is an eastern book and was written by eastern people. "The prophecy came not in old time by the will of man: but holy men of God spake as they were moved by the Holy Ghost" (2 Peter 1:21). These "holy men" spoke three main languages, which are Hebrew, Aramaic and Greek. If we want to understand the Bible, we need to know how to study these languages. This article is a brief introduction to the history of the three languages and how they interact in Biblical study.
The oldest language is probably Aramaic. It was not called that then, but many Aramaic speaking people today say that Aramaic as a language goes all the way back to Adam and Eve. They call it "the Mesopotamian language." The first mention of Aram, the youngest son of Shem, is in Genesis 10:22. The language that Aram spoke was transmitted down to Abraham.
Abraham left his home in Mesopotamia and traveled with his brother Nahor to Haran in Syria. The son of Nahor was also called Aram (Genesis 22:21). This land area in Syria became known as the land of the Aramaens, or Aram. Later, Abraham left Haran and crossed the Euphrates River and traveled to Canaan. His descendants were called Hebrews, a term derived from the Aramaic word abar, meaning "to cross over." Gradually, a unique dialect and script was developed called Hebrew. The Old Testament scriptures were written and compiled in this language. Throughout the centuries from Moses' time on, Hebrew was used as the Biblical language and was preserved very carefully by the scribes.
By the time of the New Testament in the first century, Aramaic was the commercial and business language throughout the Near East and Greek and Latin were also spoken by the people in the Roman Empire. Hebrew continued to be the language preserved in the Old Testament scriptures. The Gospels were most certainly written in Aramaic and most likely Paul's epistles were also. But as the gospel reached out in the first century from Jerusalem into Antioch of Syria and then on into Achaia and Macedonia, which were Greek-speaking areas, the scriptures were almost immediately translated into Greek. This is also why there are additions of Greek loan words in the Aramaic (words of Greek origin spelled in Aramaic letters) and also Aramaic loan words in the early Koine (Biblical) Greek.
In the fourth century, there was a split between the eastern and western churches. Basically, the eastern churches continued to use the Aramaic version of the New Testament called the Peshitta (which means "simple" or "straight") and the western churches used the Greek versions. We are still told today that the Greek versions are the "best and most accurate" because we have grown up as part of the western tradition. But the truth is that the two languages of scriptures grew up together and each has valuable things to contribute to Biblical study.
This is a very brief overview of the development of the three languages, but as you can see, because of this history, it is important that we study all three if we want to understand the Bible. Aramaic and Hebrew are very closely related and because of that, there is a strong tie between the Old and New Testaments. Greek is the language through which we eventually got the King James Version and it is the language which has been and still is the most studied by scholars and Biblical students.
What is the main value of each language for Biblical study? Since Aramaic and Hebrew are so similar, I think that their value is also similar. They both are very picturesque and descriptive languages, rich with idioms, figures of speech and illustrations. These are all a "gold mine" and rich enough to study for a lifetime! Greek is the classical language of the Roman Empire and since the history and transmission of the gospel occurred in that time, there are many customs and manners that help us to understand the New Testament. For example, all of the references that Paul makes in the epistles to the Roman games are from the Greek and Roman culture (I Corinthians (:25-27).
To conclude with a practical example of the interaction of all the languages, let us look at a sample verse from Hebrews.
Hebrews 13:5: Let your conversation be without covetousness; and be content with such things as ye have: for he hath said, I will never leave thee, nor forsake thee.
Hebrews 13:5 (Aramaic): Your mind should not love money, but what you have should be sufficient for you. For the LORD has said: I WILL NOT LEAVE YOU AND I WILL NOT LET GO OF YOU.
The last part of this verse is a quotation from Deuteronomy of some of the last words of Moses to the children of Israel:
Deuteronomy 31:6: Be strong and of a good courage, fear not, nor be afraid of them: for the LORD thy God, he it is that doth go with thee; he will not fail thee, nor forsake thee.
The Aramaic of Hebrews 13:5b literally says, "I will not leave you and I will not let my hands let loose of you." The word "let loose" is the same as "fail you" in the Hebrew of Deuteronomy. It is a picture of God not letting his hands go slack or hang down and do nothing. God will always be working on our behalf!
The Greek further emphasizes the phrase by putting no less than 5 negatives together and states literally: I will never, no, never leave thee, nor ever forsake thee. This literally confirms God's promise to us, as well as to Israel!
We can see from this brief study that there is an interaction between all the Biblical languages and it is important to understand how they work together to get the complete understanding of a passage of scripture.
Studies in the Aramaic Peshitta New Testament
Manners and Customs of the Bible
Everyday Life in the Holy Land by James Neil
Laying a foundation for Biblical study
We provide information regarding customs, figures of speech, and the Aramaic text of the New Testament, in order that the Bible may be understood more clearly.
Aramaic New Testament Apps
© 2007 - 2021 Light of the Word Ministry