text:
Telematics Blog
Fleet Tracking Guide
Vehicle Tracking Systems
Telematics Platform
FIND YOUR SOLUTION
Switzerland has self-driving cars too
By Jon Martindale
Telematics.com Blog
Switzerland has self-driving cars tooJon MartindaleMay 13, 2015 May 13, 2015
Over the past 12 months we've seen more driverless cars than have ever been unveiled in the history of man. Whether we're talking Google, Baidu, BMW, Volvo or one of the many other auto-makers and tech giants that have been developing automated vehicles, there's plenty out there and all of them are impressive. Still, one more wouldn't hurt right?
In an announcement from Swiss telecoms company, Swisscom AG, the firm showed off its new automated Volkswagon Passat, which is currently undergoing a trial that began last week, with it set to complete this Thursday.
While some share holders and commenters have wondered aloud why a company that's main business is providing internet and telephone services to households around the small nation, Swisscom released a statement explaining that it wasn't trying to supplant anyone in the automotive industry. Instead, it sees itself as perfectly placed to augment currently available technologies, since one of the biggest aspects of driverless cars, is that they require a strong networking backbone, which is something Swisscom believes it can provide.
Look mum,. no hands!
"Swisscom is not turning into a car manufacturer," a spokesperson said. "But future innovations in the automotive industry will centre on networking with the environment. For this reason, the driverless car is a prime example of digitisation and therefore of great interest to us."
Even if Swisscom doesn't ever go ahead in making its own car however, the algorithms it's put together to operate even minor driver-free scenarios is impressive, especially for a company with no history of this sort of development. It may be that another auto-maker may be interested in that sort of technology if it's own developments are lagging behind the trend.
Since Google recently announced that several of its autonomous cars have been involved in accidents – though they didn't "cause" them – people of course wanted to know if Swisscom's cars had run into similar problems. Apparently they had, though on a much smaller scale.
When speaking with project partners AutoNomos Labs from Germany, RT found out that that only four of the Swisscom vehicles had been involved in an accident. Considering nearly 50 have been in operation for more than a week now, that's not a bad record.
In comparison, Google's vehicles have been involved in 11 incidents over nearly a million miles of testing. However we've been told that at no time were they responsible, with the most common problem being quick braking causing drivers behind to rear end the autonomous cars.
Image source: Swisscom
AutonomousCarsDriverlessgoogleSelf-pilotedswisscomTelematics News
Jon Martindale
Jon Martindale is an English author and journalist, who's written for a number of high-profile technology news outlets, covering everything from the latest hardware and software releases, to hacking scandals and online activism.
Latest Telematics Blog
Fleet Tracking Systems Guide
Fleet Telematics Guide
Compare Telematics Systems
Fleet Tracking Solutions Worldwide
Telematics.com is powered by Teletrac Navman
Mon-Fri: 8AM – 6PM PST
K1 Business Park Kents Hill
Milton Keynes, Buckinghamshire, MK7 6BZ – UK
Ground Floor, 16 Giffnock Avenue
Macquarie Park NSW 2113
67 Apollo Drive
Rosedale, Auckland 0632
Av. Eugenio Garza Sada No. 3820 Piso 6
Col. Mas Palomas C.P. 64780
Fleet tracking roundup
Telematics for Women
Telematics Guides
Telematics News
© 2023 Teletrac Navman US Ltd | Privacy | Website Terms | Cookie Policy | Sitemap

redpajama_set_name: RedPajamaCommonCrawl


text:
package com.ericsson.eiffel.remrem.generate.controller;

import com.ericsson.eiffel.remrem.generate.config.ErLookUpConfig;
import com.ericsson.eiffel.remrem.generate.constants.RemremGenerateServiceConstants;
import com.ericsson.eiffel.remrem.generate.exception.REMGenerateException;
import com.ericsson.eiffel.remrem.protocol.MsgService;
import com.ericsson.eiffel.remrem.shared.VersionService;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import ch.qos.logback.classic.Logger;
import io.swagger.annotations.*;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.RequestEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import springfox.documentation.annotations.ApiIgnore;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

@RestController
@RequestMapping("/*")
@Api(value = "REMReM Generate Service", description = "REST API for generating Eiffel messages")
public class RemremGenerateController {

    static Logger log = (Logger) LoggerFactory.getLogger(RemremGenerateController.class);

    // regular expression that exclude "swagger-ui.html" from request parameter
    private static final String REGEX = ":^(?!swagger-ui.html).*$";

    @Autowired
    private List<MsgService> msgServices;

    private JsonParser parser = new JsonParser();

    @Autowired
    private ErLookUpConfig erlookupConfig;

    private static ResponseEntity<String> response;

    @Value("${lenientValidationEnabledToUsers:false}")
    private boolean lenientValidationEnabledToUsers;

    public void setLenientValidationEnabledToUsers(boolean lenientValidationEnabledToUsers) {
		this.lenientValidationEnabledToUsers = lenientValidationEnabledToUsers;
	}

	private static RestTemplate restTemplate = new RestTemplate();

    public void setRestTemplate(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    /**
     * Returns event information as json element based on the message protocol,
     * taking message type and json body as input.
     *

     *

     * Parameters: msgProtocol - The message protocol, which tells us which
     * service to invoke. msgType - The type of message that needs to be
     * generated. bodyJson - The content of the message which is used in
     * creating the event details.
     *

     * Returns: The event information as a json element
     */
    @ApiOperation(value = "To generate eiffel event based on the message protocol", response = String.class)
    @ApiResponses(value = { @ApiResponse(code = 200, message = "Event sent successfully"),
            @ApiResponse(code = 400, message = "Malformed JSON"),
            @ApiResponse(code = 500, message = "Internal server error"),
            @ApiResponse(code = 503, message = "Message protocol is invalid") })
    @RequestMapping(value = "/{mp" + REGEX + "}", method = RequestMethod.POST)
    public ResponseEntity<?> generate(
            @ApiParam(value = "message protocol", required = true) @PathVariable("mp") final String msgProtocol,
            @ApiParam(value = "message type", required = true) @RequestParam("msgType") final String msgType,
            @ApiParam(value = "ER lookup result multiple found, Generate will fail") @RequestParam(value = "failIfMultipleFound", required = false, defaultValue = "false") final Boolean failIfMultipleFound,
            @ApiParam(value = "ER lookup result none found, Generate will fail") @RequestParam(value = "failIfNoneFound", required = false, defaultValue = "false") final Boolean failIfNoneFound,
            @ApiParam(value = RemremGenerateServiceConstants.LOOKUP_IN_EXTERNAL_ERS) @RequestParam(value = "lookupInExternalERs", required = false, defaultValue = "false") final Boolean lookupInExternalERs,
            @ApiParam(value = RemremGenerateServiceConstants.LOOKUP_LIMIT) @RequestParam(value = "lookupLimit", required = false, defaultValue = "1") final int lookupLimit,
            @ApiParam(value = RemremGenerateServiceConstants.LenientValidation) @RequestParam(value = "okToLeaveOutInvalidOptionalFields", required = false, defaultValue = "false")  final Boolean okToLeaveOutInvalidOptionalFields,
            @ApiParam(value = "JSON message", required = true) @RequestBody JsonObject bodyJson) {

        try {
            bodyJson = erLookup(bodyJson, failIfMultipleFound, failIfNoneFound, lookupInExternalERs, lookupLimit);
            MsgService msgService = getMessageService(msgProtocol);
            String response;
            if (bodyJson == null) {
                return new ResponseEntity<>(parser.parse(RemremGenerateServiceConstants.NO_ER),HttpStatus.SERVICE_UNAVAILABLE);
            }
            if (msgService != null) {
                response = msgService.generateMsg(msgType, bodyJson, isLenientEnabled(okToLeaveOutInvalidOptionalFields));
                JsonElement parsedResponse = parser.parse(response);
                if(lookupLimit <= 0) {
                    return new ResponseEntity<>("LookupLimit must be greater than or equals to 1", HttpStatus.BAD_REQUEST);
                }
                if (!parsedResponse.getAsJsonObject().has(RemremGenerateServiceConstants.JSON_ERROR_MESSAGE_FIELD)) {
                    return new ResponseEntity<>(parsedResponse, HttpStatus.OK);
                } else {
                    return new ResponseEntity<>(parsedResponse, HttpStatus.BAD_REQUEST);
                }
            } else {
                return new ResponseEntity<>(parser.parse(RemremGenerateServiceConstants.NO_SERVICE_ERROR),
                        HttpStatus.SERVICE_UNAVAILABLE);
            }
        } catch (REMGenerateException e1) {
            if (e1.getMessage().contains(Integer.toString(HttpStatus.NOT_ACCEPTABLE.value()))) {
                return new ResponseEntity<>(parser.parse(e1.getMessage()), HttpStatus.NOT_ACCEPTABLE);
            }
            else if (e1.getMessage().contains(Integer.toString(HttpStatus.EXPECTATION_FAILED.value()))) {
                return new ResponseEntity<>(parser.parse(e1.getMessage()), HttpStatus.EXPECTATION_FAILED);
            }
            else if (e1.getMessage().contains(Integer.toString(HttpStatus.EXPECTATION_FAILED.value()))) {
                return new ResponseEntity<>(parser.parse(e1.getMessage()), HttpStatus.EXPECTATION_FAILED);
            }
            else {
                return new ResponseEntity<>(parser.parse(e1.getMessage()), HttpStatus.UNPROCESSABLE_ENTITY);
            }
        } catch (Exception e) {
            log.error("Unexpected exception caught", e);
            return new ResponseEntity<>(parser.parse(RemremGenerateServiceConstants.INTERNAL_SERVER_ERROR),
                    HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }

    private JsonObject erLookup(final JsonObject bodyJson, Boolean failIfMultipleFound, Boolean failIfNoneFound,
               final Boolean lookupInExternalERs, final int lookupLimit)
            throws REMGenerateException {
        // Checking ER lookup enabled or not
        if (erlookupConfig.getEventRepositoryEnabled() && bodyJson.toString().contains("%lookup%")) {
            // Checking ER lookup limit
            if(lookupLimit > 0) {
                JsonArray lookupLinks = bodyJson.get("eventParams").getAsJsonObject().get("links").getAsJsonArray();
                JsonArray links = new JsonArray();
                for (int i = 0; i < lookupLinks.size(); i++) {
                    if (lookupLinks.get(i).toString().contains("%lookup%")) {
                        String[] ids = null;

                        // prepare ER Query
                        String Query = ERLookupController.getQueryfromLookup(lookupLinks.get(i).getAsJsonObject());
                        String url = erlookupConfig.getErURL() + Query
                                + String.format("&shallow=%s&pageSize=%d", !lookupInExternalERs, lookupLimit);

                        // Execute ER Query
                        try {
                            response = restTemplate.getForEntity(url, String.class);
                            if (response.getStatusCode() == HttpStatus.OK) {
                                log.info("The result from Event Repository is: " + response.getStatusCodeValue());
                            }
                        } catch (Exception e) {
                            log.error("unable to connect configured Event Repository URL" + e.getMessage());
                            return null;
                        }
                        String responseBody = response.getBody();
                        ids = ERLookupController.getIdsfromResponseBody(responseBody);
                        boolean failIfNoneFoundValue = failIfNoneFound;
                        boolean failIfMultipleFoundValue = failIfMultipleFound;

                        // Checking ER lookup has options field present or not
                        if (lookupLinks.get(i).toString().contains("options")) {
                            final JsonObject lookup = lookupLinks.get(i).getAsJsonObject().get("%lookup%")
                                    .getAsJsonObject();
                            for (Entry<String, JsonElement> options : lookup.get("options").getAsJsonObject()
                                    .entrySet()) {
                                final String optionKey = options.getKey();
                                final String optionValue = options.getValue().getAsString();
                                if (optionKey.equals("failIfNoneFound") && (optionValue.equalsIgnoreCase("true")
                                        || optionValue.equalsIgnoreCase("false"))) {
                                    failIfNoneFoundValue = Boolean.parseBoolean(optionValue);
                                } else if (optionKey.equals("failIfMultipleFound")
                                        && (optionValue.equalsIgnoreCase("true")
                                                || optionValue.equalsIgnoreCase("false"))) {
                                    failIfMultipleFoundValue = Boolean.parseBoolean(optionValue);
                                } else {
                                    throw new REMGenerateException(
                                            RemremGenerateServiceConstants.LOOKUP_OPTIONS_NOT_FULFILLED);
                                }
                            }
                        }

                        // Checking ER lookup result
                        if (failIfMultipleFoundValue && ids != null && ids.length > 1) {
                            throw new REMGenerateException(
                                    RemremGenerateServiceConstants.UNAVAILABLE_FOR_FAILIFMULTIPLEFOUND);
                        } else if (failIfNoneFoundValue && ids.length == 0) {
                            throw new REMGenerateException(
                                    RemremGenerateServiceConstants.UNAVAILABLE_FOR_FAILIFNONEFOUND);
                        }

                        // Replace lookup values
                        ERLookupController.convertbodyJsontoLookupJson(ids, lookupLinks.get(i).getAsJsonObject(),
                                links);
                    } else {
                        links.add(lookupLinks.get(i).getAsJsonObject());
                    }
                    bodyJson.get("eventParams").getAsJsonObject().add("links", links);
                }
            } else {
                log.error("Lookup limit must be greater than or equals to 1");
            }
        } else {
            return bodyJson;
        }
        return bodyJson;
    }

    /**
     * Used to display the versions of generate and all loaded protocols.
     *
     * @return json with version details.
     */
    @ApiOperation(value = "To get versions of generate and all loaded protocols", response = String.class)
    @RequestMapping(value = "/versions", method = RequestMethod.GET)
    public JsonElement getVersions() {
        Map<String, Map<String, String>> versions = new VersionService().getMessagingVersions();
        return parser.parse(versions.toString());
    }

    /**
	 * Used to display the available message protocol list and their edition names.
	 *
	 * @return json with service names and respective edition details.
	 */
	@ApiOperation(value = "To get the available message protocol list and edition names", response = String.class)
	@RequestMapping(value = "/message_protocols", method = RequestMethod.GET)
	public JsonElement getMessageProtocols() {
		JsonArray array = new JsonArray();
		for (MsgService service : msgServices) {
			JsonObject protocolObject = new JsonObject();
			protocolObject.addProperty("name", service.getServiceName());
			protocolObject.addProperty("edition", service.getProtocolEdition());
			array.add(protocolObject);
		}
		return array;
	}

    /**
     * Returns available Eiffel event types as listed in EiffelEventType enum.
     *
     * @return string collection with event types.
     */
    @ApiOperation(value = "To get available eiffel event types based on the message protocol", response = String.class)
    @ApiResponses(value = { @ApiResponse(code = 200, message = "Event  types got successfully"),
            @ApiResponse(code = 500, message = "Internal server error"),
            @ApiResponse(code = 503, message = "Message protocol is invalid") })
    @RequestMapping(value = "/event_types/{mp}", method = RequestMethod.GET)
    public ResponseEntity<?> getEventTypes(
            @ApiParam(value = "message protocol", required = true) @PathVariable("mp") final String msgProtocol,
            @ApiIgnore final RequestEntity requestEntity) {
        MsgService msgService = getMessageService(msgProtocol);
        try {
            if (msgService != null) {
                return presentResponse(msgService.getSupportedEventTypes(), HttpStatus.OK, requestEntity);
            } else {
                return presentResponse(parser.parse(RemremGenerateServiceConstants.NO_SERVICE_ERROR),
                        HttpStatus.SERVICE_UNAVAILABLE, requestEntity);
            }
        } catch (Exception e) {
            log.error("Unexpected exception caught", e);
            return presentResponse(parser.parse(RemremGenerateServiceConstants.INTERNAL_SERVER_ERROR),
                    HttpStatus.INTERNAL_SERVER_ERROR, requestEntity);
        }
    }

    /**
     * Returns an eiffel event template matching the type specified in the path.
     *
     * @return json containing eiffel event template.
     */
    @ApiOperation(value = "To get eiffel event template of specified event type", response = String.class)
    @ApiResponses(value = { @ApiResponse(code = 200, message = "Template got successfully"),
            @ApiResponse(code = 400, message = "Requested template is not available"),
            @ApiResponse(code = 500, message = "Internal server error"),
            @ApiResponse(code = 503, message = "Message protocol is invalid") })
    @RequestMapping(value = "/template/{type}/{mp}", method = RequestMethod.GET)
    public ResponseEntity<?> getEventTypeTemplate(
            @ApiParam(value = "message type", required = true) @PathVariable("type") final String msgType,
            @ApiParam(value = "message protocol", required = true) @PathVariable("mp") final String msgProtocol,
            @ApiIgnore final RequestEntity requestEntity) {
        MsgService msgService = getMessageService(msgProtocol);
        try {
            if (msgService != null) {
                JsonElement template = msgService.getEventTemplate(msgType);
                if (template != null) {
                    return presentResponse(template, HttpStatus.OK, requestEntity);
                } else {
                    return presentResponse(parser.parse(RemremGenerateServiceConstants.NO_TEMPLATE_ERROR),
                            HttpStatus.NOT_FOUND, requestEntity);
                }
            } else {
                return presentResponse(parser.parse(RemremGenerateServiceConstants.NO_SERVICE_ERROR),
                        HttpStatus.SERVICE_UNAVAILABLE, requestEntity);
            }
        } catch (Exception e) {
            log.error("Unexpected exception caught", e);
            return presentResponse(parser.parse(RemremGenerateServiceConstants.INTERNAL_SERVER_ERROR),
                    HttpStatus.INTERNAL_SERVER_ERROR, requestEntity);
        }
    }

    private MsgService getMessageService(final String messageProtocol) {
        for (MsgService service : msgServices) {
            if (service.getServiceName().equals(messageProtocol)) {
                return service;
            }
        }
        return null;
    }

    /**
     * To display pretty formatted json in browser
     *
     * @param rawJson
     *            json content
     * @return html formatted json string
     */
    private String buildHtmlReturnString(final String rawJson) {
        final String htmlHead = "<!DOCTYPE html>
";
        final String htmlTail = "
";
        return htmlHead + rawJson + htmlTail;
    }

    /**
     * To display response in browser or application
     *
     * @param message
     *            json content
     * @param status
     *            response code for the HTTP request
     * @param requestEntity
     *            entity of the HTTP request
     * @return entity to present response in browser or application
     */
    private ResponseEntity<?> presentResponse(final Object message, final HttpStatus status,
            final RequestEntity requestEntity) {
        if (requestEntity.getHeaders().getAccept().contains(MediaType.TEXT_HTML)) {
            Gson gson = new GsonBuilder().setPrettyPrinting().create();
            return new ResponseEntity<>(buildHtmlReturnString(gson.toJson(message)), status);
        } else {
            return new ResponseEntity<>(message, status);
        }
    }

    public boolean isLenientEnabled(final boolean okToLeaveOutInvalidOptionalFields) throws REMGenerateException {
        if(this.lenientValidationEnabledToUsers && okToLeaveOutInvalidOptionalFields) {
            return true;
        }
        else if(!this.lenientValidationEnabledToUsers && okToLeaveOutInvalidOptionalFields) {
            throw new REMGenerateException(RemremGenerateServiceConstants.NOT_ACCEPTABLE);
        }
        return false;
    }

    /**
     * To read the jasypt key from jasypt.key file
     *
     * @param jasyptKeyFilePath
     *            file path in which jasypt key is stored
     * @return jasypt key fetched from the file
     */
    public static String readJasyptKeyFile(final String jasyptKeyFilePath) {
        String jasyptKey = "";
        final FileInputStream file;
        try {
            if (StringUtils.isNotBlank(jasyptKeyFilePath)) {
                file = new FileInputStream(jasyptKeyFilePath);
                BufferedReader reader = new BufferedReader(new InputStreamReader(file));
                jasyptKey = reader.readLine();
                if(jasyptKey == null) {
                    return "";
                }
            }
        } catch (IOException e) {
            log.error("Could not read the jasypt key from the jasypt key file path: " + e.getMessage(), e);
        }
        return jasyptKey;
    }
}

redpajama_set_name: RedPajamaGithub


Viewing: Saturday, December 12, 2015 visitation from 2pm until 3:30 p.m.
Service: Saturday, December 12, 2015 at 3:30 p.m.
On Thursday, December 3, 2015 Wm. Jonathan �J� Luper, II, of Clarksburg, MD. Beloved Son of Pat Luper, Clarksburg, MD and John Luper and his wife Brenda, Gaithersburg, MD; dear brother of Michelle Herbert and her husband Tom, Gaithersburg, MD and Stephanie Fremming and her husband Jon, Ijamsville, MD; Uncle of Josh, Zak, Audrey and Kyle; Nephew of Larry Luper and his wife, Marie, Hagerstown, MD and Paulette Luper, Greensboro, NC; grandson of Clara Orange.
A celebration of Life will be held at DeVol Funeral Home, 10 E. Deer Park Drive, Gaithersburg, MD 20877 on Saturday, Dec. 12th at 3:30 p.m. with visitation from 2pm until 3:30 p.m.
In lieu of flowers memorial contributions may be made in his name to Christopher & Dana Reeve Foundation, 636 Morris Turnpike, Suite 3A, Short Hills, NJ 07078. www.christopherreeve.org.


Visit the Rebuild By Design page for up to date information about the Rebuild by Design Project.
Dog Licenses are late and there is an additional $10 charge per license. Please see the Dog License page for requirements.


text:
Immaculate Conception Catholic Church is a historic Catholic parish in the United States in Washington, D.C. Located at 1315 8th Street Northwest, the church, school, rectory, and convent were placed on the National Register of Historic Places in 2003.

The cornerstone of the original church, located on a lot near the corner of 8th and N Streets took place on October 30, 1864. Martin John Spalding, Archbishop of Baltimore, dedicated the new church on July 2, 1865, the Feast of the Visitation. The parish rapidly outgrew this structure, however, and on November 13, 1870, the cornerstone for the present Gothic Revival church was laid, with construction commencing the following year. Dedicated in 1874, at which time the old structure became the parish and school hall, the church was refurbished in 1939 and 1962–63.

History
The construction of the church was finished on October 30, 1864. Father Reverend Patrick F. McCarthy was the first Pastor of the church.  Before Immaculate Conception Church was established, St. Patrick's Church built in 1794, was the first and only parish in the city. St. Patrick's was becoming overcrowded and to better suit its members, Immaculate Conception Church was founded in the Shaw neighborhood. Back to the beginning of the eighteenth century, most parishioners of the church were either Catholics who were original residents in this area or other immigrating Irish, and worshiping weekly was a part of their tradition.

The land of Immaculate Conception Church originally belonged to William Jones, and it was deeded by him on October 6, 1864 for $16,000, with $8,000 paid up front.  It can be seen that the church was under the construction even before the land was deeded.  Father J. Walter began the project during the summer of 1864. The cornerstone was laid on Sunday, October 30, 1864. Construction was completed the following summer of 1865. On July 2, the feast of the Visitation of the Blessed Virgin, the Most Reverend Martin J. Spalding, Archbishop of Baltimore, dedicated the new church assisted by Father Walter and Rev P. F. McCarthy of St. Patrick's.

The landowner's desire was to make this land a place for church and school. At the meantime, a school was also built associated with the church and it was named as Immaculate Conception Catholic School. The building was finished construction in 1908. Due to the creation and establishment of a school, the number of parishioners grew by over 2,000. As a result, the Immaculate Conception Church and School could not hold its growing population.

The developments of the area in the two periods (1800–1850 and 1850–1880) are strongly related. Before 1850, when St. Patrick's Church was still the only Catholic parish in the city, it benefited the neighborhoods including Shaw. However, parishioners in Shaw had to walk to St. Patrick's at 10th and G Streets Northwest. Since there was no Catholic Church in Shaw neighborhood prior to 1850, parishioners in Shaw tended to have their own church as well as a school. The lack of a local Catholic church in Shaw before 1850 really encouraged the establishment of the Immaculate Conception Church in 1860s. "It was located on N Street next to a vacant corner lot 8th and N Streets and was the first structure to be built in the area."   Therefore, it is a very significant landmark in Shaw neighborhood, and it helped the neighborhood build up a reputation.

References

External links

 Immaculate Conception Church

Roman Catholic churches in Washington, D.C.
Churches on the National Register of Historic Places in Washington, D.C.
Gothic Revival church buildings in Washington, D.C.
Italianate architecture in Washington, D.C.
Churches completed in 1870
19th-century Roman Catholic church buildings in the United States
Religious organizations established in 1864
1864 establishments in Washington, D.C.
Roman Catholic churches completed in 1870
African-American Roman Catholic churches
Italianate church buildings in the United States

redpajama_set_name: RedPajamaWikipedia


text:
Berlin History Experiences
The Best Of Berlin Tour – The All-In-One Berlin Highlights Tour
The Capital Of Tyranny – The Rise & Fall Of The Third Reich
The Republic Of Fear – Life Behind The Iron Curtain
The Battle Of Berlin – The Final Days Of Hitler's City
The Invention Of Hell – The Sachsenhausen Memorial & Museum
The Glory Of Prussia – The Iron Kingdom & The Golden Cage
The S-Bahn Murderer: A Serial Killer In Nazi Berlin
By Matt Robinson
As Europe once again hurtled towards all-out war in the summer of 1939, a monster began terrorising the women of the Nazi capital city. Preying on his victims - lone females often on their way home from work - under cover of darkness for almost two years before being caught. His preference for hunting on Berlin's train network earning him the sobriquet: the S-Bahn Murderer.
In August 1939, women in and around the district of Friedrichsfelde – an area of Berlin on the eastern edge of the city between the Rummelsburg and Karlshorst train stations – began to report of being harassased, randomly attacked, and sexually assaulted while out walking alone.
Although the Berlin police had not yet managed to connect the dots, these attacks – increasing in frequency and severity – were being carried out by one man.
One detail, reported by each of the women, matched in all cases: the attacker was dressed in the uniform of a railway worker.
Many of the women preyed on were solitary housewives whose husbands had been called up for military service. Targeted in the garden allotments of the area or the passageways between buildings; choked, bludgeoned, or stabbed, before being raped and left close to death. The threat of Allied air attacks on the Nazi capital at the time presenting the ideal window of opportunity for the attacker. Particularly after citywide blackouts were introduced – allowing him to hunt his victims in complete darkness at night.
A pattern was forming; but just as soon as the police began to piece together the parts of the puzzle, the attacks seemed to stop.
What they did not know was that their serial attacker had made a near-fatal mistake; caught in the act of assaulting a woman he had been beaten almost to death by her husband and brother-in-law.
As a result, he would add a new dimension to his crimes – lurking instead aboard empty train carriages and waiting for lone female passengers to board before strangling or striking his victims in the head with a 2-inch-thick piece of lead-encased telephone cable. Disposing of the bodies by throwing them from the carriage and onto the tracks. The inner city train network – the S-Bahn – serving as his new hunting ground.
Over the space of two years, the Berlin police would document thiry-one separate cases of rape and sexual assault carried out – with eight women killed – by the man who would become known as the 'S-Bahn Murderer'.
With the efforts to apprehend the perpetrator hampered by the Nazi Propaganda Ministry's refusal to allow details of the attacks to be published, a massive manhunt would be secretly undertaken, employing a slew of unusual methods in a desperate attempt to catch the killer before he could strike again.
Police officers would lurk in the shadows of the Berlin train network disguised as lone female passengers; and a citywide chaperone system where men could volunteer to accompany women on the S-Bahn and see them safely to their homes would be introducted.
To Nazi Party officials, these heinous crimes could only be the work of a foreign labourer – or local Jews.
No 'racially pure' German could possibly be responsible for such outrageous cruelty.
Be that as it may, the man they were looking for would turn out to be a model German citizen – a veteran Nazi Party member – even volunteering for escort duty. Seeing all his charges safely home and protecting them vigilantly from himself.
The Man Of Many Uniforms
Born in September 1912, in the village of Muntowen, East Prussia (then part of the German Empire), Paul Ogorzow was the illegitimate child of a farm labourer who never knew the identity of his biological father. Adopted at the age of 12, he moved to the Havelland area, near Berlin, and worked as a laborer on his adoptive father's farm before taking a job at a blast furnace in the Brandenburg steelworks.
In 1931, he joined the Nazi Party – two years before Hitler seized power – and the following year became a member of its paramilitary branch, the Sturmabteilung (SA). In 1934, Ogorzow joined the Deutsches Reichsbahn, the German national rail company responsible for running Berlin's S-Bahn network, as a platelayer – overseeing the maintenance and installation of rails. Working his way up the organisation, he eventually attained the position of assistant signalman in a freight yard, located in the Berlin district of Rummelsburg.
Following his marriage in 1937 to a woman named Gertrude Ziegelmann, a saleswoman two years older than himself, he moved to the district of Karlshorst – near where most of his crimes later occured. Regarded by his co-workers as competent and trustworthy, he would travel to work daily by train, or sometimes by bike – always wearing his uniform.
Through his work he would become familiar with the rail network across the city; learning that lone female passengers were often not suspicious of a uniformed railway employee approaching them, apparently to ask for their ticket. When not working, he was often seen at home playing with his two children – a son and daughter – tending a vegetable patch in front of his apartment or picking cherries from a tree in the back garden.
Later, when his killing spree was well underway, his neighbour – a master butcher – hangs a post in his window warning of the serial murderer on the loose.
Ogorzow notices and talks to him.
"He could live next door!" say the butcher.
The S-Bahn Murderer's favoured hunting ground - Berlin's inner city train network/Image: Public Domain
Death Rides The Rails
During his early attacks, Ogorzow had unsuccessfully attempted to murder his victims.
In-fact, three women whom he targeted and stabbed in the arbor grounds between Rummelsburg, Friedrichsfelde and Karlshorst would recover and later testify against him.
In August 1940, he bludgeoned and raped a woman, who only narrowly managed to survive after Ogorzow mistakenly thought she had died after she lost consciousness.
Another victim the next month survived being strangled and thrown from a moving train – the first attack carried out by Ogorzow in what would become his trademark hunting ground.
On the evening of September 20th 1940, Gerda Kargoll was on her way home – tired from a long day, she fell asleep on the train and woke up past her station. Worried that her ticket only covered her initial journey she boarded a train in the opposite direction knowing that if she were stopped by a ticket inspector she would have to pay a fine for riding farther than she should have.
The Berlin train network in 1940 offered two classes of available transportation – third and second class – Kargoll had bought a third class ticket for the cost of 20 Reichspfennig. First class travel was only for long-distance trains and the fourth class, that was introduced to make travelling for the poor more affordable, had been abolished in 1928.
It would later be established that Ogorzow would attack his victims in the second class compartments of the S-bahn, as there were drastically fewer passengers.
Spotting Gerda Kargoll in a third class carriage, Ogorzow approached the visibly distressed woman and finding that her ticket was not valid for the journey he offered that she could ride with him – in the second class area of the train. A free upgrade. As a worker of the Reichsbahn, Ogorzow had a pass to use the train and wearing his uniform he no doubt seemed a reassuring presence in the empty carriage.
Just after 11.30pm, as the train was en-route to Karlshorst station, Ogorzow moved towards Kargoll and wrapped his hands around her neck, intending to quickly knock her unconscious, rape and then kill her.
The attempt to subdue his victim, however, would take longer than Ogorzow had hoped, as Kargoll fought against him and tried to move towards the door of the train. There was not much time between stations and Ogorzow, familiar with the route and the time constraints, knew he only had between three and five minutes to carry out any attack.
With the woman he had just attacked now unconscious, the would-be killer panicked. Wanting to get rid of what he thought was a dead body, he opened the carriage door and threw Gerda Kargoll from the train, tossing her belongings – including her purse – immediately after. He could live with himself as a sexual predator, but Ogorzow did not steal.
The forensic pathologist, and psychiatrist, who would later come to work on the case – Dr. Waldemar Weimann – would pinpoint this moment as being the turning point in Ogorzow's attacks. Previously he had attempted to murder his victims to cover his tracks, this time, throwing Gerda Kargoll's seemingly lifeless body into the darkness, Ogorzow discovered he enjoyed killing women.
The sexual aspect of his crimes would continue but his future victims would be targeted for murder.
Gerda Kargoll likely survived due to an amazing stroke of good luck; landing on a soft pile of sand by the side of the track, as the train was travelling at around 80km per hour. Interviewed by the police, Kargoll claimed she understandably remembered nothing between being strangled and waking up beside the track.
As she had not been sexually assaulted and her belongings were found nearby; the police concluded that her story was a hoax or drunken accident.
Bodies would often turn up near train stations in 1940 – during one month alone, in December, there were twenty-eight people who died from blackout related incidents on the train tracks in Berlin. Automobile accidents were also a frequent occurrence due to the dimmed headlights on cars and the lack of streetlights.
The police did not yet suspect it; but the attack on Gerda Kargoll would be the first carried out on Berlin's train network by the man who would come to be known as the 'S-Bahn Murderer'.
The Laubengelände between Rummelsburg, Friedrichsfelde und Karlshorst - where Ogorzow's early attacks would take place/Image: Public Domain
A Murder Close To Home
For his first murder, Ogorzow returned to his old stomping ground in the garden colony area of the district of Friedrichsfelde.
At the start of October 1940, he had met a woman named Gertrude Ditter – a twenty-year-old mother of two whose husband, Arthur Ditter, was away in the military – at the Rummelsburg station.
She had invited him to visit her and provided an address – Kolonie Gutland II, path 5a, number 33.
On October 3rd 1940, Ogorzow called on Ditter during a blackout, and with her two young children sleeping in the living room, the two sat talking in the kitchen of the apartment. After enough small talk for Ditter to lower her guard, Ogorzow lunged at his victim and – grabbing her throat – squeezed hard enough to break her hyoid bone. A broken hyoid bone in cases where only skeletal remains are found is a strong indicator of strangulation. In Ditter's case though it was not the strangulation that killed her. Despite the broken hyoid bone, she was still alive – until Ogorzow severed her left carotid artery with a knife he was carrying. She quickly bled out.
Gertrude Ditter was discovered the following day, when a worker from the National Socialist People's Welfare organisation (the NSV) called on her and discovered the front door unlocked. The state was in the process of taking custody of her two children as she became Paul Ogorzow's first murder victim.
The timing of the attack meant that the first assumption was that Ditter had actually committed suicide – a crime handled by the Order Police (Ordnungspolizei – commonly referred to as the Orpo), mostly uniformed police tasked with dealing with relatively low-level police matters. Alhough the police on the scene, concluding that people do not normally commit suicide by strangling and stabbing themselves, decided to refer the matter to the Berlin Criminal Police (better known as the Kripo).
The lack of defensive wounds would suggest that the victim knew her killer and within hours of Ditter's body being discovered, the her husband Arthur – who was stationed in nearby Potsdam – had been located and interviewed. The distraught Mr Ditter provided a detailed five page statement explaining his whereabouts over the previous 48 hours and his cordial relationship with his wife. He was stationed only thirty minutes from Berlin but was not free to come and go from his barracks, leading the police to rule him out as a potential suspect.
By strange coincidence, Arthur Ditter had previously been employed at the Rummelsburg train-switching yard – ground zero for the S-bahn murders – where Paul Ogorzow worked as an auxiliary signalman.
At this point in time, however, the police had no idea who Ogorzow was.
The investigation would quickly turn into a cold case – with no fingerprints, no murder weapon, and few further leads – Gertrude Ditter's killer was free to strike again.
Another Attack - An Important Clue
Exactly one month after his first murder, Ogorzow renewed his attacks on women travelling alone on Berlin's S-Bahn network – focusing primarily on the 9 kilometer stretch between the Rummelsburg train yard and station and Friedrichshagen station.
On December 4th 1940, he attacked thirty-year-old Elizabeth Bendorf – a train ticket saleswoman who had just finished her shift at Friedrichshagen station. Although, as with his previous attack against Gerda Kargoll, Ogorzow did not manage to murder his victim. Despite repeatedly bludgeoning Bendorf with a thick piece of lead cable, the young woman survived.
Twice she regained consciousness before Ogorzow viciously attacked her again each time.
Miraculously although too dazed to move her body Bendorf would cognizant enough to recall being dragged to the door of the carriage. Again, frustrated by the time it had taken to subdue his victim, Ogorzow decided to throw Bendorf from the moving train – shortly before it arrived at the Köpenick station.
Like Gerda Kargoll, Elizabeth Bendorf survived a brutal attack. Her description of the incident meant that the first case no longer looked like the drunken accident that the police had suspected. A pattern was beginning to appear, of a man attacking women on the Berlin train network and throwing their unconscious bodies onto the tracks. Accidents were handled by the Ordnungspolizei, attempted murders – of which there were now two with similar details – was a matter for the Criminal Police.
Unlike with the murder of Gertrude Ditter, after his latest attack Ogorzow had decided to abandon his weapon. Hiding it behind the cushions of the second class carriage. The police investigation would manage to identify the train and carriage – leading to the discovery of an important clue:
A two-inch-thick, twenty-inch-long piece of lead encased telephone cable with numbers stamped on one side.
When the police contacted the telephone company they discovered that about a year and half ago, telephone cable had been laid alongside parts of the S-Bahn track. The number on the piece indicated it had been spliced off somewhere near the Rummelsburg S-Bahn station.
The police were one step closer to catching Ogorzow.
But another seven women would die by his hand before the hunt would come to an end.
Karlshorst station - close to where Ogorzow would dispose of his first S-bahn victim/Image: Public Domain
Paul Ogorzow had by now tried twice – and failed – to murder his victims on the S-Bahn.
Constrained by the timetable of the network, he had little time to subdue and kill the women he attacked and then dispose of their bodies. Unlike with his attack on Gertrude Ditter, in the privacy of her own home, where he had ample opportunity to savour his handiwork and confirm that she was actually dead, he was struggling to satiate his lust for murder on the rails.
His next outburst would see him butcher two women within hours of each other.
Ogorzow's attacks were also now taking on a strange pattern, one the police were unable yet to detect.
Exactly one month after murdering Ditter, he had attacked Elizabeth Bendorf, and exactly one month later – on December 4th, he would strike again.
This time, carrying an iron rod he had found during his work at the railway yard, he would shatter the skull of a twenty-six-year-old nurse named Elfriede Franke.
Spotting Franke in the second class train compartment at the Karlshorst station, Ogorzow wasted no time – or words – and, removing the iron rod from his jacket, slammed it hard into Franke's head, forcing pieces of her skull into her brain.
She immediately fell down onto the floor of the carriage.
Satisfied that he had succeeded where he had earlier failed – and that the young nurse was indeed dead – Ogorzow moved to open the door of the carriage, allowing the cold air of the winter night to rush into the compartment.
Then, dragging Franke by her feet, he threw her body into the darkness.
Three hours later, with the citywide blackout still in effect, the police arrived at the body; joined by the well-known forensic pathologist Waldemar Weimann. The officers at the scene were quick to note that this was the third case of this kind that they had encountered along this route – Weimann was asked to make an assessment. Two other women had both survived, one had been strangled while the other had been hit with a blunt instrument. The detail that connected all three – other than the location – was that they had each been thrown from a moving train. Could these cases all be the work of the same man? Weimann was unsure.
What neither the police nor Weimann were aware of at the time was that the doctor had also examined one of Ogorzow's other victims. Gertrude Ditter, who had been strangled and stabbed in her garden home in Friedrichsfelde.
The connection between these crimes had not yet been made. But the police were beginning to suspect that they were searching for one individual, responsible for two previous attacks and now the murder of Elizabeth Bendorf.
With violent crimes grouped together when the attacks are carried out in a similar way, Ogorzow's earlier spree in the garden colonies and side-streets of Friedrichsfelde where he stabbed and strangled his victims before sexually assaulting them had, however, still not been tied to the incidents on the S-Bahn network.
The modus operandi and locations were too different.
As the brutality of Ogorzow's crimes increased, the Nazi Party responded with a media blackout that only served to stymie the investigation, allowing the S-Bahn Murderer to secure his moniker.
But the man in charge of the pursuit of Ogorzow was not to be deterred.
The Alexanderplatz Berlin Police Headquarters (also known as the Rote Burg) - home of the Serious Crimes Unit of Berlin's Criminal Police/Image: Public Domain
The Hunt For The S-Bahn Murderer
The day that Elfriede Franke was murdered, the police operation against Ogorzow was taken over personally by the head of the Serious Crimes Unit of Berlin's Criminal Police force (better known as the Kripo), Wilhelm Lüdtke – a veteran police officer, who first joined the Schutzpolizei in 1910.
Since the Nazi seizure of power in 1933, the Kripo had come to serve as a revolving door to Party membership – as the distinction between 'ordinary' crimes and political crimes blurred so that there was no clear division of labor between the criminal and political police. As of September 1939, the Kripo was part of the Reich Main Security Office, headed by Heinrich Himmler. As such, the Gestapo (Nazi Secret Police) and the Kripo often found themselves sharing jurisdictional authority with regard to certain criminal violations – and in 1940, Lüdtke would finally join the Nazi Party, taking the rank of Hauptsturmfuhrer (Captain) in the SS.
Without knowing it Lüdtke joined the Nazi Party exactly eight years to the day after Paul Ogorzow had – as member 8,015,159.
Like plenty of his fellow officers, Lüdtke had not supported the Nazi Party during its rise to power. In-fact, like Berhard Weiss – the Vice-President of the Berlin police, who had been forced out of his job due to his Jewish ancestry – the head of the Berlin Serious Crimes Unit had been a member of the liberal Deutsche Demokratische Partei. Dismissively referred to by the Nazis as the "party of Jews and professors", the DDP was co-founded by Albert Einstein and included people such as economist Walter Rathenau, sociologist Max Weber, and author of the Weimar constitution Hugo Preuss, among its members.
His post-war interrogation report, as part of the DeNazification of Germany, would describe Lüdtke as: "well-grounded in all phases of police investigative work but lacking the ingenuity and imagination required of an independent intelligence operator." He would be involved in anti-smuggling operations aimed at stopping the illegal flow of coffee into East Germany but not offered a position with the CIA.
Luckily for Lüdtke, denunciations were the bread-and-butter of most Nazi-era investigations – and as such the final piece of the puzzle would fall into place when the police received a tip-off from one of Ogorzow's co-workers about his unusual behaviour.
Despite the elaborate measures introduced by the Berlin police to help apprehend Ogorzow, and a hefty ransom offered, little progress had been made, although they had managed to catch more than a handful of petty criminals unrelated to the case.
Following the murder of Elfriede Franke on December 4th 1940, Paul Ogorzow would be on the loose for another eight months before his capture in July 1941.
The police would later describe him of limited intelligence; although he appeared to be outwitting them at every turn.
Director of the State Institute for Forensic and Social Medicine Berlin, Waldemar Weimann, who would be central to catching Ogorzow/Image: Public Domain
A Serial Killer On The Loose
While the Berlin police were gathered around the body of Elfriede Franke on December 4th 1940, only a few kilometers away Ogorzow attacked and murdered his third victim – not long after arriving at the Karlshorst station.
Having swiftly dispatched Franke with a blow to the head, Ogorzow found that he still had a burning desire to sexually assault a woman.
Using the same iron rod that he had employed to kill Franke, he knocked out a nineteen-year-old named Irmgard Freese that he had spotted walking alone. After crushing her skull with three blows, Ogorzow ripped off much of her clothing and raped her. Leaving her for dead as he returned to the S-Bahn signal station where he worked to rest. An isolated building on the outskirts of the station, he would often fall asleep here instead of going home.
It was only thirty minutes after his attack on Elfriede Franke.
Discovered by people walking in the area, Freese was rushed to hospital while still alive. She would die without being able to speak a word about the attack.
After the autopsy of Irmgard Freese was conducted and the cause of death identified as being similar to previous attacks, the two men largely responsible in the hunt for Ogorzow would soon come to realise they were looking for one man responsible for an series of escalating attacks.
Kriminalkommissar Wilhelm Lüdtke and Doctor Waldemar Weimann met the day after the murder of Freese at Weimann's home. Lüdtke presented the doctor with a detailed map of the garden area where Ogorzow had been harassing and sexually assaulting women, suggesting the possibility that they could be tied to the S-bahn attacks and introducing one key connection – the murder of Gertrude Ditter in her garden house.
Could it not be possible that the crimes had been committed by the same man, taking into account the distribution of the attacks, the origin of the telephone cable used to bludgeon Elizabeth Bendorf?
More significantly, Lüdtke would propose:
Why is it that since the first woman was thrown from the S-bahn that the police have not heard of any more attacks in the garden area?
Lüdtke was correct in his assumption.
By this time Ogorzow had changed territory. Of the two areas he was familiar with, the garden colony in Friedrichsfelde and the S-Bahn lines, he was now focusing almost entirely on the latter.
Before the end of the month he struck again; killing a thirty-year-old woman named Elisabeth Büngener who had been riding the S-Bahn to see her husband, a soldier in a town near Berlin called Fürstenwalde, a few days before Christmas. Beaten with a blunt object, Büngener was thrown from the train whilst still alive but died from injuries sustained when she hit the ground. At first the police thought this was a suicide, as a doctor's note was on her person declaring her unfit for work – and such events were common so close to Christmas. But a detailed examination of the body would reveal telltale signs that her death had been the work of the S-Bahn Murderer.
The death of Elisabeth Büngener was added to Paul Ogorzow's tally – which now stood at four murdered women and countless other harassed and sexually assaulted.
In the early hour of December 29th 1940, Ogorzow found a forty-year-old woman named Gertrud Siewert travelling in the second class compartment of the Berlin S-Bahn line between Karlshorst and Rummelsburg. With a single blow to the head, Siewert was incapacitated and thrown from the train. She was still alive when discovered later that morning and rushed to hospital but died the same day.
On January 4th 1941, a twenty-seven-year old mother-to-be named Hedwig Ebauer was discovered, still alive, by the side of the train tracks near the Wuhlheide S-Bahn station. Although she arrived at the hospital alive, she died there the same day, as a result of head injuries sustained when she fell from a moving train. Prior to landing beside the track she had been strangled by Paul Ogorzow, who – having mistakenly thought she was dead – threw her from the carriage like his previous victims.
This was Ogorzow's third attack in the early hours of a Sunday morning and based on where Ebauer had been found the police were able to identify which train compartment she had likely been attacked in. What seemed like a promising lead turned out to be a dead end, when detectives entered the carriage and found it had been cleaned since the attack. All evidence swept away.
With four women now murdered while riding the city's S-Bahn, rumours started to spread throughout Berlin that there was a serial killer riding the trains. The kind of publicity that Reich Propaganda Minister, Joseph Goebbels, was anxious to control. Certainly when it cast the regime in such a bad light – that the German police could not stop a serial killer from murdering women in the heart of the Reich.
Ogorzow was committing his crimes right under the noses of the Berlin police – continuing to terrorise the city despite one of the most unusual manhunts in the city's history being mounted. He even came close to being caught whilst approaching a female passenger at night on a train before realising that she was an undercover female police officer – luckily for Ogorzow, the Berlin police had refused to arm their undercover female officers and he was able to jump from the moving train and get away.
In a strange way, the police hunt for the S-Bahn Murderer was even starting to help Ogorzow commit his crimes.
His next murder would occur on the night of February 11th 1941, when he was approached by a thirty-nine-year-old woman named Johanna Voigt at the Karlshorst station. Voigt was concerned about the rumours of the serial killer and asked Ogorzow if he would accompany her on the train – she was three months pregnant. Once the train arrived, they entered together – boarding the second class carriage. As Voigt was only riding to the next station, Ogorzow had to act quickly. Armed with the iron bar he had used in prior attacks, he struck Voigt in the head numerous times, rendering her unconscious. Like a number of his previous victims, Johanna Voigt was still alive when she was thrown from the moving train but would not survive the injuries sustained in the fall.
There were few additional clues on Johanna Voigt's body to lead the police to the killer but on closer inspection one thing did occur to Kriminalkommissar Lüdtke. He realised that on a number of victims, the train ticket was missing, indicating that the offender may have been a ticket inspector – or railway worker.
The police presence at the Rummelsburg and Karlshorst train stations, where the previous attacks occurred, increased. Some news of the attacks managed to make it into the press – but on the whole, the Nazi Party did its best to reign in the story, even when the police were adamant that more publicity would help them catch their man.
The police were offering a substantial reward for information that would lead to the capture of the S-Bahn Murderer – by this time it was set at 13,000 Reichsmarks, and this did bring in around 15,000 tips. Far too many for the police to follow up.
Those women who did not know about the man preying on lone females on the city's train network were still out there as potential victims – the few that managed to be scared away by the rumours and hushed announcements from the police meant that there would be fewer people riding the second-class compartments likely to disturb Ogorzow.
To kill, he only needed one victim, and it only worked if she was alone.
Ogorzow had been volunteering to escort women home, as part of the government scheme to stop them travelling alone at night, and never bothered any of them. Although, the murder of Johanna Voigt had taken place immediately after he had left one of his charges.
In February 1941, the police began questioning all the Reichsbahn employees – there were 5,000 of them – eliminating those who did not match the descriptions given by Ogorzow's earlier victims who had survived.
With all the police activity, Ogorzow did stop his attacks, if only temporarily. Biding his time until the police started to scale down their operations.
Days turned into weeks.
Weeks turned into months.
The Rummelsburg S-Bahn station - where the S-bahn Murderer would strike again - this time leaving blood on Kriminalkommissar Lüdtke's hands/Image: Public Domain
A Deadly Gamble & A Red Herring
On July 1st 1941, Kriminalkommissar Lüdtke set a dangerous trap. He had his officers spread the rumour that from this day police monitoring would cease, "as it is obviously futile".
The rumour reached Ogorzow and two days later he took the train to the Rummelsberg station where he stalked a group of nine women – choosing one who left the station alone. Her name was Frieda Koziol and she was thirty-five-years-old. Ogorzow was wearing his railway workers uniform and approached Koziol from behind, offering to walk her home, she refused and kept walking – at which point Ogorzow smashed her in the back of the head with his iron bar, caving in her skull.
As she lay dying, he raped her, leaving her body where it was – naked from the waist.
Desperate to solve this series of murders, Kriminalkommissar Lüdtke now had blood on his hands.
He would later justify his decision by pointing out that he had hoped to catch the perpetrator in the act. By now any doubt that remained that Ogorzow was behind the S-Bahn attacks and those that had taken place in the garden spaces of Friedrichsfelde had disappeared from Lüdtke's mind. He also became certain that the killing of Gertrude Ditter, who Ogorzow had choked and stabbed in her own home, was also the work of the elusive railway worker.
Following the murder of Frieda Koziol, the police found a clear trail of shoeprints in the dirt nearby. Determined to be a men's thirty-nine and a half, a specialised shoe with extra thick rubber soles, made by the company Salamander. War-time rationing meant that a list of men who had purchased this particular shoe could be drawn up and it looked like the police were one step closer to catching their killer.
Alas, it turned out to be a red herring.
After eliminating the men who were on military service or were too far from the crime scene, they found that a man named W. Heimann, who lived nearby, had bought a pair. And he had a criminal record – for spying on a couple having sex. Heimann was taken into custody and his shoes analysed – compared against molds of the shoe prints left at the scene.
They matched.
Heimann was held for three days and interrogated eight times before he confessed that he had been at the crime scene but fled when he noticed that the woman was dead. He insisted he was not the attacker.
Something else puzzled the police. He had no connection to the S-Bahn system, other than occasionally riding it.
Luckily for Heimann, the police decided against pinning the crimes on him. Knowing that judging by the type of crimes they were looking at that the perpetrator would likely continue his deadly work unless captured.
The full extend of the S-Bahn Murderer's crimes/Image: Hosted externally on www.stadtschnellbahn-berlin.de
The Capture Of The S-Bahn Murderer
The police would receive their biggest break in July 1941 with the use of a single question.
The kind of question that would come to be extremely useful in Nazi Germany:
"Have you noticed anything suspicious about any of your coworkers?"
While interviewing a particular railway worker, who they had alredy cleared of being involved, the Kripo detectives asked this question and were given what may have seemed like a mundane reply. The worker had indeed seen something unusual, he had spotted one of his coworkers ditching his job by climbing the fence at the railway yard, only to return later before anyone else noticed.
The police had already talked to this other worker and discovered that some of the crimes had taken place during times when he was at work. This had seemed enough at the time to warrant clearing him of any involvement. Now they wanted to talk to him again.
On July 12th 1941, Paul Ogorow was picked up from his apartment at 6:45am by a Kripo detective and two low ranking officers. On being questioned by Kriminalkommissar Lüdtke he denied having temporarily abandoned his post, claiming that his duties meant that had he done so he would easily have been detected by his superiors.
On paper he looked like the exact opposite of what the police were looking for: a family man, a loyal Nazi, a veteran of the Sturmabteilung, and a dedicated worker, who was – aside from his nosy coworker – spoken highly of by his peers and superiors.
Eventually he retracted his statement about leaving his post and claimed he was visiting a woman with whom he was having an affair. When the woman he claimed to have been meeting was brought in for questioning, she admitted that the two had indeed been having an affair – one they intended to keep secret as her husband was away in the military.
Had that been the end of the story, Ogorzow may have been released. But on being taken in for questioning, the police had confiscated his clothes and sent them away to be checked for anything suspicious.
Microscopic analysis had uncovered blood on Ogorzow's jacket and trousers. With a large amount found in and around the crotch area of the trousers.
Trying to explain away the evidence, Ogorzow claimed that his wife had been sick and that it was her blood on his clothing, adding that the rest must have come from when he cut his finger. Ogorzow's wife would corroborate his story about her being sick – but the police were convinced that the bloodstain on his jacket was the result of a struggle.
Gradually, over a period of days, Ogorzow cracked.
First, confessing to stalking women in the garden areas of Friedrichsfelde, using a flashlight to scare someone or grabbing a woman walking alone. Ogorzow was then taken to trace the steps of his earlier minor crimes, accidentally letting slip that he had been involved in some more serious attacks in the process.
The police then brought two women who had survived Ogorzow's attacks to identify him – one immediately recognised him, the other said she was not sure. Rather than organise a line-up of suspects, they had simply brought the women to the garden colony in Friedrichsfelde and had them stand in front of Ogorzow.
On the way back to the police station, Paul Ogorzow requested that he be allowed to talk to the man in charge of the case – Wilhelm Lüdtke – perhaps expecting that a high level official might help him out due to his Nazi credentials.
The guillotine at Berlin-Plötzensee prison where the S-bahn Murderer would meet his end/Image: Gedenkstätte Deutscher Widerstand
The End Of The S-Bahn Murderer
Already somewhat certain that he had his man and with the Nazi Party breathing down his neck to catch a criminal who had been terrorising the Nazi capital for nearly two years, Kiminalkommissar Wilhelm Lüdtke wanted a confession from Ogorzow.
He would go about getting it in a rather macabre way.
The skulls of five of Ogorzow's victims were placed on the interrogation table in front of Ogorzow, carefully cleaned and presented by the forensic pathologist, Dr Weimann.
The young railway worker did not last long. Soon pleading with Lüdtke to find a way to make the criminal charges he was facing go away. The Kriminalkommissar's response was to assure Ogorzow that he would be well treated, as long as he provided a full confession.
Tempted by this offer, Ogorzow related the details of his crimes, although stating that he had used a knife to murder his victims – a lie concocted to allow him to wriggle out of any proceedings against him, should he be unfairly treated by Lüdtke.
Carefully walking Ogorzow through the details of each murder, and using the skulls in front of him as props, Lüdtke exposed Ogorzow's amateur subterfuge. Eventually, Ogorzow would have to admit that he had bludgeoned the woman, in his own words: "with a lead cable."
In his confession, Paul Ogorzow blamed his acts on sexually transmitted diseases that he had caught three times – in Berlin in 1934, in Poland in 1940, and in Paris in 1940. His poor treatment by a Jewish doctor was also cited as something which affected his state of mind, making him not responsible for his actions.
Hoping his Party membership would save his life, he requested to be placed in a psychiatric hospital.
On July 18th 1941, the Berliner Morgenpost finally ran a front-page story about the S-Bahn Murderer. The headline read: "The Berlin S-Bahn Murderer Caught!"
Four days later, Ogorzow was put on trial at the Nazi Special Court for the murder of eight women and the attempted murder of a further six. The court ruled he was fully sane and responsible for his actions and he was convicted on all eight counts of premeditated murder and six counts of attempted murder.
The next morning at 6am, Paul Ogorzow – the infamous S-Bahn Murderer – was executed at the Plötzensee prison in Berlin by guillotine. As was usually the case with such executions, a charge for the wear and tear of the guillotine blade was sent to the prisoner's relatives – in this case Mrs Gertrude Ogorzow.
Coda - A Killer In The Shadows
In a criminal state like Nazi Germany, where murder was state policy, it may seem somewhat fanciful that the kind of peace-time policing that involves catching thieves, rapists, and murderers, would continue as normal, when such colossal criminality and nefarious acts was being committed daily by the government – in the name of the people.
Certainly in the Germany of the 1930s and 40s, there was no shortage of men whose hands were wet with blood. Yet that the phenomenon of the serial killer – or civilian spree killer – which in the late 20th century became so closely associated with the United States – should also have occurred in Nazi Germany is still a surprise to many.
More than just a movement of ideas, Hitler's National Socialist Party would prove to be a Party of deeds.
In implementing its platform and policies, the Party stood at odds with the status quo of political discourse. Whether deployed during the early street battles to establish the Party, to further the cause of German expansion or attain the Nazi goal of racial purity – violence was always an essential part of the National Socialist repertoire. And not necessarily a matter of last resort. Unlike other political movements where violence was perceived as temporary and transcendental – bloodshed was an integral part of the National Socialist doctrine, acceptable as long as it was administered appropriately.
As such, the legacy of Ogorzow's deeds has largely been eclipsed by the greater criminality of the Holocaust, the Second World War, and the litany of other Nazi crimes.
Leaving the 'S-bahn Murderer' exactly where he chose to prey on his victims – in the shadows.
Our Related Tours
To learn more about the history of Nazi Germany and life in Hitler's Third Reich, have a look at our Capital Of Tyranny tours.
Think you already know enough about the rise and fall of the Third Reich? Take our Capital Of Tyranny Quiz and find out.
Alt, Axel (1944). Death was on the train. Retold the files of the criminal police. Hermann Hillger publishing house, Berlin-Grunewald and Leipzig
Bosetzky, Horst (1995). Like an animal. The S-Bahn killer. Argon Verlag 1995 / Deutscher Taschenbuch Verlag, Munich 1997, ISBN 3-423-20021-9 .
Moorhouse, Roger (2010). Berlin at War: Life and Death in Hitler's Capital. Bodley Head
Piethe, Marcel (2014). Paul Ogorzow – Der Berliner S-Bahnmörder
Selby, Scott Andrew (2014). A Serial Killer in Nazi Berlin: The Chilling True Story of the S-Bahn Murderer. Berkley Books, 2014, ISBN 978-0-425-26414-0.
Nazi Germany, Paul Ogorzow, Serial Killer, WWII
Matt Robinson
PrevPreviousThe Last Piece Of East Germany? The Story Of Ernst Thaelmann Island
NextBerlin's Avenue Of Failed Assassinations: Unter Den LindenNext
Berlin Experiences
The Capital of Tyranny - The Rise & Fall Of The Third Reich
The Republic of Fear - Life Behind The Iron Curtain
The Battle Of Berlin - The Final Days Of Hitler's City
The Glory of Prussia - The Iron Kingdom & The Golden Cage
The Invention Of Hell - The Sachsenhausen Concentration Camp
Walk Through The Brandenburg Gate
Visit The Reichstag Cupola At Night
Explore The Forum Fridericianum
Step Inside The Olympic Stadium
Visit The Grave Of Frederick The Great
Cross The Bösebrücke At Night
Mythbusting Berlin
Did Hitler Escape To Argentina In 1945?
Who Was Really Responsible For The Reichstag Fire?
Was The Fall Of The Berlin Wall An Accident?
Who Built The Berlin Wall?
Did The Nazis Invent The Bicycle Reflector?
Our Top Articles
The Battle Of Berlin 1945 - A Day By Day Account
The Potsdam Conference 1945 - A Day By Day Account
Explore Berlin In 365 Objects
55 Things You Should Know Before Visiting Berlin
Eight Strangest Berlin Wall Escapes
Twitter Facebook Instagram Youtube Pinterest Vimeo Linkedin
© 2018 Berlin Experiences/Holme-Robinson GbR


text:
Frida Sabina Gabrielle Ulvegren, född 10 april 1984, är en svensk serieskapare och kulturpedagog. Hon är bland annat författare och tecknare till Tack & förlåt (Kolik förlag 2011) och Fridas resor (Kartago förlag 2013).

Biografi

Bakgrund och studier
Frida Ulvegren föddes 1984 i Stockholm. Hon studerade 2005–06 dramatik gestaltning på Södertörns högskola. Därefter flyttade hon till Skåne, där hon åren 2008 bland annat utbildade sig till serieskapare. Det inleddes 2008–10 med den tvååriga grundkursen på Serieskolan i Malmö, dit hon 2013–14 återvände för ett kompletterande "kreativt friår". 2010–11 återvände hon (tillfälligt) till Stockholm för ett års studier i pedagogik och didaktik på Stockholms universitet. Hon har i två omgångar studerat på Malmö högskola, 2011–12 via kursen "Serieteckning och visuellt berättande" och 2014–15 som student i ämnet Kulturjournalistik.

Serieskapande
Ulvegren är medlem i det feministiska serietecknarnätverket Dotterbolaget som bildades år 2005 på Serieskolan i Malmö. Förutom i nätverkets produktioner har hon synts i ett antal olika serietidningar. Hon debuterade 2010 i Rocky Magasin med den tresidiga serien "Är jag duktig nu?". Hon har även synts i serietidningen Zelda, Galago, i webbtidningen babian.se. 2009, 2010 och 2014 deltog hon i skolantologin Kvarnby serier, och 2011 bidrog hon till antologin Tago v.1.

2011 publicerades hennes debutseriealbum Tack & förlåt på Kolik förlag. Därefter har Kartago förlag givit ut hennes seriealbum Fridas resor (2013), en berättelse om att bli indragen i modellbranschen vid 14 års ålder.

2014 syntes hon med bidrag i Sara Olaussons album Kvinnor ritar bara serier om mens.

Övrigt
Frida Ulvegren är även verksam som illustratör och leder kurser både i tecknande och teater. Bland annat har hon under 2015 gjort en mängd illustrationer för Stadsbiblioteket Göteborg, och hon är numera bosatt i Göteborg.

Bibliografi

Egna verk
2011 –  (36 sidor)
2013 –  (176 sidor)
2016 –  (139 sidor)

Antologibidrag
2013 –  (13 sidor)
2014 –

Referenser

Externa länkar
 Intervju i SVT
 Intervju i Sveriges Radio
 Samtal med Johanna Koljonen, Lina Neidestam och Julia Thorell från Bokmässan 2013

Svenska serieskapare
Konstnärer från Stockholm
Födda 1984
Levande personer
Kvinnor


LAKE BUENA VISTA, Fla. -- Other than winning Super Bowls, C.J. Mosley has two goals for his NFL career: Play nowhere else but Baltimore and be considered the greatest linebacker in franchise history not named Ray Lewis.
"I've never been a guy that's liked change or gone to a new place and start over," Mosley said Saturday after the AFC's final walkthrough before Sunday's Pro Bowl. "I went all four years at Bama. I was at one high school. I was at one middle school. So I'll love to stay in Baltimore and continue my legacy and try to be the second-best linebacker to finish out there."
The second is obviously contingent on the first. The Ravens picked up the fifth-year option on Mosley's rookie contract, so he'll make $8.718 million in 2018. That amount is fully guaranteed once the new league year begins at 4 p.m. ET on March 14.
That leaves more than a year for the sides to work out a long-term extension. Mosley said Saturday that he's not in a rush to get anything done.
"I'm pretty sure something will get worked out, but I just focus on football," Mosley said. "I just leave that to the head of the front office and my agent. I just let them work that out. All I can do is stay healthy and play football.
"I'm not really focused on that. I feel like I put in all the work I could and shed a lot of blood, sweat and tears, so I feel like my play will do all the talking when it comes time for that."
Mosley has been one of the league's best defensive players since the Ravens drafted him 17th overall in 2014. He ranks fifth in tackles (489) and fifth in solo tackles (313) among all defensive players and second in interceptions (eight) among linebackers over the past four seasons. The only linebacker with more interceptions is Carolina's Luke Kuechly (nine).
He has made three Pro Bowls and only missed two regular-season games in his four seasons. Mosley's 2018 salary currently ranks 26th among linebackers, and a new deal could have an average salary in the $11 million to $15 million range.
"It's definitely new, talking about contracts and money and all that," Mosley said. "Everybody is well-respected with the Ravens organization, from the top to the bottom. I love all the coaches, all the players, so I definitely expect to finish my career there.
"I'm not too focused on, when I get back, if it's gonna be awkward and all that stuff. I think that at the end of the day, we all go there to work."


text:
Q: HTTPS redirect, exclude script parameters from URL My goals:
1. http://example.com/page/index.php -> https://example.com/page/
2. http://example.com/page/ -> https://example.com/page/
3. http://www.example.com/page/ -> https://example.com/page/
4. Any nonexistent file or directory requests -> index.php?&q=$1 for further processing.

Following rules work fine, but after a redirect in a browser URL instead of a clean URL
https://example.com/page/

i see
https://example.com/index.php?&q=page/

How to hide index.php?&q=page and show https://example.com/page/ in the URL? Before I added HTTPS redirect it worked fine for HTTP. I tried 2 solutions with the same result.
RewriteEngine on
RewriteBase /

#1 solution:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ [NC]
RewriteRule ^index\.php$ https://%{HTTP_HOST}/ [L,NE,R=301]

RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule (.*) https://%1%{REQUEST_URI} [L,NE,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php?&q=$1 [QSA]

#2 solution:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ [NC]
RewriteRule ^index\.php$ https://%{HTTP_HOST}/ [L,NE,R=301]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule (.*) https://%1%{REQUEST_URI} [L,NE,R=301]

RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php?&q=$1 [QSA]

redpajama_set_name: RedPajamaStackExchange


They must be holy to their God and must not profane the name of their God. Because they present the offerings made to the LORD by fire, the food of their God, they are to be holy (Vayikra / Leviticus 21:6).
In this week's parasha (Torah portion), we read of special regulations for the cohenim (English: priests) and for the cohen hagadol (English: chief priest). Because of their unique involvement with the holy things of God, they had to abide by stricter rules than what was required of the rest of the people. Even though the whole nation of Israel was called to be different from other nations, the priests were required to be more different, and the chief priest even more different.
I have met people who prefer to be different. Some do so because they don't want to give up their personal preferences. Others seek to be different as a reaction to whatever is popular. They don't want to go along with the crowd, just because it is a crowd who is going along with something. Then there are groups and individuals who, out of a desire to follow the biblical call to holiness, have adopted various customs in an attempt to set themselves apart.
But clearly most people prefer not to be different. Most of us go along with what is considered as normal or popular. Because most societies today are culturally diverse, we tend to find some group (official or otherwise) with which we feel most comfortable. We may or may not actually regularly interact with that group. Still we are looking to them, so that we would not be considered different.
Whatever our personal preferences might be, being different is not an option for those who wish to be in right relationship to God. The regulations given to the priests demonstrate that the closer we are to God, the more different we will become.
It is important to realize that being different is not the key to drawing close to God. Behaving different from those around us does not produce healthy spirituality. Healthy spirituality produces lives that are different. The priests did not become priests because they were different. They were different, because they were priests.
If you have come to know God, you may find that you are different. You try to be like other people, but you can't. It might be that you have a special call on your life. Like the priests of old, because of your close relationship to God, you find yourself having to live a life so very different from those around you. Whether or not you like being different has nothing to do with it; you just are.


30 COZY SCANDINAVIAN BEDROOMS. 13 // A soft and pink dreamy bedroom with natural elements from My Scandinavian Home blog. 14 // Dark blue bedroom with greenery and plenty of natural lights via Entrance. 15 // Cozy bedroom with vibrant wallpaper and soft rug.
Beautiful Scandinavian Bedroom Dark Carpet Bedroom Ideas. Beautiful scandinavian bedroom dark carpet bedroom ideas and photos with contemporary decorative pillow covers. Bedroom contemporary decorative pillows collection of seating for small room tiny room bedroom ideas and photos.