text:
"""
PicBackFlick is a Flickr backup utility.
"""
# picbackflick.py - Reed Wade <reedwade@gmail.com>
#
# This file is part of PicBackFlick.
#
# Copyright (C) 2012 Reed Wade <reedwade@gmail.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.

## TODO: implement single photo fetch by ID or URL
## TODO: better exception handling
import sys
import os
import time
import urllib2
import glob
import json
import datetime
from optparse import OptionParser
import ConfigParser

try:
    import flickrapi
except Exception, e:
    print "Failed to import flickrapi:", e
    print """
PicBackFlick depends on the Python Flickr API (previously known as "Beej's Python Flickr API")
as seen at: http://stuvel.eu/flickrapi
If you have a recent Debian / Ubuntu / Mint setup you should be able to install it via--
  sudo apt-get install python-flickrapi
Otherwise, see the installation instructions at the web site above.
"""
    sys.exit(1)

sample_config_file = """
[picbackflick]

#
# You must set the api_key and api_secret. Go to http://www.flickr.com/services/api/keys/apply/
# and fill in the form to get yours.
#
## api_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
## api_secret = XXXXXXXXXXXXXXXX

#
# flickr_username is used to construct the photo page url
#
## flickr_username = reedwade

#
# photos_path is where your photos and information land
#
photos_path = ~/flickr_backups

"""

# Sometimes Flickr's API service doesn't want to talk to the world but that clears up pretty quickly.
# So, try again instead of giving up. Add this decorator to get yourself 3 free failures.
netfail_retries = 3
netfail_wait = 30
def network_retry(fn):
    def wrapped(*args, **kwargs):
        retries = netfail_retries
        while retries > 0:
            try:
                return fn(*args, **kwargs)
            except urllib2.HTTPError as e:
                retries -= 1
                print "error", e, "will try again in", netfail_wait, "seconds"
                time.sleep(netfail_wait)
            except urllib2.URLError as e:
                retries -= 1
                print "error", e, "will try again in", netfail_wait, "seconds"
                time.sleep(netfail_wait)
            except IOError as e:
                retries -= 1
                print "error", e, "will try again in", netfail_wait, "seconds"
                time.sleep(netfail_wait)
        # last chance; if you fail again we let a higher layer deal with it
        return fn(*args, **kwargs)
    return wrapped

class Photo(object):
    """
    This class represents a single photo or video.
        p = Photo(picbackflick_instance, flickr_photo_id)
        print p.vals['description']
        print p.get_image_url('s')
    """

    BUF_SIZE = 1024*1024

    def __init__(self, pbf, id):
        self.pbf = pbf
        self.id = id
        self.get_info_from_id()

    @network_retry
    def get_info_from_id(self):
        """
        Load photo details from Flickr into self.val dictionary.
        """

        photo_info = self.pbf.flickr.photos_getInfo(photo_id=self.id)
        if photo_info.attrib['stat'] != 'ok':
            raise RuntimeError("bad stat " + photo_info.attrib['stat'])
        photo_info = photo_info.find('photo')
        # photo_info.attrib will contain: originalsecret, secret, farm, server, media, dateuploaded, originalformat (and more)
        self.vals = photo_info.attrib
        # print self.vals

        self.vals['title'] = photo_info.find('title').text
        if self.vals['title'] == None:
            self.vals['title'] = ''

        sizes = self.pbf.flickr.photos_getSizes(photo_id=self.id)
        self.vals['sizes'] = [size.attrib for size in sizes.find('sizes').findall('size')]
        #TODO:
        # the largest one seems to always be last in the list; this isn't really the best way to
        # do this but it does seem to work (for now)
        self.biggest_URL = [size for size in sizes.find('sizes').findall('size')][-1].attrib.get('source')

        self.vals['description'] = photo_info.find('description').text
        if self.vals['description'] == None:
            self.vals['description'] = ''

        dates = photo_info.find('dates')
        self.vals['datetaken'] = dates.attrib['taken']

        # extract more information about the photo

        #TODO rewrite above so we're not calling getInfo twice
        self.vals['info'] = json.loads(self.pbf.flickr.photos_getInfo(photo_id=self.id, format='json')[len('jsonFlickrApi('):-1])

        location = json.loads(self.pbf.flickr.photos_geo_getLocation(photo_id=self.id, format='json')[len('jsonFlickrApi('):-1])
        if location.get('stat') == 'ok':
            location = location.get('photo', {}).get('location')
            if location:
                self.vals['location'] = location

        comments = json.loads(self.pbf.flickr.photos_comments_getList(photo_id=self.id, format='json')[len('jsonFlickrApi('):-1])
        if comments.get('stat') == 'ok':
            comments = comments.get('comments', {}).get('comment')
            if comments:
                self.vals['comments'] = comments

        contexts = json.loads(self.pbf.flickr.photos_getAllContexts(photo_id=self.id, format='json')[len('jsonFlickrApi('):-1])
        if contexts.get('stat') == 'ok' and len(contexts.keys()) >1:
            del contexts['stat']
            self.vals['contexts'] = contexts

        #
        # TODO make exif optional, it's large and maybe nobody cares. The data is in the original anyway.
        #
        # exif = json.loads(self.pbf.flickr.photos_getExif(photo_id=self.id, format='json')[len('jsonFlickrApi('):-1])
        # if exif.get('stat') == 'ok' and len(exif.keys()) >1:
        #     del exif['stat']
        #     self.vals['exif'] = exif

        favorites = json.loads(self.pbf.flickr.photos_getFavorites(photo_id=self.id, format='json')[len('jsonFlickrApi('):-1])
        if favorites.get('stat') == 'ok' and favorites.get('photo',{}).get('person'):
            del favorites['stat']
            self.vals['favorites'] = favorites

    def get_image_url(self, size='o'):
        """
        Returns the url for this image at the given size.

        The _ size is an odd one, the flickr size is '' (empty) but we like to have a
        code we can use for naming directories and whatnot.
        """

        valid_sizes = ['o','s','t','m','_','z','b','k']
        if size not in valid_sizes:
            raise RuntimeError("bad option for size: %s must be one of %s" % (size, str(valid_sizes)) )

        if size == 'o':
            if self.vals.has_key('originalformat'):
                return "http://farm%s.static.flickr.com/%s/%s_%s_o.%s" \
                    % (self.vals['farm'], self.vals['server'], self.id, self.vals['originalsecret'], self.vals['originalformat'])
            else:
                # we don't have access to the original, return the largest image available
                return self.biggest_URL
        else:
            return "http://farm%s.static.flickr.com/%s/%s_%s%s%s.jpg" \
                % (self.vals['farm'], self.vals['server'], self.id, self.vals['secret'],
                    '' if size=='_' else '_', '' if size=='_' else size)

    def get_image_path(self, size):
        """
        Where to save (or find after saving) this image locally.
        """
        ext = 'jpg'
        if size == 'o':
            if self.vals.has_key('originalformat'):
                ext = self.vals['originalformat']
            else:
                ext = "jpg"
        dateuploaded = datetime.datetime.fromtimestamp(int(self.vals['dateuploaded']))
        return "img/{year:04}-{month:02}/{day:02}/{size}/{id}_{size}.{ext}".format(
            size=size,
            ext=ext,
            year=dateuploaded.year,
            month=dateuploaded.month,
            day=dateuploaded.day,
            id=self.vals['id']
            )
        # return "img/%s/%s/%s_%s.%s" % (size,  self.vals['id'][-2:], self.vals['id'], size, ext)

    @network_retry
    def save(self):
        """
        Store the original image and meta data locally.
        """

        ## store images
        for size in self.pbf.options.store_image_sizes:
            image_filename = self.get_image_path(size=size)
            self.vals['image_'+size] = image_filename

            f = os.path.join(self.pbf.options.photos_path,image_filename)

            if os.path.exists(f):
                self.pbf.info("skipping "+f)
                continue
            if not os.path.exists(os.path.dirname(f)):
                os.makedirs(os.path.dirname(f))

            self.pbf.info("writing "+f)
            img = urllib2.urlopen(self.get_image_url(size=size))
            out = open(f,'wb')
            while True:
                buf = img.read(self.BUF_SIZE)
                if len(buf) == 0:
                    break
                out.write(buf)
            out.close()
            img.close()

        self.vals['v_ext'] = False
        if self.vals['media'] == 'video':
            # example:
            # http://www.flickr.com/photos/reedwade/5597186999/play/orig/e45022b02e/
            # this was taken from a single example and then looking at the output of a call to flickr.photos.getSizes()
            #
            # I don't find any documentation from Flickr saying this is or isn't the correct scheme for fetching video originals so
            # I hope this works for the general case. It seems plausible
            #
            url = "http://www.flickr.com/photos/%s/%s/play/orig/%s/" % (self.pbf.options.flickr_username, self.id, self.vals['originalsecret'])

            f = os.path.join(self.pbf.options.photos_path,'video',self.id[-2:], self.id) # 'video/89/123456789'

            # ok, now we run into a problem. We don't know the extension for the video file. It could be one of several things.
            # We have to fetch the file and check the content-disposition header to learn it.
            # But, maybe we already have the video file and don't want to re-fetch it. So, we look for video files with the ID prefix.

            # check for pre-existing video file (any extension) and skip if found
            #
            # It's possible but unlikely they've replaced it with a new video file of a different extension.
            # In that case we lose.

            found = glob.glob(f+'.*')
            if len(found):
                self.pbf.info("skipping "+found[0])
                self.vals['v_ext'] = found[0].split('.')[-1]
            else:

                if not os.path.exists(os.path.dirname(f)):
                    os.makedirs(os.path.dirname(f))

                # now fetch the video file
                # read url, look at header to learn file ext, set that and open the output for writing and then spin

                img = urllib2.urlopen(url)

                try:
                    ext = img.info().getheader('content-disposition').split('.')[-1]
                except:
                    self.pbf.info("failed to determine video file extension, using 'video' instead")
                    ext = 'video'

                self.vals['v_ext'] = ext
                f += '.'+ext

                self.pbf.info("writing "+f)
                out = open(f,'wb')

                while True:
                    buf = img.read(self.BUF_SIZE)
                    if len(buf) == 0:
                        break
                    out.write(buf)

                out.close()
                img.close()

        ## meta data

        # we use dateuploaded as the key along with ID because we want to sort on this later
        # it turns out Flickr photo IDs aren't strictly sequential by time
        # json_full = "pbf['"+self.vals['dateuploaded']+"_"+self.id+"'] =\n "+json.dumps(self.vals)+"\n"

        # we're using short, ugly keys here to cut down on the size of the js db file
        simple = {}
        simple['t'] = self.vals['title']
        simple['o'] = self.vals['image_o']
        simple['s'] = self.vals['image_s']
        simple['_'] = self.vals['image__']
        if self.vals['v_ext']:
            simple['v'] = self.vals['v_ext']

        json_simple = "pbf['"+self.vals['dateuploaded']+"_"+self.id+"'] =\n "+json.dumps(simple)+"\n"

        f = os.path.join(self.pbf.options.photos_path,'info',self.id[-2:],self.id)
        if not os.path.exists(os.path.dirname(f)):
            os.makedirs(os.path.dirname(f))

        # self.pbf.info("writing "+f+'_full.js')
        # out = open(f+'_full.js','wb')
        # out.write(json_full)
        # out.close()
        self.pbf.info("writing "+f+'_.js')
        out = open(f+'_.js','wb')
        out.write(json_simple)
        out.close()

        # add to photo_db.js
        f = os.path.join(self.pbf.options.photos_path,"photo_db.js")
        self.pbf.info("appending "+f)
        out = open(f,'ab')
        if out.tell() == 0:
            # is a new file, emit the header
            out.write(self.pbf.get_photo_db_header())
        out.write(json_simple)
        out.close()

        # this is the non-gallery backup data
        dateuploaded = datetime.datetime.fromtimestamp(int(self.vals['dateuploaded']))
        f = "info/{year:04}-{month:02}/{day:02}/{id}.json".format(
            year=dateuploaded.year,
            month=dateuploaded.month,
            day=dateuploaded.day,
            id=self.vals['id']
            )
        f = os.path.join(self.pbf.options.photos_path, f)
        if not os.path.exists(os.path.dirname(f)):
            os.makedirs(os.path.dirname(f))
        self.pbf.info("appending "+f)
        out = open(f,'w')
        out.write(json.dumps(self.vals, indent=2))
        out.close()

class PicBackFlick(object):

    def __init__(self):
        self.start_time = int(time.time())

    def info(self, message):
        if self.options.verbose:
            print message

    def get_photo_db_header(self):
        return "var pbf = {}\n"+\
               "var flickr_username = '"+self.options.flickr_username+"'\n"

    def update_web_pages(self):
        """
        We have new photo data so update the local web pages as needed.

        Right now this part of the app is a bit rough and dirty.
        We cat all the little js files (1 per photo) into a single js file which is loaded by the clever static web page.

        This won't scale and needs work.
        """

        filename = os.path.join(self.options.photos_path,"photo_db.js")
        self.info("writing "+filename)
        out = open(filename, "wb")
        out.write(self.get_photo_db_header())

        # walk the info directory and collect all the file contents

        for root, dirs, files in os.walk(os.path.join(self.options.photos_path,"info")):
            for f in files:
                if f[-4:] == '_.js':
                    f = open(os.path.join(root,f))
                    out.write(f.read())
                    f.close()

        out.close()

    def get_last_updated_timestamp(self):
        if os.path.exists(self.options.last_updated_filename):
            f = open(self.options.last_updated_filename)
            t = f.readline()
            f.close()
            return t
        else:
            # default value of minimum time stamp (Flickr didn't like zero, 1 works tho)
            return '1'

    def set_last_updated_timestamp(self):
        if not os.path.exists(os.path.dirname(self.options.last_updated_filename)):
            os.makedirs(os.path.dirname(self.options.last_updated_filename))
        out = open(self.options.last_updated_filename, "wb")
        out.write("%d\n" % self.start_time)
        out.close()
        return 1

    def load_config_file(self):

        if not os.path.exists(self.options.picbackflick_conf):
            f = open(self.options.picbackflick_conf, "w")
            f.write(sample_config_file)
            f.close()
            print self.options.picbackflick_conf, "doesn't exist, a new one has been created for you which you must now edit"
            sys.exit(1)

        self.info("reading "+self.options.picbackflick_conf)
        config = ConfigParser.RawConfigParser()
        config.read(self.options.picbackflick_conf)

        try:
            self.api_key = config.get('picbackflick', 'api_key')
            self.api_secret = config.get('picbackflick', 'api_secret')
            self.options.photos_path = config.get('picbackflick', 'photos_path')
            self.options.flickr_username = config.get('picbackflick', 'flickr_username')
        except ConfigParser.NoOptionError:
            print "These options must be set in", self.options.picbackflick_conf, ": api_key, api_secret, flickr_username, photos_path"
            sys.exit(1)

        try:
            self.options.target_user_id = config.get('picbackflick', 'target_user_id')
        except ConfigParser.NoOptionError:
            self.options.target_user_id = None

        self.options.photos_path = os.path.expanduser(self.options.photos_path)

        self.options.last_updated_filename = os.path.join(self.options.photos_path,"last_updated")

        self.options.store_image_sizes = ['s','_','o']

    def handle_command_line_options(self):

        parser = OptionParser()
        parser.add_option("-d", "--days-ago",       dest="days_ago",           metavar="DAYS", type="int",
                          help="how many days ago to look backward, default is to the start of your photostream unless timestamp file is found")
        parser.add_option("-q", "--quiet",          dest="verbose",            action="store_false", default=True,
                          )
        parser.add_option("-f", "--config-file",    dest="picbackflick_conf",  metavar="CONFIG-FILE",
                                                    help="(default: %default)", default="~/.picbackflick.conf",
                          )
        parser.add_option("-i", "--ids-only",       dest="ids_only",           action="store_true", default=False,
                          help="get a list of updated photo IDs only")
        parser.add_option("-w", "--reset-web-info", dest="reset_web_info",     action="store_true", default=False,
                          help="rebuild the local photo javascript db file")

        ## TODO: implement single photo fetch by ID
        ##parser.add_option("-s", "--single", dest="single_photo", metavar="PHOTO-OR-VIDEO-ID",
        ##                  help="update a single entry")

        ## TODO: implement public only feature
        ##parser.add_option("--public-photos-only", dest="public_photos_only", action="store_true", default=False,
        ##                  help="only fetch images and data for publicly viewable items")

        (self.options, args) = parser.parse_args()

        self.options.picbackflick_conf = os.path.expanduser(self.options.picbackflick_conf)

        self.load_config_file()

        seconds_per_day = 60*60*24

        if self.options.days_ago:
            self.min_date = self.start_time - (self.options.days_ago * seconds_per_day)
        else:
            self.min_date = int(self.get_last_updated_timestamp())

        self.info("photos path:           "+self.options.photos_path)
        self.info("photos starting from:  "+str(self.min_date))

    @network_retry
    def authenticate(self):
        """
        This is the normal authentication scheme handled by FlickrAPI.
        The token is cached in ~/.flickr/$api_key/auth.token for reuse.
        """
        self.flickr = flickrapi.FlickrAPI(self.api_key, self.api_secret, format='etree')

        (token, frob) = self.flickr.get_token_part_one(perms='write')
        if not token: raw_input("Press ENTER after you authorized this program")
        self.flickr.get_token_part_two((token, frob))

    def get_recent_photos(self):
        """
        This is a convenience function that handles the typical set of work.
         - parse command line, authenticate, process photos.
        """
        self.handle_command_line_options()

        # user just wants a rebuild of the javascript DB file
        if self.options.reset_web_info:
            self.update_web_pages()
            sys.exit(0)

        self.authenticate()
        return self._get_recent_photos()

    @network_retry
    def photos_recentlyUpdated(self, per_page, page, min_date):
        if self.options.target_user_id:
            return self.flickr.photos_search(user_id=self.options.target_user_id, per_page=per_page, page=page, min_upload_date=min_date)
        else:
            return self.flickr.photos_recentlyUpdated(per_page=per_page, page=page, min_date=min_date)

    def _get_recent_photos(self):

        page = 1
        photo_count = 0
        photos_seen = 0
        while page > 0:
            self.info("loading page "+str(page))

            photos = self.photos_recentlyUpdated(per_page='50', page=page, min_date=self.min_date)

            if photos.attrib['stat'] != 'ok':
                print "bad stat", photos.attrib['stat']
                sys.exit(1)

            photos = photos.find('photos')

            if page == 1:
                photo_count = int(photos.attrib['total'])
                self.info("photo count: "+str(photo_count))
                if photo_count == 0:
                    page = 0
                    self.info("no new photos")
                    continue # nothing to do

            if photos.attrib['page'] == photos.attrib['pages']:
                # last page of results
                page = 0
            else:
                page += 1

            for p in photos.findall('photo'):
                if self.options.ids_only:
                    print p.attrib['id']
                    continue

                photo = Photo(self, id=p.attrib['id'])

                photos_seen += 1
                self.info("%d / %d : %s : %s - %s" % (photos_seen, photo_count, p.attrib['id'], photo.vals['title'], photo.vals['description']))

                photo.save()

        #if photo_count > 0:
        #    self.update_web_pages()

        self.set_last_updated_timestamp()

        return photo_count

if __name__ == "__main__":

    try:
        p = PicBackFlick()
        p.get_recent_photos()
    except KeyboardInterrupt:
        pass

redpajama_set_name: RedPajamaGithub


text:
Former Wharton Studio Building (inside Stewart Park)
Though it is not well-remembered now, Ithaca was once an integral part of the early motion picture industry. Brothers Leopold and Theodore Wharton established a motion picture studio on the shore of Cayuga Lake after attending a Cornell football game and being charmed by the area's natural beauty. From 1914 to 1919, the brothers filmed roughly 100 motion pictures in and around Ithaca, bringing some of the biggest stars of the day to the city. The original building still stands in Stewart Park, where it is used for storage and restrooms. As of this writing, the recently-formed Wharton Studio Museum has plans to restore the building.
Wharton Studio
The Wharton Studio building as it appeared in 2016; there are plans underway to revitalize the building.
Leopold and Theodore Wharton
In 1912, Theodore Wharton was visiting relatives in upstate New York when he attended a Cornell football game. While there, he filmed parts of the game and soon fell in love with the stunning natural beauty surrounding Ithaca. He convinced his brother Leopold to come back to Ithaca with him, and in 1915, the brothers established Wharton, Inc., a production company located in Renwick Park, which is present-day Stewart Park.
The brothers filmed approximately 100 short and long films in and around Ithaca. The area's famous gorges featured in some films, while Lake Cayuga was a stand-in for the Atlantic Ocean in others. Most of the movies filmed by the Wharton brothers were action-adventure films or comedies, and they featured some of the leading stars of the day. Oliver Hardy, Irene Castle, and Lionel Barrymore all filmed movies in the Ithaca area and were temporary fixtures in the city's bars and restaurants. Many locals--particularly students from Cornell and Ithaca College--served as extras or supplied props. Glamorous premiers were a regular occurrence at the State Theater. For a time, Ithaca was the epicenter of America's burgeoning motion picture industry.
All of the films produced by the Whartons in Ithaca were silent. Among the serials produced there were Beatrice Fairfax, The Mysteries of Myra, and The Romance of Elaine. Feature films included A Romance of the Air, The Lottery Man, and The Great White Trail. Many of the films produced in Ithaca were financed by William Randolph Hearst.
The Wharton brothers continued making films until 1919, when they ran into financial difficulties and the studio was lost to creditors. Leopold moved to San Antonio and Theodore moved to Hollywood, where he made additional films. But the brothers never worked together again, and Ithaca's role in early motion picture history was largely forgotten outside the city itself.
In 2009, the Ithaca Motion Picture Project was established to create a museum dedicated to Ithaca's role in film history. In 2013, the organization became the Wharton Studio Museum, which will have exhibit space in the Tompkins Center for History and Culture, which is scheduled to open in 2019 on Ithaca Commons. At present, the Wharton Studio Museum is working to renovate and restore the original Wharton building into the Wharton Studio Museum and Park Center.
Wharton Studio History. Wharton Studio Museum. . Accessed January 06, 2019. https://whartonstudiomuseum.org/wharton-studio-history/.
Culotta, Bella. Ithaca: Hollywood of the East. IHS Tattler. June 01, 2016. Accessed January 06, 2019. http://www.ihstattler.com/blog/2016/06/ithaca-hollywood-east/.
Wilson, Chloe. Silent No Longer. The Ithacan. September 28, 2011. Accessed January 07, 2019. https://theithacan.org/accent/silent-no-longer/.
1 James L. Gibbs Drive
Music and Entertainment History
Created by Rebecca Woodham on January 6th 2019, 9:49:53 pm.
Last updated by Rebecca Woodham on January 7th 2019, 10:27:13 pm.

redpajama_set_name: RedPajamaCommonCrawl


Today I got an e-mail of Grzegorz Korczak from Unikat (thanks buddy!) with a bunch of pictures of his recent finished project: a custom Yamaha SR125 Scrambler named "Clockwork Orange". We know Grzegorz from an earlier feature here on the blog, a cool Honda CB550 SL Custom.
Just like the Honda, this Yamaha is full of high quality, hand fabricated parts with an amazing eye for detail.
As you can see in the pictures we built this motorcycles from scratch. Design (based on Suzuki gn tank) and technical condition/solutions are far from the original (take a look at the original to compare) like LED lights etc. Yamaha XS 125 originally has excellent 12 HP engine, we decided to use K&N air filter and handcrafted stainless exhaust witch offers nice look and incredible bass sound (euphonious…not too loud) – to increase horsepower and acceleration. We didn't forget about perfect handling balance and geometry to enhance sporty style, so we rebuild suspension on monoshock swing arm and have lover the weight central point.
We removed old paint from frame by hand wire brush and after that we used transparent powder coating. Brand new drivetrain, oil, filters and the lightest motorcyle battery in the world from Shorai– to make ride very fast. We also used enduro style aluminum handlebar with Bitwell grips to make better feeling and comfortable. Because safety is very important for UNIKAT, we choose Hindenau tires and huge drilled brake disc.
I've updated the post with some words from the builder!
Great. Thank you. I will wait for this. It's a awesome bike with nice mods.


text:
A Year of Covid in Venice, passing from chaos to a desert
Posted on February 26, 2021 by campaignforalivingvenice
If nature has reclaimed its spaces, the mandatory loss of sociability has wiped out the rest. Not only tourists, but the stores, the pedestrians, the students. And the sounds of the city have disappeared with them.
By Enrico Tantucci
Venice shut down with a Carnevale, just over one year ago, when, almost at its conclusion, an order signed by Regional President Luca Zaia as the coronavirus swept in, sent the 70,000 people who had descended on the lagoon for the final Sunday of the festival home in a hurry.
A year later, in the new Carnevale has become virtual only, the virus, instead, remains more real than ever.
In the middle, a city that has paradoxically rediscovered, in the desolation, the splendor of its architecture, which has stood through the lonely, cold months, almost inaccessible without the "disturbance" of human presence around them. There has also been an environmental regeneration, so that places for tourists who are no longer there have been taken over by shoals of mussels darting in the canals, which have gone back to running clear due to the absence of water traffic.
There are the families of cormorants perched on the bricole in the canals of Giudecca, which extend up to San Marco, or the mallards that are nesting undisturbed on the ACTV piers. The masters also remain – the seagulls, always dominant in the "high quarters" of Venice, with their hysterical and a bit unsettling cries, morning and evening.
However, while nature has reclaimed its spaces, the mandatory break from sociability has cancelled all the rest. Not only the tourists are gone, but the stores – many of which will not reopen due to the crisis – the pedestrians (kept at home in good part by 'smart working'), and the students. And with them all, the sounds of the city have also disappeared.
What about the symphony of the trolley wheels being dragged by tired tourists along the narrow calle or over bridges in search of an elusive, often approximate destination? Or the Babel of languages you can hear just by listening as you walk? Or the sounds of the water?
It's not only the lapping of the water on the broken foundations along the canals, pushed by waves from large or fast boats (moto ondoso). It's also the guttural sound of the sirens on the cruise ships parading along the Bacino di San Marco. The constant rumble of the vaporetti motors, or the transport boats maneuvering or docked along the Canal Grande. The songs of the gondola – whether they are Venetian, Neapolitan, or international – that resonate among the canals. Or choruses of groups of young people on a Saturday evening, arriving for the highly alcoholic "bacaro tour". Or the sound of new graduates with friends following the Ca' Foscari graduation ceremonies in Piazza San Marco.
These are sounds and noises that are in part disturbances for some, but the loss of which we inevitably feel now, because they mark the difference between a vital and populated city, though with its contradictions, and its mere shadow, the viral Venice of today. Here the dominant sound – especially in the evening, when the curfew is in effect – becomes the voice of silence. Mystical, almost surreal, and at the same time powerful, almost deafening, the creator of a restlessness that pervades us all.
The possible restarting of the city still remains contradictory, between timid re-openings, youth nightlife, which is also the fruit of exasperation with the long lockdown, and the desperate desire for a return to normality which, probably, will not be the same.
Because Venice has no choice – it must find a new way of life. When the virus allows it, the controlled return of tourists will not be enough, previously hardly tolerated by many – starting with the business sectors – and now, regretted by many for being the only lifeblood of this city, now "built" to their size. The city will have to know how to reinvent itself. Find other voices, other sounds that can represent it, it doesn't matter how far away they come from. Create new opportunities, new spaces, new modes of interaction, above all for the young, beginning with the university students, the possible residents of tomorrow. Thus filling the silence that still surrounds the city with things and people.
"MoSE is untrustworthy, someone must pay the damages". Complaint filed with Corte dei Conti
Venice – Correr and Palazzo Ducale Museums are reopening


A fluid line engendered by a soft, continuous stroke - inspiration for the design of the Glover armchair was spawned by the idea of creating an armchair that is as elegant as comfortable. The sides feature an unusual juncture between the enveloping seat back and the armrest, emphasized by elegant studs in pewter-color painted metal. The unexpected opening in the seat back lets the seat cushion show through, lending a visual sense of lightness to the armchair.
The choice of a single upholstery material – leather or fabric – creates a harmonious monochrome effect, while the detailed workmanship draws the eye to the flawless stitching. The design of the legs also served to inspire the Kirk occasional tables, making them the perfect companion to the Glover armchair, especially since they come in many different sizes and finishes.


Designing your kid's bathroom can be a great way to give your home a facelift. Depending what age your kid is you can incorporate his interests and liking in the décor so that he feels comfortable in the bathroom. Take ideas from magazines like the home and garden magazines that give beautiful ideas for a gratifying bathroom design fir kids. Clip out images from the magazines you think would suit your kid's bathroom and compare it with the finished product.
Also it is important to set a budget for the designing. Designing a bathroom can cause you a fortune if you do not spend wisely. Decide on what all you have to spend when setting the budget. Do involve your kid in the design process and take his inputs too in terms of color or theme. This will make him feel special and he will not crib later. Paint the wooden cabinets; get accessories to make the bathroom look attractive. Replace the flooring with a rug, when you are hanging objects in the wall keep your kid's height in mind.


Campanile Hotel Paris Boulevard Berthier, Paris discount hotels and accommodation.
Located in the 17th district of Paris (between Montmartre et Arc de Triomphe), the Campanile Paris- Berthier propose you 246 newly and completely refurbished air –conditioned bedrooms, a friendly bar and a relaxing restaurant with terrace. An underground and secure car park is at your disposal and the metro and bus stations(for a direct access to Champs Elysées, the shopping area of Boulevard Haussmann, Champs de Mars) are situated in front of the hotel.
View photos, room descriptions and make online reservations at Campanile Hotel Paris Boulevard Berthier. Save on room prices at Campanile Hotel Paris Boulevard Berthier, Paris.


text:
Q: Creating a Maze I am trying to Create a Maze with PBE-Lighoutgame as my ref without Mouse Click events
I have a 2 classes
Both these classes are subclass  of RectangleMorph
 VisibleSquare>>initialize
  "Visible borders with Some Color"

other Class
  InvisbleSquare>>initialize
   "Everything is transparent Including Borders"

Implementing Maze Class which is subclass of BorderedMorph
 Maze>>initialize
 initialize
|sampleCell width height n sample|
super initialize.
self borderWidth: 0.
n := self cellsPerSide.
sampleCell := VisibleSquare  new.
sample:= InvisibleSquare new.
width := sampleCell width.
height := sample height.
self bounds: (5@5 extent: ((width + n) @ (height + n)) + (2 * self borderWidth)).
cells := Matrix new: n tabulate: [:i :j | self newCellAt: i at: j].

other Method
Maze>>  newCellAt: i at: j
"Create a cell for position (i,j) and add it to my on-screen
representation at the appropriate screen position. Answer the new cell"
|c origin b |
c := VisibleSquare   new.
origin := self innerBounds origin.
self addMorph: c.
c position: ((i - 1) * c width) @ ((j - 1) * c height) + origin.
 ^ c

How can i tabulate Matrix with both VisibleSquare & InvisibleSquare such that they can be randomly added in grid (or) Is there any other way to do this??

A: Wouldn't generating a random number be simply something like this?
rnd := (1 to: 100) atRandom.

Once you've got it, you can assign alternative messages to the receiver c:
(rnd > 50) ifTrue:[c := VisibleSquare new]
(rnd < 51) ifTrue:[c := InvisibleSquare new]

...which I think can as well be expressed as
c := rnd > 50 ifTrue[VisibleSquare new] ifFalse:[InVisibleSquare new]

Maybe this is what you wanted to know. However, since this is for the generation of a maze layout, you maybe should come up with something more sophisticated than just randomly putting walls. There are probably some algorithms which are fun to implement with the functional programming features that smalltalk seems to be equipped with. Think about having a look at the Wikipedia page on Maze Generation Algorithms, which this page is based on, featuring code samples in various languages.

redpajama_set_name: RedPajamaStackExchange


text:
Digitisation and the treasury technologies of tomorrow
In our 2021 corporate risk management survey; Rethinking Treasury: The road ahead, it was clear that digitisation is increasingly reshaping the way CFOs and treasurers work, as it's incorporated into a growing number of day-to-day operations. But successful transformations into a digital future require the right technology, the right strategy and significant financial and human resources.
The accelerated pace of digitisation in the treasury department was confirmed as one of the largest trends in HSBC's 2021 Corporate Treasury Risk Management Survey. Over half of CFOs (53%) said they expect digitisation to give their business model overall a large boost in the next three to five years.
For treasury professionals, the statistics confirm the journey will continue. While 41% of treasurers felt that treasury digitisation has already had a material impact on their business and risk management strategy over the past three years, this number goes up to 61% for those expecting to have a material impact on their job over the next three years.
The digitisation moment
Both Helen Fang, Head of Industrials Research, Asia Pacific, at HSBC Global Research and Mark Williamson, Global Head of FX Everywhere, Partnerships & Propositions, agree that digitisation is a key strategy for treasury departments.
"I think we're at a really interesting point in history, and financial markets overall are having that Blockbuster moment - so we're going from a Blockbusters model to a Netflix one. And what I mean by that is, over the last 18 months to two years, we've seen a real big ramp up in digitisation of flows of cash and the way they're represented and the way that treasuries consume that information," says Williamson.
Digitisation definitely improves cashflow visibility and optimises liquidity across the organisation. It also increases efficiency and reduces costs through economies of scale, as well as enabling more effective risk management.
Helen Fang|Head of Industrials Research, Asia Pacific, HSBC Global Research
Fang points out that there are several key advantages; "It definitely improves cashflow visibility and optimises liquidity across the organisation. It also increases efficiency and reduces costs through economies of scale, as well as enabling more effective risk management."
Drivers of digitisation
There are numerous things driving this accelerated pace of technological adoption. While COVID-19 and the move to home-working during lockdowns was obviously a key driver, there were other elements driving the transformation before that.
"Cryptocurrencies, moving to a cashless society, and the move to store value on distributed ledger technology (DLT) have all played a part," says Williamson.
"And when we're looking at DLT, what we're seeing is that it's providing an overlay to existing treasury systems like ERPs, business flows and processes. And the reason people are starting to use DLT more and more is because they get better transparency, workflow programmability and auditability of what's flowing through their different systems. That provides really interesting and exciting opportunities for a lot of treasuries that we speak to around the automation and better visibility of their supply chains."
Blockchain was cited as a key technology for CFOs in our survey, though treasurers aren't so sure yet. Almost all CFOs (97%) are seeing at least one future use case for blockchain technology and 54% see the main future use case as the ability to create easier and leaner trade documentation. A further 51% and 44%, respectively, see FX exposure management and payment security as a main use case. However, 54% of treasurers say that they have not identified any specific use case (yet) for blockchain technology in their company. Just over a quarter say that they see payment security as the primary future use case.
The new world of DLT, blockchain and crypto
For Williamson, this disconnect is about how the treasury is often the last to know about technology adoption outside that department. Treasurers are managing cashflow risks and working capital balances arising out of the supply chain, but may not be fully aware that supply chain documentation is being automated on DLT. If the technology moves on to the ability to embed FX payments and financing into that movement of goods and services, then that will be a more interesting development for the treasury.
In the related field of cryptocurrency, what's perhaps more pressing right now is the development of central bank digital currencies (CBDCs) and stable coins.
Some of the Western corporates that operate in China are being asked to accept digital yuan, also called eCNY, at point of sale. And now they're coming to us and saying, 'Okay, now I've got this new form of currency and payment, how do I treat that on my balance sheet?
Mark Williamson|Global Head of FX Everywhere, Partnerships & Propositions, HSBC
"Some of the Western corporates that operate in China are being asked to accept digital yuan, also called eCNY, at point of sale. And now they're coming to us and saying, 'Okay, now I've got this new form of currency and payment, how do I treat that on my balance sheet? How do I treat that as a form of payment? And how is that going to help me in the longer term for how I operate working capital?'," says Williamson.
While blockchain, DLT and cryptocurrencies are throwing up challenges for CFOs and treasuries, they're also enabling a new definition of the banking experience, says Fang.
"Banks can now use blockchain verification capabilities to help their corporate customers to verify electronic lines of credit, or to provide fast and accurate payments to suppliers across multiple tiers. Faster payments around the world are so important for corporates, because a lot of them, their suppliers and their customers can come from anywhere across the globe. And if you can send and receive cash more transparently, securely, and in many cases, in real time, that is crucial," she says.
"This technology allows corporates to complete high speed payment in minutes, which improves cash forecasting and liquidity optimization, which then helps them to make better decisions on either investment or risk management."
Digitisation, automation, and the bottom line
Whatever the technology under consideration, a key element for treasury digitisation is how much it also enables automation. While remote working during lockdowns, automation played an important role in keeping processes running smoothly for large corporations, regardless of timezones or work hours, says Fang. And automation also frees up treasury staff from mundane, repetitive tasks so that they can focus on value-adding work.
But digitisation at this level and pace for the treasury won't be easy. "The frustration would be that it needs a lot of CAPEX and ROI to satisfy the booming demand for digitisation, automation and upgrading data processes – bandwidth and data centre expansion needs are top of the list," Fang points out.
"The CFO's role nowadays has evolved to become more a strategic business-oriented enabler. And they need to be digitally aware and transformation-obsessed and the global epidemic has added to that urgency. But they need to make the decision on whether the drive, both for short-term gains and long-term transformation, in digitisation will free up more working capital."
With 81% of CFOs in the survey saying that digitisation of treasury processes has become more important over the next three years, it's clear that there's a drive for progress. But embracing the opportunities for cost and resource efficiencies has to be balanced with risks of overextending capital. In short, it shouldn't be digitisation for digitisation's sake. Each technology needs to be carefully assessed to ensure that the business will gain from its implementation.
Source: hsbc.com
#financeindustry
#financeprofessionals
finance jobs in singapore
Gender Diversity in Fintech: Making a Difference From the Inside Out
Get ready for the next supply chain shockwave
4 Data & Analytics Trends CFOs Can't Afford to Ignore


The Dublin Commissioner for Startups, Niamh Bushnell, invites you to this private Whiskey Masterclass event during TOA. Join us for this special evening of Jameson's finest whiskeys and wonderful Irish cheeses. We'll learn about whiskey, and about the next generation of global startups building and scaling out of Dublin. We look forward to seeing you there!


The Sawyer Motion Plush Glider Recliner with Contrast Piping by Coaster at Lapeer Furniture & Mattress Center in the Flint, Michigan area. Product availability may vary. Contact us for the most current availability on this product.
The Sawyer Motion collection is a great option if you are looking for Casual furniture in the Flint, Michigan area.
Browse other items in the Sawyer Motion collection from Lapeer Furniture & Mattress Center in the Flint, Michigan area.


Commonly known as Catnip, nepeta cataria is a strongly aromatic member of the mint family, and so comes under the classification of a herb. When growing catnip from seed, it is important to note that it grows well in USDA zones 5 - 9, and is perennial, dying back in the winter for a period of dormancy, and sprouting again in the spring.
Like the mint, care has to be taken so that the catnip herb does not crowd out the other plants in your garden. It can become almost a noxious weed in some areas. The mints spread their underground roots and pop up new sprouts all over the place, so it might be advisable to grow your catnip in a large pot buried up to its neck in soil, else keep it on the terrace in a container, if you don't want an entire catnip garden.
It can be grown inside your house all year round, but it will likely die in the winter as they need a cold dormancy period and in most houses they are not likely to get that. They would in mine but that's another story!
While there are several different varieties of catnip, the best catnip for growing for your cats is nepeta cataria.
First obtain some catnip seed. They can be bought in most garden stores, else ordered here online. Perhaps you have a friend or neighbour who grows it who would be prepared to give you a rooted offshoot or some seeds from their plants?
Plant your catnip seed just under the surface of a compost-filled pot and water well. Keep warm but out of direct sunlight.
When the seedlings appear, 2 to 3 weeks later, either thin out the weakest and only plant on the strongest looking ones, else plant them all on into individual pots.
Do not do this before the second set of leaves appear (the first 'true' leaves).
Catnip plants like a lot of water when growing, so you may have to water them twice a day. When all risk of frost has passed, plant them out in the garden, about 18" apart. They tolerate sun through to semi-shade, but if you live in a warm climate they might be better off in the shadier parts of the garden. They like neutral to slightly alkaline, well-drained soils.
They can tolerate drought quite well once they are established.
Fully mature, they can reach 3' in height.
Catnip plants are not usually attacked by anything except cats who go wild for them. Even if you don't have any cats, don't be surprised to see all your neighbourhood cats paying your garden visits for a quick roll on your catnip plants!
Organic catnip is therefore your best bet to buy, as the seeds don't need to be pre-treated to conserve them.
Catnip is one of the plants commonly used by herbalists to assist a wide variety of conditions.
Dried and made into a tea by soaking one teaspoon dried catnip for a child, or two teaspoons for an adult in a cup of boiled water, it is said to relieve colic in babies (where the tea can be mixed with infant milk) and digestion problems in children and adults.
This tea is also drank as a relaxant at bedtime, or to soothe coughs.
It is also said to regulate the menstrual cycle in women and reduce dysmenorrhoea.
The leaves are said to relieve toothache when chewed.
The oils in the plants (which can be released by crushing) are said to be good for cleaning wounds.
Its other claims to fame are as an anaesthetic, antibiotic, anti-rheumatic, antispasmodic, astringent, diuretic, relieves muscular aches and pains, and haemorrhoids.
Smoking catmint is another method of taking the dried plant for medicinal use.
The catmint is a distant cousin of marijuana, and can cause a mild hallucinogenic effect on some humans as well as cats.
There is some physical similarities between these two plants as you can see from these pictures below.
Catnip is reported to deter insects better than DEET. As a regular user of DEET, I have yet to try this as mosquito repellent, but I intend to try this summer because mosquitoes just love me! If I forget to close a window at nighttime, I'll wake up covered in bites. If I go out to the garden without my DEET spray on, I get bitten half to death!
DEET is expensive and catnip is free after the initial cost of buying the seed, so I'm definitely going to try catnip.
It supposedly also deters cockroaches and many other horrible insects that invade houses in warmer climates.
Wait until your growing catnip plant is at least 5" tall, and cut the whole stem off at the base.
Collect several such stems, complete with leaves and flowers.
Tie together with twine or string.
Hang upside down in a warm, dry but ventilated area.
Depending on how warm and dry, expect your catnip to be completely dry within 6 - 8 weeks.
Rub between fingers to break the leaves and flowers into little pieces.
Store in a sealed airtight container.
What better present could you give your cat! While it is rolling on the catnip it is leaving all your other plants alone.
You could even start a cottage industry, making dried catnip balls and organic catnip toys for all your neighbourhood cats.
An interesting thing about catnip is that not every cat is attracted to it, although something like 80% are. When a cat finds catnip, it goes mental for about three-quarters of an hour, then it will dismiss it as if it never existed.
It's almost as if whatever effect it had, wore off, although a few hours later, your cat will rediscover the joys again.
When I say the word CAT, I really do mean all cats, including lions and tigers etc so if you live in a area where they roam free, I do NOT advise growing catnip.
For further reading, look at Growing Catnip Grass.
That will make a brilliant video and I can't wait to see it :) I can only buy catnip grass here and it is an ugly little plant so I really don't want to grow it. I would love to be able to buy the variety shown above.
I shall see this summer, as I am going to try this, and then video record the reactions of the cats...Hopefully, I will hub a documentary with the cats foaming and frolicking as well.
This is a great tutorial to start my catnip venture! I plan to plant them all around the house, and in the garden were the neighborhood cats think this where they should do their business. I think it would be interesting to try this as a tea, you only can hallucinate smoking it right...? Last thing I need is an Alice in Wonderland venture right before bed.
Wow--My cats thank you for this article! I'm definitely going to try this---but as you suggest--in plantpots. I recall my mother having a mint plant when I was a child, and the thing was bigger than I was!
No no I'm growing it first! Actually I think it might be growing wild already locally, it looks awfully familiar!
IzzyM, my cats love catnip, but I have never grown my own. You have inspired me to give it a try! Rainbow (the all white queen of a cat) and Milo (Milosavich the Magnificent common grey tabby) thank you.


text:
News | Students | Young Americans for Freedom
'Most Important Undergraduate in the Country' Tapped to Fight Campus Left at Helm of Surging YAF
After Quarantining Ben Shapiro In Desolate Venue, University Of Minnesota Approves Counter Event On Main Campus
In an inexplicable turn of events proving the University of Minnesota's anti-conservative bias, the U of M's Women's Center and…
'Most Important Undergraduate in the Country' Tapped to Fight Campus Left at Helm of Surging Young Americans for Freedom
RESTON, VA- Young America's Foundation is thrilled to announce the appointment of 20 year-old University of Michigan student Grant Strobl to chairman of the Young Americans for Freedom (YAF) Board of Governors. As YAF chairman, Grant will lead a massive army of young conservatives on campuses across the country with a multimillion-dollar budget, all while continuing his work as an undergraduate student at the University of Michigan.
Since its founding by William F. Buckley in 1960, YAF's historical strength has been empowering young conservatives to fuel the Conservative Movement's biggest victories, from the ascensions of Barry Goldwater to Ronald Reagan all the way through today's fight for free speech on college campuses. At 20 years old, Strobl is already an accomplished veteran of that battle. No young person in the country is better equipped to help introduce students to conservative ideas and protect free speech rights on campuses.
Strobl's career as a nationally recognized conservative activist began in high school. At the age of 17 he fought his administration to allow Steve Forbes to speak on campus, started a grassroots "Respect All Women" campaign to highlight feminist hypocrisy that made headlines across the country, and changed school district policy on campus-wide assemblies. In his first two years of college activism, Grant founded a YAF chapter, lead the charge to defend the screening of American Sniper from being canceled by politically correct administrators, organized a widely-covered debate between Dinesh D'Souza and Bill Ayers, and hosted lectures by Ben Shapiro, Jonah Goldberg, and other conservative leaders.
"Student activists need student leaders," said Young America's Foundation President Ron Robinson. "The responsibility that comes with the chairmanship of YAF, including its multi-million dollar budget and network of thousands of activists, makes Grant the most important undergraduate in the country—a role for which he is remarkably well-prepared."
In a statement to Young America's Foundation, Strobl commented, "Young Americans for Freedom is the foremost youth outreach organization in the Conservative Movement with a rich history. It is an incredible honor to be named chairman of the Young Americans for Freedom Board of Governors, and I am excited to work with other board members to grow YAF and expand the Movement. As a current college student, I believe that my generation will be the conservative generation, and I am determined that YAF will make it so."
Michael Jones, outgoing YAF chairman, offered his encouragement, stating, "Since 1960, Young Americans for Freedom has produced a litany of remarkable conservative leaders. By virtue of his noble character and principled student activism, Grant Strobl's tenure of the organization that Buckley honored, Goldwater treasured, and Reagan admired will no doubt yield a new generation of influential young conservatives. As the torch of freedom is now passed, I wish Grant the fullest measure of success at the helm."
Young America's Foundation merged with Young Americans for Freedom in 2011, growing the number of YAF chapters significantly in only five years. Both organizations are historical institutions of the Conservative Movement and have more than half a century of experience in promoting freedom among America's youngest generations.
The Foundation is confident that both Ronald Reagan, YAF's longtime honorary national chairman, and its founder, William F. Buckley, would be delighted to know their treasured youth organization is in the capable hands of Grant Strobl.
Chapter Of Distinction: Texas A&M University YAF
YAF Welcomes Kathryn Beale To National HQ Team
Catch Up On Speakers From YAF's High School Conference At The Reagan Ranch
YouTu


text:
Catholic high school enrollment increases buoyed by economy, mini-baby boom
Valerie Schmalz
More students are attending Catholic high school in the Archdiocese of San Francisco.
Thirteen of the 14 Catholic high schools in the archdiocese increased the number of students enrolled from last year to this year and many have seen overall jumps in enrollment over the past five years, according to statistics gathered by the archdiocesan Department of Catholic Schools.
"The mini baby boom in 2000 is now 14 years old and in high school," said Maureen Huntington, Catholic schools superintendent. "The improved economy is allowing schools to offer more tuition assistance and more families to trust in their future earning capacity to afford tuition and college."
Enrollment in secondary Catholic schools is up by a total of 215 students for a total of 8,094 students enrolled in Catholic high schools in Marin, San Mateo and San Francisco counties, according to statistics collected by the archdiocesan Department of Catholic Schools.
All four archdiocesan high schools saw enrollment increase, in some cases substantially, from last year to this year. Most saw solid gains when comparing this year to five years ago, according to the archdiocesan schools department data.
All but one of the 10 independent Catholic high schools owned by religious communities increased enrollment from 2013-14 to this school year, according to data compiled by the schools department. Many also increased enrollment over the past five years.
High school enrollment is up overall over the past five years in San Francisco and Marin counties, but San Mateo county high schools have seen an aggregate drop in enrollment during that period of 9.7 percent. However, from 2013-14 to this year, Catholic high school enrollment increased overall in San Mateo County by close to 1 percent.
The four archdiocesan Catholic high schools all increased enrollment.
Marin Catholic High School increased enrollment by 5.1 percent from 2009-10 to 2014-15 from 712 to 748 students. Sacred Heart Cathedral Preparatory, also coeducational and the largest archdiocesan high school, increased enrollment from 1269 to 1289 which is close to capacity for the San Francisco school. Junipero Serra High School in San Mateo, an all-boys archdiocesan high school increased its enrollment from last year to this year by 3 percent, up to 885 students.
Archbishop Riordan High School in San Francisco, also all-boys, saw its enrollment grow nearly 18 percent over the past five years, from 575 in 2009-10 to 678 this school year. Riordan's enrollment rose 6.1 percent from 2013-14 to this year.
"It takes a community to raise a young person," said Riordan admissions director Derek Tate, summarizing the attraction of faith-driven and academically excellent Catholic schools. "As a school, we have to do a great job of being there for kids when they are successful and helping them when they are not. That's all part of the educational process."
Serra president Lars Lund noted faith is the underlying foundation for Catholic schools. "Since 1944, we've focused on educating men of faith, wisdom and service-leaders who build community and seek to make a difference in the world," said Lund.
Enrollment increased 20 percent from 2009-10 to this school year at all-girls Immaculate Conception Academy, a Dominicans of Mission San Jose school which converted to the Cristo Rey Network model in September 2009. The students work five days a month at a corporate site – the school has more than 100 corporate sponsors which fund about 50 percent of its costs – and annual tuition of $2,900 is also frequently mitigated by financial aid. Enrollment rose from 248 in the 2009-10 year to 299 this school year. Principal Lisa Graham said the Cristo Rey model makes "ICA a true option for those who could not otherwise afford a Catholic, college prep high school education."


Seth: [singing] My eyes have seen the glory of the trampling at the zoo, We've washed ourselves in niggers blood and all the mongrels too, We've taken down the zog machine Jew by Jew by Jew, The white man marches on!
Q: What is "Mein Kampf"?
Q: Would the ending cause Derek to revert to his old ways?
"American History X" is a bold and disturbing movie about family, racism and our own self-perceptions. Its main character is Derek (Edward Norton), a neo-Nazi skinhead who is released from jail to find his younger brother (Edward Furlong) descending down the same corrupt path as he once walked.
In jail Derek learns a few things about life, and racism, or more appropriately, himself, and after becoming a free man again takes it upon himself to set his brother on the straight and narrow path.
"American History X" is not a pleasant motion picture. It begins in flashback, as Derek murders two black kids trying to break into his car. His brother, who idolizes Derek and later mimics his lifestyle, witnesses this event. It's a good message about negative influences, along with everything else.
Much has been made of the film's controversy and lawsuits. Director Tony Kaye disowned the film after Norton (allegedly) re-edited footage to give himself more screen time. Kaye tried to have his name changed on the film credits, but by this time he had already taken out a complaint in several magazines, which are against the rules of the Director's Guild. He was therefore denied the opportunity to credit the work as "directed by Humpty Dumpty." Then, musical band Anti-Hero complained to New Line Cinema (the film's international distributor) because one of the Nazi characters featured a tattoo of their band. They later wrote a song, called "NLC," bashing the company.
Despite the hard-edged controversy it's still a very good film, above all else extremely well-acted and featuring a gripping storyline – even if the direction isn't always up to par.
Edward Norton is simply superb in his role, showing extremely raw talent a mere two years after his film debut (in the Richard Gere thriller "A Primal Fear"). Norton careens between the role of a raging, vicious supremacist and a kindler, gentler version of the same character; a metamorphosis so convincing it's hard to believe it's just one actor.
The rest of the cast is good as well – Furlong gives the best performance of his career and Beverly D'Angelo and Stacy Keach have strong supporting roles. (D'Angelo in particular, who portrays a sleazy alcoholic – a stretch compared to her usual Normal Mom roles in the "Vacation" movies.) "American History X" isn't exactly rewarding of all the praise it has been lavished since its release (mainly from viewers rather than critics, who were less kind) – it isn't the best movie of its kind or even a flawless one. The black-and-white photography isn't on the same level, visually, as "Raging Bull" or "Schindler's List." The preaching is a bit heavy-handed at times.
But it still manages to convey an important lesson and boasts great acting complimented by an (overall) impressive, gut-wrenching screenplay. A must-see for all who can stomach its content.


text:
Q: compare the triplets C# hackerrank improving my solution I've been trying to solve this hackerrank practice question (Compare the Triplets) and I have no idea where I'm wrong.  My output is correct but it does not pass all of hackerrank's test cases.  Any advice?
Problem:
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    class Solution {

static void Main(String[] args) {
    string[] tokens_a0 = Console.ReadLine().Split(' ');
    int a0 = Convert.ToInt32(tokens_a0[0]);
    int a1 = Convert.ToInt32(tokens_a0[1]);
    int a2 = Convert.ToInt32(tokens_a0[2]);
    string[] tokens_b0 = Console.ReadLine().Split(' ');
    int b0 = Convert.ToInt32(tokens_b0[0]);
    int b1 = Convert.ToInt32(tokens_b0[1]);
    int b2 = Convert.ToInt32(tokens_b0[2]);
    // Write Your Code Here
    int aliceScore = 0;
    int bobScore = 0;

    if(a0 > b0 || a1 > b1 || a2 > b2)
    {
       aliceScore++;
    }
    if(b0 > a0 || b1 > a1 || b2 > a2)
    {
        bobScore++;
    }
    if(a0 == b0 || a1 == b1 || a2 == b2)
    {
        aliceScore += 0;
        bobScore += 0;
    }

    Console.WriteLine(aliceScore +" " + bobScore);

}

}

A: I think I see the problem, you need to compare each data point and calculate the score for each one. So, compare data point 0, then data point 1 then data point 2.
Pseudo code is below, have not tested:
    if(a0 > b0)
    {
       aliceScore++;
    }
    else if(b0 > a0)
    {
        bobScore++;
    }

    if(a1 > b1)
    {
        aliceScore++;
    }
    else if(b1 > a1)
    {
        bobScore++;
    }

    if(a2 > b2)
    {
        aliceScore++;
    }
    else if(b2 > a2)
    {
        bobScore++;
    }

A: GER provides the steps to the logic behind solving the problem.  Your solution should ideally be able to cater for any input provided in the arrays for either Alice or Bob.  Let's say we have two Lists of type int.
var a = new List<int> {10, 11, 12, 14, 45 };
var b = new List<int> {8, 15, 10, 12, 55 };

Say list "a" represents score tally for Alice and list "b" for Bob.  The solution requires comparison of entries at the same index positions from either list i.e. from left to right number 10 from list "a" is at index 0 and number 8 from list "b" is at index 0 as well.  The function that processes the task of comparing will accept both lists as input, and then return a list containing 2 entries.  The function's return will be a score for Alice and a Score for Bob.  See example solution below
void Main()
{
    var a = new List<int> { 10, 11, 12, 14, 45 };
    var b = new List<int> { 8, 15, 10, 12, 55 };

    var result = CompareScores(a, b);

    //Expected result is :
    // Alice: 3
    // Bob: 2

    Console.WriteLine($"Alice score: {result.ElementAt(0)} Bob score: {result.ElementAt(1)}");
}

public List<int> CompareScores(List<int> alice, List<int> bob)
{
    var ScoreAlice = 0;
    var ScoreBob = 0;
    var i = 0;
    alice.ForEach(scoreAlice => {
        if(scoreAlice > bob.ElementAt(i))
        {
            ScoreAlice ++;
        }
        if(scoreAlice < bob.ElementAt(i))
        {
            ScoreBob ++;
        }
        i++;
    });
    return new List<int> {ScoreAlice, ScoreBob };
}

In my solution notice I have used Linq to iterate over List representing Alice and for each element I compare against Bob's list identifying the element using the value of "i".

A: I think this is not a correct way to solve this problem. You should follow these
steps given below.
        int[] Alice = { a0, a1, a2 };
        int[] Bob = { b0, b1, b2 };
        int alice = 0;
        int bob = 0;
        for (int i = 0; i < Alice.Length; i++)
        {
            if (Alice[i] > Bob[i])
            {
                alice++;
            }
            if (Alice[i] < Bob[i])
            {
                bob++;
            }
        }
        int[] result = { alice, bob };
        return result;

A: using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using System.Text.RegularExpressions;
using System.Text;
using System;

class Solution {

    // Complete the compareTriplets function below.
    static List<int> compareTriplets(List<int> a, List<int> b) {
        int alice=0,bob=0;
        for(int i=0;i<a.Count;i++)
        {
            if(a.ElementAt(i)>b.ElementAt(i))
            {
                alice=alice+1;
            }
            else if(a.ElementAt(i)<b.ElementAt(i))
            {
                bob=bob+1;
            }
        }
        return new List<int> {alice,bob};

    }

    static void Main(string[] args) {
        TextWriter textWriter = new StreamWriter(@System.Environment.GetEnvironmentVariable("OUTPUT_PATH"), true);

        List<int> a = Console.ReadLine().TrimEnd().Split(' ').ToList().Select(aTemp => Convert.ToInt32(aTemp)).ToList();

        List<int> b = Console.ReadLine().TrimEnd().Split(' ').ToList().Select(bTemp => Convert.ToInt32(bTemp)).ToList();

        List<int> result = compareTriplets(a, b);

        textWriter.WriteLine(String.Join(" ", result));

        textWriter.Flush();
        textWriter.Close();
    }
}

A: class Solution {
// Complete the compareTriplets function below.
static List<int> compareTriplets(List<int> a, List<int> b) {
    int A = 0;
    int B = 0;

    for(int i=0; i < a.Count; i++){
        if(a[i] > b[i]){
            A++;

        }else if(a[i] < b[i]){
            B++;
        }
    }
    return new List<int> {A,B};
}

static void Main(string[] args) {
    TextWriter textWriter = new StreamWriter(@System.Environment.GetEnvironmentVariable("OUTPUT_PATH"), true);

    List<int> a = Console.ReadLine().TrimEnd().Split(' ').ToList().Select(aTemp => Convert.ToInt32(aTemp)).ToList();

    List<int> b = Console.ReadLine().TrimEnd().Split(' ').ToList().Select(bTemp => Convert.ToInt32(bTemp)).ToList();

    List<int> result = compareTriplets(a, b);

    textWriter.WriteLine(String.Join(" ", result));

    textWriter.Flush();
    textWriter.Close();
}

}

A: I think this will work fine.
        List<int> res = new() { 0, 0 };

        for (int i = 0; i < a.Count; i++)
        {
            if (a[i] > b[i]) res[0]++;
            else if (a[i] < b[i]) res[1]++;
        }

A: vector<int> compareTriplets(vector<int> a, vector<int> b)
{
    int testsubjects=0;
    int s=0;
    int d=0;
    for(int i=0;i<testsubjects;i++)
    {
        s+= a[i]>b[i] ? 1:0;
        d+=a[i]<b[i] ? 1:0;
    }
    vector<int> vect = vector<int> {s,d};
    return vect;
}

A: u can try with this:
int alice = 0;
int bob = 0;
int totalTest = 3;
List<int> result = new List<int>();

for(var i=0; i<totalTest; i++)
{
    if(a[i] > b[i]){
        alice++;
    }else if(a[i] < b[i]){
         bob++;
    }
}

result.Add(alice);
result.Add(bob);
return result;

A:     var res = new List<int>{0,0};
    var count = a.Count > b.Count ? a :b;
    for(int i =0;i<count.Count;i++){
        if(a[i]>b[i]){
            res[0]+=1;
        }
        else if(b[i]>a[i]){
            res[1]+=1;
        }
        else{

        }
    }

    return res;
}

A: Working Solution:
 public static List<int> compareTriplets(List<int> a, List<int> b)
 {
     int alice = 0;
     int bob = 0;

     for(int j =0 ; j < a.Count; j++){
       if (a[j] > b[j]) {
            alice +=1;
       }else if(b[j] > a[j]){
            bob +=1;
       }else{
            continue;
            }
        }

     return new List<int> {alice, bob};
  }


text:
Kari Lake Promises To Arrest FBI Agents Over Policy That Doesn't Exist
Kari Lake from a rally yesterday:
"I don't believe parents are terrorists at all. And I'll tell you what. If I were governor right now, and Joe Biden even thought he was gonna send his FBI or DOJ in to start coming after our parents, they would be met at the airport with the state police and arrested for going after our rights. We finally, as parents, have to rise up and say, 'No, we're gonna take this anymore, and they call us terrorists. That's unbelievable. We're in an upside-down world, and we need to right it.'
Kari Lake, as Governor, said she would send the Arizona state police to intercept FBI and DOJ agents at the airport to arrest them. pic.twitter.com/tpXgSMjAgj
— PatriotTakes 🇺🇸 (@patriottakes) November 2, 2022
That sounds concerning. Joe Biden might send "his" FBI and DOJ to come after parents? Forget that State Police cannot arrest the FBI if they are doing their jobs, it is unbelievable that the FBI would be "sent" to arrest parent terrorists.
Literally "unbelievable" because none of this exists in the real world, and Kari Lake is tapping into the Qanon conspiracy ecosystem, the favorite habitat of the rabid MAGA voter who might otherwise be too lazy to vote.
The actual FBI memo doesn't mention parents, only the safety of teachers and district staff:
Threats against public servants are not only illegal, they run counter to our nation's core values. Those who dedicate their time and energy to ensuring that our children receive a proper education in a safe environment deserve to be able to do their work without fear for their safety.
The Department takes these incidents seriously and is committed to using its authority and resources to discourage these threats, identify them when they occur, and prosecute them when appropriate.
In the coming days, the Department will announce a series of measures designed to address the rise in criminal conduct directed toward school personnel.
So, wait. Not all parents are terrorists? The FBI only plans to stop the death threats and aggressive action toward other state employees. like teachers and administrators? So, it would seem that the FBI doesn't call parents terrorists. No, the FBI calls terrorists "terrorists." If a parent has concerns and goes to meetings and speaks their mind loudly, he or she isn't a terrorist; that person is a concerned parent. But if a parent or ISIS leader goes to a school board meeting and says that he knows where they all live and they are signing their death warrants, that person is a terrorist, parent or not.
Yet again, it's Lake who lives in an upside-down world. Katie Hobbs, win or lose, committed the greatest act of political malpractice ever by refusing to debate this person. Pffft, "state troopers arresting FBI agents there to take in parents because they're terrorists." Only Kari Lake would make such an assertion.
@JasonMiciak believes a day without learning is a day not lived. He is a political writer, features writer, author, and attorney. He is a Canadian-born dual citizen who spent his teen and college years in the Pacific Northwest and has since lived in seven states. He now enjoys life as a single dad of a young girl, writing from the beaches of the Gulf Coast. He loves crafting his flower pots, cooking, and currently studies philosophy of science, religion, and non-math principles behind quantum mechanics and cosmology. Please feel free to contact with any concerns.
Seth Meyers Reminds Republicans They Are Stuck With Trump And Totally Screwed
It Sure Does Sound Like Biden Steamrolled Kevin McCarthy In Their Meeting
Seth Meyers reminded Republicans that Donald Trump is never going to change, and never going to drop out of the...
Speaker Kevin McCarthy was talking a big game about negotiations and spending cuts before he met with President Biden, but...
FBI Finds No Classified Docs At Biden Rehoboth Home
A coordinated and agreed upon search of Biden's Rehoboth, Delaware home found no classified documents. CNN reported: "The DOJ's planned...
GameStop Stock Free Fall Is A Nonstop Disaster


Large dyed parka in taffeta, with a fluid touch and light silk. Full hidden central zip, with comfortable double slider, high welt pockets and side pockets with flap. Neckband edged with Rex fur and detachable hood with adjusting straps. Reflective tab at the waist and on the back. Water repellent.


However , the annual festival was to held that weekend where we were supposed to stay So for some reason we were relocated into Hotel A3 30 minutes away ,supposedly there being no accomodation 'available '.
Surprise ,surprise when we visited Cesky Krumlov on the first afternoon we found and booked two rooms for ourselves And GET THIS!!!in the original hotel we were supposed to stay in!!!
So we had to spend one horrible night in THE Seedy vile DUMP Just look at the photos they say it all !!
Intrepid refunded us $140 each. BIG deal !!
This hotel has plain, simple rooms that do the job. There is no charm but everything works as it should. The breakfast was great with a large typical Eastern European breakfast. The rooms were very clean and well kept. The WiFi worked well.
Staff were helpful and had reasonable English. I chose this hotel for its location close to both the train station and the bus station. Both were less than a five minute walk away.Transfers in and out and to Cesky Krumlow were very easy.
We stayed here 3 nights and the main advantage was it is near the train station; however notwithstanding this I wished I had investigated the pensions in town as they were in a much more pleasant location. The walk back from town in an evening through the deserted streets, deserted except for drunks/homeless or other solitary people felt extremely edgy. We didn't have breakfast there but found a cafe on the first floor of the Mercury shopping centre open even on a Sunday morning. Reception is not manned most of the time. Wifi only available in reception ( or from the pavement directly outside).
Spent a couple of nights here: if you've just seen the movie "Birds" (by Hitchcock), this is the last place where you wish to spend the night! I had a room with a window overlooking a ladder and several pigeons who spent the night perched on the ladder. Looking out of the window pane and seeing pigeons looking at you was a bit ominous, and definitely didn't make me want to open the window... even if it was very hot inside the room.
Main problem with my stay is that the room was advertised as with "air conditioning" and, yet, there was no air conditioning (the hotel had run out of rooms with aircon).
Among positive things: room wasn't expensive and was big enough, internet (via cable) worked well, hotel is well located, next to the train and bus stations. Still, I would not return here.
If you are planning to spend some time exploring the southern part of the Czech Republic, your best bet is to base yourself in Ceske Budejovice. Although the city itself cannot rival the Renaissance charm of Cesky Krumlov or Tabor, its excellent transport links will put you within easy reach of these and other destinations. The A3 Hotel is perfect in this respect - one block away from the bus station and almost directly opposite the train station. I usually avoid any hotel near a major train station, especially a cheap one, but in this case my prejudices were completely unfounded. My room was clean, modern and, since it was located at the back of the hotel, there was absolutely no noise. I slept perfectly, even with the windows open. And the hotel is in a safe area (entrance on a main road, next to a busy new shopping centre).
Rates for a single room are CZK 600-700 (about £25; breakfast extra) but, perhaps because I was staying for six nights, I had the great good luck to be upgraded to their spacious fourth floor apartment at no extra charge - this is well worth considering if you can afford the usual 2000 CZK asking price.
The hotel reception is clearly labelled at the entrance (in the cafe on the ground floor, on the right hand side of the archway). The lady I spoke to was friendly and took me round to the hotel entrance; since I don't speak Czech, she showed me the lift and what the various keys were for. I didn't have any problems, so didn't need to speak to anyone from the hotel again until I checked out, but the towels were discreetly changed during my stay.
One other bonus: the hotel is next to a shopping centre (the Mercury Centrum) whose hypermarket never seems to close (it was open even on public holidays) so if you are on a tight budget (as I was) you can stock up on breakfast/packed lunch goodies early in the morning. The historic town centre, with its many bars and restaurants, is a pleasant ten minute walk away. I would definitely stay at the A3 again if I return to this part of the Czech Republic.
Room tip: A room at the back is preferable, as the hotel faces onto a busy street and is opposite the railway station.


Podcast: Media-Ocrity Episode 1: 'LEGO Star Wars', Comics, and 'Suicide Squad'!
This is the 1st episode of the newest podcast under the MULTI-MEDIA MEN banner called 'Media-Ocrity', where the show is just – okay. Here on the show, we focus strictly on horror/sci-fi, comic books, and video games – basically all the fun stuff that tickles your fancy. In our first episode, we discuss a ton of comic book adaptations into films and television shows and if we think the market is super-saturated. We also dive into some video games coming out as well as the upcoming Warner Bros. film 'Suicide Squad'. There were many laughs, a few tears, and a little bit of blood. Needless to say it was a lot of fun. I am joined by comic book artist Jeremy Megert and pop-culture wizard Jonathan Atterbury.
Media-Ocrity Ep. #40 – Venom, Sylvester Stallone, Star Trek, Star Wars Quiz #2!
Media-Ocrity Ep. 20 – 'Wonder Woman', 'Boba Fett', 'Skyrim: Remastered'!
This entry was posted on Thursday, June 23rd, 2016 at 9:16 pm	and is filed under News, Podcast. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.
« 'Scream Queens' Season 2 Adds Taylor Lautner and John Stamos!!!


Oriental Tours Egypt offers a great opportunity to know more information about the history of ancient Egypt and the grand Karnak temples. This is in addition to the history of Luxor city as the capital of ancient Egypt through sound and Light Show at the Karnak Temples. You will have an amazing experience and an enjoyable night. you can view the Karnak Temple stunning at night with an audio-visual show.
Have you ever imagined how the life was for the ancient Egyptian thousands of years ago? You will feel that you have lived in this era through the Sound and Light Show at the Karnak Temple, the center of the worship of God Amon. The temple was dedicated to him, his wife Mut, and their son Khonsu. They have been started the construction of this temple in the reign of the Middle Kingdom around the 20th century BC. Afterwards, each and every Pharaoh added his contribution to the temple that became the largest in Egypt.
You will be transferred by your Oriental Tours' Guide to attend the Sound and Light Show at the Karnak Temples. This show takes about 75 minutes by taking a tour around the temple. Then, spectators go to their seats to attend the show of the Sound and Light Show at the Karnak Temples that relate to the history of the ancient capital of Egypt.


High quality entertainment with casino gaming and trained dealers that will provide you with an authentic casino experience at your next Vegas style party. Keep your shirt and be a ''High Rolle'' without the risk of losing your money.
If you are looking to provide that Vegas casino experience for your next party or special occasion, we offer you the opportunity to allow us to help turn your gathering into a high charged casino night party. A perfect theme party for Fundraisers, Graduation Night, Block Parties, Corporate Events, Birthdays, Weddings, Anniversaries, Holiday Parties, and Bachelor & Bachelorette parties, any get together can be boosted with a high energy Vegas atmosphere.
Our services can accommodate events of up to 500 guests. We will provide you with live gaming tables from Craps, Black Jack, and Poker to Roulette and Let It Ride. We provide you with Chips, Dice, Cards, and even play money. We can even assist you in throwing your own poker tournament, and if your guests don't know how to play a game, our dealers are very well trained and will teach you during your play. Our service includes, delivery, set-up, all equipment, supplies and dealers.
The rule of thumb is to have playing space to accommodate 70% of your party guests or 1 table for every 10 guest. A Craps table counts as 2 tables.
1 Craps, 6 Black Jack and 1 Roulette table. This combination would allow 66 guest to play at a time at a cost of $2,040 plus tax. This is simply and example and just a suggestion.


text:
Food & Nourishment
Slaughtering according to sharee'ah
What is the ruling on eating local chickens when one does not know how they were slaughtered?
Is it permissible to eat the chicken and meat that are available in restaurants, when I do not know whether they were slaughtered according to Islamic sharee'ah or not?.
It was proven in Saheeh al-Bukhaari from 'Aa'ishah (may Allaah be pleased with her) that some people came to the Prophet (peace and blessings of Allaah be upon him) and said: "Some people bring us meat and we do not know whether they mentioned the name of Allaah over it or not." He said: "Say the name of Allaah yourselves then eat." I said: They (the people who brought the meat) were new in Islam and they were not sure whether they said the name of Allaah (when slaughtering the meat) or not. So he said: Say the name of Allaah yourself and eat. So it is permissible to eat even if we do not know whether the name of Allaah has been pronounced over the meat or not. Similarly it is permissible to eat even if we do not know whether it was slaughtered in the proper manner or not, because if the action was done by the appropriate people, the basic principle is that it is valid unless there is evidence to the contrary. If there comes to us meat that has been slaughtered by a Muslim, a Jew or a Christian, then we do not ask about it and we do not say, "How was it slaughtered?" or "Was the name of Allaah mentioned over it or not?" It is halaal so long as there is no proof that it is haraam. This is a way in which Allaah has made things easy for us. Otherwise we would have a problem every time some meat was offered to us, and we would have to ask, "Who slaughtered it? Does he pray or not? Did he say the name of Allaah over it or not? Did the blood flow or not?" and so on. But by the grace of Allaah, if an action is done by the appropriate people, then the basic principle is that it is sound and valid unless there is evidence to the contrary.
Source: See As'ilat al-Baab il-Maftooh, vol. 1, p. 77, by Shaykh Ibn 'Uthaymeen (may Allaah have mercy on him)


I checked another thing off of my list today. I made an apron from this tutorial. I just decided to make it 2 FQ's so that it can be reversible and I also made my own bias tape instead of using some trim. Let me just say making your own bias tape is not my favorite thing.
I made this for my sister in law who loves rosters and decorates her kitchen with them.
She, also like me, loves pink.
I bet you are wondering why I decided to take the pictures next a a globe huh?? Random. I thought it was be really funny since my bff Erin did the same thing and I just thought it would make her laugh.
What apron pattern did you use...I don't see a link to which you used.
love those aprons!!! they look great!


Ong provides us with some very convincing arguments that there is a marked difference between the thought processes of a purely oral society compared to a literate society. One cannot deny that his examples of the work A. R. Luria appear to show very conclusively that the oral speaker thinks in more lifeworld terms, meanwhile the literate or even semi-literate man is capable of more abstract thinking processes. Ong clearly states that "Literate users of a grapholect such as standard English have access to vocabularies hundreds of times larger than any oral language can manage" (p. 14).On the whole I find myself in agreement with him. However, I have several in laws who are illiterate and when we have problems it is often due to misunderstandings because I have used language in a different way than they do.
Therefore, I find myself left with doubts about the validity of some of his arguments. I wonder if it is really possible for a literate person to know what questions to ask an illiterate person in order to determine their thought processes. I can empathize if I have this skill, but I have been literate all my life. I have had access as Ong quotes Finnegan as saying to "The new way to store knowledge … in the written text. This freed the mind for more original, more abstract thought" (Ong, p. 24).Is it possible to be objective if I have so much more language to command? I believe that as teachers we need to look at orality and literacy at all levels of education. I train teachers from kinder to high school. It is important for kinder teachers to realise how important their use of language is. Children entering kinder garden are being exposed, often for the first time, to new language and new voices. Ong (p.71) explains how one can become immersed in sound. Children love repeated sounds and the use of onomatopoeia and alliteration is crucial for keeping their attention. Small children develop language skills when language is introduced in an additive and aggregative way.
I think almost all teachers would agree that storytelling and giving new information using story telling techniques is a standard practice. However, when we come to older children the reverse is true. Mexico, in particular, is a very sociable and oral culture. However, in the secondary and high school, children until recently, were expected to increase their knowledge by almost exclusively literate means. Whereas, in primary school they were encouraged to vocalise their thoughts, now they are expected to listen to the teacher, read their textbook or investigate on their computers and finally to produce a written document or answer a written exam. Oral skills are not encouraged and children are told to not waste their time talking. It would appear that these teachers believe that "Writing heightens consciousness. Alienation from a natural milieu can be good for us and indeed is in many ways essential for full human life" (Ong, p. 81). Some teachers have tried to change the heavily weighted literary elements of their teaching method by getting their students to present their investigation to the group. Unfortunately, in my opinion, this has not been very successful; as most students read their presentation and some adolescents find it a traumatising experience to be singled out to speak in front of the group.
I became aware of these drawbacks about a few years ago and I have tried to adapt my curriculum accordingly. I see no reason why students have to read alone or in silence. I encourage my students to read aloud in groups and to each other. I find this allows them to stop and discuss relevant points, take notes (written or pictorial) or ask for help if a concept is not clear. I give them options on how to present their knowledge, either, mental or conceptual maps, written summaries, pictorial representations or in oral form. Most of my students come from families were reading is not a common pastime and very few of them read for pleasure. Ong states that "High literacy fosters truly written composition" (p. 94) and I find myself in agreement to some extent. Nevertheless, if a culture does not have very developed literary skills, I believe that it is necessary to find some intermediate path between orality and literacy and from the results I have encountered in my classroom I think that combining orality and literacy is one method that is effective.
Twilight of the Books…is the end near?
I am of the opinion that the brain did not "rewire" to adapt to reading, but instead grew (created new connections, new synapses) from literacy. I suppose this could be what Wolf considers "repurposing", and I admit I have not read her book. However, I don't think our brain is rerouted resources from one area to another. I think our brains slowly formed new and effective pathways of thought. What do you think?


text:
Al Sharpton Tells "Morning Joe" Hosts He Suspects LA Cop Shooter Was "Planted" To "Hurt" BLM Image [VIDEO]
The violence and chaos created by Black Lives Matter rioters and Antifa terrorists are not having the desired effect on voters that the left had hoped for.
No amount of violence or chaos perpetrated on businesses or private residences by BLM rioters and Antifa have been able to convince voters that President Trump and the GOP are somehow responsible for the race war Barack Obama started from the Oval Office. Recent poll numbers, in fact, show an uptick in support for President Trump with Blacks and Hispanic-American voters.
On Saturday evening, two LA sheriffs deputies were sitting in their vehicle when a suspect walked up to their window and shot both of them multiple times, in the head.
Both officers were taken to a LA Hospital where they continue to fight for their lives.
"Peaceful protesters" BLM agitators yelled, "We hope they die!" outside of the hospital.
LA County Sheriffs called out the "protesters" who were blocking the entrance to the hospital where the officers were taken for treatment:
To the protesters blocking the entrance & exit of the HOSPITAL EMERGENCY ROOM yelling "We hope they die" referring to 2 LA Sheriff's ambushed today in #Compton: DO NOT BLOCK EMERGENCY ENTRIES & EXITS TO THE HOSPITAL. People's lives are at stake when ambulances can't get through.
— LA County Sheriffs (@LASDHQ) September 13, 2020
Save big on MyPillow products. Use promo code FedUp at checkout and save big on the MyPillow Body Pillow.
Listen to one of the "peaceful protesters" ask the police officers standing calmly in front of them, "Can I take your girlfriend out and hump her like a dog, instead of a pig? Oink..oink…oink!"
Antifa and Black Lives Matter militants taunt LAPD and LASD deputies, making remarks about how they'll rape a cop's girlfriend like a dog instead of a pig. https://t.co/t7Ai2SNaBQ
— Ian Miles Cheong (@stillgray) September 13, 2020
"America First" responded to the video on Twitter. Their comment speaks for the majority of Americans:
This brings tears to my eyes. I'm so angry and sad at the same time. Blue lives matter and I believe this anti-human movement will be destroyed. Vote like your life depends on it!" to the video of the sub-human remarks made by these animals in the video above.
This morning, the far-left hacks at MSNBC brought former President Obama's chief race agitator, the "Reverend" Al Sharpton onto their show as a guest to help with damage control, as support for President Trump with voters continues to rise, including with two key demographics, Blacks and Hispanic-Americans.
"Morning Joe" host Joe Scarborough began his segment this morning, by asking Al Sharpton what his message to the "25 million peaceful protesters" about the remarks by "those people, who were chanting "they hope that they died?"
Al Sharpton, the guy who openly called for killing cops in 1992, told Scarborough that the message of the BLM agitators is, "We are not anti-police, and we are certainly not for killing or shooting police." He quickly switched gears, making himself and BLM the victims, saying, "We are there saying police should not be wrongfully shooting or killing civilians, particularly in the black community. And for people to try to associate us with murder and ambushing and death, is doing more to hurt the cause."
Sharpton then incredibly, attempted to plant the seed that the person who shot the cops at point-blank in the heads, could have been a set up to make BLM look bad, saying: "Some I suspect, in my own way of thinking, could be planted in order to hurt us because they are so extreme from our position."
"I pray for the lives of those two police officers just like I pray for the family of Jacob Blake… and I pray for the family of George Floyd, all in the same prayer." –@TheRevAl, denouncing senseless violence on MSNBC's #MorningJoe pic.twitter.com/M95v3nREUB
— Reverend Al Sharpton (@TheRevAl) September 14, 2020
Calling for the death of cops isn't exactly a new concept for the "peaceful protester" Al Sharpton.
Al Sharpton was a regular visitor at Barack Obama's White House. During his presidency, Sharpton was seen marching in 2014 with thousands of BLM agitators in New York City, while they shouted, "What do we want? Dead Cops! When do we want them? Now!" [Video]
Here's a 1992 video of Al Sharpton inciting a crowd in Kean College, NY. where he incites the crowd to take action against cops, saying: "I believe in offing the pigs!"
Listen to Sharpton tell them: "I don't believe in marching. I believe in offing the pigs! Well, they got pigs out here! What I believe in, I do!" Sharpton exclaimed, encouraging the laughing audience to physically take on law enforcement. He added, "Do what you believe in. Or shut up and admit you've lost your courage and guts to stand up!"
"Ain't nobody holding you. I'll off the man. We'll off him. Plenty of crackers walking right around here tonight."
Jesse Watters of Fox News caught up with Al Sharpton to ask him about his 1992 comments at one of his NAN conventions while he was a regular visitor at the White House. Watch the "reverend" try to spin it:
Use promo code FedUp at checkout and save big on MyPillow bed sheets. (100 Percent Fed Up benefits when you use this promo code.)


This article contains many tips to use when dealing with World Finance Loan Joliet Il lenders.
Up to $1000 Convey Funds. – World Finance Loan Joliet Il – Absolutely no Telecheck. – Say yes to within seconds. – Utilize Funds These days.
We provide $1,1000 in Quickly Period. – Absolutely no Trouble Straightforward Credit assessment. : World Finance Loan Joliet Il – Approved within a few minutes. – Fast Money Now.
If you are in need of fast cash and have nowhere else to turn, a payday loan may be a good choice for you – as long as you are gainfully employed and have your check direct deposited. While the interest you pay might be hefty, it may be your only option. Remember to use the tips mentioned in the article above in order to safely use World Finance Loan Joliet Il.
Share the post "World Finance Loan Joliet Il | As much as $1000 Cash Loans. Find Payday Loan Currently. Payday Loan Advice To Make Your Life Easier"
← World Finance Loan Irving Tx | $100$1000 Quick Take advantage Quickly Moment. Find Fast Cash Improve Currently. Tips You Need Before Getting A Payday Loan!