text:
Moderate exercise training improves some of the Marfan syndrome symptoms in mice
by University of Barcelona
Regular physical activity is a common therapy for people with cardiovascular problems, but not recommended to those with Marfan syndrome, a rare disease of the connective tissue affecting the cardiovascular system. A study conducted jointly by the University of Barcelona and the August Pi i Sunyer Biomedical Research Institute (IDIBAPS) has analysed for the first time this medical recommendation, analysing the impact of exercise in the development of the disease in mice. The results, published in the scientific journal Journal of the American Heart Association, show that moderate exercise reduces the progression of aortic aneurysm, one of the most severe symptoms of the disease, which can cause arteries to break.
The study opens the door to studies on humans to verify the positive effects of this kind of exercise in patients with Marfan syndrome.
Hypothesis without experimental evidence
Physical activity increases the blood the heart pumps per minute. This increase has an impact on the aorta. "So far, it was thought that this mechanic impact, together with a discrete increase of the arterial pressure, could have negative effects on a weak arteria, like the case of patients with Marfan syndrome, and therefore it would dilate faster if the patient exercised," says Gustavo Egea.
To test this hypothesis, researchers analysed the effects of moderate exercise on rice with Marfan disease. "During the five months of the experiment, the aorta of those mice who did not exercise dilated twice compared to those mice that were not ill. Mice which exercised experienced a reduction of this dilation until it was indistinguishable from those without the disease," says Eduard Guash. Also, among the beneficial effects, researchers also saw that moderate exercise for five months reduced the size of the heart (cardiac hypertrophy) compared to those mice that did not exercise.
"The new results go against a clinical concept that was accepted without any experimental evidence to prove it: it said that all physical activity increased the risk of speeding up the aneurysm progression" says Gustavo Egea.
Thinking lifestyle recommendations twice
Although results in animals should be carefully interpreted before bringing them to patients, researchers highlight that the study provides experimental data that was not available before. "Our work opens the door to conducting studies on humans, but does not verify directly the non-selective recommendation of physical activity to patients with Marfan syndrome," says Gustavo Egea.
Moreover, the researchers note that the study is focused on the impact of moderate exercise, which is the one recommended to people in general and which has been proved to bring cardiovascular benefits. "We did not face the effects of intense and long exercise and we cannot apply our results to other kinds of exercise –other than resistance," says Eduard Guasch.
Marfan syndrome is a genetic disease caused by the mutation of a gene that codifies fibrilin I protein, one of the two main compounds of elastic fibers that make up the connective tissue. As a consequence of this mutation, the elastic fiber assembly in tissues is wrong, and therefore the function of relaxation is lost and tissues get damaged faster.
All tissues with elastic fibers or fibrilin I microfibriles are affected, like skin that gets stretch marks, or lungs with emphysema, and the eye lens that moves and causes blindness. The most significant one out of all these dysfunctions is the accelerated weakening of the ascending aorta, which leads to aortic aneurysm and the following dissection and breaking of the aorta.
These clinical manifestations are what is known as Marfan syndrome, which, despite being a minority disease, has a high prevalence of 1/5,000 patients and is hard to diagnose.
People with Marfan are tall with disproportionately large extremities. The average life of non-diagnosed people is around 40 years old, and around 50% of people with this disease are not diagnosed. In Catalonia, there can be around 1,500 people with it. The diagnostic is made with a study of clinical manifestation with a score. When in doubt or verification a genetic analysis can be carried out. Nowadays, the only effective therapeutic solution is surgery, and diagnose and regular monitoring of the aneurysm progression with imaging techniques are essential to increase the life of the patients.
Researchers reverse heart failure in Marfan mice
More information: Aleksandra Mas‐Stachurska et al. Cardiovascular Benefits of Moderate Exercise Training in Marfan Syndrome: Insights From an Animal Model, Journal of the American Heart Association (2017). DOI: 10.1161/JAHA.117.006438
Journal information: Journal of the American Heart Association
Provided by University of Barcelona
Citation: Moderate exercise training improves some of the Marfan syndrome symptoms in mice (2017, December 18) retrieved 20 January 2022 from https://medicalxpress.com/news/2017-12-moderate-marfan-syndrome-symptoms-mice.html
New treatment for Marfan syndrome shows promise
Drug treatment for Marfan syndrome looks promising
A single workout could save your life
High-intensity exercise delays Parkinson's progression
Common blood pressure drug reduces aortic enlargement in Marfan syndrome
Oral penicillin, not injectable, advised for people with high-risk rheumatic heart disease
Without coronary calcium, risk factors impact cardiovascular disease
Direct oral anticoagulants significantly decrease recurrent venous thrombosis for adult cancer patients
The circadian clock in heart failure
Young black women have lower microvascular function across the menstrual cycle


An inspector suggested to Linda in 1991 that real estate would be a good fit for her. And it was. A perfect fit. After 25 years of good, hard work in the profession and being in the top 9.7 percent of sellers during many of those years, Linda earned the 2014 Realtor® of the Year Award and was 2012's President of the Ann Arbor Area Board of Realtors®. "No website can take the place of a top real estate agent—not even this one," Linda says. "This site is filled with ways to contact me for one-on-one expert help and advice. That's my job. Contact me with confidence! I guarantee your privacy will be respected."


He may have gone down in the list, but Sander is still in the premier league of the world's top DJs. An expert in mixing and matching styles, and sometimes scratching away to his heart's content, he's had a particularly great year in terms of his record label.
Doorn Records has produced a string of big releases, not least Sander's own productions such as 'Joyenergizer' (a Beatport No.1), 'Into the Light' with Dubvision, 'Neon' and big electro trancer 'Project T' with Dimitri Vegas & Like Mike.
Because of the success of his label, Sander exclusively reveals to DJ Mag that he's kick-starting a Doorn Records world tour — in fact, he already has done so, launching the set of dates at the ADE in Amsterdam in mid-October.
This year he's been a main stage regular at all the big festivals — Ultra, Electric Zoo, EDC, Tomorrowland etc — and this run of big gigs looks set to continue next year too.


When people ask me my favorite comic of all time, I don't even have to think about it: The Brave and the Bold (1955), which should come as no surprise to those who have followed this blog since the beginning. It checked all the boxes for me - it prominently featured my favorite artist Jim Aparo and my favorite DC hero, Batman. Also it was a team-up title which I of course went nuts for. Before that, it was the try-out comic for many great concepts - The Suicide Squad, Teen Titans and Justice League of America among them. Finally, it presented the return of many a Golden Age hero for new life in the Silver Age like Hawkman, Hourman, Wildcat, Doctor Fate, Green Lantern and the two above. What a series!
I understand that excitement. I enjoyed Brave and Bold as well. But Marvel Two-in-One and Marvel Team-Up were my favorites. I really loved their covers too.
Those were Top Three favorites, too. Back when comics were "STILL only $0.20!"
Coincidence strikes: I re-read that Starman/Black Canary/Wildcat revival story (reprinted in a one-off 'JSA 80-page Giant') just a couple of evenings ago.
Back in the early Iron Man issues of Tales of Suspense, they used poses similar to this more than once on the cover.
I wonder if Dinah and Natasha (and Zatanna too?) buy their fishnet stockings from the same retailer.
Aside from The Legion of Super-Heroes, my favorites were the Big Two's team-up books: The Brave and the Bold, DC Comics Presents, Marvel Two-In-One and Marvel Team-Up. And yes - Jim Aparo was the big draw of that particular book.
Listen to the Mandarin Reign. I'm a Punny Guy, I might be among the Punniest you'll ever interact with.
As a kid I read Brave and the Bold and realized that that series was not in the same world as rest of DC Universe but loved it.
@Glenn: I know what you mean. The earliest issues I ever read of B&B, in the early-to-mid-Seventies, had Batman doing uncharacteristic things. Like flying commercial down to South America, with Richard Dragon, in full costume...in broad daylight!
Of course, I now realize that was the remaining influence of the BATMAN '66 series. But, at the time, I thought to myself: "Whoa! Why aren't they using the two-seat Batplane by night?!"
The Thing and Starman in: "Skirmish on Skrullos!"


My goal for this year's Finland trips is to eat out more if the budget allows it. Now that I've lived in London for over five years already, I want to treat going back home as more of a holiday, as well as see my old hometown a bit more like a tourist would. And, to be fair, for all intents and purposes I am a tourist now: there are SO many new restaurants and bars that weren't there when I moved out, and I've *definitely* lost count on all the places that I want to try!
I successfully started my new 'eating out in Finland' tradition last week by having brunch in Helsinki, in a place recommended to me by my friend in the know: a restaurant called Story at the top floor of Kamppi shopping centre, with views over the city centre.
Don't be put off by the fact that Story is located in a shopping centre. I know it usually means chain restaurants, but the top floor of Kamppi is actually very pretty, showcasing beautiful Nordic design and lots of cool little eateries. Story, for example, only has one other branch in Helsinki, so it's as far from a large, soulless chain as you can get. The other branch is in an old market hall just by Helsinki harbour, and is worth a visit in its own right – the location is absolutely beautiful and the market hall itself is full of charm.
On Sundays Story has a specific Sunday menu with lots of stand alone brunch dishes like the classic avocado on toast, lots of different egg dishes and also a few sweeter plates such as French toast and pancakes with apple and cinnamon. They also do more typical lunch food like burgers and sandwiches if you go a bit later on in the day and have already had your breakfast.
I was so close to choosing to go for my favourite, the avocado on toast, but changed my mind at the last minute as I thought that for once I should try something a bit different. Also, wanting variety for my blog photos might have *possibly* had something to do with it as well… Anyway, in the end I opted for French toast with peanut butter, banana and mascarpone foam which turned out to be fantastic, so I'm very glad I made the change.
Costing 8.90€ (about 7.80 pounds), the dish is a bit pricey, considering you only get one slice of bread, but if you can get over the price (which you probably should: this is Finland and you won't find anything similar for much less elsewhere…) you'll really love the dish. There's a generous serving of mascarpone and banana, which both act as a lovely sweetener and moist maker (hi Ross) for the saltiness of the peanut butter.
My friend Hanna went for the avocado and toast as well as a bowl of home roasted granola with yoghurt. The avocado on toast is served on a gluten free bread and comes with tomato, sesame seeds and pickled onions.
I asked for her opinion, and she said that the food, especially the granola, was really tasty, but that the bread was served with pickled onions even though she had asked them to be excluded. She also would have preferred something else than the gluten free bread, but as the dish was only served this, there was no other option. Other than that everything was really tasty, and she also really recommended the Saturday menu, which I'd love to try next!
All in all I really loved my experience at Story: the staff were very attentive and friendly, the food was yummy and the decor, as well as the views, were stunning as well. I highly recommend booking a table if you're on the lookout for a great brunch in Helsinki, and, if you do end up booking, make sure to ask for a table by the window!


text:
Q: What is the best way to calculate a weighted average that favors rarity? DISCLAIMER: I am coming from a coding background so I have no doubt I am butchering the terms or what I am trying to ask
I am working on a coding project to look at a user's list of movies watched and rated (on a scale of 1-10) and rank their favorite genres, languages, directors, etc. That being said, I want some sort of weighted average to better represent what each rating "means". In my case, I have watched and rated something like ~1030 movies but have only given out 23 5-star ratings, so a 5-star rating should count for more, whereas a 3.3, 3.5, or even a 4.0 rating should count for less since they occur more often. And in that same vein, that would mean that a 0.5 or 1-star review should count for even worse since they are rarer than a 5-star.

What would be the best way to account for this in a weighted average?
A second question I have is how would you also account for the volume of items in a category when computing this weighted average as well?

Here is an example of my rankings for language with a simple average. English will obviously be dragged down in my case just because that is the majority of what I've watched in my life but the fact that I have seen the large majority of films in that language should obviously account for something. What would be the way to solve that?
Again, it has been a long time since I had to take a stats class so I assume even knowing the proper terms would have helped me a lot in explaining my situation but thanks for the help in advance.

redpajama_set_name: RedPajamaStackExchange


Renovations on the exterior of the Missouri Capitol are nearly halfway complete. In a press release from the Office of Administration, it says the $40 million project remains on budget and on scheduled with the anticipated completion at the end of 2020.
As the building's first major construction project, it is addressing deteriorating stonework on its facades, dome and drum, water proofing, overall appearance and stabilizing the structure. Upon completion, the office says the project will extend the life of the building and ensure the historic structure is properly preserved for decades to come.
The north plaza on the north side of West Capitol Avenue was completed in December. Some minor work remains to be completed in the plaza, such as cleaning of the Louisiana Treaty Monument and sealing of the Fountain of the Centaurs liner. That work is weather dependent and is expected to be completed this spring.
The 1,400 pound bronze statue of Ceres, the Roman goddess of agriculture, which was removed from the top of the Capitol in November, is on a long visit to the spa. She is getting laser cleaning treatment to remove contaminants and preserve her natural color tones. During an evaluation of the statue, it was determined she had been struck by lightning more than 300 times.
In recent weeks, crews have worked to replace covering that rips during high winds. The repair and replacement of the covering has not affected the project's timeline.
The Office of Administration says the public should not be alarmed when the covering rips. It is designed to come off when winds reach or exceed 50 MPH. This prevents lifting and damaging to the scaffolding and building. Recent high winds have not damaged the scaffolding or the building.
In 2014, the Missouri Legislature approved bonding for the renovations.
For more information about the project, click here.
MLB Recaps: Cards hold off Brewers, Royals skid continues.


text:
package com.googlecode.macaron.audit;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.jar.JarFile;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
 * Analyse each files and components and generate an XML rapport with all suspicious files.
 *
 * @author Philippe PRADOS
 */
public class Audit
{
	/** If debug */
	private static boolean debug = true;
	/** The logger. Use to print steps. */
	private static Logger log = Logger.getLogger(Audit.class.getName());
	static
	{
		log.setLevel(Level.SEVERE);
	}

	/** Tempo directory. */
	private static final String TEMP;
	static
	{
		final String t=System.getProperty("java.io.tmpdir");
		TEMP=(t==null) ? "." : t;
	}

	/** Default home for XSTL and XSD */
	private static final String home="http://macaron.googlecode.com/svn/trunk/audit/src/main/resources/com/googlecode/macaron/audit/";

	/** Default xslt. */
	public static final String DEFAULT_STYLE_SHEET = home + "audit-to-xhtml.xslt";
	/** Default XML Schema. */
	private static final String defaultXSD=home+"audit.xsd";

	/** Context of current file. */
	static class Context
	{
		String idName;
		String baseIdName;
		String path;
		String packageName;
		String name;
		String ext;
		String basename;
		String codebase;
		public int hashCode() // TODO: hash ?
		{
			return idName.hashCode();
		}
		public String toString()
		{
			return idName+"!"+path;
		}
		Context(Context ctx)
		{
			idName=ctx.idName;
			baseIdName=ctx.baseIdName;
			path=ctx.path;
			packageName=ctx.packageName;
			name=ctx.name;
			ext=ctx.ext;
			basename=ctx.basename;
			codebase=ctx.codebase;
		}
		Context()
		{

		}
	}

	/** Packages to ignore. */
	private HashMap<String,Set<String>> ignorePackageName_=new LinkedHashMap<String,Set<String>>();
	/** Resource to ignore. */
	private HashMap<String,Set<String>> ignoreName_=new LinkedHashMap<String,Set<String>>();
	/** Basenames to ignore. */
	private HashMap<String,Set<String>> ignoreBaseName_=new LinkedHashMap<String,Set<String>>();
	/** Services to ignore. */
	private HashMap<String,Set<String>> ignoreServices_=new LinkedHashMap<String,Set<String>>();
	/** Annotation to detect. */
	private HashMap<String,Set<String>> ignoreAnnotations_=new LinkedHashMap<String,Set<String>>();

	private HashMap<String,String> detectAnnotations_=new LinkedHashMap<String,String>();

	/** Contexts with packages. */
	private HashMap<String,Set<Context>> packageName_=new LinkedHashMap<String,Set<Context>>();
	/** Contexts with name. */
	private HashMap<String,Set<Context>> name_=new LinkedHashMap<String,Set<Context>>();
	/** Contexts with basenames. */
	private HashMap<String,Set<Context>> baseName_=new LinkedHashMap<String,Set<Context>>();
	/** Contexts with services. */
	private HashMap<String,Set<Context>> services_=new LinkedHashMap<String,Set<Context>>();
	/** Contexts with annotations. */
	private HashMap<String,Set<Context>> annotations_=new LinkedHashMap<String,Set<Context>>();

	/**
		FIXME: should use directly ConfigParams ...
	*/
	/** Use recursive analyse with directory ? */
	private boolean recurs_;
	/** XSLT to inject in the result. */
	private String xslt_;
	/** XSLT output dir. */
	private String dir_;
	/** Writer for the report. */
	private PrintWriter out_;
	/** Filename to exclude. */
	private Pattern excludePattern;
	private ParamsConfig config;

	/**
	 * Constructor.
	 *
	 * @param output The output filename or "-".
	 * @param xslt The XSLT to inject.
	 * @param ignore Ignore file.
	 * @param recurs Use recursive analyse with directory ?
	 * @throws IOException If IO error.
	 * @throws SAXException If error when parse xml file.
	 */
	private void setup(File output,String xslt,URL ignore,boolean recurs) throws IOException, SAXException
	{
		try
		{
			recurs_=recurs;
			parseIgnore(Audit.class.getResource("ignore.xml"));
			if (ignore!=null) parseIgnore(ignore);
			if (output.getName().equals("-"))
				out_=new PrintWriter(System.out,debug);
			else
				out_=new PrintWriter(new FileWriter(output));
			dir_=output.getAbsoluteFile().getParent();
			assert( dir_!=null);
			xslt_=xslt;
		}
		catch (XPathExpressionException e)
		{
			throw new AssertionError(e);
		}
		catch (ParserConfigurationException e)
		{
			throw new AssertionError(e);
		}
	}

	/**
	 * Constructor.
	 *
	 * @param config All configuration.
	 * @throws IOException If IO error.
	 * @throws SAXException If error when parse xml file.
	 */
	public Audit(ParamsConfig config)
	{
		this.config = config;
	}

	public void init() throws IOException, SAXException {
		this.setup(config.getOutput(),config.getXslt(),config.getIgnore(),config.isRecurs());
	}

	/**
	 * Exception when command line error.
	 */
	public static class CommandLineException extends Exception
	{
		private static final long serialVersionUID = 1L;

		public CommandLineException(String s)
		{
			super(s);
		}
	}

	/**
	 * Visitor of component.
	 */
	private interface Visitor
	{
		void doFileName(String idname,JarFile jarFile,ZipEntry entry) throws IOException;
	}

	/**
	 * Copy stream.
	 *
	 * @param in Source.
	 * @param out Destination.
	 * @throws IOException If error.
	 */
	private static void copyStream(InputStream in,OutputStream out) throws IOException
	{
		byte[] tampon=new byte[4096];
	    int len;
        while ((len = in.read(tampon)) > 0) {
            out.write(tampon, 0, len);
        }
	    out.flush();
	}

	/**
	 * Analyse file (from zip or not).
	 * @param idName The identity name.
	 * @param baseIdName The base identity name.
	 * @param path The path of component.
	 * @param in The inputstream
	 * @param length The file size
	 * @throws IOException
	 */
	private void auditFile(String idName,final String baseIdName, final String path,InputStream in,long length) throws IOException
	{
		try
		{
			final Context ctx=new Context();
			if (log.isLoggable(Level.FINEST)) log.fine("analyseFile("+idName+","+baseIdName+","+path+")");
			int idx=path.lastIndexOf('/');
			ctx.idName=idName;
			ctx.baseIdName=baseIdName;
			ctx.path=path;
			ctx.packageName=(idx==-1) ? "" : path.substring(0,idx+1);
			ctx.name=(idx==-1) ? path : path.substring(idx+1);
			idx=ctx.name.lastIndexOf('.');
			ctx.basename=ctx.packageName+((idx==-1) ? ctx.name : ctx.name.substring(0,ctx.name.lastIndexOf('.')));
			ctx.ext=(idx==-1) ? "" : ctx.name.substring(idx+1);
			if (excludePattern.matcher(ctx.name).matches()) return;

			Set<Context> contexts;

			// Analyze packages
			{
				contexts=packageName_.get(ctx.packageName);
				if (contexts==null)
				{
					contexts=new HashSet<Context>();
					packageName_.put(ctx.packageName, contexts);
				}
				boolean find=false;
				for (Context aCtx:contexts)
					if (aCtx.idName.equals(ctx.idName))
					{
						find=true;
						break;
					}
				if (!find)	contexts.add(ctx);
			}

			// Analyze fullnames
			if (!ctx.name.endsWith(".class"))
			{
				contexts=name_.get(ctx.name);
				if (contexts==null)
				{
					contexts=new HashSet<Context>();
					name_.put(ctx.name, contexts);
				}
				contexts.add(ctx);

			}
			else
			{
				// Analyze annotations
				final Set<String> annotationsFinded=new HashSet<String>();
	    		ClassFile classFile=new ClassFile();
	    		classFile.setConstantPoolInfo(new ConstantPoolInfo(new CustomAnnotationScanner()
	    		{

	    			public boolean isAnnotation(String value)
	    			{
	    				boolean find=(detectAnnotations_.get(value)!=null);
	    				if (find)
	    				{
	    					annotationsFinded.add(value);
	    				}
	    				return find;
	    			}

	    		}));
				ReadableByteChannel channel = Channels.newChannel(in);
				assert(channel!=null);
	            if (classFile.containsAnnotation(channel, length))
	            {
		    		for (String anno:annotationsFinded)
		    		{
		    			String normalAnnotation=detectAnnotations_.get(anno);
						contexts=annotations_.get(normalAnnotation);
						if (contexts==null)
						{
							contexts=new HashSet<Context>();
							annotations_.put(normalAnnotation, contexts);
						}
						contexts.add(ctx);
		    		}
	            }
			}
			// Analyze basename
			{
				contexts=baseName_.get(ctx.basename);
				if (contexts==null)
				{
					contexts=new HashSet<Context>();
					baseName_.put(ctx.basename, contexts);
				}
				contexts.add(ctx);
			}

			// Analyze services
			if (ctx.packageName.startsWith("META-INF/services/"))
			{
				contexts=services_.get(ctx.path);
				if (contexts==null)
				{
					contexts=new HashSet<Context>();
					services_.put(ctx.path, contexts);
				}
				contexts.add(ctx);
			}
		}
		finally
		{
			in.close();
		}
	}

	/**
	 * Audit a component.
	 *
	 * @param idname The identity name.
	 * @param jar The JAR file.
	 * @param visitor The visitor.
	 *
	 * @throws IOException If error.
	 */
	private void auditComponent(String idname,File jar,Visitor visitor) throws IOException
	{
		JarFile jarFile=new JarFile(jar);
		try
		{
			for (Enumeration<?> entrie=jarFile.entries();entrie.hasMoreElements();)
			{
				ZipEntry entry=(ZipEntry)entrie.nextElement();
				if (entry.isDirectory()) continue;

				visitor.doFileName(idname,jarFile,entry);
			}
		}
		finally
		{
			jarFile.close();
		}
	}

	/**
	 * Audit JAR component.
	 *
	 * @param idname The identity name.
	 * @param baseIdName The base identity name.
	 * @param jar The JAR file.
	 * @throws IOException If error.
	 */
	private void doJar(final String idName,final String baseIdName,File jar) throws IOException
	{
		log.info("Audit "+idName);
		auditComponent(idName,jar, new Visitor()
		{
			public void doFileName(String idName,JarFile jarFile,ZipEntry entry) throws IOException
			{
				if (entry.isDirectory()) return;
				auditFile(idName, baseIdName, entry.getName(),jarFile.getInputStream(entry),entry.getSize());
			}

		});
	}

	/**
	 * Audit WAR component.
	 *
	 * @param idname The identity name.
	 * @param baseIdName The base identity name.
	 * @param jar The JAR file.
	 * @throws IOException If error.
	 */
	private void doWar(final String idName,final String baseIdName,File jar) throws IOException
	{
		log.info("Audit "+idName);
		final int len="WEB-INF/lib/".length();
		auditComponent(idName,jar, new Visitor()
		{
			public void doFileName(String idName,JarFile jarFile,ZipEntry entry) throws IOException
			{
				if (entry.getName().startsWith("WEB-INF/lib/"))
				{
					// Extraire l'archive
					String basename=entry.getName().substring(entry.getName().lastIndexOf('/')+1);
					String ext=basename.substring(basename.lastIndexOf('.'));
					if (!".jar".equalsIgnoreCase(ext) && !".zip".equalsIgnoreCase(ext))
					{
						log.warning("Invalide file "+idName+"!"+entry.getName());
					}
					else
					{
						File jarfile=new File(TEMP+File.separator+new File(jarFile.getName()).getName()+"-"+basename);
						try
						{
							OutputStream out=new FileOutputStream(jarfile);
							InputStream in=jarFile.getInputStream(entry);
							copyStream(in,out);
							in.close();
							out.close();
							// Audit de l'archive
							doJar(idName+"!"+entry.getName(),entry.getName().substring(len),jarfile);
						}
						finally
						{
							jarfile.delete();
						}
					}
				}
				else if (entry.getName().startsWith("WEB-INF/classes/"))
				{
					auditFile(idName,baseIdName, entry.getName().substring("WEB-INF/classes/".length()),jarFile.getInputStream(entry),entry.getSize());
				}
			}
		});
	}

	/**
	 * Audit EAR component.
	 *
	 * @param idname The identity name.
	 * @param jar The JAR file.
	 * @throws IOException If error.
	 */
	private void doEar(String idName,File jar) throws IOException
	{
		log.info("Audit "+idName);
		auditComponent(idName,jar, new Visitor()
		{
			public void doFileName(String idName,JarFile jarFile,ZipEntry entry) throws IOException
			{
				if (entry.getName().endsWith(".jar") || entry.getName().endsWith(".war"))
				{
					// Extraire l'archive
					String basename=entry.getName().substring(entry.getName().lastIndexOf('/')+1);
					File jarfile=new File(jarFile.getName()+"-"+basename);
					try
					{
						OutputStream out=new FileOutputStream(jarfile);
						InputStream in=jarFile.getInputStream(entry);
						copyStream(in,out);
						in.close();
						out.close();
						if (entry.getName().endsWith(".jar"))
							doJar(idName+"!"+entry.getName(),entry.getName(),jarfile);
						else
							doWar(idName+"!"+entry.getName(),entry.getName(),jarfile);
					}
					finally
					{
						jarfile.delete();
					}
				}
			}
		});
	}

	/**
	 * Audit RAR component.
	 *
	 * @param idname The identity name.
	 * @param jar The JAR file.
	 * @throws IOException If error.
	 */
	private void doRar(String idName,File jar) throws IOException
	{
		log.info("Audit "+idName);
		auditComponent(idName,jar, new Visitor()
		{
			public void doFileName(String idName,JarFile jarFile,ZipEntry entry) throws IOException
			{
				if (entry.getName().endsWith(".jar"))
				{
					// Extraire l'archive
					String basename=entry.getName().substring(entry.getName().lastIndexOf('/')+1);
					File jarfile=new File(jarFile.getName()+"-"+basename);
					try
					{
						OutputStream out=new FileOutputStream(jarfile);
						InputStream in=jarFile.getInputStream(entry);
						copyStream(in,out);
						in.close();
						out.close();
						doJar(idName+"!"+entry.getName(),entry.getName(),jarfile);
					}
					finally
					{
						jarfile.delete();
					}
				}
			}
		});
	}

	/**
	 * Analyze all files.
	 *
	 * @param names All files.
	 * @throws IOException If error.
	 */
	//FIXME: won't a List<File> be more elegant ?
	//       or even List<String> filenames; which ask less work
	//		 for user API
	public void doAll(File[] names) throws IOException
	{
		if (names==null) return;
		for (File name:names)
		{
			if (name.isDirectory())
			{
				final File[] alljar= name.listFiles(new AuditFileFilter(this.recurs_));
				if (alljar.length!=0)
				{
					doAll(alljar);
				}

			}
			else if (name.getName().endsWith(".war"))
			{
				doWar(name.toString(),name.getName(),name);
			}
			else if (name.getName().endsWith(".ear"))
			{
				doEar(name.toString(),name);
			}
			else if (name.getName().endsWith(".rar"))
			{
				doRar(name.toString(),name);
			}
			else if (name.getName().endsWith(".jar"))
			{
				doJar(name.toString(),name.getName(),name);
			}
			else if (name.getName().endsWith(".class"))
			{
				InputStream in=new FileInputStream(name);
				String classes="";
				String idname=name.getPath();
				int idx=idname.lastIndexOf("classes");
				if (idx!=-1)
				{
					classes=idname.substring(0,idx+"classes".length()+1);
					idname=idname.substring(idx+"classes".length()+1);
				}

				auditFile(classes, classes, idname,in,name.length());
			}
			else
			{
				throw new IllegalArgumentException("Unknown file type for "+name.getName());
			}
		}

		// Post analyse
		for (String item:new HashSet<String>(baseName_.keySet()))
		{
			Set<Context> contexts=baseName_.get(item);

			// Verifie qu'il y a bien des extensions différentes
			String ext=null;
			boolean mixe=false;
			for (Context ctx:contexts)
			{
				if (ext==null) ext=ctx.ext;
				else if (!ext.equals(ctx.ext))
				{
					mixe=true;
					break;
				}
			}
			if (!mixe)
			{
				contexts.clear();	// Si toutes les ext sont identiques, nettoie.
				baseName_.remove(item);
			}
		}

	}

	/**
	 * Inject XSLT file.
	 * @param out
	 * @throws MalformedURLException
	 * @throws IOException
	 */
	private void insertXSLT(PrintWriter out) throws MalformedURLException, IOException
	{
		if (!"".equals(xslt_))
		{
			URL u = null;
			try
			{
				u = new URL(xslt_);
			}
			catch (MalformedURLException e)
			{
				u = new File(xslt_).getCanonicalFile().toURI().toURL();
			}
			if (u.toExternalForm().equals(DEFAULT_STYLE_SHEET ))
			{
				u=getClass().getResource("audit-to-xhtml.xslt");
			}
			String path=u.getPath();
			path=path.substring(path.lastIndexOf('/')+1);
			File outputxslt=new File(dir_+File.separator+path).getCanonicalFile();
			if (!outputxslt.exists())
			{
				InputStream i=u.openStream();
				OutputStream o=new BufferedOutputStream(new FileOutputStream(dir_+File.separator+path));
				copyStream(i,o);
				i.close();
				o.close();
			}
			out.println("<?xml-stylesheet href=\""+path+"\" type=\"text/xsl\"?>");
		}

	}

	/**
	 * Write XML report.
	 *
	 * @param out The writer.
	 * @throws IOException
	 */
	public void writeXMLReport(PrintWriter out) throws IOException
	{
		out.println("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");
		insertXSLT(out);
		StringBuilder ann=new StringBuilder();
		for (String k:detectAnnotations_.keySet())
		{
			ann.append(detectAnnotations_.get(k));
			ann.append(',');
		}
		ann.setLength(ann.length()-1);
		out.print("<audit \n"+
			"\txmlns=\""+XMLContext.NAMESPACESTR+"\"\n"+
			"\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"+
			"\txsi:schemaLocation=\"http://macaron.googlecode.com/1.0/ "+defaultXSD+"\"\n"+
			"\tignoreFilenames=\""+excludePattern.toString().replaceAll("\"", """)+"\"\n"+
			"\tannotations=\""+ann.toString()+"\"\n"+
			">\n");
		// Analyse des packages dans les archives
		writeXMLPackagesReport(out);

		// Analyse des packages dans les archives
		writeXMLFilenameReport(out);

		// Je recherche des fichiers de même noms placés aux mêmes packages
		writeXMLBasenameReport(out);

		// Je recherche des fichiers de même noms placés aux mêmes packages
		writeServicesReport(out);

		// Je recherche des annotations dans les classes
		writeAnnotationsReport(out);

		out.print("</audit>\n");
	}

	/**
	 * Write XML report.
	 * @throws IOException
	 */
	public void writeXMLReport() throws IOException
	{
		writeXMLReport(out_);
		out_.flush();
	}

	enum Scope { jar, pack, clazz };
	/**
	 * Write XML partial report.
	 *
	 * @param out The writer.
	 * @param tag The current tag.
	 * @param list The list of context.
	 * @param ignoreList The ignore list.
	 * @param mincontext The minimum number of context to write.
	 * @param all Flag to generate all context or local context.
	 */
	private static void writeXMLPartialReport(
			PrintWriter out,String tag,HashMap<String,Set<Context>> list,HashMap<String,Set<String>> ignoreList,int mincontext,Scope scope)
	{
		boolean empty=true;
		for (String item:list.keySet())
		{
			Set<Context> contexts=new HashSet<Context>(list.get(item));

			// Si je n'ai qu'une fois le contexte, tous est bon
			if (contexts.size()>=mincontext)
			{
				// Je vire d'abord les packages à ignorer
				Set<String> ignore=ignoreList.get(item);
				if (ignore!=null)
				{
					if (ignore.size()==0) // Ignore partout
						continue;
					for (String codebaseToIgnore:ignore)
					{
						String packageName=null;
						int idx=codebaseToIgnore.indexOf('!');
						if (idx!=-1)
						{
							packageName=codebaseToIgnore.substring(idx+1);
							codebaseToIgnore=codebaseToIgnore.substring(0,idx);
						}
						for (Context ctx:list.get(item))
						{
							switch (scope)
							{
								case clazz:
									if (ctx.baseIdName.equals(codebaseToIgnore) && (ctx.path.equals(packageName)))
										contexts.remove(ctx);
									break;
								case pack:
									if (ctx.baseIdName.equals(codebaseToIgnore) && (ctx.packageName.equals(packageName)))
										contexts.remove(ctx);
									break;
								default:
									if (ctx.baseIdName.equals(codebaseToIgnore))
										contexts.remove(ctx);
									break;
							}
						}
					}
				}
				// Il en reste ? Alors repart du début
				if (contexts.size()>0)
				{
					contexts=list.get(item);
					if (empty)
					{
						empty=false;
						out.print("\t<"+tag+"s>\n");
					}
					out.print("\t\t<"+tag+" name=\""+item+"\">\n");
					for (Context c:contexts)
					{
						switch (scope)
						{
							case clazz:
								out.print("\t\t\t<context>"+c.baseIdName+"!"+c.path+"</context>\n");
								break;
							case pack:
								out.print("\t\t\t<context>"+c.baseIdName+"!"+c.packageName+"</context>\n");
								break;
							default:
								out.print("\t\t\t<context>"+c.baseIdName+"</context>\n");
							break;
						}
					}
					out.print("\t\t</"+tag+">\n");
				}
			}
		}
		out.print((empty) ? "\t<"+tag+"s/>\n":"\t</"+tag+"s>\n");
	}

	/**
	 * Write XML basename report.
	 *
	 * @param out The writer.
	 */
	private void writeXMLBasenameReport(PrintWriter out)
	{
		out.println("\n\t<!-- Same basename with different extensions in same package. -->");
		writeXMLPartialReport(out,"basename",baseName_,ignoreBaseName_,2,Scope.clazz);

	}

	/**
	 * Write XML filename report.
	 *
	 * @param out The writer.
	 */
	private void writeXMLFilenameReport(PrintWriter out)
	{
		out.println("\n\t<!-- Same name with different package. -->");
		writeXMLPartialReport(out,"filename",name_,ignoreName_,2,Scope.pack);
	}

	/**
	 * Write XML packages report.
	 *
	 * @param out The writer.
	 */
	private void writeXMLPackagesReport(PrintWriter out)
	{
		out.println("\n\t<!-- Same package from different jar. -->");
		writeXMLPartialReport(out,"package",packageName_,ignorePackageName_,2,Scope.jar);
	}

	/**
	 * Write XML services report.
	 *
	 * @param out The writer.
	 */
	private void writeServicesReport(PrintWriter out)
	{
		out.println("\n\t<!-- Services in jar. -->");
		writeXMLPartialReport(out,"service",services_,ignoreServices_,1,Scope.jar);
	}

	/**
	 * Write Annotation report.
	 *
	 * @param out The writer.
	 */
	private void writeAnnotationsReport(PrintWriter out)
	{
		out.println("\n\t<!-- Suspicious Annotations. -->");
		writeXMLPartialReport(out,"annotation",annotations_,ignoreAnnotations_,1,Scope.clazz);
	}

	/**
	 * Parse Node.
	 *
	 * @param ignoreParams The XML document.
	 * @param environnement The XPath environnement.
	 * @param xpath The XPath string.
	 * @param dico The result.
	 * @throws XPathExpressionException If error.
	 */
	private void parseNode(Document ignoreParams,XPath environnement,String xpath,HashMap<String,Set<String>> dico) throws XPathExpressionException
	{
		XPathExpression xpathResources = environnement.compile(xpath);
		NodeList result = (NodeList) xpathResources.evaluate(ignoreParams, XPathConstants.NODESET);
		for (int i=0;i<result.getLength();++i)
		{
			final Node packageNode=result.item(i);
			String name= packageNode.getAttributes().getNamedItem("name").getNodeValue();
			final Set<String> set=new HashSet<String>();
			final NodeList childs=packageNode.getChildNodes();
			for (int j=0;j<childs.getLength();++j)
			{
				final Node contexts=childs.item(j);
				if (contexts.getNodeName().equals("context"))
				{
					final String codebase=contexts.getTextContent();
					set.add(codebase);
				}
			}
			dico.put(name, set);

		}
	}

	/**
	 * Parse ignore file.
	 *
	 * @param data The URL.
	 * @throws IOException If error.
	 * @throws SAXException If error.
	 * @throws ParserConfigurationException If error.
	 * @throws XPathExpressionException If error.
	 */
	private void parseIgnore(final URL data) throws IOException, SAXException, ParserConfigurationException, XPathExpressionException
	{
		if (data==null) return;
		final InputStream in = data.openStream();
		try
		{
			final Document ignoreParams = XMLContext.DOC_BUILDER_FACTORY.newDocumentBuilder().parse(in);

			XPath environnement = XMLContext.XPATH_FACTORY.newXPath();
			environnement.setNamespaceContext(XMLContext.NAMESPACE);
			XPathExpression xpathIgnorePattern = environnement.compile("/audit/@ignoreFilenames");
			NodeList result = (NodeList) xpathIgnorePattern.evaluate(ignoreParams, XPathConstants.NODESET);
			if (result.getLength()==1)
			{
				excludePattern=Pattern.compile(result.item(0).getTextContent());
			}
			XPathExpression xpathAnnotations = environnement.compile("/audit/@annotations");
			result = (NodeList) xpathAnnotations.evaluate(ignoreParams, XPathConstants.NODESET);
			if (result.getLength()==1)
			{
				StringTokenizer tok=new StringTokenizer(result.item(0).getTextContent(),", \t");
				while (tok.hasMoreTokens())
				{
					String t=tok.nextToken();
					detectAnnotations_.put(convJavaName(t),t);
				}
			}
			parseNode(ignoreParams,environnement,"/audit/packages/package",ignorePackageName_);
			parseNode(ignoreParams,environnement,"/audit/filenames/filename",ignoreName_);
			parseNode(ignoreParams,environnement,"/audit/basenames/basename",ignoreBaseName_);
			parseNode(ignoreParams,environnement,"/audit/services/service",ignoreServices_);
			parseNode(ignoreParams,environnement,"/audit/annotations/annotation",ignoreAnnotations_);
		}
		finally
		{
			in.close();
		}

	}

	private static final String convJavaName(final String javastyle)
	{
		String classstyle=javastyle;
		if (classstyle.charAt(0)=='@')
			classstyle=classstyle.substring(1);
		classstyle="L"+classstyle.replace('.', '/')+";";
		return classstyle;
	}

	/**
	 * Print help screen.
	 *
	 * @param out Stream to use.
	 */
	private static void help(final PrintStream out)
	{
		out.println(
		//             1         2         3        4         5         6         7
		//   0123456789012345678901234567890123467890123456789012345678901234567890123456789
			"Usage: macaron-audit [-R] [-i <file.xml|url>] [-h] \\\n"+
			"                     [--xslt <str>] [-o <-|file.xml>] \\\n"+
			"                     [--loglevel <severe|warning|info|...>] \\\n"+
			"                     <dir>|<files(.jar|.war|.ear|.rar)>)+\n"+
			"(-R|--recursive)             : Audit all component in directory and\n"+
			"                               sub-directory.\n"+
			"(-i|--ignore) <file.xml|url> : The xml result for ignore warning.\n"+
			"(-o|--output) <-|file.xml>   : The xml result file or stdout.\n"+
			"--xslt <str>                 : The xslt to inject.\n"+
			"--loglevel <str>             : Java Log level\n"+
			"                               (severe, warning, info,fine, ...)\n"+
			"(-h|--help)                  : This help\n"+
			"\n"+
			"Audit JavaEE component and jar to detect suspicious files.\n"+
			"The environment variable AUDIT_XSLT may be the default XSLT."
			);
	}
	/**
	 * Error in command line.
	 */
	private static final int ERROR = -1;

	/**
	 * Help in command line.
	 */
	private static final int ASK_HELP = -2;

	/**
	 * Parse arguments.
	 *
	 * @param params The configuration.
	 * @param args The args.
	 * @param pos The current position.
	 * @return The current position.
	 *
	 * @throws CommandLineException If syntax error.
	 */
	public static int parseArg(final ParamsConfig params, final String[] args, final int pos) throws CommandLineException
	{
		int position = pos;
		final String arg = args[position];
		if ("-r".equals(arg) || "-R".equals(arg) || "--recursive".equals(arg))
		{
			params.setRecurs(params.isRecurs() == false);
		}
		else if (("-i".equals(arg) || "--ignore".equals(arg)) && position < args.length - 1)
		{
			String ignore=args[++position];
			try
			{
				params.setIgnore(new URL(ignore));
			}
			catch (MalformedURLException x)
			{
				final int idx = ignore.indexOf('#');
				try
				{
					params.setIgnore( new File((idx != -1) ? ignore.substring(
						0, idx) : ignore).toURI().toURL());
				}
				catch (MalformedURLException e)
				{
					throw new CommandLineException(e.getLocalizedMessage());
				}
			}

		}
		else if (("-o".equals(arg) || "--output".equals(arg)) && position < args.length - 1)
		{
			params.setOutput(new File(args[++position]));
		}
		else if ("--xslt".equals(arg) && position < args.length - 1)
		{
			params.setXslt(args[++position]);
		}
		else if (("-l".equals(arg) || "--loglevel".equals(arg)) && position < args.length - 1)
		{
			log.setLevel(Level.parse(args[++position].toUpperCase()));
		}
		else if ("-h".equals(arg) || "--help".equals(arg))
		{
			help(System.out);
			return ASK_HELP;
		}
		else
		{
			if (arg.charAt(0)=='-')
				return ERROR;
			params.getNames().add(new File(arg));
		}
		return position;
	}

	/**
	 * Parse command line.
	 *
	 * @param args The args.
	 * @return The configuration.
	 *
	 * @throws CommandLineException If syntax error.
	 */
	public static ParamsConfig parseArgs(final String[] args) throws CommandLineException
	{
		final ParamsConfig params = new ParamsConfig();

		if (args.length==0)
		{
			help(System.out);
			return null;
		}
		for (int i = 0, j; i < args.length; i = ++j)
		{
			j = parseArg(params, args, i);
			if (j < 0)
			{
				if (j == ASK_HELP)
					return null;
				throw new CommandLineException("Unknow parameters " + args[i]);
			}
		}
		if ( params.getOutput() == null )
			throw new CommandLineException("Missing --output parameter.");
		return params;
	}

	/**
	 * Analyse and invoque Audit.
	 *
	 * @param args The command line arguments.
	 */
	public static int mainRet(final String[] args)
	{
		try
		{
			log.setLevel(Level.SEVERE);
			ParamsConfig config = parseArgs(args);
			if (config==null) return 0;
			Audit audit=new Audit(config);
			audit.init();
			audit.doAll(config.getNames().toArray(new File[config.getNames().size()]));
			audit.writeXMLReport();
			return 0;
		}
		catch (CommandLineException e)
		{
			log.severe(e.getLocalizedMessage());
			return 1;
		}
		catch (IOException e)
		{
			log.severe(e.getLocalizedMessage());
			e.printStackTrace();
			return 1;
		}
		catch (Exception e)
		{
			log.severe(e.getLocalizedMessage());
			e.printStackTrace();
			return 1;
		}
	}

	/**
	 * JDK5 log formater.
	 */
	public static class TinyFormatter extends Formatter
	{
		private static final int max(int a,int b)
		{
			return (a>b) ? a : b;
		}
		private static final String format_;
		static
		{
			int w=max(Level.SEVERE.getLocalizedName().length(),Level.WARNING.getLocalizedName().length());
			w=max(w,Level.INFO.getLocalizedName().length());
			w=max(w,Level.CONFIG.getLocalizedName().length());
			w=max(w,Level.FINE.getLocalizedName().length());
			w=max(w,Level.FINER.getLocalizedName().length());
			w=max(w,Level.FINEST.getLocalizedName().length());
			format_="%1$"+w+"s: %2$s%n";
		}
	    /**
	     * Format the given LogRecord.
	     * @param record the log record to be formatted.
	     * @return a formatted log record
	     */
	    public synchronized String format(LogRecord record)
	    {
			final StringBuffer sb = new StringBuffer();
			final java.util.Formatter formatter = new java.util.Formatter(sb, Locale.US);
	    	formatter.format(format_,new Object[]{record.getLevel().getLocalizedName(),formatMessage(record)});
			return sb.toString();
	    }
	}

	/**
	 * Command line main.
	 * @param args
	 */
	public static void main(final String[] args)
	{
		try
		{
			LogManager.getLogManager().readConfiguration(Audit.class.getResourceAsStream("/META-INF/logging.properties"));
			System.exit(mainRet(args));
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}

}

redpajama_set_name: RedPajamaGithub


Theatre has been a fundamental means of communicating stories to audiences in cultures across the world for millennia and is a major part of the UK's creative landscape. Digital technology has the potential to enhance the creation and enjoyment of live theatre, for example by revealing the additional layers of creativity at work underneath our on-stage view of a live performance. Theatres are keen to connect with younger audiences, who, as 'digital natives', have a different understanding of the connectedness between live content and digital forms of interaction and communication.
This project is working with touring theatre companies and venues to understand how creative digital technology can add value, develop audiences and shift perspectives of live performance to deliver a new and engaging experience that lasts long after the final curtain has closed. We are working with our partners to understand how, for example, digital companion content could be created and delivered to audiences to give them greater insight into the production process and engage them more fully into the story and performance they have come to see. We are also interested in how traditional live performance and narratives change as digital technology becomes more integral to the writing, devising, and delivery of live events.
Initial work has produced a Virtual Box-Office demonstration, which enables potential audience members to experience the sound and view of their seat position via an online viewer, building on the team's expertise in spatial audio and virtual reality. This prototype will be used to develop wider interest and scope requirements and the business case for a commercial product.


text:
GCS Awards 2.3 Billion Computing Core Hours for National Large-Scale Simulation Projects Gauss Centre for Supercomputing e.V.
GCS Awards 2.3 Billion Computing Core Hours for National Large-Scale Simulation Projects
Newsflash 07/2020 – May 07, 2020
With the 23rd Call for Large-Scale Projects, the Gauss Centre for Supercomputing (GCS) allocated more than 2 billion computing core hours to challenging national research projects requiring the support of high-performance computing (HPC) technology. In total, the GCS scientific steering committee approved the allocation of 2.3 billion core hours of computing time—a number marking an all-time high—to 20 scientifically outstanding German research activities.
The supported projects come from the fields of astrophysics, bioinformatics and theoretical biology, condensed matter physics, nuclear and elementary particle physics, geology and scientific engineering. Scientists awarded with computing time allocations on the GCS HPC systems will have access to GCS' petascale HPC resources immediately until the end of April 2021.
The largest individual allocations of the 23rd call were granted to two scientific engineering projects from the field of fluid dynamics: Both Dr.-Ing. Markus J. Kloker of the Institute of Aerodynamics und Gas Dynamics (IAG) at the University of Stuttgart and Dr.-Ing. Matthias Meinke of the Chair of Fluid Mechanics and Institute of Aerodynamics (AIA) at the RWTH Aachen University received 500 million core hours each on HPC system Hawk installed at the High-Performance Computing Center Stuttgart (HLRS) to support their projects, LAMTUR - Investigation of Laminar-Turbulent Transition and Flow Control in Boundary Layers - and Noise Reduction by Porous Material, Base-Flow Fields of Space Launchers and Transonic Buffet on Commercial Aircraft Wings respectively.
The two largest computing time allocations on HPC system JUWELS at the Jülich Supercomputing Centre (JSC) were given to two elementary particle physics research activities by Prof. Dr. Ulf-G. Meißner of the University of Bonn (project Nuclear Lattice Simulations) and Prof. Dr. Harvey B. Meyer of the Johannes Gutenberg-University Mainz (Baryon Structure from Lattice QCD with 2+1 Flavours of Wilson Quarks).
HPC system SuperMUC-NG at the Leibniz Supercomputing Centre in Garching near Munich (LRZ) supports ten of the 20 large-scale projects approved with the current call. The largest individual allocations on LRZ's HPC system were given to an astrophysics project under leadership of Dr. Klaus Dolag representing the Faculty for Physics, Astronomy and Astrophysics at Ludwig-Maximilians-Universität München (The Local Universe: Cosmic Rays and Magnetic Fields and their Origin) and to Prof. Dr. Fakher Assaad of the Institute for Theoretical Physics at University of Würzburg for his project Topology, Entanglement, and Critical Phenomena in Correlated Quantum Matter.
The full list of research projects supported with computing time awarded through the 23rd large-scale call is available at https://www.gauss-centre.eu/results/large-scale-projects/article/gcs-large-scale-projects-call-23-february-2020/
--Regina Weigand

redpajama_set_name: RedPajamaCommonCrawl


Information in The IBS Academy Restore Program is provided for informational purposes only. The information is the opinion of the authors. This information is not intended as a substitute for the advice provided by your physician or other healthcare professionals or any information contained on or in any product label or packaging. Do not use the information in The IBS Academy Restore Program for diagnosing or treating a health problem or disease, or prescribing medication or other treatment. Always speak with your physician or other healthcare professional before taking any medication or nutritional, herbal or homeopathic supplement, or using any treatment for a health problem. If you have or suspect that you have a medical problem, contact your healthcare provider promptly. Do not disregard professional medical advice or delay in seeking professional advice because of something you have read in The IBS Academy Restore Program. Information provided in The IBS Academy Restore Program and the use of any products or services purchased from our web site by you DOES NOT create a doctor-patient relationship between you and Robyn Murphy, ND, who acts as the Medical Advisor to the company not individual clients. Information and statements regarding dietary supplements have not been evaluated by Health Canada and are not intended to diagnose, treat, cure, or prevent any disease.
All contents copyright © 2018 by The IBS Academy Inc. All rights reserved. No part of this document or the related files may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording, or otherwise) without the prior written permission of the publisher.


This vibrant artist space / bar / cafe needed a bold but flexible logo that would work well on a variety of different materials. Included logo version for the gallery and community organization as well.
The Art Cafe logo is used on many different surfaces, as well as on top of other artists' and bands' artwork, so I designed it to be as self-contained as easy to use as possible.


Justin Bieber may not have been crying over Selena Gomez over Valentine's weekend after all. The 19-year-old allegedly got together with his former Girl Friday, Jordan Ozuna, at the Atlanta, Georgia, spaceship home he's staying at as a guest of music producer pal Dallas Austin.
For those who aren't keeping up with the Canadian, Bieber reportedly first met the amply endowed Ozuna last year in Las Vegas where she inevitably worked as a Hooters waitress. The amorous pair were later seen – and videoed – getting up close and extremely personal during a visit to a Vegas indoor skydiving center in June.
Teasing a source (s), TMZ reports Justin spent the officially romantic weekend with Jordan at the futuristically-designed sanctuary likely picking up where they left off.
Instagram photographs posted by Ozuna, also at her Twitter page, appear to substantiate the claim. In one, the 22-year-old gazes up with unspecified expression at a camera while lying in a rumpled bed the website claims is located somewhere in Bieber's Atlanta digs.
A second picture reveals Ozuna in a bathroom so hypnotized by own countenance she can only arch her back in response.
Further evidence comes via a picture Ozuna shared on Instagram which showed the pretty brunette horsing about in a games room at Dallas' space-centric pad.
Clues as to what Bieber and the still-married-but-divorcing Ozuna may have got up to during their weekend together may benefit from a brief flashback to their skydiving trip.
In June, a source told E! Online the then newish couple were – for want of a better phrase – all over each other at the indoor center.
"In the waiting room area, she was sitting on his lap and they were kissing. Little pecks and kisses," said the indiscreet employee.
As yet, there's no word on Bieber's most recent gal pal Chantel Jeffries' reaction to news of her displacement. But, given her colorful history, it's probably not the best time to ask for an autograph.
Jeffries, a model, 21, sat shotgun with Justin in a yellow Lamborghini before he was arrested for a suspected DUI in Miami Beach, then accompanied him to Panama where he fled after his release on a $2,500 bond.
Meanwhile, Bieber is reportedly looking for somewhere to buy in Atlanta, while he records what could be a new hip-hop flavored album featuring some of the rappers he's been seen with recently. These include Rick Ross, Kid Cudi, T.I., T-Pain and Sean 'Diddy' Combs.
It's alleged the "Confident" singer is eyeing a seven-bedroom mansion in the same upscale Buckhead neighborhood as his mentor Usher, which could come in handy in the months to come as Bieber faces court dates for an alleged assault, a DUI and related charges — and possibly vandalism once the Los Angeles District Attorney makes a decision.


Corrina Mehiel says she's giving residents a new way to view non-functional objects in public spaces.
After the city's 311 center has spent three months identifying and tagging abandoned bicycles, the Streets Department will today begin a sweep to rid communities of bikes long chained to poles, racks and railings and left to rust.
Philadelphia artist Corrina Mehiel has in the interim been "fixing" the stripped bicycles by replacing the missing parts with non-functional ones – like the wooden wheels, handlebars and seat seen in the picture.
She said in a release that, through her Bike (Ph)ix project, she hopes to give community members a different way to view no-longer functional objects in public spaces and suggest new, creative approaches to repairing broken objects on city streets.
Though the street art installations were slated to be available for viewing Friday through Sunday, some were still in place Monday afternoon, such as the one at 12th and Vine streets.
Other locations where you might catch Mehiel's work include Broad and Lombard Streets, 13th and Spruce streets, 16th and Lombard streets, 11th and Appletree streets, 11th and Cherry streets, 18th and Walnut streets, the 800 and 1400 blocks of Pine Street, 15th Street between Pine and Lombard streets.


text:
California Social Work Degree Programs - 2023
AKA: ASW, BSW, MSW, DSW, Clinical MSW
California Social Work Degree Programs Ranked and Sorted
Social Worker License has analyzed data from 151 schools who offer degree programs in the field of social work and human services.
Whether you live in Los Angeles, San Diego, San Jose, San Francisco or elsewhere in California, you can find the right social work or human services degree program for you. Filter schools in California by degree level and field type. Rank schools by features that matter to you. Explore all the social work programs offered in California below.
Dept. of Education - 2023
Schools Listed
Rank Schools
Rank By:
In-State Tuition
Average SAT Score
Type of Institution
Private nonprofit
Program Fields (and degrees offered)
Human Services, General.
Undergraduate Certificate or Diploma
Public Administration and Social Service Professions, Other.
Graduate/Professional Certificate
Mental and Social Health Services and Allied Professions.
Post-baccalaureate Certificate
First Professional Degree
California Social Worker License Guide - 2023
California Social Work Degree Programs
California Social Work Scholarships
Woodland Community CollegeWoodland, CA 1st for In-State Tuition $1,124 IN-STATE TUITION $6,380 OUT-OF-STATE TUITION
Program Fields
Institutional Statistics
Degree Levels Offered
Salary 1 Year After Graduation
A program that focuses on the general study and provision of human and social services to individuals and communities and prepares individuals to work in public and private human services agencies and organizations. Includes instruction in the social sciences, psychology, principles of social service, human services policy, planning and evaluation, social services law and administration, and applications to particular issues, services, localities, and populations.
Program fields may include:
Substance Abuse/Addiction Counseling.
Psychiatric/Mental Health Services Technician.
Clinical/Medical Social Work.
Community Health Services/Liaison/Counseling.
Marriage and Family Therapy/Counseling.
Clinical Pastoral Counseling/Patient Counseling.
Psychoanalysis and Psychotherapy.
Mental Health Counseling/Counselor.
Genetic Counseling/Counselor.
Infant/Toddler Mental Health Services.
Medical Family Therapy/Therapist.
Hospice and Palliative Care.
Trauma Counseling.
Mental and Social Health Services and Allied Professions, Other.
Institution Specifics/Quality
Western Association of Schools and Colleges Accrediting Commission for Community and Junior Colleges
Graduation Rate:
In-State Tuition:
Out-of-State Tuition:
Average Cost (tuition, fees, books, supplies and living expenses - minus grant/scholarship aid):
Applicants Accepted:
Average SAT Score:
Average SAT Reading Score:
Average SAT Math Score:
Imperial Valley CollegeImperial, CA 2nd for In-State Tuition $1,126 IN-STATE TUITION $6,046 OUT-OF-STATE TUITION
Lassen Community CollegeSusanville, CA 3rd for In-State Tuition $1,127 IN-STATE TUITION $7,847 OUT-OF-STATE TUITION
Yuba CollegeMarysville, CA 4th for In-State Tuition $1,128 IN-STATE TUITION $7,488 OUT-OF-STATE TUITION
Lake Tahoe Community CollegeSouth Lake Tahoe, CA 5th for In-State Tuition $1,131 IN-STATE TUITION $8,079 OUT-OF-STATE TUITION
Any instructional program in public administration and services not listed above.
San Diego City CollegeSan Diego, CA 6th for In-State Tuition $1,144 IN-STATE TUITION $7,480 OUT-OF-STATE TUITION
San Diego Mesa CollegeSan Diego, CA 7th for In-State Tuition $1,144 IN-STATE TUITION $8,104 OUT-OF-STATE TUITION
San Diego Miramar CollegeSan Diego, CA 8th for In-State Tuition $1,144 IN-STATE TUITION $8,104 OUT-OF-STATE TUITION
Cypress CollegeCypress, CA 9th for In-State Tuition $1,146 IN-STATE TUITION $8,898 OUT-OF-STATE TUITION
College of the RedwoodsEureka, CA 10th for In-State Tuition $1,147 IN-STATE TUITION $8,131 OUT-OF-STATE TUITION
Chabot CollegeHayward, CA 11th for In-State Tuition $1,150 IN-STATE TUITION $8,110 OUT-OF-STATE TUITION
Napa Valley CollegeNapa, CA 12th for In-State Tuition $1,150 IN-STATE TUITION $7,510 OUT-OF-STATE TUITION
MiraCosta CollegeOceanside, CA 13th for In-State Tuition $1,152 IN-STATE TUITION $8,112 OUT-OF-STATE TUITION
Coastline Community CollegeFountain Valley, CA 14th for In-State Tuition $1,160 IN-STATE TUITION $7,256 OUT-OF-STATE TUITION
Santa Ana CollegeSanta Ana, CA 15th for In-State Tuition $1,160 IN-STATE TUITION $8,960 OUT-OF-STATE TUITION
City College of San FranciscoSan Francisco, CA 16th for In-State Tuition $1,165 IN-STATE TUITION $8,317 OUT-OF-STATE TUITION
College of AlamedaAlameda, CA 17th for In-State Tuition $1,167 IN-STATE TUITION $7,527 OUT-OF-STATE TUITION
Merritt CollegeOakland, CA 18th for In-State Tuition $1,167 IN-STATE TUITION $7,527 OUT-OF-STATE TUITION
Berkeley City CollegeBerkeley, CA 19th for In-State Tuition $1,167 IN-STATE TUITION $7,527 OUT-OF-STATE TUITION
Solano Community CollegeFairfield, CA 20th for In-State Tuition $1,168 IN-STATE TUITION $7,044 OUT-OF-STATE TUITION
Las Positas CollegeLivermore, CA 21st for In-State Tuition $1,168 IN-STATE TUITION $8,128 OUT-OF-STATE TUITION
Glendale Community CollegeGlendale, CA 22nd for In-State Tuition $1,175 IN-STATE TUITION $7,535 OUT-OF-STATE TUITION
Crafton Hills CollegeYucaipa, CA 23rd for In-State Tuition $1,178 IN-STATE TUITION $8,498 OUT-OF-STATE TUITION
Monterey Peninsula CollegeMonterey, CA 24th for In-State Tuition $1,178 IN-STATE TUITION $8,138 OUT-OF-STATE TUITION
Merced CollegeMerced, CA 25th for In-State Tuition $1,180 IN-STATE TUITION $6,340 OUT-OF-STATE TUITION
Allan Hancock CollegeSanta Maria, CA 26th for In-State Tuition $1,188 IN-STATE TUITION $7,482 OUT-OF-STATE TUITION
Orange Coast CollegeCosta Mesa, CA 27th for In-State Tuition $1,188 IN-STATE TUITION $7,812 OUT-OF-STATE TUITION
Mission CollegeSanta Clara, CA 28th for In-State Tuition $1,200 IN-STATE TUITION $6,456 OUT-OF-STATE TUITION
East Los Angeles CollegeMonterey Park, CA 29th for In-State Tuition $1,238 IN-STATE TUITION $8,570 OUT-OF-STATE TUITION
Los Angeles Pierce CollegeWoodland Hills, CA 30th for In-State Tuition $1,238 IN-STATE TUITION $8,570 OUT-OF-STATE TUITION
Los Angeles Southwest CollegeLos Angeles, CA 31st for In-State Tuition $1,238 IN-STATE TUITION $8,570 OUT-OF-STATE TUITION
Los Angeles Trade Technical CollegeLos Angeles, CA 32nd for In-State Tuition $1,238 IN-STATE TUITION $8,570 OUT-OF-STATE TUITION
Los Angeles Valley CollegeValley Glen, CA 33rd for In-State Tuition $1,238 IN-STATE TUITION $8,570 OUT-OF-STATE TUITION
Youth Services/Administration.
Forensic Social Work.
Social Work, Other.
Los Angeles City CollegeLos Angeles, CA 34th for In-State Tuition $1,238 IN-STATE TUITION $8,570 OUT-OF-STATE TUITION
West Los Angeles CollegeCulver City, CA 35th for In-State Tuition $1,238 IN-STATE TUITION $8,570 OUT-OF-STATE TUITION
Cabrillo CollegeAptos, CA 36th for In-State Tuition $1,270 IN-STATE TUITION $7,630 OUT-OF-STATE TUITION
Columbia CollegeSonora, CA 37th for In-State Tuition $1,270 IN-STATE TUITION $7,538 OUT-OF-STATE TUITION
Modesto Junior CollegeModesto, CA 38th for In-State Tuition $1,270 IN-STATE TUITION $7,538 OUT-OF-STATE TUITION
American River CollegeSacramento, CA 39th for In-State Tuition $1,288 IN-STATE TUITION $9,760 OUT-OF-STATE TUITION
Cosumnes River CollegeSacramento, CA 40th for In-State Tuition $1,288 IN-STATE TUITION $9,760 OUT-OF-STATE TUITION
Palo Verde CollegeBlythe, CA 41st for In-State Tuition $1,288 IN-STATE TUITION $9,408 OUT-OF-STATE TUITION
Sacramento City CollegeSacramento, CA 42nd for In-State Tuition $1,288 IN-STATE TUITION $9,760 OUT-OF-STATE TUITION
San Joaquin Delta CollegeStockton, CA 43rd for In-State Tuition $1,288 IN-STATE TUITION $9,072 OUT-OF-STATE TUITION
Folsom Lake CollegeFolsom, CA 44th for In-State Tuition $1,288 IN-STATE TUITION $9,760 OUT-OF-STATE TUITION
Fresno City CollegeFresno, CA 45th for In-State Tuition $1,304 IN-STATE TUITION $8,264 OUT-OF-STATE TUITION
Reedley CollegeReedley, CA 46th for In-State Tuition $1,304 IN-STATE TUITION $8,264 OUT-OF-STATE TUITION
Clovis Community CollegeFresno, CA 47th for In-State Tuition $1,304 IN-STATE TUITION $8,264 OUT-OF-STATE TUITION
Contra Costa CollegeSan Pablo, CA 48th for In-State Tuition $1,312 IN-STATE TUITION $8,328 OUT-OF-STATE TUITION
Diablo Valley CollegePleasant Hill, CA 49th for In-State Tuition $1,312 IN-STATE TUITION $8,328 OUT-OF-STATE TUITION
Santa Rosa Junior CollegeSanta Rosa, CA 50th for In-State Tuition $1,324 IN-STATE TUITION $8,170 OUT-OF-STATE TUITION
San Bernardino Valley CollegeSan Bernardino, CA 51st for In-State Tuition $1,328 IN-STATE TUITION $6,500 OUT-OF-STATE TUITION
Saddleback CollegeMission Viejo, CA 52nd for In-State Tuition $1,330 IN-STATE TUITION $9,394 OUT-OF-STATE TUITION
Grossmont CollegeEl Cajon, CA 53rd for In-State Tuition $1,332 IN-STATE TUITION $8,556 OUT-OF-STATE TUITION
Cuesta CollegeSan Luis Obispo, CA 54th for In-State Tuition $1,338 IN-STATE TUITION $8,898 OUT-OF-STATE TUITION
Cuyamaca CollegeEl Cajon, CA 55th for In-State Tuition $1,340 IN-STATE TUITION $8,564 OUT-OF-STATE TUITION
Southwestern CollegeChula Vista, CA 56th for In-State Tuition $1,340 IN-STATE TUITION $7,752 OUT-OF-STATE TUITION
Palomar CollegeSan Marcos, CA 57th for In-State Tuition $1,344 IN-STATE TUITION $9,604 OUT-OF-STATE TUITION
Mt San Antonio CollegeWalnut, CA 58th for In-State Tuition $1,350 IN-STATE TUITION $10,590 OUT-OF-STATE TUITION
Rio Hondo CollegeWhittier, CA 59th for In-State Tuition $1,360 IN-STATE TUITION $8,779 OUT-OF-STATE TUITION
Canada CollegeRedwood City, CA 60th for In-State Tuition $1,362 IN-STATE TUITION $9,006 OUT-OF-STATE TUITION
San Jose City CollegeSan Jose, CA 61st for In-State Tuition $1,362 IN-STATE TUITION $9,118 OUT-OF-STATE TUITION
Santa Barbara City CollegeSanta Barbara, CA 62nd for In-State Tuition $1,374 IN-STATE TUITION $8,326 OUT-OF-STATE TUITION
West Hills College-CoalingaCoalinga, CA 63rd for In-State Tuition $1,380 IN-STATE TUITION $10,080 OUT-OF-STATE TUITION
West Hills College-LemooreLemoore, CA 64th for In-State Tuition $1,380 IN-STATE TUITION $10,080 OUT-OF-STATE TUITION
Cerro Coso Community CollegeRidgecrest, CA 65th for In-State Tuition $1,382 IN-STATE TUITION $9,872 OUT-OF-STATE TUITION
College of the DesertPalm Desert, CA 66th for In-State Tuition $1,383 IN-STATE TUITION $8,943 OUT-OF-STATE TUITION
Oxnard CollegeOxnard, CA 67th for In-State Tuition $1,394 IN-STATE TUITION $7,398 OUT-OF-STATE TUITION
College of the SequoiasVisalia, CA 68th for In-State Tuition $1,394 IN-STATE TUITION $8,338 OUT-OF-STATE TUITION
Ventura CollegeVentura, CA 69th for In-State Tuition $1,394 IN-STATE TUITION $7,398 OUT-OF-STATE TUITION
Hartnell CollegeSalinas, CA 70th for In-State Tuition $1,400 IN-STATE TUITION $8,960 OUT-OF-STATE TUITION
Cerritos CollegeNorwalk, CA 71st for In-State Tuition $1,404 IN-STATE TUITION $10,026 OUT-OF-STATE TUITION
Mt San Jacinto Community College DistrictSan Jacinto, CA 72nd for In-State Tuition $1,406 IN-STATE TUITION $11,276 OUT-OF-STATE TUITION
Porterville CollegePorterville, CA 73rd for In-State Tuition $1,409 IN-STATE TUITION $9,899 OUT-OF-STATE TUITION
Bakersfield CollegeBakersfield, CA 74th for In-State Tuition $1,418 IN-STATE TUITION $9,908 OUT-OF-STATE TUITION
Riverside City CollegeRiverside, CA 75th for In-State Tuition $1,420 IN-STATE TUITION $9,370 OUT-OF-STATE TUITION
Moreno Valley CollegeMoreno Valley, CA 76th for In-State Tuition $1,420 IN-STATE TUITION $9,370 OUT-OF-STATE TUITION
Norco CollegeNorco, CA 77th for In-State Tuition $1,420 IN-STATE TUITION $9,370 OUT-OF-STATE TUITION
Mendocino CollegeUkiah, CA 78th for In-State Tuition $1,426 IN-STATE TUITION $7,996 OUT-OF-STATE TUITION
College of San MateoSan Mateo, CA 79th for In-State Tuition $1,434 IN-STATE TUITION $9,094 OUT-OF-STATE TUITION
Evergreen Valley CollegeSan Jose, CA 80th for In-State Tuition $1,448 IN-STATE TUITION $9,128 OUT-OF-STATE TUITION
Feather River Community College DistrictQuincy, CA 81st for In-State Tuition $1,465 IN-STATE TUITION $9,865 OUT-OF-STATE TUITION
College of the SiskiyousWeed, CA 82nd for In-State Tuition $1,496 IN-STATE TUITION $9,896 OUT-OF-STATE TUITION
Long Beach City CollegeLong Beach, CA 83rd for In-State Tuition $1,556 IN-STATE TUITION $11,144 OUT-OF-STATE TUITION
De Anza CollegeCupertino, CA 84th for In-State Tuition $1,561 IN-STATE TUITION $10,246 OUT-OF-STATE TUITION
California State University-FresnoFresno, CA 85th for In-State Tuition $6,643 IN-STATE TUITION $18,523 OUT-OF-STATE TUITION
Western Association of Schools and Colleges Senior Colleges and University Commission
California State University-Los AngelesLos Angeles, CA 86th for In-State Tuition $6,781 IN-STATE TUITION $18,661 OUT-OF-STATE TUITION
California State University-Long BeachLong Beach, CA 87th for In-State Tuition $6,834 IN-STATE TUITION $18,714 OUT-OF-STATE TUITION
California State University-East BayHayward, CA 88th for In-State Tuition $6,890 IN-STATE TUITION $18,770 OUT-OF-STATE TUITION
California State University-Dominguez HillsCarson, CA 89th for In-State Tuition $6,941 IN-STATE TUITION $18,821 OUT-OF-STATE TUITION
California State University-San BernardinoSan Bernardino, CA 90th for In-State Tuition $6,952 IN-STATE TUITION $18,832 OUT-OF-STATE TUITION
California State University-FullertonFullerton, CA 91st for In-State Tuition $6,953 IN-STATE TUITION $18,833 OUT-OF-STATE TUITION
San Francisco State UniversitySan Francisco, CA 92nd for In-State Tuition $7,006 IN-STATE TUITION $18,886 OUT-OF-STATE TUITION
California State University-NorthridgeNorthridge, CA 93rd for In-State Tuition $7,017 IN-STATE TUITION $18,897 OUT-OF-STATE TUITION
California State University-Monterey BaySeaside, CA 94th for In-State Tuition $7,147 IN-STATE TUITION $19,027 OUT-OF-STATE TUITION
California State University-SacramentoSacramento, CA 95th for In-State Tuition $7,418 IN-STATE TUITION $19,298 OUT-OF-STATE TUITION
California State University-BakersfieldBakersfield, CA 96th for In-State Tuition $7,498 IN-STATE TUITION $19,378 OUT-OF-STATE TUITION
California State University-StanislausTurlock, CA 97th for In-State Tuition $7,584 IN-STATE TUITION $19,464 OUT-OF-STATE TUITION
California State University-San MarcosSan Marcos, CA 98th for In-State Tuition $7,712 IN-STATE TUITION $19,592 OUT-OF-STATE TUITION
San Diego State UniversitySan Diego, CA 99th for In-State Tuition $7,720 IN-STATE TUITION $19,600 OUT-OF-STATE TUITION
San Jose State UniversitySan Jose, CA 100th for In-State Tuition $7,852 IN-STATE TUITION $19,732 OUT-OF-STATE TUITION
California State Polytechnic University-HumboldtArcata, CA 101st for In-State Tuition $7,858 IN-STATE TUITION $19,738 OUT-OF-STATE TUITION
California State University-ChicoChico, CA 102nd for In-State Tuition $7,864 IN-STATE TUITION $19,744 OUT-OF-STATE TUITION
University of Phoenix-CaliforniaOntario, CA 103rd for In-State Tuition $9,552 IN-STATE TUITION $9,552 OUT-OF-STATE TUITION
Higher Learning Commission
Pacific Oaks CollegePasadena, CA 104th for In-State Tuition $11,692 IN-STATE TUITION $11,692 OUT-OF-STATE TUITION
University of Massachusetts GlobalIrvine, CA 105th for In-State Tuition $12,480 IN-STATE TUITION $12,480 OUT-OF-STATE TUITION
The Chicago School of Professional Psychology at Los AngelesLos Angeles, CA 106th for In-State Tuition $12,524 IN-STATE TUITION $12,524 OUT-OF-STATE TUITION
University of California-Los AngelesLos Angeles, CA 107th for In-State Tuition $13,249 IN-STATE TUITION $43,003 OUT-OF-STATE TUITION
National UniversityLa Jolla, CA 108th for In-State Tuition $13,320 IN-STATE TUITION $13,320 OUT-OF-STATE TUITION
University of the WestRosemead, CA 109th for In-State Tuition $13,556 IN-STATE TUITION $13,556 OUT-OF-STATE TUITION
Alliant International University-San DiegoSan Diego, CA 110th for In-State Tuition $13,680 IN-STATE TUITION $13,680 OUT-OF-STATE TUITION
University of California-IrvineIrvine, CA 111th for In-State Tuition $13,753 IN-STATE TUITION $43,507 OUT-OF-STATE TUITION
Ashford UniversitySan Diego, CA 112th for In-State Tuition $14,278 IN-STATE TUITION $14,278 OUT-OF-STATE TUITION
University of California-BerkeleyBerkeley, CA 113th for In-State Tuition $14,312 IN-STATE TUITION $44,066 OUT-OF-STATE TUITION
University of California-DavisDavis, CA 114th for In-State Tuition $14,597 IN-STATE TUITION $44,351 OUT-OF-STATE TUITION
Touro University WorldwideLos Alamitos, CA 115th for In-State Tuition $14,600 IN-STATE TUITION $14,600 OUT-OF-STATE TUITION
Southern California SeminaryEl Cajon, CA 116th for In-State Tuition $16,884 IN-STATE TUITION $16,884 OUT-OF-STATE TUITION
Transnational Association of Christian Colleges and Schools
Pacific Union CollegeAngwin, CA 117th for In-State Tuition $32,016 IN-STATE TUITION $32,016 OUT-OF-STATE TUITION
Fresno Pacific UniversityFresno, CA 118th for In-State Tuition $33,452 IN-STATE TUITION $33,452 OUT-OF-STATE TUITION
La Sierra UniversityRiverside, CA 119th for In-State Tuition $35,208 IN-STATE TUITION $35,208 OUT-OF-STATE TUITION
California Baptist UniversityRiverside, CA 120th for In-State Tuition $36,340 IN-STATE TUITION $36,340 OUT-OF-STATE TUITION
William Jessup UniversityRocklin, CA 121st for In-State Tuition $37,000 IN-STATE TUITION $37,000 OUT-OF-STATE TUITION
Point Loma Nazarene UniversitySan Diego, CA 122nd for In-State Tuition $38,300 IN-STATE TUITION $38,300 OUT-OF-STATE TUITION
Holy Names UniversityOakland, CA 123rd for In-State Tuition $40,904 IN-STATE TUITION $40,904 OUT-OF-STATE TUITION
Azusa Pacific UniversityAzusa, CA 124th for In-State Tuition $41,410 IN-STATE TUITION $41,410 OUT-OF-STATE TUITION
Biola UniversityLa Mirada, CA 125th for In-State Tuition $43,512 IN-STATE TUITION $43,512 OUT-OF-STATE TUITION
Mount Saint Mary's UniversityLos Angeles, CA 126th for In-State Tuition $44,474 IN-STATE TUITION $44,474 OUT-OF-STATE TUITION
University of La VerneLa Verne, CA 127th for In-State Tuition $45,850 IN-STATE TUITION $45,850 OUT-OF-STATE TUITION
California Lutheran UniversityThousand Oaks, CA 128th for In-State Tuition $45,982 IN-STATE TUITION $45,982 OUT-OF-STATE TUITION
Whittier CollegeWhittier, CA 129th for In-State Tuition $49,514 IN-STATE TUITION $49,514 OUT-OF-STATE TUITION
University of San FranciscoSan Francisco, CA 130th for In-State Tuition $52,482 IN-STATE TUITION $52,482 OUT-OF-STATE TUITION
University of RedlandsRedlands, CA 131st for In-State Tuition $52,500 IN-STATE TUITION $52,500 OUT-OF-STATE TUITION
University of San DiegoSan Diego, CA 132nd for In-State Tuition $52,864 IN-STATE TUITION $52,864 OUT-OF-STATE TUITION
Loyola Marymount UniversityLos Angeles, CA 133rd for In-State Tuition $52,977 IN-STATE TUITION $52,977 OUT-OF-STATE TUITION
Chapman UniversityOrange, CA 134th for In-State Tuition $57,214 IN-STATE TUITION $57,214 OUT-OF-STATE TUITION
University of Southern CaliforniaLos Angeles, CA 135th for In-State Tuition $60,275 IN-STATE TUITION $60,275 OUT-OF-STATE TUITION
InterCoast Colleges-FairfieldFairfield, CA 136th for In-State Tuition N/A IN-STATE TUITION N/A OUT-OF-STATE TUITION
Accrediting Council for Continuing Education & Training
InterCoast Colleges-Santa AnaSanta Ana, CA 137th for In-State Tuition N/A IN-STATE TUITION N/A OUT-OF-STATE TUITION


text:
Gombe Stream Research Centre
Founded to advance Dr. Goodall's revolutionary findings about chimpanzee tool-making and other behaviours, the Gombe Stream Research Centre is a living laboratory, home to the world's most studied group of wild chimpanzees. Our mission in Gombe is to operate a world-class research station where the best available methods are used to further develop long-term primate research projects.
Researchers witnessed and recorded entire lifespans of individual chimps in Gombe and we've learned a great deal about their complex social lives, personalities and intelligence. From Jane's first discovery of chimpanzees using tools to "fish" for termites, to maternal care behaviour, to territoriality, hunting and meat eating, the Gombe chimpanzees have demonstrated great diversity in behaviour as well as how similar they are to humans. The most important thing these observations have taught us is that chimpanzees must be protected. Field staff and researchers monitor the life histories and demography of the Gombe chimpanzee and baboon populations as individuals are born, die, and migrate. Today, researchers continue to collect data on both species' behaviours, health, and social relationships.
Unbroken field research on chimpanzees since 1960
165,000+ hours of data collected through observations of more than 320 chimpanzees
11 studies by research partners at Gombe Stream Research Centre resulted in 31 scientific papers, theses and presentations
Discover more fascinating finds about chimpanzees
Founded to advance Dr. Goodall's revolutionary findings about chimpanzee tool-making and other behaviours, the Gombe Stream Research Centre is a liv
Chimps Mend Each Others' Broken Hearts
10 Ways Chimps and Humans are the Same
Photo credits on this page (top to bottom): Nick Riley (banner photo and top right), Sandra Thoren, National Geographic


text:
Animator: Gameplay (Mid/Senior Level)
Rockstar Toronto is on the lookout for talented Animators who possess a passion for in-game animation. This is a full-time permanent position based out of Rockstar's unique game development studio in Oakville.
We create open world gameplay mechanics that are used to make immersive experiences.
We work as a global animation team to collaborate on player experiences.
We use our onsite motion capture facilities to prototype new systems, directing talent and fine-tuning the results with code and design.
We participate in multi-discipline gameplay reviews, ensuring animation data is responsive and implemented with a strong consideration of technical and gameplay constraints.
Successful applicants would be working in a dedicated feature such as locomotion, traversal, combat, weapons, creatures or vehicles. Each of our teams work with dedicated pipelines and tools to create engaging open world mechanics.
Create stunning animations that are both fluid and responsive.
Work closely with programmers to create core mechanics and immersive experiences.
Implement, troubleshoot and debug animation systems.
Proactively work to improve our animation pipelines.
Senior-level candidates are suggested to have 5+ years as an Animator within gaming or similar industry.
Proven track record in at least 2 shipped titles (preferably AAA).
Outstanding demo reel.
Positive, solution-orientated individual, with deep-rooted interest in video games, and game development.
Ability to work with a high degree of self-direction and motivation.
Comfortable working in a team setting, under deadlines and time constraints.
Advanced knowledge of MotionBuilder and motion capture.
Practical knowledge of state machines, motion trees, and cutting-edge animation technology.
Location: Oakville, Ontario, Canada


What Can You Do With a Major in Cognitive Science?
What can you do with a major in cognitive science? With the interdisciplinary cognitive science major, students obtain a wealth of knowledge in the areas of psychology, philosophy, computer science, anthropology, linguistics, biology and other disciplines, as a robust and integrated way to study the human mind. Emerging at the interface of all these diverse disciplines, graduates are equipped to purse a range of graduate programs or a multitude of careers.
*Some of these fields require additional training.
Learn more about the major in cognitive science.
Visit the department that offers the cognitive science major.