text:
Q: Guard clauses in prolog? Do they exist? How are they implemented?
The coroutining predicates of SWI-Prolog (freeze, when, dif etc.) have the functionality of guards. How do they fit in the preferred Prolog programming style?
I am very new to logic programming (with Prolog and altogether) and somewhat confused by the fact that it is not purely declarative, and requires procedural considerations even in very simple cases (see this question about using \== or dif). Am I missing something important?

A: First a terminological issue: Neither freeze/2 nor when/2 nor dif/2 are called guards under any circumstance. Guards appear in such extensions as CHR, or related languages as GHC (link in Japanese) or other Concurrent logic programming languages ; you even (under certain restrictions) might consider clauses of the form

Head :- Guard, !, ...

as clauses containing a guard and the cut would be in this case rather called a commit. But none applies to above primitives. Guards are rather inspired by Dijkstra's Guarded Command Language of 1975.
freeze(X, Goal) (originally called geler) is the same as when(nonvar(X), Goal) and they both are declaratively equivalent to Goal. There is no direct relation to the functionality of guards. However, when used together with if-then-else you might implement such a guard. But that is pretty different.
freeze/2 and similar constructs were for some time considered as a general way to improve Prolog's execution mechanism. However, they turned out to be very brittle to use.  Often, they were too conservative thus delaying goals unnecessarily. That is, almost every interesting query produced a "floundering" answer as the query below. Also, the borderline between terminating and non-terminating programs is now much more complex. For pure monotonic Prolog programs that terminate, adding some terminating goal into the program will preserve termination of the entire program. However, with freeze/2 this is no longer the case. Then from a conceptual viewpoint, freeze/2 was not very well supported by the toplevels of systems: Only a few systems showed the delayed goals in a comprehensive manner (e.g. SICStus) which is crucial to understand the difference between success/answers and solution. With delayed goals Prolog may now produce an answer that has no solution as this one:

?- freeze(X, X = 1), freeze(X, X = 2).
   freeze(X, X=1), freeze(X, X=2).

Another difficulty with freeze/2 was that termination conditions are much more difficult to determine. So, while freeze was supposed to solve all the problems with termination, it often created new problems.
And there are also more technical difficulties related to freeze/2 in particular w.r.t tabling and other techniques to prevent loops. Consider a goal freeze(X, Y = 1) clearly, Y is now 1 even if it is not yet bound, it still awaits X to be bound first. Now, an implementation might consider tabling for a goal g(Y). g(Y) will now have either no solution or exactly one solution Y = 1. This result would now be stored as the only solution for g/1  since the freeze-goal was not directly visible to the goal.
It is for such reasons that freeze/2 is considered the goto of constraint logic programming.
Another issue is dif/2 which today is considered a constraint. In contrast to freeze/2 and the other coroutining primitives, constraints are much better able to manage consistency and also maintain much better termination properties. This is primarily due to the fact that constraints introduce a well defined language were concrete properties can be proven and specific algorithms have been developed and do not permit general goals. However, even for them it is possible to obtain answers that are not solutions.  More about answer and success in CLP.

A: freeze/2 and when/2 are like a "goto" of logic programming. They are not pure, commutative, etc.
dif/2, on the other hand, is completely pure and declarative, monotonic, commutative etc. dif/2 is a declarative predicate, it holds if its arguments are different. As to the "preferred Prolog programming style": State what holds. If you want to express the constraint that two general terms are different, dif/2 is exactly what states this.
Procedural considerations are typically most needed when you do not program in the pure declarative subset of Prolog, but use impure predicates that are not commutative etc. In modern Prolog systems, there is little reason to ever leave the pure and declarative subset.

A: There is a paper by Evan Tick explaining CC:

Informally, a procedure invocation commits to a clause by matching the
  head arguments (passive unification) and satisfying the guard goals.
  When a goal can commit to more than one clause in a procedure, it
  commits to one of them non- deterministically (the other candidates
  are thrown away). Structures appearing in the head and guard of a
  clause cause suspension of execution if the correspond- ing argument
  of the goal is not sufficiently instantiated. A suspended invocation
  may be resumed later when the variable associated with the suspended
  invocation becomes sufficiently instantiated.

THE DEEVOLUTION OF CONCURRENT LOGIC PROGRAMMING LANGUAGES
Evan Tick - 1995
https://core.ac.uk/download/pdf/82787481.pdf
So I guess with some when/2 magic, a commited choice code can
be rewritten into ordinary Prolog. The approach would be as
follows. For a set of commited choice rules of the same predicate:
H1 :- G1 | B1.
...
H2 :- Gn | Bn.

This can be rewritten into the following, where Hi' and Gi'
need to implement passive unification. For example by using
ISO corrigendum subsumes_term/2.
H1' :- G1', !, B1.
..
H1' :- Gn', !, Bn.
H :- term_variables(H, L), when_nonvar(L, H).

The above translation wont work for CHR, since CHR doesn't
throw away candidates.


Plasma: Another State of Matter?
I love those plasma balls! I wish I had access to a site like this when I was younger. I had such a hard time with science and I just hated it. They would just repeat protons, neutrons, electrons, do this, this, and this. And I'd be like so what? I just wish they made it more interactive and showed us real examples and dare I say, make it fun..
Thanks for the comment. Everyone has different learning styles and for many being able to see something concrete, even is it is just a model, makes all the difference. I have to admit, plasma balls are a lot of fun, too.


Specifically the magic of If-Then Blocks.
In this particular case, I'm reading in the point color and if it is less than x, multiply the number by 0. This way I can have blurry point attributes for water stains or rust or the color fade of moss while being able to have a sharp edge for displacement since moss does not fade off, it stops growing.
The SOP is just so much easier to write and read than finagling switch statements or clogging up my network with wires going to multiple math statements.


text:
Cubs Pitching Coach Recovering from Coronavirus
Chicago Cubs pitching coach Tommy Hottovy is recovering from a severe case of COVID-19 that had him quarantined for 30 days.
The 38-year-old Hottovy broke down Wednesday as he detailed a harrowing ordeal during a conference call. The Cubs resume workouts Friday for the first time since Major League Baseball shut down camps on March 12.
Hottovy is in his second season as the Cubs' pitching coach. The former major leaguer said he experienced fevers, breathing trouble and an increased heart rate. The symptoms worsened at night, making it difficult to sleep.
Because he didn't want his wife and young children to catch the virus, Hottovy isolated himself in a spare bedroom at home. He struggled during one Zoom meeting with pitchers, and manager David Ross took over for him.
Things got so bad that Hottovy spent eight hours at Northwestern Memorial Hospital in Chicago on the 12th day he was sick. He finally tested negative about two weeks ago.
Hottovy said he's still weakened from the illness. He considered opting out of the season while he was sick but decided against that.

redpajama_set_name: RedPajamaCommonCrawl


Armstrong was a pilot assigned to the 546th Bomb Squadron in July 1943. He and his crew were shot down on his 11th mission. One crewmember was KIA, while three others - including Armstrong - evaded capture; the remaining six became POWs.
Panel host was Keith Ellefson assisted by Mike Jerrell.


text:
Miles Kane >
Miles Kane - Inhaler Single Review
By Andrew Lockwood on 29 November 2010
Follow Miles Kane
Review of Inhaler Single by Miles Kane
Liverpudlian puppeteering former rascal Miles Kane ventures forth into the solo spotlight with his new single, 'Inhaler'. The single serves as an amuse-bouche to precede both his up coming tour, supporting the Courteeners, and his new hotly anticipated album. The debut solo is described by Kane as quite "Quite hard" and from the evidence of the first single, quite potent as well.
The Cave loving Coral appreciator Kane has taken the heavier elements from his former bands and unleashed a "guitar grinding" 60's infused piece of Indie Power Pop. Released as a single on 22nd of November, but available as a stream from his own website for some time, Inhaler has been gathering momentum through major league national airplay for the past few weeks. This short, sharp, shouty and anthemic slice from Kane hasn't made the midweek chart update but it has provided a tasty morsel from the upcoming solo album.
Andrew Lockwood
Official Site - http://www.mileskane.com
Miles Kane's new album is a 'samba-y Motown thing'
Miles Kane wants to film tour documentary
Miles Kane reveals 'badass' winter style tip
Miles Kane: Last Shadow Puppets could reform
Miles Kane wants to star in wrestling series GLOW
Miles Kane was awe-struck getting fish and chips with Paul Weller
Miles Kane's movie regret
Miles Kane ditched 'slow' Lana Del Rey songs from album
Miles Kane doesn't feature on Arctic Monkeys album
Miles Kane drops Lana Del Rey and Jamie T collaboration
Miles Kane joins Lana Del Rey and Jamie T for new album
Musicians Pay Tribute To Record Label Boss Alan Wills
Miles Kane: I'm not Elvis
Miles Kane wants Jack White collaboration
Musician Index: 0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z


Home Wedding and Party Gifts Gift Ideas Unusual Favors Murano art deco collection starfish wine stopper.
Inspired by the artisans of Murano Italy, these handcrafted Murano like glass bottle stoppers are stunning and will wow your guests with it' s elegance and style.From Cassiani collections exclusive Murano art deco collection this unique starfish design handmade Venetian like glass wine stopper is accented with gorgeous blue and white swirl colored glass attached to a Crystal clear glass stopper base, and it is sure to impress your guest with it' s sophisticated design. Each of these unique art deco bottle stoppers are handmade and because of that no two are exactly alike and would make a perfect addition to your day. They come packaged in high quality two piece black gift box and set in a pillow soft satin lining, each stopper measure approximately 5" in length.
Notify me of updates to Murano art deco collection starfish wine stopper.


text:
Q: How to do performance optimization while serializing lots of GeoDjango geometry fields? I'm developing a GeoDjango app which use the provided WorldBorder model in the tutorial. I also created my own Region model which is tied to WorldBorder. So a WorldBorder/Country can have multiple Regions which has borders (MultiPolygon field) in it too.
I made the API for it using DRF but it's so slow, it takes 16 seconds to load all WorldBorder and Regions in GeoJSON format. The returned JSON size is 10MB though. Is that reasonable?
I even change the serializer to serpy which is way much faster than the DRF GIS serializer but only offers 10% performance improvement.
Turns out after profiling, most of the time is spent in the GIS functions to convert data type in the database to list of coordinates instead of WKT. If I use WKT, the serialization is much faster (1.7s compared to 11.7s, the WKT is only for WorldBorder MultiPolygon, everything else is still in GeoJson)
I also tried to compress the MultiPolygon using ST_SimplifyVW with low tolerance (0.005) to preserve the accuracies, which brings down the JSON size to 1.7 MB. This makes the total load to 3.5s. Of course I can still find which is the best tolerance to balance accuracy and speed.
Below is the profiling data (the sudden increase of queries in the simplified MultiPolygon is due to bad usage of Django QS API to get use of ST_SimplifyVW)

EDIT: I fixed the DB query so the query calls stays the same at 75 queries and as expected, it does not increase the performance significantly.
EDIT: I continued to improve my DB queries. I reduced it to just 8 queries now. As expected, it does not improve that much performance.

Below is profiling for the function calls. I highlight the part which took most of the time. This one is using vanilla DRF GIS implementation.
Below is when I use WKT for one of the MultiPolygon field without ST_SimplifyVW.

Here's the models as requested by @Udi
class WorldBorderQueryset(models.query.QuerySet):
    def simplified(self, tolerance):
        sql = "SELECT ST_SimplifyVW(mpoly, %s) AS mpoly"
        return self.extra(
            select={'mpoly': sql},
            select_params=(tolerance,)
        )

class WorldBorderManager(models.Manager):
    def get_by_natural_key(self, name, iso2):
        return self.get(name=name, iso2=iso2)

    def get_queryset(self, *args, **kwargs):
        qs = WorldBorderQueryset(self.model, using=self._db)
        qs = qs.prefetch_related('regions',)
        return qs

    def simplified(self, level):
        return self.get_queryset().simplified(level)

class WorldBorder(TimeStampedModel):
    name = models.CharField(max_length=50)
    area = models.IntegerField(null=True, blank=True)
    pop2005 = models.IntegerField('Population 2005', default=0)
    fips = models.CharField('FIPS Code', max_length=2, null=True, blank=True)
    iso2 = models.CharField('2 Digit ISO', max_length=2, null=True, blank=True)
    iso3 = models.CharField('3 Digit ISO', max_length=3, null=True, blank=True)
    un = models.IntegerField('United Nations Code', null=True, blank=True)
    region = models.IntegerField('Region Code', null=True, blank=True)
    subregion = models.IntegerField('Sub-Region Code', null=True, blank=True)
    lon = models.FloatField(null=True, blank=True)
    lat = models.FloatField(null=True, blank=True)

    # generated from lon lat to be one field so that it can be easily
    # edited in admin
    center_coordinates = models.PointField(blank=True, null=True)

    mpoly = models.MultiPolygonField(help_text='Borders')

    objects = WorldBorderManager()

    def save(self, *args, **kwargs):
        if not self.center_coordinates:
            self.center_coordinates = Point(x=self.lon, y=self.lat)
        super().save(*args, **kwargs)

    def natural_key(self):
        return self.name, self.iso2

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'Country'
        verbose_name_plural = 'Countries'
        ordering = ('name',)

class Region(TimeStampedModel):
    name = models.CharField(max_length=100, unique=True)
    country = models.ForeignKey(WorldBorder, related_name='regions')
    mpoly = models.MultiPolygonField(help_text='Areas')
    center_coordinates = models.PointField()

    moment_category = models.ForeignKey('moment.MomentCategory',
                                        blank=True, null=True)

    objects = RegionManager()
    no_joins = models.Manager()

    def natural_key(self):
        return (self.name,)

    def __str__(self):
        return self.name

# TODO might want to have separate table for ActiveCity for performance
# improvement since we have like 50k cities
class City(TimeStampedModel):
    country = models.ForeignKey(WorldBorder, on_delete=models.PROTECT,
                                related_name='cities')
    region = models.ForeignKey(Region, blank=True, null=True,
                               related_name='cities',
                               on_delete=models.SET_NULL)

    name = models.CharField(max_length=255)
    accent_city = models.CharField(max_length=255)
    population = models.IntegerField(blank=True, null=True)
    is_capital = models.BooleanField(default=False)

    center_coordinates = models.PointField()

    # is active marks that this city is a destination
    # only cities with is_active True will be put up to the frontend
    is_active = models.BooleanField(default=False)

    objects = DefaultSelectOrPrefetchManager(
        prefetch_related=(
            'yes_moment_beacons__activity__verb',
            'social_beacons',
            'video_beacons'
        ),
        select_related=('region', 'country')
    )
    no_joins = models.Manager()

    def natural_key(self):
        return (self.name,)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name_plural = 'Cities'

class Beacon(TimeStampedModel):
    # if null defaults to city center coordinates
    coordinates = models.PointField(blank=True, null=True)
    is_fake = models.BooleanField(default=False)

    # can use city here, but the %(class)s gives no space between words
    # and it looks ugly

    def validate_activity(self):
        # activities in the region
        activities = self.city.region.moment_category.activities.all()
        if self.activity not in activities:
            raise ValidationError('Activity is not in the Region')

    def clean(self):
        self.validate_activity()

    def save(self, *args, **kwargs):
        # doing a full clean is needed here is to ensure code correctness
        # (not user),
        # because if someone use objects.create, clean() will never get called,
        # cons is validation will be done twice if the object is
        # created e.g. from admin
        self.full_clean()

        if not self.coordinates:
            self.coordinates = self.city.center_coordinates
        super().save(*args, **kwargs)

    class Meta:
        abstract = True

class YesMomentBeacon(Beacon):
    activity = models.ForeignKey('moment.Activity',
                                 on_delete=models.CASCADE,
                                 related_name='yes_moment_beacons')
    # ..........
    # other fields

    city = models.ForeignKey('world.City', related_name='yes_moment_beacons')

    objects = DefaultSelectOrPrefetchManager(
        select_related=('activity__verb',)
    )

    def __str__(self):
        return '{} - {}'.format(self.activity, self.coordinates)

# other beacon types.......

Here's my serializer as request by @Udi
class RegionInWorldSerializer(GeoFeatureModelSerializer):
    yes_moment_beacons = serializers.SerializerMethodField()
    social_beacons = serializers.SerializerMethodField()
    video_beacons = serializers.SerializerMethodField()

    center_coordinates = GeometrySerializerMethodField()

    def get_center_coordinates(self, obj):
        return obj.center_coordinates

    def get_yes_moment_beacons(self, obj):
        count = 0

        # don't worry, it's already prefetched in the manager
        # (including the below methods) so len is used instead of count
        cities = obj.cities.all()

        for city in cities:
            beacons = city.yes_moment_beacons.all()
            count += len(beacons)
        return count

    def get_social_beacons(self, obj):
        count = 0

        cities = obj.cities.all()

        for city in cities:
            beacons = city.social_beacons.all()
            count += len(beacons)
        return count

    def get_video_beacons(self, obj):
        count = 0

        cities = obj.cities.all()

        for city in cities:
            beacons = city.video_beacons.all()
            count += len(beacons)
        return count

    class Meta:
        model = Region
        geo_field = 'center_coordinates'
        fields = ('name', 'yes_moment_beacons', 'video_beacons',
                  'social_beacons')

class WorldSerializer(GeoFeatureModelSerializer):
    center_coordinates = GeometrySerializerMethodField()

    regions = RegionInWorldSerializer(many=True, read_only=True)

    def get_center_coordinates(self, obj):
        return obj.center_coordinates

    class Meta:
        model = WorldBorder
        geo_field = 'mpoly'

        fields = ('name', 'iso2', 'center_coordinates', 'regions')

This is the main query
def get_queryset(self):
    tolerance = self.request.GET.get('tolerance', None)
    if tolerance is not None:
        tolerance = float(tolerance)
        return WorldBorder.objects.simplified(tolerance)
    else:
        return WorldBorder.objects.all()

Here's a slice of the API response (1 of 236 objects) using ST_SimplifyVW with a high tolerance. If I don't use it, Firefox hangs because it can't handle 10 MB of JSON I think. This particular country borders data is small compared to other countries. The JSON returned here is compressed from 10MB to 750kb due to ST_SimplifyVW. Even with only 750KB of JSON, it took 4.5s in my local machine.
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "coordinates": [
          [
            [
              [
                74.915741,
                37.237328
              ],
              [
                74.400543,
                37.138962
              ],
              [
                74.038315,
                36.814682
              ],
              [
                73.668304,
                36.909637
              ],
              [
                72.556641,
                36.821266
              ],
              [
                71.581131,
                36.346443
              ],
              [
                71.18779,
                36.039444
              ],
              [
                71.647766,
                35.419991
              ],
              [
                71.496094,
                34.959435
              ],
              [
                70.978592,
                34.504997
              ],
              [
                71.077209,
                34.052216
              ],
              [
                70.472214,
                33.944153
              ],
              [
                70.002777,
                34.052773
              ],
              [
                70.323318,
                33.327774
              ],
              [
                69.561096,
                33.08194
              ],
              [
                69.287491,
                32.526382
              ],
              [
                69.328247,
                31.940365
              ],
              [
                69.013885,
                31.648884
              ],
              [
                68.161102,
                31.830276
              ],
              [
                67.575546,
                31.53194
              ],
              [
                67.778046,
                31.332218
              ],
              [
                66.727768,
                31.214996
              ],
              [
                66.395538,
                30.94083
              ],
              [
                66.256653,
                29.85194
              ],
              [
                65.034149,
                29.541107
              ],
              [
                64.059143,
                29.41444
              ],
              [
                63.587212,
                29.503887
              ],
              [
                62.484436,
                29.406105
              ],
              [
                60.868599,
                29.863884
              ],
              [
                61.758331,
                30.790276
              ],
              [
                61.713608,
                31.383331
              ],
              [
                60.85305,
                31.494995
              ],
              [
                60.858887,
                32.217209
              ],
              [
                60.582497,
                33.066101
              ],
              [
                60.886383,
                33.557213
              ],
              [
                60.533882,
                33.635826
              ],
              [
                60.508331,
                34.140274
              ],
              [
                60.878876,
                34.319717
              ],
              [
                61.289162,
                35.626381
              ],
              [
                62.029716,
                35.448601
              ],
              [
                62.309158,
                35.141663
              ],
              [
                63.091934,
                35.432495
              ],
              [
                63.131378,
                35.865273
              ],
              [
                63.986107,
                36.038048
              ],
              [
                64.473877,
                36.255554
              ],
              [
                64.823044,
                37.138603
              ],
              [
                65.517487,
                37.247215
              ],
              [
                65.771927,
                37.537498
              ],
              [
                66.302765,
                37.323608
              ],
              [
                67.004166,
                37.38221
              ],
              [
                67.229431,
                37.191933
              ],
              [
                67.765823,
                37.215546
              ],
              [
                68.001389,
                36.936104
              ],
              [
                68.664154,
                37.274994
              ],
              [
                69.246643,
                37.094154
              ],
              [
                69.515823,
                37.580826
              ],
              [
                70.134995,
                37.529045
              ],
              [
                70.165543,
                37.871719
              ],
              [
                70.71138,
                38.409866
              ],
              [
                70.97998,
                38.470459
              ],
              [
                71.591934,
                37.902618
              ],
              [
                71.429428,
                37.075829
              ],
              [
                71.842758,
                36.692101
              ],
              [
                72.658508,
                37.021202
              ],
              [
                73.307205,
                37.462753
              ],
              [
                73.819717,
                37.228058
              ],
              [
                74.247208,
                37.409546
              ],
              [
                74.915741,
                37.237328
              ]
            ]
          ]
        ],
        "type": "MultiPolygon"
      },
      "properties": {
        "name": "Afghanistan",
        "iso2": "AF",
        "center_coordinates": {
          "coordinates": [
            65.216,
            33.677
          ],
          "type": "Point"
        },
        "regions": {
          "type": "FeatureCollection",
          "features": [
            {
              "type": "Feature",
              "geometry": {
                "coordinates": [
                  66.75292967820785,
                  34.52466146754814
                ],
                "type": "Point"
              },
              "properties": {
                "name": "Central Afghanistan",
                "yes_moment_beacons": 0,
                "video_beacons": 0,
                "social_beacons": 0
              }
            },
            {
              "type": "Feature",
              "geometry": {
                "coordinates": [
                  69.69726561529792,
                  35.96022296494905
                ],
                "type": "Point"
              },
              "properties": {
                "name": "Northern Highlands",
                "yes_moment_beacons": 0,
                "video_beacons": 0,
                "social_beacons": 0
              }
            },
            {
              "type": "Feature",
              "geometry": {
                "coordinates": [
                  63.89541422401191,
                  32.27442932956255
                ],
                "type": "Point"
              },
              "properties": {
                "name": "Southwestern Afghanistan",
                "yes_moment_beacons": 0,
                "video_beacons": 0,
                "social_beacons": 0
              }
            }
          ]
        }
      }
    },
    ........
}

So the point here, is GeoDjango is not fast as I expected or that performance numbers is expected? What can I do to improve performance while still outputting GeoJSON i.e. not WKT. Is fine tuning tolerance is the only way? I might also separate the endpoint for getting the regions though.

A: Since your geographic data does not change frequently, try caching all region/country polygons in pre-calculated geojsons.  I.e., create a /country/123.geojson API call or static file with the geo data for all regions in this country, probably simplified in advance.
Your other API calls should return only the numeric data, without geographic polygons, leaving the combining task to the client.

A: In case anybody else runs into similar issues when trying to optimize PostGIS. One possible solution to speed up the serialization process is to have it done directly on the database side and not rely on geodjango. This function will take a queryset and return the geojson. Its useful for when you need to do a lot of geojson serialization on the fly.
def queryset_geojson_serializer(queryset: QuerySet,
                            fields: List[str],
                            spatial_field: str,
                            bbox: Tuple[float, float, float, float] = None,
                            limit: int = 1000,
                            decimal_places: int = 4,
                            ) -> str:

"""
Serialize queryset into geojson. This function cannot handle related fields.

:param queryset: Queryset with Spataial Field. All fields must be part of queryset and not related.
:param fields: List of Fields to include as parameters.
:param spatial_field: Name of spatial field.
:param bbox: Tuple of bounding box. (xmin, ymin, xmax, ymax)
:param limit: Limit number of returned values.
:param decimal_places: Number of decimal places in geojson geometry.
:return: Geojson of dataset
"""

# test to make sure that all fields are in the model
# this returns a better error when the field isn't present.
model = queryset.model
fields_for_test = fields + [spatial_field]
for f in fields_for_test:
    model._meta.get_field(f)

if not isinstance(limit, int):
    raise ValueError(f'limit must be an integer, not {type(limit)}')

# try to get srid from the spatial field
if model._meta.get_field(spatial_field).srid:
    srid = model._meta.get_field(spatial_field).srid
else:
    srid = 4326

# filter queryset to ensure that spatial field not Null
queryset = queryset.filter(**{f"{spatial_field}__isnull": False})

# get unique pk list
pk = model._meta.pk.name
qs_id_list = tuple(queryset.values_list(pk, flat=True)[0:limit])

# if values
if len(qs_id_list) > 0:
    # generate initial SQL
    query_raw = f'SELECT {", ".join(fields)}, st_AsGeoJSON({spatial_field}, {decimal_places}) AS geojson FROM {model._meta.db_table}'

    # select only values in queryset
    where = f' WHERE {pk} IN' + str(qs_id_list)

    # filter results based on bounding box in the query
    if bbox:
        where += f' AND loc && ST_MakeEnvelope({bbox[0]}, {bbox[1]}, {bbox[2]}, {bbox[3]}, {srid})'

    query_raw += where

    result = queryset.raw(query_raw)

    # generate features
    features = []
    for v in result:
        properties = {field: str(getattr(v, field)) for i, field in enumerate(fields)}
        feature = {'type': 'Feature',
                   'properties': properties,
                   'geometry': json.loads(v.geojson)
                   }
        features.append(feature)
else:
    features = []

# convert python dictionary into json
geojson = json.dumps({
    "type": "FeatureCollection",
    "crs": {"type": "name", "properties": {"name": f"EPSG:{srid}"}},
    'features': features
})

return geojson

A Couple of Notes:

Requires PostGIS. Uses the st_asGeoJSON method to create geojson features.

Doesn't work with related fields.

A: Have you considered using the Topojson format? It reduces file size considerably. Topojson can then be converted back to geojson using leaflet, openlayers...

redpajama_set_name: RedPajamaStackExchange


The first issue of the Kalle Anka & Co (Donald Duck and Friends) comic book ever published in Sweden has been sold for just over 100,000 kronor ($16,600) on the Tradera online auction website.
The comic book was first released in September of 1948 and cost 60 öre at the time.
Local media in Halland county report that the magazine belonged to Nore Norold, the late eccentric filmmaker from Laholm on Sweden's west coast who died in 2004 at the age of 66.
The Hallands Nyhter newspaper reports that Nore's father was a collector and always purchased two of every toy and comic book he gave to his son.
As an adult, Nore sold off some of his collection, including a second issue of the Kalle Anka comic book series, which fetched 90,000 kronor in the late 1980s.
In May, several first editions from Nore's sought-after collection of comic books were put up for sale on Tradera. The first edition Kalle Anka had an opening bid price of 25,000 kronor.
When the auction was stopped on Sunday night, the final bid was 105,600 kronor.
However, the price is not a record for the first issue of the first edition of Kalle Anka.
Nine years ago collector Bo Engwall from the Stockholm suburb of Täby purchased a first edition for 170,000 kronor, which made him the owner of two copies.
Nore Norold, often called the 'Fellini of Laholm', gained near-cult status in his hometown for his—according to many—awful, low-budget films, which he wrote, directed, and filmed himself.
Altogether Norold made a total of six feature films.


Thank you for your interest in the Airsoft event being run by the 1st Harston Scout Troop. This page covers all of the information about the event. The normal rate for the package we have managed to secure is £50, although we have kindly been offered an exclusive rate of £37. The site will be hired privately and only Scouts, Explorers and Leaders will be participating.


Sublime text 3 plugin for PyBuilder.
Does not block so you can work or check out what to do next while building.
Install it with package control.
python_interpreter This is the path to your python interpreter. Could be your system python or a virtualenv.
project_root The root of your project where the build descriptor (build.py) is located.
I'm using Anaconda so I added the project sources with the extra_paths setting so that autocompletion and goto definition work. It is not necessary for sublime_pybuilder to work.
Special case - only if you want to work on the PyBuilder project itself!
In order to build pybuilder, you need to run a bootstrapping script. This script must be run with the right python interpreter in order to see your packages. Thus we need to specify the path to the bootstrapping script additionally with the setting pyb_path.
sublime_pybuilder_output_panel_color_scheme can be set to a color scheme you like (the default is "Packages/Color Scheme - Default/Monokai.tmTheme"). It will be used for the output panel.


text:
Q: Detecting overflow content I've tried to find an answer for a long time but I didn't find anything.
I'm using contentEditable div to write a text exactly on 210x297mm page. When page ends javascript adds next one:
if(container.scrollHeight > container.clientHeight)
{
    page_number = page_number+1
    $('#editor').append('

');
    $("#page_"+page_number).attr("tabindex",-1).focus();
}

Everything works fine, unless I paste any longer text inside the div at the end of each page. Then only the part of the text apears and the rest goes outside div (and because of 'overflow: hidden' is invisible).
Is there any javascript/jquery method to detect overflow's content and move it into the next page (I didn't find it) or any CSS style that will allow me to separate the text inside each div?
I've read about CSS3 multi-column and I need sth doing similar operations, but separating rows, not columns.

A: I think your best bet is to not use overflow: hidden but auto and try to detect with JavaScript if there's an overflow by checking for scroll height.
In this case you can dynamically start moving parts of the text (word by word maybe) until the content can fit the available space.
For some concrete techniques check this thread out for example: detect elements overflow using jquery


text:
Demi Pointe Shoes For Beginners
Demi Pointe Shoes For Beginners - Shoes For Dance Online
demi pointe shoes for beginners, You won't have to sacrifice style for comfort with a pair of ballet flats. It carries a range of ballet styles that you are sure to love. Shop now!
The school board's plan also calls for a dance studio and fitness center to be added later as funds become available. The gym and locker rooms are expected to cost $11.8 million, while the dance studio and fitness center would add another $2.2 million to the price tag. "The gym will have a moveable wall so you can have two things going on at the same time or you can move the wall back to accommodate the entire study body," school board president Tina Orsi-Hartigan said. "The locker rooms will have new restrooms. The current ones are too small and in disrepair. Also, the locker rooms will have clear sight lines for supervision to help avoid unsuitable behavior.".
The facilities will be built to accommodate increasing enrollment, In 2011, Fisher had 1,045 students, At the start of this school year, Fisher's enrollment was 1,143 students, A report prepared in July 2012 projects the school's enrollment will increase to approximately 1,385 students by 2021, So more classrooms will be needed, too, But the school board took that into account when it decided that the new fitness center and dance studio could be designed now but phased in later, "That will free up classrooms that are now being used for dance and fitness," Orsi-Hartigan said, "We're hopeful demi pointe shoes for beginners we can build the dance and fitness studios since it frees up those extra classrooms, We're trying to be creative with space."..
An estimated $5.8 million in Measure E funds and developer fees will help fund the project. The rest of the money could possibly come from a capital reserve fund and deferred or restricted maintenance accounts. "The Los Gatos Education Foundation is also discussing a capital campaign to bridge the gap," Orsi-Hartigan said. She noted that the Fisher gym is one of the district's most used facilities. "LGS Recreation uses it after school and on weekends," she said. "We're very pleased to come to an agreement on going forward, so we can accommodate all the growth we know is coming to Fisher.".
"What's 183 and 262?" I asked, He immediately knew what I was demi pointe shoes for beginners doing, and he quickly responded "445.", "Plus 89," I added, "That's 534," he responded, I went on, and he continued to add things in his head and continued to get the correct answers, It reminded me of this old story about him, Math was always his best subject, So when he brought home a B on his report card, I wasn't exactly pleased; in fact, I was downright disappointed..
After all, I knew that he was capable of better. Hey, don't blame me. He's the one who came home bragging about his little rendezvous with the captain of the dance team (oh, it wasn't as exciting as it sounds–he was just so good at math that his teacher selected him to tutor some of his classmates … including the beautiful Jessica!). So if he was capable of tutoring others, he was most certainly capable of getting an A, right? But he came home with a B. Of course, his grandmother thought that the B was just fine.
"Oh, you're just putting too much pressure on him," she said, "There's nothing wrong with a B.", "There is," I disagreed, "if he's capable of getting an A, He's just not working to his full demi pointe shoes for beginners potential, He's just lazy.", "Yeah, well, where do you think he gets that?" she asked, "You weren't exactly Mr, Wizard when you were in high school.", "Gee, thanks, Mom.", "I remember when you were a junior in high school," she added, "I would have been thrilled if you brought home a B in math."..
"But that was advanced algebra," I said defensively. "It was really tough.". "Well, maybe his math class is tough, too," she said. "And I think you came home with a D.". I don't know what it was about her. Every time I tried to complain to her about something the boys had done, she would come to their defense by sharing something from my childhood. "And then there was history … ". "OK, so I got a D in math," I finally blurted, hoping to cut her off before Kevin heard her. "But just because I did, that doesn't mean that he has to.".
Anyway, he was better at math than I ever was … a lot better, He was so good, in fact, that when he was around, I never even needed a calculator, And I'd always try to stump him, "Hey, what's 89 plus 64?" I'd ask, just picking two numbers out of midair, "Uh, 153," he'd respond, barely taking a breath, "Plus 96.", "That's 249.", "Plus 323.", He'd cast a short demi pointe shoes for beginners glance skyward, squint one eye, and, faster than I could tap the digits into the calculator keyboard, he'd answer, "568."..
Pointe Shoes For Small Feet
Ballet Slippers Essie Queen
How To Keep Pointe Shoes From Twisting
Blue Pointe Shoes
Bloch Pointe Shoes
Ballet Shoes Colour
Pointe Shoes For Beginners Amazon
Ballet Flats With Ribbon Ankle Ties


1, 2, 3... Paint With Me!
Inspired by Jasper Johns, this craft is great for toddlers to learn numbers, explore mixing paint, and creating works of art. Perfect for giving as gifts for any occasion or decorating your own home!
This simple craft helps toddlers work on fine motor skills while making a keepsake craft for Father's Day.


Account-based marketing ABM is a white-hot buzzword for B2B marketers right now.
You see it everywhere: guides, eBooks, infographics, blog posts by handsome bald content marketers–the works. Yet as much as everyone is talking about ABM, there s still plenty of confusion about what it is and how best to do it.
It s all well and good to say, We should get some of that sweet account-based marketing; I hear it s a gold mine. But implementing a program in a strategic way takes a little more digging.
What Is Account-Based Marketing? My favorite definition of ABM comes from Engagio CEO Jon Miller: Account-based marketing: a strategic approach that coordinates personalized marketing and sales efforts to open doors and deepen engagement at specific accounts.
– Jon Miller, Engagio. Think of traditional marketing as a confetti cannon.
Account Based Marketing, the way to win large deals?
In the age of hyper-targeted prospecting and nurturing, your content marketing program might not be sufficiently surgical. Considering the very nature of B2B marketing, your prospecting list is likel….


Your 20s are a decade full of change. You're just finding your feet as an adult, establishing a career, navigating new friendships and relationships and finding out who you are and what you want. And often, establishing savings can be a low priority at this time. Need to purchase a home, pay for kids' education and even think of retirement seem really distant. But actually, your 20s are the ideal time to make some smart financial choices and get into good habits for when life takes over. Those far away, large-sum targets can seem impossible, but by taking lots of little steps, early on, you can make a difference to your situation at the end of the decade, and face turning 30 in a much better position.
A lot of us have good intentions when it comes to saving some of our income, only to find at the end of the month that our outgoings have spiralled and we don't have anything left over to save. Or likewise, if we have a heavy month, it can be tempting to dip into our savings to fund that 'must have' festival ticket or weekend away. So a good tip is to keep your savings account with a different bank from your primary checking account. Having an extra step to do to be able to transfer funds gives you just the pause you need to make you think about if that splurge is worth it. Set up a direct debit to pull money into your savings each month, the day after you get paid. It will be gone before you can spend it, and when you remember to take a peek, it will have mounted up nicely.
The power of negotiation is a great way to lower your monthly outgoings, which gives you far more scope for spare cash to save. So make lowering the bills your special mission. Anything you pay each month, like a mobile phone bill or a utility, it's worth speaking to your provider to see what discount they can offer, or use comparison sites to find the best deals. If you're paying towards servicing debt, then consider debt relief programs to lower your monthly costs.
Set aside a week each month to keep cash free. It takes a little forward planning, but it's a powerful habit to get into. Make sure the bills are paid, you have enough food in the house, and you've prepped some healthy and tasty lunches in advance, then hide your cards and cash in a drawer and go through the week without spending. It's easier than you think!
We're all imbued in a have-it-now culture, but you can rediscover the power of delayed gratification. Planning ahead to replace big-ticket items like electronics and white goods during Black Friday can save you hundreds. Knowing the off peak travel times can net you a cheaper holiday. And keeping a wish list where you add the things that would have been impulse purchases is also a great idea. If you still want it at the end of the month, go ahead – but you'll be surprised how many 'must-haves' you no longer feel the need for with an inbuilt cooling off period.
Buy Little And Better QualityIt's good for the planet, your finances, and your Marie Kondo-ed wardrobe – make sure you buy the best you can afford, but much less often. Discover the joy of less and quality items and realise that cost per wear is the crucial metric – that sale bargain isn't a bargain if you only wear it once.


text:
Tag Archives: stealth
Assassin's Creed Syndicate, a big ol' boring collectathon
I started playing Assassin's Creed Syndicate when I came home from the hospital last August; I'm still playing it. It's a long one, bloated with things to collect and many uninspired missions that I no longer even care about completing the way the developers clearly want me to, but I like finishing things that I start, and so I've stuck with it still despite it being really boring. Those are both my words and Melanie's word; the poor thing has had to endure watching me run around like a maniac in search of every single collectible. I'm currently in sequence 8, with one more sequence to go, along with a few Achievements to unlock because, at this point, I've put in a good chunk of work to unlock them already…might as well see them pop.
Assassin's Creed Syndicate is set in a fictional history of real-world events and follows the centuries-old struggle between the Assassins, who fight for peace with liberty, and the Templars, who desire peace through order. The story is set in Victorian-era London and follows twin assassins Jacob and Evie Frye as they navigate the corridors of organized crime and take back the city from Templar control. Naturally, this being an Assassin's Creed game, you'll run into many a notable figures as you stab and loot your way to victory, such as novelist Charles Dickens, biologist Charles Darwin, inventor Alexander Graham Bell, political theorist Karl Marx, nurse Florence Nightingale, Duleep Singh (the last maharajah of the Sikh Empire), Sergeant Frederick Abberline of the Metropolitan Police Service (known for his investigation of Jack the Ripper), and Queen Victoria. Phew.
It's an Assassin's Creed game, which means it does all the same things previous ones have done, but on a grander scale, this being on the Xbox One and not the Xbox 360. It's got main missions, side missions, a thousand collectibles, gear to upgrade, income to earn, gangs to upgrade, skills and perks to unlock, and so on, just like Assassin's Creed: Black Flag–maybe the last one I've truly enjoyed–Assassin's Creed II, and Assassin's Creed: Brotherhood. I wasn't thrilled with Assassin's Creed: Revelations, and all I remember from it is that is focused heavily on bombs. Anyways, taking place in a bustling place like London, the buildings are bigger and more closely connected to each other; to help get around somewhat faster, both Jacob and Evie have access to a grappling hook device that shoots a zipline from one place to another. This still doesn't make all the running around fun or that much quicker, as climbing can still be iffy, with the occasional leaping off of rooftops to your swift death below.
Here's something funny I've been doing while running around from one place to another simply to collect a pressed flower, a poster, a beer bottle, or a chest full of crafting/upgrade ingredients. I've been telling Alexa–that robot lady everyone seemingly now has in their house–to play a playlist of polka music. Honestly, it makes all the to-ing and fro-ing much more enjoyable, because it's not like any interesting dialogue is happening at this time, and getting from A to B can often take a couple of minutes, depending on where you are and whether or not there's a fast travel viewpoint nearby. At some point, I have to give up the notion that I'm going to open every single chest in this game because…there are just too many.
Combat in Assassin's Creed Syndicate is still a button-mashy mess. You can string together a couple of combos, as well as counter an incoming attack from a different enemy, but only if you time it just right. Then, some enemies, require you to break their stance by stunning them before you can begin a new combo. This sounds par for the course, and it is, but things go sour real fast the minute you have four or more enemies attacking you at once, as well as snipers on rooftops that you have to dodge. I eventually began using hallucinogenic darts from a distance to get enemies to fight each other, with me sneaking in at the end to finish off the remaining survivors. It's not the coolest way to go about it, but it works. Also, while the skill trees make it seem like Evie is the sneaky one and Jacob is the more aggressive combatant, both play exactly the same way and can unlock the same abilities for fighting…so there's really no point in having two playable characters other than for story-related reasons.
Looking at my games to install list on the ol' Xbox One, I still have Assassin's Creed III to play. Also, this month, we're getting a free copy of Assassin's Creed: Rogue from Games With Gold. Ugh. I'll never be done with this series. Plus, there's the newest ones, Origins and Odyssey, which, according to podcasts I've listened, sound like they are too big for their britches. Can't wait. Part of me enjoys the idea of a collectathon, but maybe only one that is both not this big or a bit more fun to play. Heck, I enjoyed collecting 10 eggs recently in Dear Cousin more than anything I've accomplished in Assassin's Creed Syndicate. Please pray that I'm finished with this beast sooner than later.
Posted in achievements, entertainment, impressions, musings, videogames, xbox one
Tagged action adventure, Assassin's Creed, Assassin's Creed: Syndicate, collectathon, collectibles, Evie Frye, Jacob Frye, London, open world, open-world game, stealth, Ubisoft, Ubisoft Quebec
2019 Game Review Haiku, #14 – Assassin's Creed Syndicate
Posted on February 3, 2019 | 1 comment
Ungodly boring
Hate tail missions, save the Queen
At least there was cake
And we're back with these little haikus of mine. Go on, gobble 'em up. However, if you want to read more of my in-depth thoughts about these games that I'm beating, just search for them by name on Grinding Down. As always, enjoy my videogamey take on Japanese poetry, even if they aren't instant classics, such as the works of Matsuo Basho, Yosa Buson, or Kobayashi Issa. Hey, not everyone gets to be that great.
Posted in 2019 completed games, achievements, entertainment, fail, haiku, haiku review, haikus, just beat, poetry, rant, videogames, xbox one
Tagged Achievements, Assassin's Creed, Assassin's Creed: Syndicate, Games with Gold, haiku, haikus, poetry, stealth, tailing, tailing missions, Ubisoft
2018 Game Review Haiku, #33 – Thirty Flights of Loving
A heist's aftermath
Piece together what went wrong
Replay to learn more
For 2018, I'm mixing things up by fusing my marvelous artwork and even more amazing skills at writing videogame-themed haikus to give you…a piece of artwork followed by a haiku. I know, it's crazy. Here's hoping you like at least one aspect or even both, and I'm curious to see if my drawing style changes at all over three hundred and sixty-five days (no leap year until 2020, kids). Okay, another year of 5–7–5 syllable counts is officially a go.
Posted in 2018 completed games, artwork, entertainment, haiku review, movies, videogames
Tagged Blendo Games, Brendon Chung, Chris Remo, Citizen Abel, exploration, first-person shooter, haiku, haikus, heists, narrative, non-linear storytelling, poetry, Quake 2, Quake II engine, smash cuts, spies, stealth, Thirty Flights of Loving
In Assassin's Creed: Revelations, you fight ideas with bombs
I'm continuing to work through the Assassin's Creed games…well, the ones I have anyways. Left to go in my current collection are the topic du jour (psst, that's French for Assassin's Creed: Revelations), Assassin's Creed III, and two entries from the Assassin's Creed Chronicles sub-series, which I'm lead to believe are a bit different in structure and style. I've already played the first game, the second game, the sequel to the second game, and the one featuring pirates and battles at sea. I like each of them to varying degrees.
All right, here we go. Assassin's Creed: Revelations is the third and final chapter in the so-called Ezio trilogy. It picks up right after Assassin's Creed: Brotherhood, which, I had completely forgotten, ended with a big ol' killer twist. Anyways, spoiler alert for a 2011 game…in three, two, one. Desmond Miles has fallen into a coma due to the stress of being forced to kill his ally Lucy Stillman while being controlled by Juno, the hologram attached to the Apple of Eden. In an effort to save Desmond's mind, Rebecca Crane places him back in the Animus, in the machine's safe mode called the "Black Room". Alas, the only way to repair his mind is by reliving his ancestors' memories until there is nothing left for them to show Desmond, at which point the Animus can separate Desmond from Ezio and Altaïr and awaken him from his coma. Er, yeah–it's not at all confusing. And so, you jump back into the perspective of the still suave but older Ezio Auditore. Four years after ending the life of Cesare Borgia, Ezio has traveled to the former Assassins' fortress in Masyaf to discover the secrets Altaïr had previously unearthed and find the true purpose of the assassins.
Phew. Look, at this point, I'm not really paying all that much attention to the plot, especially since I've already heard that, despite the game's boasting subtitle, there are very few revelations to learn in Assassin's Creed: Revelations. I'm here for the running around, rooftop climbing, knife throwing, stealth stabbing, hay jumping, bomb tossing, collectible finding antics. Also, buying different dyes for Ezio's outfit always makes me happy, especially the green-themed ones, and watching Constantinople grow due to his influence and the money roll into your bank account in larger amounts is extremely satisfying.
As far as I can tell, this plays just as well as Assassin's Creed IV: Black Flag. I think by this point in the series Ubisoft tightened the controls and really made everything feel both good and natural. I'm finding myself not making as many jumping mistakes when climbing up tall towers, and the hookblade upgrade really helps move things along quicker, with Ezio now able to leap higher and use ziplines conveniently placed around the city. Otherwise, it's an Assassin's Creed game, and so you probably already know what you do in these games, generally. Strangely, there's some optional first-person platforming sections when playing as comatose Desmond, and they are about as fun as you might initially expect. I'm going to finish them all for the sake of Achievements only. Also, if the Templars become too aware of your actions, they will attack one of your dens, and the only way to get it back is through a tower defense minigame, which I do not like one bit.
As of this writing, I'm somewhere in…sequence 5 (of 9) for Assassin's Creed: Revelations. I've only seen two or three instances of tailing missions so far, and they honestly weren't that bad compared to others. Otherwise, everything has been par for the course, with some fetch quests, some platforming challenges, some hidden murdering, some open murdering, and a whole lot of collecting treasure, purchasing shops, and completing challenges. For some reason, I really like these kinds of games because there is always something to do, a goal to go after, not just the main quests. Even standing around idle will eventually help, with money being deposited in your bank account every twenty minutes.
Perhaps the thing that separates Assassin's Creed: Revelations from others in the series, at this point in its release, is its focus on bombs. For those that don't know, bombs are explosive weapons used by assassins from as early as the High Middle Ages, and they can be employed for a variety of tactics, including escape, assault, and distraction. Ezio can craft his own bombs by looting dead soldiers for materials or he can purchase them from illusive shopkeepers, and I have found myself using them more than expected; if anything, they are great distraction items, especially if you need to make a quick getaway. Still, the controls for them can be fiddly, and trying to use them effectively in the middle of an eight-on-one sword fight does not always work out right. It does add some variety and options to the missions though.
I don't expect to learn much by the end of Assassin's Creed: Revelations, but coming to it many years later, and not right after the previous game, wherein many were beginning to suffer from Ubisoft fatigue, I'm having a fine ol' time. I also have to wonder how many, if any, are even playing this game's multiplayer; I'll give it a try after credits scroll, but I won't hold my breath.
Posted in achievements, entertainment, impressions, musings, randomness, videogames, xbox 360, xbox one
Tagged Abstergo, Altair, Assassin's Creed, Assassin's Creed: Revelations, bombs, Desmond, Ezio, Ezio Auditore da Firenze, stealth, Ubisoft, Ubisoft Montreal
A tale of my most hated tailing missions in videogames
Gather round, dear Grinding Down readers, and I'll tell you a mighty fine tale…all about tailing. Whatever you do, don't look up the urban dictionary definition for it.
For those that are lucky and have never played a game involving a tailing mission, you are basically tasked with following a non-player character to a designated area. This is either done on foot or in a vehicle. However, more often than not, your target cannot be alerted to your presence; if they are, that means your mission to be like a ninja failed, and you'll have to start it all over. Like many, I do not enjoy these missions, despite being full of patience, and some are more loathsome than others, especially when silly things like artificial intelligence, geometry glitches, and randomness are actively working against each other. They are lengthy, generally due to the fact that you are often following someone moving at a leisurely pace, and checkpoints are usually non-existent.
Many bad tailing missions stick out in my mind after all these years of gaming, and below are a few that I'd like to highlight as particularly bad. In fact, I might even say I hated them.
"The Siege of Charles-Towne" from Assassin's Creed IV: Black Flag
This is the one that got this nugget of an idea about a list of tailing missions started, way back when I was actively playing it. Sorry, I'm sometimes slow with these posts or lose interest only to come back to them much later with renewed vigor. I generally enjoyed my time with Assassin's Creed IV: Black Flag or, as my girlfriend calls it, "the turtle game." See, one time she saw me playing it, and I was running around a beach area looking at the turtles scooting their way to the ocean, and thus the game will forever now be known as such. That's fine, because this series is now 10+ games deep, and we need a better way to recognize them than just their generic subtitles. Honestly, I'm surprised it took us so long to use the word origins.
I know these games are pretty hit and miss with consumers, with ones like Assassin's Creed III and Assassin's Creed: Unity definitely in the miss column, but I liked a lot of what Kenway could do and even patiently dealt with the handful of tailing missions thrown at the man throughout the game. Still, they all got rated one or two stars when completed, but they weren't too bad, all in all. Not when you compare them with Sequence 6's "The Siege of Charles-Towne", which literally has you in a boat…stealthily following another boat. Ugh. I don't really even know how that is possible, but I guess if you sail smoothly enough and don't startle any dolphins, anything can happen.
To start, you are steering a large boat around a small swampy location, at night, with lots of things to smash into. It's like threading the needle with the lights out. Also, not sure if any of you have every tried to quickly course correct and shift directions in a boat, but it's not a fast affair. Throw in the fact that you must be cognizant of both red and yellow circles on the mini-map while trying to steer, and you've got the recipe for one bad tailing mission. On a related note, I'm currently playing Assassin's Creed: Revelations, at about 25% synchronization for those curious, and have not found too many troubling tailing missions…yet. I'm sure one will rear its ugly head soon enough.
"The Set Up" from L.A. Noire
Ah, L.A. Noire, you big, gorgeous, empty-as-heck modern adventure game. About midway through "The Set Up" mission, Cole must remain incognito while tailing a woman named Candy Edwards. See, she might have information about why the professional boxer Albert Hammond won a fight that he was supposed to throw, which angered a lot of bookies and people betting on the event. For those that don't know, incognito means things like, sitting on a park bench and pretending to read the newspaper, as well as avoiding getting spotted when she turns around to examine her surroundings.
As Phelps is tailing Candy on foot, he has to keep his distance and maintain good cover. If he gets too close, she'll stop and turn around. Phelps will also comment if he is about to lose Candy's. It's pretty straightforward, but it's a whole bag of boredom and constantly worrying about being too far or too near the target. There are invisible meters and vision cones at work here, and I still don't know if seeing them would be better or not. There's also an Achievement for tailing Candy without using any incognito or cover…which I've not popped.
In the end, it's a tailing mission, where your movement is dictated by the target's movement, and I'd rather spend my time closely examining matchbooks or pieces of fruit or interrogating suspects. Or even searching for those well-hidden golden film reel collectibles.
"Act 3" from Metal Gear Solid 4: Guns of the Patriots
This one is still pretty fresh, seeing as I only just played Metal Gear Solid 4: Guns of the Patriots for the first time back in autumnal 2015. Earlier in the game, you had to track someone by their footprints out in the wild, and that was honestly fine. However, the streets of Eastern Europe are a whole different bag of messy worms, and Old Snake must tail a member of the resistance in hopes of him leading you to the hidden resistance HQ.
Now, if you follow him without being detected, he'll lead you directly to the resistance HQ, which is where you can hopefully meet Big Momma. However, you need to keep a good distance away from him in order to avoid being detected, which means letting him get a decent head start and running into trouble. So, you not only have to follow this whistling fool without being spotted, but you also have to protect him from enemy soldiers piqued by all that whistling and various roadblocks. Frustratingly, he can't witness you helping him either, otherwise he'll get scared and run away.
I did not do well with this mission, and I felt like I stumbled the entire way through it, just barely surviving encounters and keeping the resistance man on track. It's a major reason holding me back from ever revisiting the game.
"The Lost Pilgrimage" Korok trial from The Legend of Zelda: Breath of the Wild
Once you make your way through the Lost Woods and get to Hyrule Forest proper in The Legend of Zelda: Breath of the Wild, you can attempt to complete four Korok trials. One is given to you by a Korok named Tasho, who tells you about friend Oaki, who set off to find a shrine alone. Oaki really wants to make it all the way to the shrine by himself, but Tasho is worried and wants Link to follow along after him to ensure he makes it there safely. Alas, this is an instant-fail stealth tailing mission, which means the moment you are spotted it is over and you have to restart from the beginning. It's a severely outdated design and a fun-sucking vacuum cleaner if I ever saw one.
Okay, so, some issues. One, Oaki is dressed mostly in bland, gray clothing, which makes him hard to see in the foggy Lost Woods. You have to rely on sound more than anything due to all the gear he is carrying. Two, this is still the Lost Woods, and so if you veer off the main path too far, the fog sucks you up. A kind soul might imagine this simply plopping you back on the beaten path to continue forward, but no, it just fails the mission outright. Gee, thanks. Okay, so these issues took a couple attempts to figure out and get used to, but then I lost all hope when, without warning, Oaki turns around and runs straight at Link, spotting him instantly.
Ugh. I attempted this mission three or four times, wasting a bunch of my stealth potions too, before giving up on it entirely to focus instead on rebuilding Tarrey Town. Y'know, an easier, less punishing task.
Well, those are the tailing missions that stand out in my mind as bee aye dee. That's bad, if you couldn't figure it out. What ones have you not enjoyed over the years? Or, if you are in the mood to play the devil's advocate, tell us all about how much you love closely and quietly following someone around a limited environment without ever getting spotted.
Posted in entertainment, fail, impressions, lists, musings, randomness, rant, videogames
Tagged Assassin's Creed IV: Black Flag, BOTW, Breath of the Wild, Candy Edwards, Edward Kenway, Korok seeds, L.A. Noire, Link, Lost Woods, Metal Gear Solid 4, Oaki, shrines, stealth, tailing, tailing missions, Tasho, The Legend of Zelda, The Lost Pilgrimage
2017 Game Review Haiku, #62 – Hitman (2016): Prologue
Are easy, just follow prompts
47 knows
Tagged Agent 47, assassin, free, haiku, haikus, Hitman, Hitman 2016, IO Interactive, poetry, prologue, Square Enix, stealth
2016 Game Review Haiku, #44 – Hitman: Absolution
Hide Victoria
Hide Agent 47
Until plans go wrong
Here we go again. Another year of me attempting to produce quality Japanese poetry about the videogames I complete in three syllable-based phases of 5, 7, and 5. I hope you never tire of this because, as far as I can see into the murky darkness–and leap year–that is 2016, I'll never tire of it either. Perhaps this'll be the year I finally cross the one hundred mark. Buckle up–it's sure to be a bumpy ride. Yoi ryokō o.
Posted in 2016 completed games, entertainment, haiku review, videogames, xbox 360
Tagged Agent 47, haiku, haikus, Hitman, Hitman: Absolution, IO Interactive, poetry, Square Enix, stealth
Forget pirating, there's shanties to chase in Assassin's Creed IV: Black Flag
Assassin's Creed IV: Black Flag was given out to Xbox 360 players for free as part of the Games with Gold program back in…oh my, late April 2015. For some reason, I thought it had been sitting in my digital library for longer than that. At some point, it was also given out to peeps on the Xbox One, but I didn't have the console yet and wasn't smart enough then to know that I could still click download and tie it to my account for future use, which means I'm stuck playing the previous generation version. It is serviceable, though I'm sure facial expressions are a bit more lifelike on the newer consoles.
A reminder for any new readers here at Grinding Down on my history with the Assassin's Creed series, which I enjoy from a somewhat casual perspective. Once I'm into one, I'm into it, unable to not climb to every rooftop and take care of each icon on the map until all that is left is a clutter-less picture. I got into the series like many did at the start, finding the first Assassin's Creed impressive, but repetitive. Then, for some reason, I next played Assassin's Creed: Brotherhood and absolutely loved it, both the single player campaign and the multiplayer, which is an aspect of gaming I generally steer clear of. Last year, I went back and played Assassin's Creed II, which helped to make more sense of story details in Brotherhood though that's on me for playing them out of order. And now here we are, skipping Assassin's Creed: Revelations and Assassin's Creed III to do some hardcore pirating. Fine by me.
Black Flag's main story is set in the 18th century Caribbean during the golden age of piracy, people being smarmy, and lots of ships sailing to and fro. The plot follows notorious pirate Edward Kenway, the grandfather and father of Assassin's Creed III protagonists Ratonhnhaké:ton and Haytham Kenway, respectively, who stumbles into the conflict between assassins and Templars after he is shipwrecked. In the present day scenario, you are a new employee working at the Montreal offices of Abstergo Entertainment—a subsidiary of Abstergo Industries—exploring its cubicles, eavesdropping on conversations, and hacking computers to uncover secrets about the sinister company. To be honest, I don't care a lick about the storyline so far, in both realms; thankfully, the gameplay provides plenty to draw enjoyment from, and never demands you get on with the ruddy campaign.
In terms of gameplay, there's all the usual elements from previous Assassin's Creed games here: climbing, stealth assassinating, syncing, looting, running, hiring groups of people to hide among, trailing guards, and so on. The new stuff is mostly ocean-bound, with Kenway able to sail a ship, plunder and loot other ships, and explore numerous islands on the map that may house treasure and other goodies, like rare animals to murder for your fancy pouches and outfits. By far, my favorite advancement in this series is that everything is now available on your map after syncing a high view point, and then you can spend the next hour or so collecting each and every thing before moving on to do the actual story mission. Or collecting more from another synced view point. There's little hand-holding, with the game treating you as an actual, capable adult–these decisions are yours to make. Plus, to catch shanties for your pirate crew to sing while sailing the ocean blue, you have to chase them down in the environment, which is way more fun than simply chasing a dude down in a race or for a few coins.
Still, it's another Assassin's Creed game from Ubisoft, and some stuff never changes. Like having your character leap from a building's rooftop and lose half his health when really you meant for him to move a little to the left and travel along that rope tied to another rooftop. Also, and I want to do some more research into this, but the subtitles follow a strange style related to capitalization, where most words in a sentence are uppercase, but not all of them. Like so: "Avast, Kenway! Do you have Time to Make your crew a Large Plate of Scrambled eggs? We are Totes Hungry." I don't know, it's very strange and hard to not notice since I enjoy reading words. Missions where you trail dudes and have to maintain a specific distance with them, but not be spotted return, though at least you can rate them one star at the end through Abstergo's feedback forms. I still think combat is fairly button mashy and annoying, which is why I try to go for the stealth kills if I can.
The stats screen at the start says I've completed 15% of Black Flag so far, and in terms of story, I'm somewhere in sequence 3. That's fine. I'm in no rush, especially when there are so many glyphs, treasure chests, and shanties to grab, as well as assassination targets and pirates to rescue and kitty cats to pet. Did I not yet mention you can press a button to pet a cat as it moves between your legs? And that it purrs affectionately? The best Assassin's Creed game yet.
Posted in achievements, entertainment, impressions, musings, randomness, videogames, xbox 360
Tagged Abstergo, Assassin's Creed IV: Black Flag, Black Flag, cats, Edward Kenway, Games with Gold, shanties, shanty, stealth, Ubisoft
Turn-based trial and error assassinating with Hitman GO
The Hitman series and I have not exactly clicked over the years, which is strange, seeing as these are stealth-based games with multiple paths and ways to succeed, with one often using the environment or disguises to get jobs done than simply firing a bullet from a sniper rifle miles away. It's that whole "this sounds better on paper" thing, seeing as I could barely get through the opening parts of Hitman: Blood Money and walked away from Hitman: Absolution fairly early on, though I'd still like to return to the latter eventually and give it a second shake.
Good news, everyone–Hitman GO rocks! In fact, it's my favorite Hitman game so far. Yup, this turn-based, puzzle board game version of Agent 47's stealth assassination missions is basically everything I do like about these games, but with a super strong aesthetic and enough challenge to get me scratching my head, but returning for more after every level. I bought it the other night for $0.10–that's ten cents for those with eyesight problems–through Microsoft's online store as part of their weekly sales for Black Friday, though I'm playing it on my laptop and not a tablet/phone as it is probably intended to be experienced. Too bad, so sad.
There's no story in Hitman GO, and there doesn't need to be. Instead, each world, represented by a vintage-looking board game box, collects a handful of themed levels together, with the main goal either being to reach the exit unnoticed and alive or kill a specific target, often draped in red attire. There are side objectives as well, such as collecting a briefcase or completing the level in a set number of turns, and those go towards acquiring stars, which will help you unlock future sets of levels. Every character is represented as a tiny figurine, even mimicking the "toppled over" effect of taken chess pieces when knocked down. I liked this in Crimson Shroud, and I like it once again here.
Truly, it's the board game aesthetic that has me transfixed. Here's a true fact about me: if you are ever looking for me in a bookstore, you can generally find me at the board games shelf, ogling just about everything, fascinated with all the games and possibilities, saddened over the fact that I don't have anyone to play these things with. Recently, I gave Machi Koro a good hard look, amazed at the colorful, friendly artwork. If a real, tangible version of Hitman GO existed, I most assuredly would be staring at it for a while, as i do when I play. You can rotate the board around for a better view or to simply admire the small, off-to-the-side details.
I'm currently in the middle of the second world's levels, which have introduced new, tricky mechanics like hiding in potted plants or using trapdoors to teleport around the screen at the cost of a turn. My biggest struggle right now is with the knife-wielding enemies in teal shirts that turn 180 degrees, as I still don't grok when it is wise to move towards them. Strangely, it's when they are already facing you. It'll take some practice, though I'm sure there are other elements down the road that will be just as hard to figure out.
A negative, sadistic part of me wonders if I'll hit a wall when I get to the Blood Money-themed levels–yup, I know they are forthcoming–and tasked with tossing coins to distract guards, but we'll see what those ultimately look like when I cross that path. Until then, may all your puzzles be murder.
Posted in board games, entertainment, impressions, musings, videogames
Tagged Agent 47, Black Friday, Hitman, Hitman Go, Hitman: Absolution, Hitman: Blood Money, Machi Koro, Microsoft, stealth, Windows 10
Trying to thieve as a master thief in Thief
The Xbox One recently rolled out its list of backwards-compatible games, and, no, Thief is not one of them. Not yet, at least. I'll get to the connection shortly, I promise. I'm a big fan of this function, and it honestly was one of the attributes that resulted in me picking up this current-gen console over the other, despite all the hubbub around the possibility of PlayStation 2 emulation on the PlayStation 4. Anyways, with the fact that some of my Xbox 360 games are ready to be played on the newest console, this meant deletion and freeing up hard-drive space was imminent.
Once I deleted Just Cause 2 and moved my save game profile to the cloud–which is a technology that I'm still scared to trust–my Xbox 360 began downloading the next game in my queue, which turned out to be Square Enix's Thief, released back in February 2014. It's a stealthy game I've been eyeing for some time, though it was immediately strange and revealing going from sneaking around the Commonwealth in Fallout 4 to sneaking around the less-imaginative, ultra dark, Victorian-themed, plague-riddled City.
Here's the story: master thief Garrett teams up with his former apprentice, Erin, on the same job from their contact Basso. It's clear that Garrett and Erin differ on what it means to be a thief, with Erin happily murdering guards to ensure no one follows after them while Garrett would prefer to be less violent. Along the way, he steals her claw weapon. As they arrive at the Baron Northcrest's manor, they discover some ritual taking place. Garrett calls off the job, but Erin refuses to listen, falling into the center of the ritual, which was nearing its completion, becoming engulfed by some mystical energy. Garrett is knocked out trying to save her, and only awakens from unconsciousness a year later.
It's not a great story so far–I'm past the prologue and somewhere into the second chapter, after visiting a church–and a lot of that falls on Garrett's cloak-covered shoulders. He comes across as a self-righteous do-gooder, stealing from the rich and keeping it for himself, but also always has a snarky one-liner to say for every situation, often to the point of mockery. I get the sense that he lacks empathy and could care less about what happened to his friend Erin, but we'll see where things go. It's hard to get a lot of story when your main character spends the majority of his time slinking around houses in the dark, half-listening to conversations through keyholes, not letting a single footstep be heard.
The focus of Thief is to use stealth in order to overcome a number of challenges, with violence often left as a last resort. I'm all about that. "The stealthier, the better" would make an excellent bumper sticker. Early on, I ran into the same problem that turned me off of Dishonored, in that once you are spotted, there is little chance of survival, which only makes me want to do perfect stealth runs, with no room for error. That said, I don't think Thief plays or looks all that great; it's sluggish and murky, with nothing distinctive-looking about it. So far, the coolest move, in my mind, Garrett can do is distinguish candles to darken a room, and I'm eagerly awaiting popping an Achievement somehow related to doing this.
Heads up: there's also a lot of pressing X. You hit this button to pick up loot, of which there's a ton. I think there was over 70 pieces to grab in the first chapter alone, and this loot translate into money, which you can later then spend on skill tree upgrades, weapons, and miscellaneous items. however, when it comes to desks and drawers, plan to press X a bunch and be disappointed when you find nothing. Also, I think I had a similar gripe with Batman: Arkham Asylum, but mashing a button to open a window or grate is beyond tedious, there only to pad out what little gameplay already exists.
I'd really like to see Thief become backwards-compatible on the Xbox One, but not because it is some much treasured entry in the series and fans are eagerly looking to play it right now. It's more out of laziness. The further forward I go with my new current console, the less interested I am in switching on the 360, changing inputs on my TV, and plugging a controller into the system. Yes, I'm the same dude who is still working away at Final Fantasy IX, a PlayStation 1 RPG of old on my still-kicking PlayStation 2, but that's on a different television in my bedroom. Okay, I have to get back now to looting dead bodies and hanging cat portraits on my settlement's structures…oh wait, wrong game.
Posted in achievements, backlog, entertainment, first impressions, impressions, musings, videogames, xbox 360
Tagged Dishonored, Eidos Montreal, Garrett, Square Enix, stealth, The City, Thief


According to the bill, a contractor or subcontractor would need to complete a safety and health calculation worksheet within seven days of entering into a state contract valued at $100,000 or more, and implement any additionally required safety and health actions.
The Division of Labor and Industry would assess a maximum civil penalty of $5,000 for a first violation and $10,000 for each subsequent violation, and could ban the vendor from working on public projects for two years.
Two previous attempts to pass similar legislation – H.B. 1510 in 2017 and H.B. 977 in 2016 – received hearings before the Maryland House Economic Matters Committee. Glenn withdrew H.B. 1510 after an unfavorable report.
Another attempt in 2015 (H.B. 404) did not make it out of committee, and a Senate bill (S.B. 279) that same year did not make it out of the Finance Committee.
One impetus for these legislative attempts was Public Citizen's 2012 report titled The Price of Inaction, which found that injuries and fatalities on public and private construction projects cost the state nearly $713 million between 2008 and 2010. A follow-up report from the public health advocacy group in 2017, titled Take the High Road, looked at the 158 contractors who worked on state projects worth at least $100,000 over a five-year period.
Public Citizen found that OSHA cited 46 percent of the contractors for safety violations in the past decade, and 35 percent for "serious" violations.


$2.50 here in western NY.
Last I bought was $1.94 a few days ago in Western KY.
The wife is with her sisters she has 3, so all 4 are, in Gulf Shores Al. in Condo on the beach. For the month of Jan.
I live in Pennsylvania. The current governor, Pappy Wolf, has never seen a tax he didn't like, and seems to be constantly dreaming up new ones.
But remember... It's for (sniff...tearing up here) the children/schools/younamewhatever tugs at votor's heartstrings. Awwww.
Currently, regular is around $2.59, and that's a lot lower than it's been. I can find some stations @ $2.49. Mostly taxes.
On a motorcycle, you don't feel it as much.
In a car, it' a b**ch. Especially with a 60 mile round-trip commute to my office.
When I'm traveling, luckily I'm not too far from the South and West State borders. I usually gas up when I cross over, coming and going, where the prices are significantly lower in the neighboring states.
Don't get me wrong...I love living in Pennsylvania, but with retirement looming, my wife and I still are considering skedaddling.


It only took 19 episodes, but we finally brought in someone who knows something about beer.
In this episode, we welcome in Joe Delp from Meier's Cork & Bottle. And he brought beer! We figure out what the heck a poop knife is. We talk about breastaurants and strip clubs (which are only ok in Vegas). And we try to figure out what the hell you consumers want from your beer! All while drinking Sierra Nevada's Pale Ale, Deschutes' Red Chair NWPA, and Melvin's Hubert MPA.


text:
Q: Unable to use property from constructor I'm creating two ES js Classes (Person, Teacher)
class Person {
    constructor (name = "no name") {
    this.name = name
}

Teacher inherit from Person
class Teacher extends Person {
    constructor(name, degree){
        super(name)
            this.degree = degree;
    }
}

In the teacher constructor, I have a new property called degree.
when I create a new property called Full name that takes name and degree. Degree shows as undefined. Although when I log object teacher property is there. It looks like a delay issue. But, shouldn't I be able to access property right away?

class Person {
  constructor(name = 'no name') {
    this.name = name;
  }
}

class Teacher extends Person {
  constructor(name, degree) {
    super(name);
    this.degree = degree;
  }

  fullname = this.degree + this.name;
  printFullName() {
    console.log(this.fullname);
  }
}

let person = new Teacher('Adam', 'MS.');

console.log(person);

person.printFullName(); // undefined Adam

https://repl.it/@adbarani/TrimBrilliantPaintprogram#index.js

A: This is the behaviour specified in the MDN documentation:

Public instance fields are added with Object.defineProperty() either at construction time in the base class (before the constructor body runs), or just after super() returns in a subclass.

Your code example is in the second case. The order of execution is thus:

*

*Execute super() in case your class is a subclass

*Define the public instance fields on this

*Execute the rest of the constructor

If you need a work around, then don't define fullname with the field syntax, but assign to this.fullname as part of the constructor function.

A: Update fullname to a getter to compute the property value when it is accessed:
class Teacher extends Person {
  constructor(name, degree) {
    super(name);
    this.degree = degree;
  }

  get fullname() {
    return this.degree + this.name;
  };

  printFullName() {
    console.log(this.fullname);
  }
}

It sounds like you want fullname to be a property, why not set it in the constructor then?
class Teacher extends Person {
  constructor(name, degree) {
    super(name);
    this.degree = degree;
    this.fullname = this.degree + this.name;
  }

  printFullName() {
    console.log(this.fullname);
  }
}

Otherwise just change printFullName to do the work for you:
  printFullName() {
    console.log(this.degree + this.nam);
  }

Hopefully that helps!


text:
Publication - Publication
Scotland's right to choose: putting Scotland's future in Scotland's hands
The Scottish Government's case for giving the people of Scotland the right to choose their constitutional future.
A model for recognising a mandate
Introduction by the First Minister of Scotland
The people of Scotland's right to choose their future - Summary
Scotland as a nation
A voluntary association of nations
The Scottish Government's mandate to hold a referendum - Summary
The EU referendum and the Scottish Government's mandate
The material change of circumstances
The precedent of 2011 and the road to the 2014 referendum
Annex A: Scotland as a nation - its constitutional story so far
Annex B: draft legislation
The Scottish and UK Governments may not have agreed in 2012 about whether Scotland should become an independent country, but they agreed that such a decision was for the people of Scotland alone to take. They agreed that the Scottish Government had a mandate to hold a referendum following the 2011 elections, given the support of a majority of members of the Scottish Parliament for such a referendum. They agreed that the Scottish Parliament should be responsible for delivering the referendum. And they agreed that both governments had a duty, despite their different perspectives on the question, to respect the democratic principle that the question of Scotland's future should be decided in Scotland and to agree a lawful process for allowing the people of Scotland to decide.
That level of agreement was in accordance with well-established principles of good government, and with the democratic reality that the views of the people of Scotland on matters of national importance are expressed through elections. And it was in accordance with the principle-accepted by the Scottish and UK Parliaments and Governments-that the people of Scotland have the right to determine the form of government best suited to their needs.
The UK Government accepted in 2011 that a mandate to hold a referendum could be communicated by the people of Scotland through elections to the Scottish Parliament, and through the formation of a Scottish Government. As the then-Secretary of State for Scotland said-
This process began with the Scottish National Party's victory in the May 2011 Scottish parliamentary elections and its manifesto pledge to hold an independence referendum. From the very beginning, we recognised the political mandate that the SNP had secured for a referendum.[63]
Following the experience of 2011, governments in Scotland, political parties in Scotland and, most importantly, the people voting in Scottish parliamentary elections will have made decisions about their policies, their manifestos and their votes in the expectation that electoral mandates would be respected.
The Scottish Government is clear that its preference is for a referendum to be held in 2020. This would allow, in the event of a vote for independence, the smoothest transition to an independent Scotland taking its place as a member state of the European Union. There would be clear advantages in Scotland being able to make a decision about its future as an independent country in Europe before any process of divergence between UK and EU law has begun. Other parties have expressed their views about the appropriate timing of a future referendum.[64] These are contributions to a debate that, in the Scottish Government's view, is one for the Scottish Parliament to have and ultimately to decide on.
The Scottish Government is already taking steps to ensure that a referendum could be delivered to its preferred timetable through the Referendums (Scotland) Bill, which provides a framework for holding referendums in Scotland. The precedent of 2011 provides a basis for the Scottish and UK Governments to come to swift agreement over the legislation required to put beyond doubt the Scottish Parliament's power to use the Referendums Bill to hold an independence referendum.
The decision whether and when that referendum should be held ought to be for the Scottish Parliament, empowered to make such decisions by the people who live here. The Parliament is the democratic voice of the people of Scotland, and the inheritor of Scottish constitutional tradition.
We call on the UK Government to enter discussions about the Scottish Government's mandate for giving the people of Scotland a choice, and to agree legislation with the Scottish Government that would put beyond doubt the Scottish Parliament's right to legislate for a referendum on independence.
Email: CUKR_BusinessManagementTeam@gov.scot


text:
Active lobbies and hotel 'brand blur' on the agenda at IHIF
Mintel News
For the latest in consumer and industry news, top trends and market perspectives, stay tuned to Mintel News featuring commentary from Mintel's team of global category analysts.
February 11th, 2014February 11th, 2014
The annual International Hotel Investment Forum (IHIF) is just around the corner, where some of the industry's leading lights will discuss the key issues that are facing the hotel market in 2014 and beyond. So what can we expect to see this year?
Targeting the new generation of 'millennial' travellers is something that often requires a different approach, and that is something that Ian Schrager, one of the originators of the boutique hotel concept, who will be the recipient of the Lifetime Achievement Award at this year's conference, is known for. Schrager revolutionised the hotel scene when he opened the Morgans in New York in 1984. Inspired by his prior activity as the co-owner of the infamous Studio 54 night club, Schrager sought to transform the hotel's lobby into a social hub and activity centre, a concept that remains at the forefront of branding efforts to appeal to these 'millennials'. Evidence of this trend exists elsewhere in the industry, exemplified by Starwood's 'W', IHG's Indigo and Marriott's new Moxy brand, which was unveiled at least year's IHIF. Several years ago, Schrager teamed up with Marriott to launch the chain's lifestyle hotel concept, Edition, which, after a somewhat rocky start, now seems to be gaining momentum, as a competitor of Starwood's 'W' flag.
'Brand blur' is something that Peter Shaindlin, chief operating officer of Halekulani Corporation, who will be the conference's keynote speaker, believes is presenting a challenge in a market where consumers may be becoming confused by the ever increasing number of brands and partnerships they are seeing. In a preview of his address, Shaindlin said,
"In recent years there's a bit of "brand mania" taking over the industry: we've seen the proliferation of core hotel brands, augmented by those same brands selectively partnering with other luxury brands from fashion designers retail, to restaurants, cars and the like. The past two years or more has also witnessed the birth of countless sub-brands, these 'offspring' of long-established brands designed to capture broader markets than their just their own original consumer base. There are both internal and external challenges these efforts sometimes provoke. Internally, the physical expression of the product, given the vast array of direct competitors, can result in a sort of collective 'blur,' where competitive brands' product strikes the consumer as suspiciously similar—often the same designers and architects are used inadvertently within a comp set, and externally, many brands contract the same leading restaurant operators as their direct brand competitors. What's the result of all this? 'Brand blur,' a condition where the homogeny of a collective brand comp set—regardless of star level—seems to be growing exponentially with the proliferation of brands themselves".
It's certainly fair to say that at the present time there are too many hospitality brands and some of the hotel brand alliances with luxury goods producers, such as the collaboration between Ritz Carlton and Bulgari and Rezidor and Missoni, are of dubious value. There has also been a countertrend towards consolidation, as evidenced by Accor's rationalisation of its economy hotels under the ibis flag.
The IHIF will take place from 3 to 5 March 2014 at the Hotel InterContinental in Berlin.
Mintel will be reporting back from the conference on these and more of the latest trends, so keep an eye on this blog for more news and insight.
What the Cannes Lions winners mean for travel
The Cannes Lions is billed as the global benchmark for effective creative marketing communications. The five-day festival judges the most creative and forward-thinking advertisements of the year. The ...
Convergence in the short-term accommodation sector
A key trend emerging from the discussions and presentations at this year's International Hotel Investment Forum (IHIF), in Berlin earlier this year, is the ongoing convergence occurring in ...