 are doing it, but it’s a very limited market.
Speculation and plausibility
What does this do for speculation and the idea of plausibility and our association with science, then? My bet is that if SF authors were really serious about the science and their association with it, they’d write books that were a whole lot more mundane and applied. If I’m right, then most use extrapolations from science as part of a marketable mode of discursive persuasion that targets an average conception of ‘plausiblity’ in the readership.
Progressive speculation, deconstruction and cognitive estrangement
Actually, I’m not against over-extrapolation or progressive speculation towards the extremes of the possible (particularly the technically impossible according to establishment science that are rendered possible in a fantasy-science context) and the effect of cognitive estrangement that results. In fact, I like it. It stimulates creativity and a critical awareness of the possible and the impossible, particularly when you know about and can contrast this with our own experience in the world and the state of establishment science; importantly, it allows a deconstruction of the continuous/emerging present through extensions from trend analysis into the extremes of the possible, which draws out the consequences of our action and inaction and the flaws and vulnerabilities of our agency and our present contexts.
Deconstruction through speculation (whether it’s extreme or mundane) is a different interest to vain and flimsy associations with establishment science. Deconstructing the present through speculative pasts, futures or even presents as the emerging present itself becomes more SF-like, is a dedication to the understanding, which is general and unbounded, and thus beyond the parameters of establishment science … even irreverent of them.
I mean, there’s good reason to be. We sometimes act as though Thomas Kuhn didn’t exist.
Here’s an insightful criticism of large chunks of contemporary physics we often take for granted.
Anway, I just don’t like over-extrapolation mixed with pretensions about being associated with estabishment science and thus superior to others when it’s obvious that establishment science is being exploited rhetorically for marketing purposes.
Once you let go of such ‘scientific’ pretensions and you accept speculation as a broadly defined activity, science fiction takes on a whole different turn and becomes a much broader and diverse pursuit. One that many started taking a long time ago…8DID provides DID numbers for Romania.
8DID strives to constantly expand our virtual number coverage in Romania.
It’s a funny (funny weird, not funny ha ha) time to report on copious amounts of mangoes. Supply on the round mangoes has taken an abrupt turn this week as Peru’s volume of Kents finally came to a halt and as Mexican Tommy Atkins are still just drizzling out of the orchards. Shortage is the main talk of the mango town. ………BUT.
The hurricane, which gained massive, unforeseen, rapid strength, morphing into a Category 5 storm, with wind gusts exceeding 160 mph, was projected to be one of the most powerful storms to hit the Mexican Pacific coast. Eventually, just before making landfall, the storm weakened- slightly- into a (still extremely dangerous) Category 4 storm, and upon landfall a powerful Category 3 hurricane, arriving near the Isla De Bosque, Sinaloa, Mexico which is about an hour and half south of Mazatlán and about 45 minutes south west of El Rosario, where Crespo Organic’s main Mexican offices and our main pack house Empaque don Jorge, live.<filename>src/test/java/com/github/mielek/api/client/openweathermap/OpenWeatherMapClientTest.java
package com.github.mielek.api.client.openweathermap;

import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
import com.github.mielek.api.client.openweathermap.model.CityWeather;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;

public class OpenWeatherMapClientTest {

    private static final String NY_CITY_NAME = "New York";
    private static final int NY_CITY_ID = 5128581;

    private static Client webClient;
    private static String apiCode = TestConstants.getAPIKey();

    @BeforeClass
    public static void setUp() {
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
        //mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        mapper.registerModule(new JaxbAnnotationModule());
        JacksonJaxbJsonProvider jaxbJsonProvider = new JacksonJaxbJsonProvider();
        jaxbJsonProvider.setMapper(mapper);

        webClient = ClientBuilder.newClient().register(jaxbJsonProvider);
    }

    @AfterClass
    public static void shutdown() {
        webClient.close();
    }

    @Test
    public void getCurrentWeatherByCityNameForNewYork() {
        OpenWeatherMapClient client = new OpenWeatherMapClient(webClient, apiCode);
        CityWeather weather = null;
        try {
            weather = client.getCurrentWeatherByCity(NY_CITY_NAME);
        } catch (Exception e) {
            fail(e.getMessage());
        }

        assertThat(weather.getName()).isEqualTo(NY_CITY_NAME);
        assertThat(weather.getId()).isEqualTo(NY_CITY_ID);
    }

    @Test
    public void getCurrentWeatherByCityNameWithCountryForNewYork() {
        OpenWeatherMapClient client = new OpenWeatherMapClient(webClient, apiCode);
        CityWeather weather = null;
        try {
            weather = client.getCurrentWeatherByCity(NY_CITY_NAME, "us");
        } catch (Exception e) {
            fail(e.getMessage());
        }

        assertThat(weather.getName()).isEqualTo(NY_CITY_NAME);
        assertThat(weather.getId()).isEqualTo(NY_CITY_ID);
    }

    @Test
    public void getCurrentWeatherByCityCodeForNewYork() {
        OpenWeatherMapClient client = new OpenWeatherMapClient(webClient, apiCode);

        CityWeather weather = null;
        try {
            weather = client.getCurrentWeatherByCityID(NY_CITY_ID);
        } catch (Exception e) {
            fail(e.getMessage());
        }

        assertThat(weather.getName()).isEqualTo(NY_CITY_NAME);
        assertThat(weather.getId()).isEqualTo(NY_CITY_ID);
    }

    @Test
    public void getCurrentWeatherByZipCodeForNewYork() {
        OpenWeatherMapClient client = new OpenWeatherMapClient(webClient, apiCode);

        CityWeather weather = null;
        try {
            weather = client.getCurrentWeatherByZipCode("10001", "us");
        } catch (Exception e) {
            fail(e.getMessage());
        }

        assertThat(weather.getName()).isEqualTo(NY_CITY_NAME);
        assertThat(weather.getId()).isEqualTo(420027013); // really strange, it seems that cities can have multiple codes if you search them by zip code
    }

    @Test
    public void getCurrentWeatherByCoordinatesForNewYork() {
        OpenWeatherMapClient client = new OpenWeatherMapClient(webClient, apiCode);

        CityWeather weather = null;
        try {
            weather = client.getCurrentWeatherByCoordinates(-73.99, 40.73);
        } catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }

        assertThat(weather.getName()).isEqualTo(NY_CITY_NAME);
        assertThat(weather.getId()).isEqualTo(NY_CITY_ID);
    }

    @Test
    public void getCurrentWeatherForCitiesByListOfIdForWestEastAndCentralNewYork() {
        OpenWeatherMapClient client = new OpenWeatherMapClient(webClient, apiCode);
        List<CityWeather> weathers = null;
        try {
            weathers = client.getCurrentWeatherByCityID(5106292