text:
package com.intellij.ide.hierarchy;

import com.intellij.JavaTestUtil;
import com.intellij.ide.hierarchy.call.CallerMethodsTreeStructure;
import com.intellij.openapi.util.Computable;
import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.search.ProjectScope;
import com.intellij.testFramework.codeInsight.hierarchy.HierarchyViewTestBase;

/**
 * @author yole
 */
public class JavaCallHierarchyTest extends HierarchyViewTestBase {
  @Override
  protected String getTestDataPath() {
    return JavaTestUtil.getJavaTestDataPath();
  }

  @Override
  protected String getBasePath() {
    return "ide/hierarchy/call/" + getTestName(false);
  }

  private void doJavaCallTypeHierarchyTest(final String classFqn, final String methodName, final String... fileNames) throws Exception {
    doHierarchyTest(new Computable<HierarchyTreeStructure>() {
      @Override
      public HierarchyTreeStructure compute() {
        final PsiClass psiClass = JavaPsiFacade.getInstance(getProject()).findClass(classFqn, ProjectScope.getProjectScope(getProject()));
        final PsiMethod method = psiClass.findMethodsByName(methodName, false) [0];
        return new CallerMethodsTreeStructure(getProject(), method, HierarchyBrowserBaseEx.SCOPE_PROJECT);
      }
    }, fileNames);
  }

  public void testIdeaDev41005() throws Exception {
    doJavaCallTypeHierarchyTest("B", "xyzzy", "B.java", "D.java", "A.java");
  }

  public void testIdeaDev41005_Inheritance() throws Exception {
    doJavaCallTypeHierarchyTest("D", "xyzzy", "B.java", "D.java", "A.java", "C.java");
  }

  public void testIdeaDev41005_Sibling() throws Exception {
    doJavaCallTypeHierarchyTest("D", "xyzzy", "B.java", "D.java", "A.java", "C.java");
  }

  public void testIdeaDev41005_SiblingUnderInheritance() throws Exception {
    doJavaCallTypeHierarchyTest("D", "xyzzy", "B.java", "D.java", "A.java", "C.java", "CChild.java");
  }

  public void testIdeaDev41232() throws Exception {
    doJavaCallTypeHierarchyTest("A", "main", "B.java", "A.java");
  }
}


text:
#ifndef __LOGGER_H__
#define __LOGGER_H__

#include <iostream>
#include <ctime>
#include <sstream>
#include <mutex>
#include <array>
#include <fstream>
#include <memory>

enum class severity_level
{
	fatalerror = 0,
	warning = 1,
	information = 2,
	debug = 3,
	num_severtiylevels = 4
};

template<typename logger_impl>
class Logger
{
public:
	Logger(const std::string & name)
		: _loggerImpl(),
		  _loggerStream(""),
		  _logMutex(),
		  _severityToString()
	{
		std::cout << "Constructing Logger Instance: " << std::endl;
		_loggerImpl.open_stream(name);
		_severityToString[(size_t)severity_level::warning]	   = "<warning>    : ";
		_severityToString[(size_t)severity_level::debug]       = "<debug>      : ";
		_severityToString[(size_t)severity_level::information] = "<information>: ";
		_severityToString[(size_t)severity_level::fatalerror]  = "<fatalerror >: ";
	}

	~Logger()
	{
		_loggerImpl.close_stream();
	}

	std::string getTime()
	{
		std::string time_str;
		std::time_t now;
		time(&now);
		time_str = ctime(&now);
		return time_str.substr(0, time_str.size()-1);
	}

	template<severity_level severity, typename T1>
	void print(const T1 & param1)
	{
		if (severity <= _activeSeverityLevel)
		{
			_loggerStream << getTime() << " ";
			_loggerStream << _severityToString[(size_t)severity];

			_loggerStream << param1;
			_loggerStream << std::endl;

			printMessage(_loggerStream.str(), severity);
			_loggerStream.str("");
		}
	}

	template<severity_level severity, typename T1, typename T2>
	void print(const T1 & param1, const T2 & param2)
	{
		if (severity <= _activeSeverityLevel)
		{
			_loggerStream << getTime()  << " ";
			_loggerStream << _severityToString[(size_t)severity];
			_loggerStream << param1 << param2;
			_loggerStream << std::endl;

			printMessage(_loggerStream.str(), severity);
			_loggerStream.str("");
		}
	}

	template<severity_level severity, typename T1, typename T2, typename T3>
	void print(const T1 & param1, const T2 & param2, const T3 & param3)
	{
		if (severity <= _activeSeverityLevel)
		{
			_loggerStream << getTime() << " ";
			_loggerStream << _severityToString[(size_t)severity];
			_loggerStream << param1 << param2 << param3;
			_loggerStream << std::endl;

			printMessage(_loggerStream.str(), severity);
			_loggerStream.str("");
		}
	}

	template<severity_level severity, typename T1, typename T2, typename T3, typename T4>
	void print(const T1 & param1, const T2 & param2, const T3 & param3, const T4 & param4)
	{
		if (severity <= _activeSeverityLevel)
		{
			_loggerStream << getTime() << " ";
			_loggerStream << _severityToString[(size_t)severity];
			_loggerStream << param1 << param2 << param3 << param4;
			_loggerStream << std::endl;

			printMessage(_loggerStream.str(), severity);
			_loggerStream.str("");
		}
	}

	template<severity_level severity, typename T1, typename T2, typename T3, typename T4, typename T5>
	void print(const T1 & param1, const T2 & param2, const T3 & param3, const T4 & param4, const T5 & param5)
	{
		if (severity <= _activeSeverityLevel)
		{
			_loggerStream << getTime() << " ";
			_loggerStream << _severityToString[(size_t)severity];
			_loggerStream << param1 << param2 << param3 << param4 << param5;
			_loggerStream << std::endl;

			printMessage(_loggerStream.str(), severity);
			_loggerStream.str("");
		}
	}

	template<severity_level severity, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
	void print(const T1 & param1, const T2 & param2, const T3 & param3, const T4 & param4, const T5 & param5, const T6 & param6)
	{
		if (severity <= _activeSeverityLevel)
		{
			_loggerStream << getTime() << " ";
			_loggerStream << _severityToString[(size_t)severity];
			_loggerStream << param1 << param2 << param3 << param4 << param5 << param6;
			_loggerStream << std::endl;

			printMessage(_loggerStream.str(), severity);
			_loggerStream.str("");
		}
	}

	template<severity_level severity, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
	void print(const T1 & param1, const T2 & param2, const T3 & param3, const T4 & param4, const T5 & param5, const T6 & param6, const T7 & param7)
	{
		if (severity <= _activeSeverityLevel)
		{
			_loggerStream << getTime() << " ";
			_loggerStream << _severityToString[(size_t)severity];
			_loggerStream << param1 << param2 << param3 << param4 << param5 << param6 << param7;
			_loggerStream << std::endl;

			printMessage(_loggerStream.str(), severity);
			_loggerStream.str("");
		}
	}

	template<severity_level severity, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
	void print(const T1 & param1, const T2 & param2, const T3 & param3, const T4 & param4, const T5 & param5, const T6 & param6, const T7 & param7, const T8 & param8)
	{
		if (severity <= _activeSeverityLevel)
		{
			_loggerStream << getTime() << " ";
			_loggerStream << _severityToString[(size_t)severity];
			_loggerStream << param1 << param2 << param3 << param4 << param5 << param6 << param7 << param8;
			_loggerStream << std::endl;

			printMessage(_loggerStream.str(), severity);
			_loggerStream.str("");
		}
	}

	template<severity_level severity, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
	void print(const T1 & param1, const T2 & param2, const T3 & param3, const T4 & param4, const T5 & param5, const T6 & param6, const T7 & param7, const T8 & param8, const T9 & param9)
	{
		if (severity <= _activeSeverityLevel)
		{
			_loggerStream << getTime() << " ";
			_loggerStream << _severityToString[(size_t)severity];
			_loggerStream << param1 << param2 << param3 << param4 << param5 << param6 << param7 << param8 << param9;
			_loggerStream << std::endl;

			printMessage(_loggerStream.str(), severity);
			_loggerStream.str("");
		}
	}

	template<severity_level severity, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
	void print(const T1 & param1, const T2 & param2, const T3 & param3, const T4 & param4, const T5 & param5, const T6 & param6, const T7 & param7, const T8 & param8, const T9 & param9, const T10 & param10)
	{
		if (severity <= _activeSeverityLevel)
		{
			_loggerStream << getTime() << " ";
			_loggerStream << _severityToString[(size_t)severity];
			_loggerStream << param1 << param2 << param3 << param4 << param5 << param6 << param7 << param8 << param9 << param10;
			_loggerStream << std::endl;

			printMessage(_loggerStream.str(), severity);
			_loggerStream.str("");
		}
	}

	void setSeverityLevel(severity_level activeLevel)
	{
		_activeSeverityLevel = activeLevel;
	}

private:
	void printMessage(const std::string & message, const severity_level & level )
	{
		_logMutex.lock();
		_loggerImpl.write(message, level);
		_logMutex.unlock();
	}
	logger_impl _loggerImpl;
	std::stringstream _loggerStream;
	std::mutex _logMutex;
	std::array<std::string, (size_t)severity_level::num_severtiylevels> _severityToString;
	severity_level _activeSeverityLevel;
};

class log_stream
{
public:

	virtual void open_stream(const std::string & name)	= 0;

	virtual void write(const std::string & name,
		const severity_level & level) = 0;

	virtual void close_stream() = 0;
};

class console_log_stream : public log_stream
{
public:
	void open_stream(const std::string & name)
	{
		std::cout.flush();
		std::cout << name << std::endl;
	}

	void write(const std::string & message, const severity_level & level)
	{
		std::cout << message;
	}

	void close_stream()
	{
		std::cout.flush();
	}
};

class file_log_stream : public log_stream
{
public:
	file_log_stream()
		: _ofstream(new std::ofstream())
	{
	}

	~file_log_stream()
	{
	}

	void open_stream(const std::string & name)
	{
		_ofstream->open(name, std::ios_base::binary|std::ios_base::out);
	}

	void write(const std::string & message, const severity_level & level)
	{
		(*_ofstream) << message;
	}

	void close_stream()
	{
		_ofstream->flush();
		_ofstream->close();
	}
private:
	std::unique_ptr<std::ofstream> _ofstream;
};

typedef Logger<console_log_stream> ConsoleLoggerType;
typedef Logger<file_log_stream> FileLoggerType;
static FileLoggerType logInstance("execution.log");

#define LOGGING_ON
#ifdef LOGGING_ON
	#define LOG_MAX_SEVERITY logInstance.setSeverityLevel
	#define LOG_DEBUG logInstance.print<severity_level::debug>
	#define LOG_WARNING logInstance.print<severity_level::warning>
	#define LOG_INFO logInstance.print<severity_level::information>
	#define LOG_ERROR logInstance.print<severity_level::fatalerror>
#else
	#define LOG_DEBUG
	#define LOG_WARNING
	#define LOG_INFO
	#define LOG_ERROR
#endif

#endif /*__LOGGER_H__*/

redpajama_set_name: RedPajamaGithub


text:
Tag: computers
Fractals: photography or painting?
by Mr. Mandelbrot on Dec.13, 2010, under General
I was thinking other day… and suddenly this clearly came to my thoughts: fractals are more like photographs than paintings. I'll try to explain why I think that way.
Fractal images, besides a lot of different interpretations and meanings, are nothing but graphical representations of a certain formula. Pretty much like that algebra class you had in high school. Although it can be artistic and all that (despite some refuse to call fractal art an art but this is another subject), it doesn't even start (sometimes) with a blank canvas like a painting. You don't create anything fractal-ish in the sense of inventing it. These graphical representations were all there already.
Yes, a fractal is pretty much like that.
Take any fractal formula, say for example the Mandelbrot. It has a few parameters, but let reduce them to 2, X and Y for the sake of better understanding. The resulting image of the combination of the values of parameters X and Y gives you a certain image, the graphical representation of the combination of these parameters. This combination always existed. It was just waiting for someone to "create" the fractal with these values in a fractal generator software and publish it as a JPEG. Pretty much like the picture of a landscape, for example. The landscape was always there, waiting to have its photo taken.
What is a photograph if not a graphical representation of a landscape or a particular object in a specific moment in time, in a certain (constant, sometimes) environment? Take a picture of a mountain. Then the next day, the mountain will still be there, at the same place, in the same coordinates/parameters. If you go there and place your camera in the same position, with the same conditions (parameters) as when you did a day before, chances are that you will get the same or a very close image to the previous image. This is even more correct if you're taking for example a picture of say a fruit in a studio. You can move your camera a few milimeters away from the original point of the first photo, and it's about the same as using let's say values of 0.000001 and 0.000002 for a certain parameter in a fractal. They are "pictures" of a fractal taken in a different condition, but they still keep the same basic subject, the fractal "structure" so to speak, just like the mountain or the car or the apple is the same.
And what about the post-processing? If you take a picture of a model in a studio with a red light today and tomorrow you use the same model, in the same position, but with a green light… it's the same as using a different color algorithm in a fractal.
A painting is a bit different, because it's your own interpretation of something, it's not something that "is there" waiting to be unravelled. Each artist has a different technique and a way to "translate" things to a painting in his own way, some like to make the paintings entirely abstract, some like to make accurate reproductions making it look like a photograph, and although people can add their "personal touches" to fractals, these are more like a camera lens or some other dark room effect added to the image than a real "personal" touch. But this doesn't mean that fractal artists aren't creative. I hope I could make myself clear.
The trick I guess is to find the "right side of the mountain", the correct time of the day to take your picture. The same landscape might look boring today and tomorrow with a few natural "tweaks" (a word constantly used by fractal artists) it can become a masterpiece. Sometimes it's a matter of luck, sometimes you have some inner voice telling you to explore a new combination/spot, whatever. What is important is what you can do with that – the final work.
Comments Off on Fractals: photography or painting? more...
Some more on fractal movies
by Mr. Mandelbrot on Oct.11, 2010, under General
I've moved the animation that I had saved to a faster computer, but it refused to render, it wasn't rendering even the very first frame. Time to think a little why it was happening. Maybe some folder permission error, not really a software bug.
In Mandelbulb 3D, in the animation window, you have the option to send back the saved keyframes to the main window (useless feature? Not at all!), so this is what I did. Sent them back, re-rendered each and send them back to the animation timeline, and saved this animation under a new name and in a different folder just to be sure. And it worked.
It's currently rendering right now with a couple more frames added towards the end of the previous version (but I've reduced the number of frames between keyframes from 50 to 25 to see what happens, therefore the movie should be shorter this time) and 150 frames out of a total of 250 are already finished in 18 minutes. Quite an improvement. I think that I can even raise the size of the animations to some sort of "semi-HD" quality. I'll have to check first if these fractals used here are also faster than others, sometimes when adding a Julia calculation or a "Cutting" things get a bit slower. Anyway, this is much much faster than rendering it in the other computer, that has half of the memory of this one, but the processor is a Celeron while in this other one it's a quadcore… it's not RAM that makes the difference here, but the processor. And maybe the video card (I have a Radeon something in the faster computer), but I'm not sure as it doesn't really help in other softwares like Ultra Fractal to have a faster video card, these cards are more useful with games and… well, 3D processing. Definitely fractals aren't for slow computers.
One thing that I've noticed though even in the preview animation window is that for some reason (or maybe it's not really happening) is that the keyframes I had already used and all the frames inbetween these are rendered a bit faster than the new added keyframes. Sometimes deeper zooms render a bit slower too, this might be what's happening as it's a little deeper in these new frames.
Another thing I've noticed that seems to happen at least in this image is that in areas that have a certain depth of field, showing parts of the "sky" (or of a background image), the render gets much slower. The more sky/background, the slower it gets. If the image is filled with just the fractal parts, it goes much faster. The elements that are closer to the camera for example, are rendered much faster in an image that has "sky" parts even though they look much more complex than the plain blue sky behind them. I guess it's due to the 3D, it has to calculate the distances from for example the border of the fractal to the "horizon" or the "sky", which is quite far from the camera (I guess this calculation is limited by the iterations as well, it tells the software where the "sky" – the end of the image – is). The difference is brutal. Frames with about 30-40% of "sky" areas can take up to 20 mins to be rendered, maybe more (just one frame!), while others with minimal open areas are rendered in 40 seconds. So a good tip for a fractal animation using Mandelbrot 3D is… avoid these open areas, focus on the fractal details. Which is the most interesting part anyway.
Update: it is really getting slower. Last frames past the #200 are taking 7 mins to be rendered and it's getting considerably slower from there. Maybe it's really the zoom, the frame #207 for example has a zoom of 1599946.7something while the very first one is 1x I think or near that. This combined with the lights, shading, etc. make it go slower. And I just found that I'm using the Julia mode and the cutting in this one. Also it seems that the more colours an image have, the more complicated it gets to be rendered. Images that are too colourful like the "Beatle Sugar Cube" below seem to be slower because of the different colours. But sometimes the images need to be that vivid. OK if you like a plain pink shade all over your image, I don't.
I will try to make some more tests and for example disable the cutting when/if it won't make a difference in certain keyframes. I think that it works for me more like a guideline if I want to find a Mandelbrot shape inside that mess, for example, or to reveal certain areas of "solid" fractals to see if they have something interesting inside. I'm not sure if I can really reach these internal areas just by zooming in without cutting them first, probably I can't.
I have read that the common timeframe people spend rendering these animations are "weeks", so I guess I'm just starting… if I want to add a soundtrack for example, it wouldn't work if the animation is too short. At 24 frames per second, 2 of these keyframes with the settings I'm using for this new test (25 frames inbetween keyframes) will give me a 2 seconds animation. Do the math.
Comments Off on Some more on fractal movies more...
My first attempt on making a fractal animation. Weird is that I have the Ultra Fractal animation edition since it was released but never ever tried to make a single animation with it. Had to start with Mandelbulb 3D, go figure.
It's buggy, annoying, slow, but it's nice. Unlike some softwares that build the movies themselves, this one just gives you the frames, then you must do the movie assembling and editing job elsewhere. Some of these free slideshow softwares or these that come with cameras or DVD burners like some ULead products (now owned by Corel?) can't do it properly. I did some nice "movies" with images and transitions, but to render a movie with no intervals between frames, they don't work. I had to try Picasa, and it did a very good job.
With some version of the software (the penultimate) I saw that I could render all the frames in JPG and PNG but for some reason the latest version of Mandelbulb 3D just let me render in BMP again. It wouldn't be a problem if it wasn't for the size of each frame – 900K.
One of the major problems I see in Mandelbulb 3D is that if you want to give up on some render/fractal or some animation or even restart from scratch, you just can't. You must close the program and start all over again, the "reset locations and zoom" for example doesn't clean the formula tabs, neither there's a way to clean the animation and restart from scratch. I had a paused animation, quit it closing the animation window without saving (this usually makes you lose any work in any software…) and reopened Mandelbulb 3D and started to make a new fractal and a new animation, but for some reason the old paused animation was still there hanging in the animation window even though it wasn't saved and I couldn't even load a frame or use the navigator. I had to force the software to be closed using a Ctrl-Alt-Del, and it was finally cleared. It's a very promising software, but very very buggy.
Here's the animation. Still short and not the best, but it's just a test. It was originally rendered in 640 x 480, 24 frames/second. Took me about 3 hours. I'll move the files to a faster computer and try to add a few more things, it ends not where exactly I wanted it to be.
Comments Off on A movie more...
Freewares, sharewares and annoyingwares
by Mr. Mandelbrot on Aug.22, 2010, under General
While doing some searches on something fractal-related, I found one page with a list of fractal softwares. Also there was a brief description for each of these softwares, which most of the times also helps you to have at least a clue about what it is, even though it might be a bit subjective or can even be a forced good review pushing you to choose that special item of that list instead of others.
Anyway, there's this interesting entry that says (some bits removed to not explicitly tell which software it is – people can get picky at times and refuse to understand criticism):
"One of the most popular generators of fractal graphics in 24 bit true color. This freeware 32-bit program, written in Visual C++ by (…), has capabilities far above many that are available, and is well worth taking the time to try out and use. (Both the executable and source code are available.)".
Did you read "freeware" there too? OK. Just checking. Also, the source code is available for those that like to see how it goes behind the curtains. Nice, and the description makes you think it's a very good piece of software. But click the link and… there's this disclaimer in the page that says:
"Entrance to the (…) download area is for registered members only.
Registration is $35 and is made via Paypal.
Upon registration, you will be emailed with a link, password,
and unlimited access to the download area."
OK, did you read that too? You will only be able to download this freeware (??) software after you pay a fee to enter the download section of the site. Now how can this be called freeware? To me it's just something I'd call annoyingware. And then programmers complain that their softwares are pirated or shared in P2P networks and warez sites. If they knew how to sell them, they would sell.
I always liked to and did register as many softwares I could that aren't extremely overpriced (unfortunately, most still are) and that are really useful and/or without bugs, and even I've made some small donations to programmers here and there to help the development of their stuff, and like I did with UltraFractal, when I thought I could sometime have a profit from stuff I did with it, it was kind of a moral and obvious decision to register it (and other similar stuff), if I could ever have any benefit from using it – read "benefit"as pure $$$ – it would be nice to "pay" the author of the software for that the same way you pay for a tool you use at work. But when a software is known for being buggy, overpriced, hyped, or that have a clone software that does the same (or almost) in an open source/freeware format as a paid software, I don't register or buy it at all, and sometimes when I register a software that later becomes buggy or that lacks support or even that charges me a lot more for a stupid upgrade… I have no guilty in getting an "illegal" updated version of that. But this was the first time I've seen some stupid thing like that, a "membership" to download a "freeware". Pffft. Maybe a bad choice of words or advertising, but still stupid.
Just to make things clear, here's the definition of "freeware" seen in Wikipedia:
Freeware (from "free" and "software") is computer software that is available for use at no cost or for an optional fee.[1] Software referred to as freeware is almost always proprietary. Software that is commercial is occasionally referred to as payware.
"Not to be confused with Free software."
OK, the author might say that he's asking that fee because you're downloading the source code blah blah blah. And the asked fee is nothing like "optional" in that site. Don't pay it and don't get the software, it's simple as that. Had the author asked for a donation, he would probably make much more money than using this "pay before you even see what you're buying" method. This would be a little different than what I'd call a "freeware" as it stated in this definition, it could (and sometimes is) called a "donationware".
Starting to test the softwares… and what a surprise!
Let's try not to get bored and install all these softwares. First part starts here. Little I knew that I was going to have a nice surprise…
First I've unzipped most of the downloaded stuff that doesn't come as a single .exe file (.RARs and .ZIPs), then what was left (a bunch of .EXEs) I decided to install already after that so I didn't have to redownload boring stuff by accident. All these files and installation packages are quite small and simple, so I'm already expecting to find very basic softwares…
First installed softwares were: Aros Magic, Double Fractal and Fractint 21 beta (it appears as "Fractint for Windows" in the menu, although it's not called WinFract!)
Aros Magic: a toy. Full of small jokes here and there, and nothing but a toy. Seems that its "millions of colours" feature is like when you set Fractint to work with more than 256 colours, it goes to a default blue and black gradient and all your previous colour schemes are set to that instead. Seems that it works with the basic images and formulas only.
Double Fractal: another toy. It's not very easy to guess that you must click one of the images that appear in the window that opens when you launch the software. Then another window opens which seems to be the "editor". Very basic images as well.
Fractint 21 beta (actually it seems to be v. 20.99): YAY. Fast, Evolution method is available, big resolutions, works smoothly in Windows 7, which means… it's all I ever wanted from Fractint to be. Now it's time to install my alternative formula collections and my colour maps to that version and have some real good fun again. I couldn't really be more pleased. Sorry but the project of testing all these other softwares will be stopped for a while, it's Fractint time again!
Note: it says "not for public release" in big bold letters in the Fractint beta main window. I can't be sure how stable it is yet (seems quite stable so far) and I'll respect this and won't publish the link for a download of this version, in case you are interested. Just do a search or visit some of the links in my menu, it's hidden there somewhere and it's quite easy to be found. Also remember if you wish to install that it's a beta software, and it might (still) have bugs, use it at your own risk.
Comments Off on Starting to test the softwares… and what a surprise! more...

redpajama_set_name: RedPajamaCommonCrawl


Beautiful Celestial Sterling Silver Spirit of the Horse Cremation Jewelry. Free Ground Shipping. This pendant is the perfect urn to keep your beloved horse close to your heart. The pendant will hold a small amount of your Horses cremains.
When you order this piece, it comes with a free 18 inch Sterling Silver Chain. The screw utilized to access and fill the jewelry is also sterling silver. The pendant is 1/2" x 1/4".


text:
package com.valtech.source.dependometer.ui.console.output;

import java.io.IOException;
import java.io.PrintWriter;

import com.valtech.source.dependometer.app.controller.compilationunit.CompilationUnitManager;
import com.valtech.source.dependometer.app.controller.compilationunit.HandleMultiplePackageCompilationUnitCycleCollectedEventIf;
import com.valtech.source.dependometer.app.controller.compilationunit.HandleSinglePackageCompilationUnitCycleCollectedEventIf;
import com.valtech.source.dependometer.app.controller.compilationunit.MultiplePackageCompilationUnitCycleCollectedEvent;
import com.valtech.source.dependometer.app.controller.compilationunit.SinglePackageCompilationUnitCycleCollectedEvent;
import com.valtech.source.dependometer.app.controller.layer.HandleLayerCycleCollectedEventIf;
import com.valtech.source.dependometer.app.controller.layer.LayerCycleCollectedEvent;
import com.valtech.source.dependometer.app.controller.main.DependometerContext;
import com.valtech.source.dependometer.app.controller.pack.HandlePackageCycleCollectedEventIf;
import com.valtech.source.dependometer.app.controller.pack.PackageCycleCollectedEvent;
import com.valtech.source.dependometer.app.controller.project.AnalysisFinishedEvent;
import com.valtech.source.dependometer.app.controller.project.HandleAnalysisFinishedEventIf;
import com.valtech.source.dependometer.app.controller.project.ProjectInfoCollectedEvent;
import com.valtech.source.dependometer.app.controller.subsystem.HandleSubsystemCycleCollectedEventIf;
import com.valtech.source.dependometer.app.controller.subsystem.SubsystemCycleCollectedEvent;
import com.valtech.source.dependometer.app.controller.type.HandleMultiplePackageTypeCycleCollectedEventIf;
import com.valtech.source.dependometer.app.controller.type.HandleSingleCompilationUnitTypeCycleCollectedEventIf;
import com.valtech.source.dependometer.app.controller.type.HandleSinglePackageTypeCycleCollectedEventIf;
import com.valtech.source.dependometer.app.controller.type.MultiplePackageTypeCycleCollectedEvent;
import com.valtech.source.dependometer.app.controller.type.SingleCompilationUnitTypeCycleCollectedEvent;
import com.valtech.source.dependometer.app.controller.type.SinglePackageTypeCycleCollectedEvent;
import com.valtech.source.dependometer.app.controller.type.TypeManager;
import com.valtech.source.dependometer.app.controller.verticalslice.HandleVerticalSliceCycleCollectedEventIf;
import com.valtech.source.dependometer.app.controller.verticalslice.VerticalSliceCycleCollectedEvent;
import com.valtech.source.dependometer.app.core.provider.ConfigurationProviderIf;
import com.valtech.source.dependometer.app.core.provider.ProjectIf;
import com.valtech.source.dependometer.app.core.provider.ProviderFactory;
import com.valtech.source.dependometer.ui.console.Dependometer;

/**
 * @author Dietmar Menges (dietmar.menges@valtech.de)
 */
public final class DetailedCsvWriter extends CsvWriter implements HandleVerticalSliceCycleCollectedEventIf,
   HandleLayerCycleCollectedEventIf, HandleSubsystemCycleCollectedEventIf, HandlePackageCycleCollectedEventIf,
   HandleMultiplePackageCompilationUnitCycleCollectedEventIf, HandleSinglePackageCompilationUnitCycleCollectedEventIf,
   HandleMultiplePackageTypeCycleCollectedEventIf, HandleSinglePackageTypeCycleCollectedEventIf,
   HandleSingleCompilationUnitTypeCycleCollectedEventIf, HandleAnalysisFinishedEventIf
{
   private int m_NumberOfPackageCycles;

   private int m_NumberOfSubsystemCycles;

   private int m_NumberOfLayerCycles;

   private int m_NumberOfVerticalSliceCycles;

   private int m_NumberOfMultiplePackageCompilationUnitCycles;

   private int m_NumberOfSinglePackageCompilationUnitCycles;

   private int m_NumberOfMultiplePackageTypeCycles;

   private int m_NumberOfSinglePackageTypeCycles;

   private int m_NumberOfSingleCompilationUnitTypeCycles;

   private ProjectIf m_Project;

   public DetailedCsvWriter(String[] arguments) throws IOException
   {
      super(arguments);

      DependometerContext context = Dependometer.getContext();

      context.getVerticalSliceManager().attach(this);
      context.getLayerManager().attach(this);
      context.getSubsystemManager().attach(this);
      context.getPackageManager().attach(this);

      CompilationUnitManager compilationUnitManager = context.getCompilationUnitManager();
      compilationUnitManager.attach((HandleMultiplePackageCompilationUnitCycleCollectedEventIf)this);
      compilationUnitManager.attach((HandleSinglePackageCompilationUnitCycleCollectedEventIf)this);

      TypeManager typeManager = context.getTypeManager();
      typeManager.attach((HandleMultiplePackageTypeCycleCollectedEventIf)this);
      typeManager.attach((HandleSinglePackageTypeCycleCollectedEventIf)this);
      typeManager.attach((HandleSingleCompilationUnitTypeCycleCollectedEventIf)this);

      context.getProjectManager().attach((HandleAnalysisFinishedEventIf)this);
   }

   public void handleEvent(ProjectInfoCollectedEvent event)
   {
      assert event != null;
      super.handleEvent(event);
      m_Project = event.getProject();
   }

   public void handleEvent(VerticalSliceCycleCollectedEvent event)
   {
      assert event != null;
      ++m_NumberOfVerticalSliceCycles;
   }

   public void handleEvent(LayerCycleCollectedEvent event)
   {
      assert event != null;
      ++m_NumberOfLayerCycles;
   }

   public void handleEvent(SubsystemCycleCollectedEvent event)
   {
      assert event != null;
      ++m_NumberOfSubsystemCycles;
   }

   public void handleEvent(PackageCycleCollectedEvent event)
   {
      assert event != null;
      ++m_NumberOfPackageCycles;
   }

   public void handleEvent(MultiplePackageCompilationUnitCycleCollectedEvent event)
   {
      assert event != null;
      ++m_NumberOfMultiplePackageCompilationUnitCycles;
   }

   public void handleEvent(SinglePackageCompilationUnitCycleCollectedEvent event)
   {
      assert event != null;
      ++m_NumberOfSinglePackageCompilationUnitCycles;
   }

   public void handleEvent(MultiplePackageTypeCycleCollectedEvent event)
   {
      assert event != null;
      ++m_NumberOfMultiplePackageTypeCycles;
   }

   public void handleEvent(SinglePackageTypeCycleCollectedEvent event)
   {
      assert event != null;
      ++m_NumberOfSinglePackageTypeCycles;
   }

   public void handleEvent(SingleCompilationUnitTypeCycleCollectedEvent event)
   {
      assert event != null;
      ++m_NumberOfSingleCompilationUnitTypeCycles;
   }

   public void handleEvent(AnalysisFinishedEvent event)
   {
      assert event != null;
      assert m_Project != null;

      PrintWriter writer = getWriter();
      ConfigurationProviderIf provider = ProviderFactory.getInstance().getConfigurationProvider();

      writer.println();
      writer.println();
      writer.println("# Number of analyzed cycles #");
      writer.println();

      if (provider.analyzeVerticalSlices())
      {
         writer.print("Number of " + m_Project.getVerticalSliceElementName() + " cycles,");
         writer.println(m_NumberOfVerticalSliceCycles);
      }

      writer.print("Number of " + m_Project.getLayerElementName() + " cycles,");
      writer.println(m_NumberOfLayerCycles);
      writer.print("Number of " + m_Project.getSubsystemElementName() + " cycles,");
      writer.println(m_NumberOfSubsystemCycles);
      writer.print("Number of " + m_Project.getPackageElementName() + " cycles,");
      writer.println(m_NumberOfPackageCycles);
      writer.print("Number of multiple " + m_Project.getPackageElementName() + " "
         + m_Project.getCompilationUnitElementName() + " cycles,");
      writer.println(m_NumberOfMultiplePackageCompilationUnitCycles);
      writer.print("Number of single " + m_Project.getPackageElementName() + " "
         + m_Project.getCompilationUnitElementName() + " cycles,");
      writer.println(m_NumberOfSinglePackageCompilationUnitCycles);
      writer.print("Number of multiple " + m_Project.getPackageElementName() + " " + m_Project.getTypeElementName()
         + " cycles,");
      writer.println(m_NumberOfMultiplePackageTypeCycles);
      writer.print("Number of single " + m_Project.getPackageElementName() + " " + m_Project.getTypeElementName()
         + " cycles,");
      writer.println(m_NumberOfSinglePackageTypeCycles);
      writer.print("Number of single " + m_Project.getCompilationUnitElementName() + " "
         + m_Project.getTypeElementName() + " cycles,");
      writer.println(m_NumberOfSingleCompilationUnitTypeCycles);

      getLogger().info("writing detailed csv file ...");
      close();
   }

   void finish()
   {
      // super class should not close the file
   }
}


text:
HomePoliticsCan Andrew Yang's Star Power Carry Him to New York's City Hall?
Can Andrew Yang's Star Power Carry Him to New York's City Hall?
January 11, 2021 admin Politics 0
In the last few months, the man who would be New York's most famous mayoral candidate acted like anything but one.
He spent more time barnstorming Georgia than he did the five boroughs. He openly contemplated cabinet roles and lobbied Washington lawmakers around stimulus relief. And he often made television appearances from his weekend home in the Hudson Valley rather than from his apartment in Hell's Kitchen.
Andrew Yang has a habit of practicing politics in unexpected ways.
He began the presidential race as an unknown candidate and stayed relevant longer than more accomplished politicians did, building an ardent fan base through his quirky style, warnings about automation and championing of a universal basic income. He now turns to the New York City mayor's race with significant name recognition, a vivid social media presence and a demonstrated ability to raise money.
But he is still every bit the unorthodox contender, and that approach offers Mr. Yang both opportunities and monumental challenges in the race to lead New York out of a pandemic-fueled crisis. His candidacy — which may be officially announced as early as this week — would offer a clear test of whether New Yorkers want a splashy but inexperienced contender with bold ideas for navigating the city's recovery, or whether a mood of citywide emergency propels a more familiar local figure with a traditional governing background.
Mr. Yang, who most recently has been a CNN commentator, nonprofit founder, campaign surrogate and podcast host, embraces being a political outsider in a city where he has lived for 24 years — indeed, he has never voted for mayor, the office he is poised to seek.
Now, he is betting that he would instantly inject a dose of star power into a muddled, crowded field, and that his pledges to be an ambitiously anti-poverty candidate would resonate in an economically ravaged city.
But he is also sure to face scrutiny and pressure of a wholly different magnitude than he ever confronted as a genial presidential candidate who dropped out last February, as voters, rivals and the news media dissect his experience, views and basic knowledge of the city.
"If someone's looking for a candidate who has spent the last couple decades steeped in city government, like, I will likely not be their candidate," Mr. Yang said in a Friday morning interview from his weekend home in New Paltz, N.Y., about 80 miles outside Manhattan.
Detailing the public health and economic challenges facing New York, he continued, "If you look at that situation and say, 'Hey, city government has been working great for us, and we need someone who has been a part of the firmament for X number of years,' I would disagree with that assessment."
Mr. Yang grew up in Schenectady, N.Y. and Westchester County, attended Columbia Law School and stayed in New York City afterward, working, raising two young children and maintaining fond memories of Mayor Ed Koch from his suburban childhood.
He has a slate of ideas for revitalizing a city reeling from the pandemic, proposing "the biggest implementation" of a basic income in the country, addressing broadband internet access and urging the establishment of a "people's bank of New York" to assist struggling New Yorkers. Some operatives and lawmakers doubt the feasibility of his vision, and Mr. Yang, a neophyte when it comes to city political battles, will need to explain how he would achieve such sweeping goals given the city's staggering financial challenges.
Although he has never run for office in New York, Mr. Yang's presidential bid showcased his fund-raising ability, especially among small-dollar donors. He has a larger national network than typical mayoral candidates, and intends to announce Martin Luther King III as a co-chair of the campaign, Mr. King confirmed.
Mr. Yang has also enlisted the prominent New York operatives Bradley Tusk and Chris Coffey, and has been in touch with New York political figures including members of the congressional delegation; the City Council speaker, Corey Johnson; the city's public advocate, Jumaane Williams; the Queens borough president, Donovan Richards Jr.; as well as union leaders, legislators and stakeholders like the Rev. Al Sharpton.
But for much of his career — he has a mixed record of success in the nonprofit and start-up worlds — he has plainly been absent from New York politics.
"Is he a New Yorker? I don't even know," said Kathryn S. Wylde, who leads the Partnership for New York City, an influential business organization. "I've never run into him as a New Yorker."
Asked about the most important thing he has done to understand the challenges facing New York and prepare for the mayoral contest after exiting the presidential stage, Mr. Yang cited the experience he and his family had of being in the city as it shut down amid the pandemic.
But Mr. Yang, the father of a son with autism, also acknowledged that he has not remained in New York full time since then, which Politico reported on Friday.
"We've spent more time upstate than in the city over the last number of months, but I also spent time in Georgia, as you know, I spent time in Pennsylvania campaigning for Joe and Kamala," he said.
Noting the challenges of fulfilling his CNN obligations from his apartment, he continued, "We live in a two-bedroom apartment in Manhattan. And so, like, can you imagine trying to have two kids on virtual school in a two-bedroom apartment, and then trying to do work yourself?"
In fact, many New Yorkers have experienced just that dynamic, or far more challenging circumstances. Asked to respond to voters who expect their future mayor to have stayed in the city in its darkest moments, Mr. Yang suggested that his location was not relevant to his work at the time, and that New Yorkers would prioritize plans to move the city forward.
"I was very focused on helping Joe and Kamala win, and then helping flip the Senate," he said, though Joseph R. Biden Jr.'s campaign was not especially fast-paced during the early days of the pandemic. "Most New Yorkers would be very excited about those goals, and are fairly indifferent to where I was doing that work from."
Mr. Yang's allies hope that some of his strengths at the national level will translate in New York.
During his presidential run, Mr. Yang connected with younger people, but the youth vote has not traditionally been influential in New York mayoral primaries. His candidacy will test whether he can bring more young people into the process, though he already has significant competition for the support of young progressive voters in particular.
He demonstrated little traction with Black or Hispanic voters last year, but hopes that his universal basic income proposal will help him resonate across a range of communities of color, which were disproportionately hard-hit by the pandemic.
That is an untested calculation in a diverse field that includes a number of candidates with much deeper ties to those communities and records of working on behalf of those voters. Mr. Yang may face an uphill battle in introducing himself as a New Yorker who understands the intricacies of the challenges at hand.
Yet despite his untraditional background — and in some ways, because of it — he also possesses a set of political assets that may make him formidable.
His signature issue, universal basic income, has growing political resonance as millions of Americans face unemployment, and the government cuts stimulus checks.
"No elected official in the country has done more to shine a spotlight on the need for a basic income than Andrew Yang," said Representative Ritchie Torres, who was recently elected to represent the South Bronx, adding that Mr. Yang was on a "very short list" of candidates whom he was considering endorsing.
Mr. Yang also generates enthusiasm with a base of devoted fans that rivals may struggle to match in the sprint to the June Democratic primary.
"There's been a lack, I think, of excitement in this mayoral race," said Assemblyman Ron Kim of Flushing, Queens, who recently dined on Korean barbecue with Mr. Yang in the area. "When Andrew was walking around, I saw an element of excitement."
Mr. Yang, the son of Taiwanese immigrants, would make history as New York's first Asian-American mayor. Mr. Kim said he expected that Mr. Yang would connect with many Asian-American voters in New York, a constituency that has demonstrated growing political power across the country.
In addition to meeting with New York elected officials and endorsing a number of them last year, Mr. Yang has engaged in some local philanthropic work in recent months.
He launched Humanity Forward, a nonprofit organization that promotes direct cash relief, including to New Yorkers. For example, the organization promised $1 million in emergency cash relief to families in the Bronx. Justine Zinkin, the chief executive of Neighborhood Trust Financial Partners, which received that grant, confirmed the disbursement of $1,000 each to 1,000 Bronx residents.
But in his own telling, Mr. Yang has primarily been focused on national obligations until recently. He said he did not begin to focus in earnest on a mayoral run until after the November election.
Even then, he spent much of his time in Georgia. Mr. Yang argued that his efforts to help flip control of the Senate to the Democrats were significant for New York, citing the critical need for federal assistance for the struggling city.
And it was in Georgia that he spent time with at least one of his future co-chairs of his expected mayoral campaign: Mr. King, the eldest son of the Rev. Dr. Martin Luther King Jr. and a human-rights activist, who cited Mr. Yang's focus on the poor as especially compelling.
But some New Yorkers said his time in Georgia has little relevance to his presumed next job as mayoral candidate.
"Good for him as a human, but it wouldn't be how I would use my time if I were running for mayor and the race were in six months," said Eric Phillips, formerly a spokesman for Mayor Bill de Blasio. "He's certainly done nothing that I've seen that demonstrates a command for city issues or the kind of really difficult decision-making that's involved in managing 325,000 people and $90 billion. He hasn't been involved in the civic fabric of the city."
News that he has not even voted for mayor also stunned some New Yorkers.
Asked to explain that record, Mr. Yang acknowledged that in the past he may have taken city government "somewhat for granted."
"Right now we're facing an historic crisis," he said, adding that many New Yorkers "right now are engaging in different ways."
He promised that in the coming weeks, he would be accessible to his hometown.
"Anyone who wants to talk to Andrew Yang in the days to come, like, I want to talk to them," he said.
Taxi! NHL taxi squads to help teams stay on ice in pandemic
UK ramps up vaccine rollout, targets every adult by autumn
U.S. officials change virus risk groups, add pregnant women
2021 Will Be a Make-or-Break Year for Multilateralism
Virus pushes twin cities El Paso and Juarez to the brink
FAA poised to clear Boeing 737 Max to fly again
Sports Team: The band that locked down together and took on Lady Gaga


text:
No Shit: Science Proves Swearing Makes You Physically Stronger, Too
This new study will make you say 'fuck yeah'
Don't let anyone tell you cursing is a bad thing. 2il org/Flickr Creative Commons
While profanity is commonly heard in the Observer newsroom, it's no secret that it's frowned upon in most social situations. But a new study shows that dropping the occasional F-bomb could actually be a sign of strength.
Researchers at Keele University in (of course) England tested the power of swearing through a series of physical experiments. In the first, 29 participants completed a short, intense workout on an exercise bike—some participants were encouraged to be as profane as possible beforehand, while others were told not to swear at all. In the second, 52 people were asked to tightly hold a handgrip, again after swearing or not swearing.
The results showed that the participants who swore could cycle more powerfully and grip more tightly than those who remained tight-lipped. The increase was slight (only about three to four percent) but still noticeable. Strangely, however, there was no difference in heart rate between the two groups.
Admittedly, these new findings—which were presented at the annual gathering of the British Psychological Society—have not been peer-reviewed and have a small sample size.
But this is not the first Keele study showing swearing's benefits. In 2009, the team conducted experiments which showed that people who cursed at will could endure pain nearly 50 percent longer than civil-tongued peers.
Other international experiments have shown that residents of Connecticut and New Jersey (the two most profane states) are actually considered the most trustworthy Americans.
But the most interesting part of the swearing phenomenon, according to scientists, is that there's a shitload more left to figure out.
"Quite why it is that swearing has these effects on strength and pain tolerance remains to be discovered," Dr. Richard Stephens, who led the Keele study, said in a press release. "We have yet to understand the power of swearing fully."
Filed Under: Innovation, Health, Psychology, swearing, British Psychological Society, Keele University, New Scientific Studies, Dr. Richard Stephens, Exercise Bike, Handgrip
SEE ALSO: 5 Reasons Why Philosophy Majors Make the Best Entrepreneurs


As adults, we have two categories of books, non-fiction and fiction. But have you ever asked yourself why we don't see as many non-fiction storybooks written for our juniors? Fortunately, the creative development team at Nosy Crow has released an innovative non-fiction storybook apps that are based on circular characters whose stories start where they end. In one of their storybooks entitled Rounds: Franklin Frog, the developers successfully explains the life cycle of a frog through the story of Franklin and his descendants.
Rounds: Franklin Frog is a non-fictional children's storybook about the life cycle of a frog.
The app stars a frog named Franklin, who accompanies you as you learn about his habitat and other fun facts about frogs. During your exploration, you will also learn about the daily activities of a frog, such as jumping round in the pond, swimming underwater while avoiding the predator heron and eating snails, earthworms, and flies.
When winter comes, Franklin shows how frogs typically hibernate until the season changes. And when spring comes, he starts to search for a mate. Along with other frogs, Franklin make sounds in the night to attract a mate. He is then able to attract a female frog named Felicity.
As soon as they mate, Felicity starts to lay her eggs. She lays up to 2,000 eggs, forming a frogspawn, knowing that only five of them would successfully hatch into a tadpole. To help the eggs hatch, you need to protect them from being eaten by a larger fish.
Once an egg hatches into a tadpole, you will see how it quickly metamorphose into adult form. This resembles how in real life, the entire metamorphosis cycle would happen in 24 hours.
In the end, Fraser, Franklin's and Felicity's son, will repeat the entire story. Fraser and Flora would mate and beget Fletcher. Fletcher would then mate with Ferne and beget Franklin. Three full life cycles of frogs from Franklin to Fraser to Fletcher, until we return to Franklin again.
Follow Franklin and his descendants as they grow from eggs to adult frogs.
Teaching juniors about biology and animal facts require a creative approach to pique their interests in the subject. In Franklin the Frog, the developers successfully explains the life cycle of a frog in a child-friendly way while keeping the important scientific facts intact.
The app features many fun facts about the frog's habitats, the concept of predator and prey, mating, the stages in a frog's lifecycle, and how the frog would metamorphose from a tadpole into adult form. Simply by tapping on the blue and green dots on screen, you can hear and/or read these facts.
Some parents may not appreciate the repetitive nature of the storyline, but that's a fact of life. I personally find it as a good way to teach my juniors about how life is actually a cycle from birth to death, and the story of human beings repeats itself from generations to generations.
The app features lovely illustrations and a soothing soundtrack.
"I have eight fingers and ten toes."
"Most frogs don't live in the water, they just live near it."
"My eyes reflect light in the dark. It helps me to see better."
While I deeply appreciate fairy tales and fables, I do think that Rounds: Franklin Frog is a fresh and educational experience not to be missed. The overall presentation of the app is well done; in addition to a well-composed tale, it also features a soothing soundtrack and lovely illustrations.
Also, I like how the app emphasizes on "rounds" in many details of the app. The illustrations, for example, are created in a unique style featuring only circles and divisions of circles. It is a simple technique but it works really well in the app.
The app explains scientific facts in a junior-friendly way.
Rounds: Franklin Frog is a lovely storybook app that features a non-fictional story about the life cycle of a frog named Franklin and his descendants in a very "rounded" theme. Barry Tranter, the illustrator, has managed to deliver a great set of illustrations despite constraining himself to using only circles. The app is a brave endeavor into a new territory -- non-fiction stories for younger juniors -- but I believe it's a worthy journey. I wish more app developers and storybook authors would be brave enough to follow in the footsteps of Rounds: Franklin the Frog.
Get Rounds: Franklin Frog on the App Store.
Note: Thank you the lovely team at Nosy Crow for providing us with a promo code for Rounds: Franklin the Frog. It was a well-rounded app!


Hardcover, 9.5 x 11.75 in. / 304 pgs / 380 color.
Edited by Felix Krämer. Text by Javier Arnaldo, Max Hollein, Sandra Oppmann, et al.
Ernst Ludwig Kirchner painted city life as a joyous, bustling pageant, a sophisticated swirl of desiring bodies and colorful urbanity, giving Germany an energetic iconography for the glory days of modernity. One of the four founders of Die Brücke (The Bridge), Kirchner drew on German Renaissance art to conjure expressive exaggerations of face and posture, and brought to landscape painting a city-dweller's zest, imbuing tranquil scenery with riotous energy. Coinciding with a Kirchner retrospective at the Städel Museum--the first to be seen in Germany in 30 years--this massive volume surveys the artist's several creative phases and genres. It features the famous nudes made during the Die Brücke era, his classic scenes of frenetic Berlin city life and Swiss mountainscapes from Davos, along with lesser-known canvases, works on paper and sculpture. With essays by renowned art historians, this definitive monograph offers fresh perspective on the continued relevance of Kirchner.
Born in Bavaria, Ernst Ludwig Kirchner (1880-1938) studied architecture in Dresden, where he met the young painter Fritz Beyl. With Beyl, Karl Schmidt-Rottluff and Erich Heckel, Kirchner founded the group known as Die Brücke. Casting aside the then-prevalent academic style of painting, Kirchner and his friends allied themselves with early Renaissance artists such as Albrecht Dürer, Matthias Grünewald and Cranach the Elder, and revived older media such as woodcut printing. Kirchner briefly saw army service in the First World War, but suffered a nervous breakdown and was discharged. In the interbellum years Kirchner's reputation grew enormously, until the Nazi regime branded his art degenerate: in 1937 over 600 of his works were sold or destroyed. In 1938, despairing of this destruction and the general political climate, Kirchner committed suicide.
Featured image is from Kirchner, published by Hatje Cantz.
"As a child, Ernst Ludwig Kirchner lived in Frankfurt am Main for a short time before his family moved to Switzerland in early 1887. In 1916, he still remembered 'the large railway station, which was under construction at the time, the animals and people on the streets and at the zoo. Also my first impressions of art in the Frankfurt museum, the paintings of the Grunewald School. Old sculptures and the foreign peoples…' Kirchner was undoubtedly suggesting here that central aspects of his artistic conception had thus already been formed."
Excerpt from Thomas Roske's essay in Kirchner, published by Hatje Cantz.
FORMAT: Hbk, 9.5 x 11.75 in. / 304 pgs / 380 color.


At the ukactive National Summit in September 2018, a central theme of the day was partnership.
ukactive CEO Steven Ward called on everyone in attendance to build a new collaboration or partnership in the next year, to help drive the physical activity agenda forward.
There is no doubt here – if we are to tackle the physical inactivity crisis facing the UK, we need to bring together everyone with a stake in getting more people moving.
That of course means all of ukactive's traditional partners – leisure operators, equipment suppliers, activity operators, major corporates and public bodies. Yet just as vital is bringing those charged with driving participation in sport across our country – National Governing Bodies (NGBs).
NGBs are funded by Sport England to get our nation active in their respective sports – and face a landscape where funding is becoming increasingly squeezed. NGBs are therefore increasingly looking at alternative ways to engage new audiences and spread their individual sport across the country.
There are 7,038 gyms and leisure centres and 9.9 million people who use them within the UK – representing an excellent platform for partnership between NGBs and the wider physical activity sector.
This is the driving force behind National Governing Bodies such as British Gymnastics, British Weightlifting, Badminton England, Lawn Tennis Association and Swim England joining ukactive's Strategic Partner Group – looking to draw on the wider sector's resources to engage prospective participants across the country.
Take British Gymnastics as an example, who have reported over one million people on waiting lists to take part in gymnastics, with the majority of these being children. By partnering with local leisure facilities, combining their sporting expertise with local community facilities, we can ensure the next generation are given the opportunity to experience the benefits to taking part in gymnastics.
This presents an exciting opportunity for the sector to collaborate with NGBs – providing an additional offering for leisure facilities to provide for their customers, while helping sporting bodies engage a wider audience. It really is a win-win – a great example of how partnerships can help us get more people, more active, more often.


text:
Asian Power-lifting Championship
Udaipur: Gaurav Sahu bags a gold medal in Hong Kong
On the first day of the Asian Powerlifting Championship that is being held in the Queen Elizabeth Stadium in Hong Kong from April 21 to 26, Gaurav Sahu of Udaipur won a gold and a bronze medal while performing his…
Udaipur's Gaurav Sahu all set to compete at Asian Power-lifting Championship
Gaurav Sahu of Udaipur will participate in Asian Power-lifting Championship starting from April 20 at the Queen Elizabeth Stadium in Hong Kong. Gaurav has been selected in the Indian team. Its first international match of his life. Vinod Sahu, secretary…


Negligent companies and individuals, including property owners and their agents, who are not your employer (also called third parties) who cause accidents at work sites can be held liable for the injuries and deaths caused by their carelessness. While an accident victim's workers' compensation benefits may cover initial medical expenses and some lost wages, it is usually not enough to cover all of a worker's actual damages, including pain, suffering and loss of enjoyment of life — especially when more serious injuries are involved.
At the law office of Tolmage, Peskin, Harris, Falick, our NY City third party liability attorneys hold negligent third parties financially and legally accountable for the injuries they cause. When investigating a construction accident, our firm reviews the New York State Industrial Code, OSHA regulations and other applicable safety standards. We often consult with safety experts and accident investigators to determine if a third party (a non-employer contractor, subcontractor, property owner, or agent) violated New York labor laws, building codes or safety regulations. Failure to properly secure, guard, clean, or store items at a construction site may create foreseeable dangers in violation of a property owner or construction company's duty of care.
If you're an accident victim injured at a job site due to negligence on the part of a third party, contact the work injury attorneys at the law office of Tolmage, Peskin, Harris, Falick today and schedule a FREE consultation to discuss your case. Our firm will promptly begin investigating what happened to expose violations of relevant safety regulations and other negligence by a third party.
All areas in which construction, excavation or demolition work is being performed shall be so constructed, shored, equipped, guarded, arranged, operated and conducted as to provide reasonable and adequate protection and safety to the persons employed therein or lawfully frequenting such places. The commissioner may make rules to carry into effect the provisions of this subdivision, and the owners and contractors and their agents for such work, except owners of one and two-family dwellings who contract for but do not direct or control the work, shall comply therewith.
Contractors, construction companies and property owners are required to "provide reasonable and adequate protection and safety to the persons employed therein or lawfully frequenting such places." Consequently, tools must be stored properly, physical hazards marked off, and efforts made to ensure workers and others are not exposed to harmful materials. This may require signage to warn people or mark off areas with restricted access.
When an injury occurs, our attorneys immediately move to investigate the scene of accident, take photos, and interview eyewitnesses. Rest assured that attorneys and insurance companies for the owners and contractors will have their investigators poring over the site within minutes of the accident. You should contact our attorneys immediately by calling 866-502-9091 toll-free or 212-257-3731 so that we can begin our investigation as soon as possible after the accident.
In cases involving serious brain damage, back and neck injury or spinal cord injury, workers' compensation benefits are often not enough to compensate a worker for all of his or her damages and expenses. Accident victims who face long-term disability and a marked decrease in the quality of their life can pursue third party claims in order to receive compensation proportional to seriousness of their workplace injury.
To schedule a FREE attorney consultation and learn how our NYC law firm can help you, contact the New York third party claim lawyers at Tolmage, Peskin, Harris, Falick today.


-There is a CAPTCHA that you would like created, but don't know how to create one.
The website has been tested on a smart phone and the CAPTCHAs load fine. When submitting our answer we are prompted if we got the answer right or wrong. In our testing we were able to submit a successful asnwer. For phones with smaller screens it would be a good idea to use Multi Plus with smaller text.
As for WAP, this is a technology that is fading away as the majority of smart phones display websites using existing HTML technologies.
We are sorry because we no longer have a phone that just supports WAP and as a result it would be difficult to create a CAPTCHA for that market. If you happen to have a working CAPTCHA, please shared a link to it or upload it (if it\'s your own) to the website to share with the community. Thank you.


text:
Q: Perl - Why is my regular expression not yielding any results? I have a small program that takes user input and is supposed to filter out specific lines from a text file which contains the specified "port". The text file looks like this:
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port
LISTEN     0      128                       *:22                       *:*
LISTEN     0      128               127.0.0.1:631                      *:*
LISTEN     0      100               127.0.0.1:25                       *:*

The script that I wrote simply prompts for user input and is supposed to filter out data using a regular expression combined with the input variable. Using the website www.rubular.com I can get my expression to work as intended but in the actual code I do not get any listed data.
Following is my Perl script:
use warnings;
use strict;

my $port_query = 1;
my $command = "ss -p -l -n -t -u -4";
my $port = 0;
my $output_file = "system_output.txt";

while ($port_query == 1) {
    print "Please choose the port number (Numerical value):\n";
    $port = <>;
    if ($port =~ /^[0-9]{1,5}+$/) {
        $port_query = 0;
    }
    else {
        print "Argument not allowed.\n";
    }
}

system ("touch $output_file"); #Creates the output file.
system ("$command > $output_file"); #Executing system commands

open(INPUT, "<", "$output_file") or die ("Unable to write to file.");
chomp(my @socket_data = <INPUT>);
close (INPUT);

foreach my $line(@socket_data) {
    if ($line =~ /\S+?([0-9]|0*):($port)/) {
        print "$line\n";
    }
}

The script should print one line, namely:
LISTEN     0      128                       *:22                       *:*

A: You forgot to remove the newline from the user input.
chomp $port;

redpajama_set_name: RedPajamaStackExchange


text:
Scott Worden on Afghan Elections and the Peace Process
Wednesday, February 19, 2020 / By: Scott Worden
Publication Type: Podcast
Amid news of an interim U.S.-Taliban deal, Afghanistan's election commission announced President Ashraf Ghani has won reelection—a result his opponent has openly rejected. USIP's Scott Worden warns this kind of political infighting weakens the government's negotiating position ahead of possible intra-Afghan talks, saying "the Taliban profit from political chaos."
On Peace is a weekly podcast sponsored by USIP and Sirius XM POTUS Ch. 124. Each week, USIP experts tackle the latest foreign policy issues from around the world.
Tim Farley: Latest out of Afghanistan is that the election commission says that Ashraf Ghani has won a second term as president. But his closest opponent, Abdullah Abdullah, has declared himself the winner. The Taliban, meanwhile, has rejected the win of Mr. Ghani, further putting into question the U.S. peace plan, which calls for a reduction in violence followed by a more permanent agreement, expected to be signed February 29th between Washington and the Taliban. President Trump commenting yesterday, speaking with reporters as he was leaving the White House.
(Audio from news clip)
Tim Farley: There's a chance. We will see what happens, often hearing that from the president. Specifically, on Afghanistan, let's get the take from Scott Worden.
Scott is the director of the United States Institute of Peace's Afghanistan and Central Asia programs. The Twitter handle is @USIP. Scott, welcome back. Thank you for being here.
Scott Worden: Morning, thanks for having me.
Tim Farley: What is the state of any agreements right now in your estimation?
Scott Worden: Well, I'm cautiously optimistic that an agreement will in fact go through. I think we were back to the point we were in in September, when people were talking about a possible U.S.-Taliban deal and that fell through. President Trump canceled a planned trip to Camp David to sign the deal, and the parties went back to negotiations.
I think there are signs that this is more likely to go through. The U.S. and the Taliban have negotiated a reduction in violence, which is supposed to last for seven days, and that's the period we're in now. And upon that completion of the seven days, the Taliban will sign a deal with the U.S. renouncing terrorism, saying there'll be no safe havens, and then agreeing to talk directly with the Afghan government, which would be the first time since 2001. So the signs are looking good, but I would definitely keep my fingers crossed. Because as you mentioned in your top piece, there is a disputed election result, which has just been announced, and that will cause even more political turmoil.
Tim Farley: Is it your sense that this is a true dispute or that the Taliban is using this as an excuse to delay things?
Scott Worden: Well, I think the Taliban has been consistent that they don't recognize the democratic process. They don't recognize the democratically elected government of President Ghani. So they're going to say that they reject the government regardless of what happens. I think the more significant feature is that the runner up, Abdullah Abdullah, who was the chief executive officer in the current government, has disputed the results and says he's going to form his own government. And this kind of infighting, political infighting among groups that are otherwise opposed to the Taliban, tends to weaken the government's negotiating power and the Taliban profit from political chaos.
Tim Farley: Scott, I have made this comparison and maybe it's an odious one, but it's just a feel, it's not necessarily based in expertise, which is why I'd like to get your take on this. And that is that after the Vietnam War in this country, it was just everyone was tired, wanting to get out. And there was always a question about the involvement of the United States in that country and how much we needed to invest and at what point we pull out, and at the end of it, trying to claim some sort of progress. If the United States does withdraw from Afghanistan, what is the positive? What is the negative?
Scott Worden: That's a good question. I think there are a lot of positives in terms of largely eliminating al-Qaeda from Afghanistan. They have had no capability to plan attacks against U.S. Of course, fortunately, there has been no attacks from Afghanistan on the U.S. So, I think the core counterterrorism objective of going in was achieved for a long period of time. For Afghanistan, the development there—economic development, infrastructure development, as well as education and health— has been enormous since 2001.
Afghanistan is still a very poor country and it needs more development assistance, that it should be increasingly financing on its own, but the U.S. intervention with international partners was able to really set the country back on its feet. And finally it's established, while a fragile democratic system, it still is a democratic country in a very undemocratic area of the world. And it has free speech and free media that is the envy of its neighbors. So those are all very positive. Now, the negative of course, is that we're still there, and we're still paying billions of dollars a year. So, the peace deal, that people hope will happen, is really the best way to ease down our investment and let the Afghan government take more of the responsibility.
Tim Farley: I guess a lot of people would say, "All right, so we've got nearly 2,500 military deaths, 1,900 of those give or take the result of hostile action, about 20,000 service members wounded in action in the war." And you wonder, "Okay, good job, well done. And it was worth the effort or not?"
Scott Worden: Well, I think again with the counterterrorism goal at the core of the mission, the fact that we did eliminate one source of threat with no attacks, I think that is a job well done. Our presence in Afghanistan enabled us to get [Osama] bin Laden in Pakistan next door. That wouldn't have happened without an intervention. Did it need to be as large? Did as many people need to die? I mean, those are questions that need to be reviewed historically. And surely in hindsight, we probably overpaid for the investment. But that said, it's a process that was worth engaging in and has paid dividends.
Tim Farley: Again, Scott Worden with us, director of the United States Institute of Peace's Afghanistan and Central Asia programs. On this deal with the Taliban, Scott, is there any sense, what is the mechanism for compliance to ensure that the Taliban lives up to whatever it agrees to?
Scott Worden: We understand that there are compliance mechanisms. The deal has not been released publicly yet, the deal between the U.S. and the Taliban. So I don't know the details of it, but fundamentally it would be the U.S. military commander, and along with the Afghan military, evaluating with all of the capabilities that we have there, whether the Taliban has agreed to the terms or not. Fundamentally, they are to reduce violence, no violence against civilians. There've been a lot of attacks on civilians and federal damage by the Taliban, as well as by aerial bombardment by the Afghan forces and that should be observable by the public and by the media. Other forms of violence would be for the military to decide.
Tim Farley: And as far as we talk about the Afghanistan and the Taliban and the U.S., of course, you've got to wonder about the neighbors, Iran to the West, Pakistan to the East and the South, Turkmenistan to Tajikistan, Uzbekistan. I'm not sure, do they recognize, will they recognize the Taliban as the leader in Afghanistan or does it matter to them?
Scott Worden: I think it is unlikely that they will recognize the Taliban as the leader of Afghanistan. Just about all of the neighbors, with the exception of Pakistan, oppose the Taliban. They would prefer them to be defeated, but I think they've accepted the fact that the Taliban are here to stay and therefore need to be negotiated with. In Pakistan, now they have, of course, provided safe havens and support for the Taliban. They continue to do so. They want the Taliban to have a significant role in government, but I think they also fear having the Taliban in full control. Because there are anti-Pakistan militants who might seek safe havens if the Taliban led Afghanistan and attack Pakistan.
Tim Farley: It's very complex, it's obviously something where there's a lot yet to be determined. I do appreciate you being with us. Scott Worden, thank you for joining us on POTUS.
Scott Worden: Thanks very much for having me.
Tim Farley: We'll see what happens, as the president says. Scott Worden is the director of the United States Institute of Peace's Afghanistan and Central Asia programs. Could this never-ending war be ending? Stick around, we'll find out. By the way, the Twitter handle is @USIP.
Images & Downloads
Scott Worden
Director, Afghanistan and Central Asia Programs
Event Extra: Afghanistan's Media Landscape Amid Taliban Rule
By: Adam Gallagher
Ayesha Tanzeem, the director of Voice of America's South and Central Asia Division, explains how Afghanistan's media landscape has changed in the last year and a half, how media organizations are fighting back and what the international community can do to help protect media freedom in Afghanistan.
Fragility & Resilience; Violent Extremism
Can the Taliban's Brazen Assault on Afghan Women Be Stopped?
By: Belquis Ahmadi; Kate Bateman; Andrew Watkins; Scott Worden
The Taliban marked the New Year by doubling down on their severe, ever-growing restrictions on women's rights. On December 20, they banned women from all universities — adding to their prior ban on girls attending middle and high school. Then the Taliban announced on December 24 that women cannot work for NGOs, including humanitarian organizations that are providing vital food and basic health services to the population that is now projected at 90 percent below the poverty rate. Western and regional governments have responded with uncommonly unified outrage and many humanitarian organizations have suspended their operations until women are allowed to return to their jobs.
Gender; Human Rights
The Taliban Continue to Tighten Their Grip on Afghan Women and Girls
By: Belquis Ahmadi; Scott Worden
Since the Taliban's August 2021 takeover of Afghanistan, they have ratcheted up restrictions on women and girls as the group consolidates power. These restrictions include limitations on employment, education, public interactions and other fundamental rights such as access to justice. These restrictions have only tightened over time with increasingly draconian enforcement — the latest being public floggings that harken back to the Taliban's 1990s rule. Amid the U.N.'s 16 Days of Activism against Gender-Based Violence, USIP has compiled a comprehensive archive of Taliban decrees and public statements on the treatment of women and girls. While leaders and activists around the globe strategize and develop plans to address gender-based violence in their respective countries, Afghanistan stands out as a worst-case example, with two decades of hard-won progress rapidly unwinding.


Our daughter Phoebe is two and a half years old and at the age of 19 months she was diagnosed with Dyspraxia. After months of reading and researching on my own, we had an idea that it was Dyspraxia that we were dealing with. Phoebe had missed many of her milestones such as rolling, sitting, babbling and walking. She was worked up for seizures, stroke, cerebral palsy and many other syndromes and disorders. It was our neurologist who finally made the diagnosis of Dypsraxia.
Phoebe is behind in most areas giving her another diagnosis of global developmental delay. He speech is at the level of an 11 month old, and her motor skills are that of an 18 month old. At almost three years old she still has very few words or sentences. I had already found from reading about the disorder that not a whole lot was known about it in this country at this point. Needless to say, we were very anxious about finding ways to get treatment and therapy put into place for Phoebe.
To this day, after living with this diagnosis for over a year, we have found it very difficult to get the proper services for Phoebe both through the state and the public school department. We have had doctors clearly state that she requires weekly physical, occupational and speech therapy but unfortunately even with "doctor's orders" the appropriate treatments do not get put into place or are not covered by insurances because of the lack of knowledge about Dyspraxia. Medical doctors, clinicians, therapists and teachers are still not very educated on Dyspraxia and the proper ways to approach treatments and therapies. Children with dyspraxia often get left behind both socially and academically because there is not enough awareness about the disorder.
Despite her abilities and disabilities, Phoebe has progressed very well, albeit slowly. She is a very social, happy and loving little girl. At times she can get easily frustrated but we are working on ways to communicate with her. Right now we are using "touch cues" for speech, laminated pictures in a book and flashcards. All of these combines with the right therapists and the knowledge of the disorder are what will ultimately help Phoebe and other children like her succeed. Please do your part in raising awareness about Dyspraxia so that children like Phoebe do not get left behind or lost in the shuffle at school or in society.
Thank you for listening to our story. Phoebe thanks you from the bottom of her heart.
Dyspraxia USA, NFP is a 501©(3) approved Not For Profit Illinois corporation, doing business as Dyspraxia Foundation USA ®.


text:
Uroptychus sagamiae is een tienpotigensoort uit de familie van de Chirostylidae. De wetenschappelijke naam van de soort is voor het eerst geldig gepubliceerd in 2005 door Baba.

Chirostylidae

redpajama_set_name: RedPajamaWikipedia


Lipids play a structural role in organisms, forming cells and organelles' membranes. Not only do they store energy, but recent studies also showed their role as first and second messengers in signal transduction. As they are implicated in widespread pathologies such as cancer or inflammation, they have become a major concern for the scientific community.
Lipid extraction for analysis can be challenging due to their structure and composition, in various biological materials. Different kinds of lipids, such as complex organic compounds, fats, oils, waxes and even hormones exist in living cell membranes. Although there are numerous methods of lipid extraction available to date, a vast majority of them starts with cell or tissue homogenization. Bead beating has been reported to be one of the most effective and rapid cell & tissue disruption method, increasing lipid extraction efficiency at a lower cost (Kumar et al., 2015).
Here, we present three case studies highlighting the usefulness of the Precellys® homogenizer combined with the Cryolys® cooling unit for sample preparation prior to lipid extraction.


In collaboration with Pro Arts and Richmond Art Center, Berkeley Art Center will be showcasing over 160 Berkeley-area artists participating in this year's East Bay Open Studios. Pro Arts produces this annual event that runs Saturday and Sunday, June 5-6 & 12-13, 2010. Many studio visitors plan their East Bay Open Studios tour by viewing the over 400 artworks and presentations displayed salon-style in the annual Preview Exhibition.
This year, the preview exhibition will be presented across three East Bay community arts venues: Berkeley Art Center, Pro Arts, and Richmond Art Center. Participating artists in the Berkeley area will have the opportunity to exhibit their work at Berkeley Art Center through this new collaboration!


text:
Listen to VOA Khmer
Cambodian America
Mani and Mori
Special English
VOA Khmer English Audio Tube
Khmer Morning News
Khmer Evening News
North Korea Calls US 'Biggest Enemy,' Vows to Develop More Nukes
William Gallo
People walk by a TV screen showing North Korean leader Kim Jong Un during a ruling party congress, at the Seoul Railway Station in Seoul, South Korea, Wednesday, Jan. 6, 2021. Kim opened his country's first ruling party congress in five years with…
SEOUL, SOUTH KOREA —
North Korean leader Kim Jong Un has threatened to expand his nuclear arsenal and warned his approach toward Washington won't change with the onset of a new U.S. president.
The comments provide a hint at the direction of U.S.-North Korea relations just days ahead of the inauguration of former U.S. Vice President Joe Biden, who has indicated he will take a more adversarial approach toward Pyongyang.
In a speech at an important meeting of the ruling Workers' Party, Kim called the U.S. his country's "biggest enemy" and repeated his long-standing assertion that the U.S. must lift its "hostile policy" in order to establish better ties, according to the official Korean Central News Agency (KCNA).
Kim also called for his country to continue developing nuclear weapons. Notably, he said North Korea should acquire new capabilities, such as solid-fuel intercontinental ballistic missiles, hypersonic missiles, and tactical nuclear weapons.
The comments amount to one of the most important recent declarations from North Korea about its planned qualitative nuclear modernization, said Ankit Panda, a senior fellow in the Nuclear Policy Program at the Carnegie Endowment for International Peace.
Panda, author of Kim Jong Un and the Bomb, said Kim's statement about acquiring tactical nuclear weapons likely implies a return to nuclear testing.
'Major provocation'
North Korea has conducted six nuclear tests, most recently in September 2017. But more testing would likely be needed to develop tactical nuclear weapons. Tactical nuclear weapons are smaller, more mobile and meant to be used on the battlefield, as opposed to larger strategic nuclear weapons that are designed to inflict mass destruction.
Kim said a year ago he no longer feels bound by his self-imposed pause on nuclear and long-range missile tests, raising fears of a return to major tensions on the Korean Peninsula.
North Korea has often timed major tests, including of ballistic missiles or nuclear weapons, around U.S. presidential transitions to demonstrate its military capabilities and possibly gain leverage in future negotiations with Washington.
In October, North Korea used a military parade to unveil a massive new intercontinental ballistic missile, which appears designed to overwhelm U.S. missile defenses. Some suspect Pyongyang may test the missile or other weapons systems in the coming months. But this week, the top U.S. general in South Korea said there were no signs North Korea was preparing a "major provocation."
A major weapons test would represent an early foreign policy challenge for Biden, who has said his main priorities are combatting the coronavirus pandemic and improving the U.S. economy.
"There's a lot demanding his time and attention," said Jenny Town, a North Korea specialist with the Washington-based Stimson Center.
"Moves like early appointments of a North Korea policy team, lifting the travel ban (on North Korea), and other types of actions would help demonstrate that a different outcome and relationship is possible with a new administration," Town said. "This is a tall order though, in the current political environment."
While he hasn't ruled out meeting Kim face to face, Biden has suggested that may only come as part of broader, working-level talks.
Biden has repeatedly criticized President Donald Trump's personal outreach to Kim, saying the strategy is ineffective and aimed more at creating headlines than addressing the North Korean nuclear issue.
Trump officials have defended their North Korea approach by pointing out that Pyongyang has refrained from any nuclear or long-range missile tests since the Trump-Kim talks began.
At his election rallies, Biden frequently called Kim a "thug," "tyrant" and "dictator." In response, North Korean state media slammed Biden as an "imbecile," a "fool of low IQ" and a "rabid dog."
Cambodian Gov't Says Mu Sochua Free to Come Back, But Won't Issue Visa
Phnom Penh Court Says Kem Sokha's Trial Not a Priority
More Than 150 Cambodian Migrant Workers Have COVID-19 in Recent Thai Outbreak
Cambodia Reopens Schools with Fewer Student Enrolments
In Cambodia, Cancer Patients Face Late Diagnosis, Few Treatment Options
Brazilian Beachgoers Ignore Warnings of COVID-19
Iraqis Disabled by IS Pursue Volleyball Dreams
2018 Elections Coverage: Cambodia Adrift
Kampot Court Orders Reinvestigation in Kep Building Collapse
Khmer TV & Video
Cambodian Spotlight
Washington Today
VOA Discovering
Khmer Special English
Listen to Khmer Radio
VOA Charter
Journalistic Code
គេហទំព័រភាសាខ្មែរ
RFA Khmer


text:
Indiana Jones 5 has completed filming
Producer Frank Marshall confirms that the long delayed adventure movie Indiana Jones 5, starring Harrison Ford, has now finished filming
Emma-Jane Betts
It is time to grab your whips and fedora's cinephiles because Indiana Jones is racing to the big screen. Producer Frank Marshall has taken to social media to share that filming on the long-delayed adventure movie Indiana Jones 5 has now officially wrapped.
Directed by James Mangold, Indiana Jones 5 will see Harrison Ford take on the role of the titular treasure hunter in what is presumably his last big adventure as the iconic character. The movie initially began filming back in June 2021. However, the film lagged behind schedule due to the Covid-19 pandemic and a shoulder injury Ford suffered during production. Although the action movie was set to release in July 2022, thanks to various hurdles, Indiana Jones 5 was further delayed until June 30, 2023.
However, luckily it looks like this date won't be pushed back again, as the film is now moving into the post-production stage. Posting to followers on Twitter, Marshall shared that filming for the highly anticipated flick was finally over. "That's a wrap!" the producer writes while also sharing a picture of a cap that says Indy.
You can see Marshall's original tweet below:
That's a wrap!!! #indianajones pic.twitter.com/pQRTw0oOXx
— Frank Marshall (@LeDoctor) February 27, 2022
Despite the significant production milestone that Indiana Jones 5 has just reached, details about the flick's plot are still relatively unknown. We do know that Steven Spielberg, who was initially signed onto direct the thriller movie, left the role due to script disagreements. However, considering that the famed filmmaker is still signed on as a producer to the film, it is unlikely that Indy's next instalment will derail the franchise.
Indiana Jones 5's script was penned by Jez and John-Henry Butterworth, alongside James Mangold. And with Spielberg still on board to oversee the project, fans can rest easy knowing that Indy is in good hands.
While we wait on more plot details and a trailer for Indiana Jones 5 to drop, why not look over our guides to the Fast and Furious movies, and Star Wars movies ranked from worst to best.
Indiana Jones star didn't recognise Mark Hamill when he visited set
How diarrhea gave us an iconic Indiana Jones scene
Harrison Ford's heartwarming tribute to Sean Connery goes viral
Indiana Jones and the Temple of Doom dress was eaten by an elephant
How to watch the Indiana Jones movies in order
Tom Selleck nearly played Indiana Jones
Staff writer, horror movie and The Lord of the Rings expert, Emma-Jane moved from South Africa to the UK after breaking her arm playing 'duck, duck, goose'. She has worked on several independent films and wrote for The Upcoming before joining The Digital Fix.


Daniel Winkler "Plants of the Tibetan Plateau (and a Few Mushrooms)"
Author, geographer and ethno-mycologist Daniel Winkler has spent 15 years working and traveling in Tibet and the Himalayas.
He is the author of field guides to Edible Mushrooms of the Pacific Northwest and of California. He grew up collecting and eating wild mushrooms in the Alps and has been foraging 15 years in the PNW and working as mushroom educator and guide. Daniel trained as a geographer and ecologist and works as researcher and NGO consultant on environmental issues of the Tibetan Plateau and Himalayas, including forestry, conservation and revegetation.


text:
"I learned to respect women"—Tuk Tuk drivers join efforts to make the streets of Cairo safe for women
Date: Thursday, February 8, 2018
A Cairo Safe City free of Violence against Women and Girls Programme project worker speaks with tuk tuk drivers in Cairo, Egypt. Photo: UN Women/Arascope
For Mohamed Nemr, a twenty-four-year-old tuk tuk [three wheeled taxi] driver from the slums of Mansheyet Nasser in the western part of Cairo, Egypt, the streets belonged to men, and women's place was at home. Until recently, he didn't think that women and girls had a right to access public spaces without the fear of sexual harassment.
Tuk tuk driver Mohamed Nemr, volunteers to engage other young drivers in the Safe Cities anti-harassment campaign. Photo: UN Women/Mona Soliman
The eldest of five children, Nemr owns one of three million three-wheeler taxis in Egypt, locally known as "tuk tuk". A popular mode of transportation for many, they provide over five million rides daily. Following his parents' divorce, Nemr became the head of the house when he was barely seventeen. The role came with expectations of providing for his family, as well as certain privileges and entitlements. For example, he exercised complete authority over his sisters. "I insisted that my demands were met instantly, and in case they did not respond, I shouted and bickered, which eventually ruined my relationship with them," he recalls.
Quick facts from Safe Cities around the world
The Safe City Programme has underlined the importance of safe public transportation to fight sexual harassment in 27 countries around the world. In Quito, Ecuador, 43 out of 44 trolley stops in the city have been remodeled with new safety criteria, including the construction of transparent glass corridors that serve as secure waiting areas.
In Quezon City, Philippines, legislation determining penalties for sexual harassment in public spaces was passed in 2015, and 16 municipalities within Metro Manila have undertaken a similar law.
Women vendors' associations In Port Moresby, Papua New Guinea work at identifying risks and finding ways to reduce these risks. Gerehu Market in Port Moresby now has new police posts along with training for police and security guards on preventing and responding to violence against women.
In Sakai, Japan, the programme has trained community members in violence prevention, and resulted in improved lighting on streets and more CCTV cameras across the city.
In Guatemala City, Guatemala, the Safe Cities programme has been instrumental in the implementation of important legislation such as the Law against Femicide and Other Forms of Violence against Women and the Law against Sexual Violence, Exploitation and Trafficking in Persons.
In November 2010, UN Women started the Cairo Safe City free of Violence against Women and Girls Programme to prevent and respond to sexual harassment and other forms of sexual violence against women in public spaces. Mansheyat Nasser, along with two other neighbourhoods—Ezbet El Haggana and Embaba—was selected to implement the programme, and public transportation, including tuk tuks, were identified as public spaces where women and girls experience sexual harassment on a daily basis. Last year, the programme engaged young tuk tuk drivers like Nemr through sport, interactive games and art therapy workshops. Once sensitized about sexual harassment and trained to prevent and respond appropriately, these young men reached out to their peers and community members to raise awareness about the issue.
After attending various training sessions on self-expression, including acting, singing, painting and sculpturing, Nemr's views on women changed and his relationship with his family improved. "I realized that I was the cause of the problem," he says. "It was me who didn't know how to treat others. The training [sessions] have taught me how to express my feelings and now I can manage my frustrations and violent tendencies in more positive ways."
Today, Nemr is proud of his new role as an advocate for women's rights. He says, "I volunteer in an anti-harassment campaign that talks to tuk-tuk drivers and other community members about how every woman has the right to walk on the street without being harassed. Our messages include women's right to choose how to dress, without having anyone invading their personal space. We also distribute stickers saying, 'My Tuk Tuk is Safe' from sexual harassment."
He has also joined an interactive theater group that tours across Egypt, as part of the Cairo Safe City Programme, talking about a range of issues related to sexual harassment other forms of violence against women, such as women's right to inherit property and right to education. "Through art, I learned, understood and felt that women have rights in the same way that I do. I learned to respect women."
"Nemr's personality changed as he went through the programme; now he has better relations and greater respect for women. Some women even take his phone number and call him for their tuk-tuk rides because they have had a safe journey to their destination and he has treated them with respect," said Ahmed Nakabassi, UN Women Programme Assistant in Egypt.
Volunteers affix a sign to tuktuk reading: My tuk tuk is safe; free from sexual harassment or drugs. Photo: CARE/Salma Salim
"My relationship with my family has also improved," added Nemr. "Now I talk to them without violence or agitation. I now understand myself better and have a purposeful life."
Nemr is one of 230 volunteers who are participating in the programme in Egypt. The Cairo Safe City programme is one of the founding city programmes in UN Women's Safe Cities and Safe Public Spaces with Women and Girls Programme with CARE International in Egypt as implementing partner and supported by The National Council for Women, the Spanish Agency for International Development Cooperation (AECID), United States Agency for International Development (USAID), the Government of the Netherlands and the European Union (EU).
Women in Guatemala steer change, seek solutions to end sexual harassment in public spaces
Healing from trauma in conflict-affected Gaza
"What if we switched roles?" new social experiment raises awareness of gender stereotypes in the Arab region
Advocacy and laws confront trafficking across the Arab States
Egyptian women are key to driving Egypt's growth