hop

THE SPELLSHOP comes out today!!!

I am over-the-moon excited to share with you that today is the book birthday for my newest book, THE SPELLSHOP! It's a cozy fantasy about a rogue librarian and her best friend, a sentient spider plant, who take on the low-stakes market of illegal spellmaking and the high-risk business of starting over. And it's for anyone who is looking for a slice of joy, a bit of comfort, or just a deep breath.


I wrote this book to feel like a warm hug. Or like drinking hot chocolate. Or like eating really good raspberry jam. Or a cinnamon roll, with hot chocolate and maybe some raspberry jam on the side...

We've all been through a lot over the past few years, and I wrote THE SPELLSHOP for anyone who wants to escape into a world filled with kindness and enchantment.


Thank you to everyone at Macmillan/Tor/Bramble for bringing this book to life and gracing it with Lulu Chen's beautiful cover art and such lovely lavender sprayed edges!

If you'd like to learn more about the book or read the first chapter, please visit my website: http://www.sarahbethdurst.com/Spellshop.htm

I'm also going on book tour starting today, and I'm so excited!! If you'd like to join me at any of my tour stops, I'd love to see you! For details, see the Events page of my website.

Happy reading!!!




hop

THE SPELLSHOP is an instant New York Times, USA Today, and Indie Bestseller!!!

THE SPELLSHOP IS A NEW YORK TIMES BESTSELLER (#7), A USA TODAY BESTSELLER (#13), AND AN INDIE BESTSELLER (#10)!!!!!!!! I’M SOBBING!!!! Thank you so much to everyone at Bramble/Tor/Macmillan who made my dreams come true, including the incredible Ali Fisher, Dianna Vega, Caro Perny, and Julia Bergen! Thank you so much to my amazing agent Andrea Somberg who has been with me for 18 years and 28 books! And thank you to the wonderful booksellers and readers who made this possible!!!! I love you all so much!!!






hop

THE SPELLSHOP Book Tour Photos

I had an absolutely fantastic time on book tour for THE SPELLSHOP!!! Loved meeting so many wonderful readers and amazing booksellers! Thank you all so much! Just wanted to share some of my favorite pics from:

Fable Hollow Coffee & Bookshoppe in Knoxville, TN
Phoenix Books in Essex, VT, with Katherine Arden
Charis Books & More in Decatur, GA, with Kimberly Lemming
The Ripped Bodice in Brooklyn, NY, with Naomi Novik
The Poisoned Pen Bookstore in Scottsdale, AZ, with Rebecca Thorne
Flyleaf Books in Chapel Hill, NC, with T. Kingfisher

Next up: San Diego Comic Con!




















hop

THE SPELLSHOP German Book Birthday!

Very excited that THE SPELLSHOP is out today in Germany (with lovely purple edges)!!! Thank you to everyone at Fischer Tor! I like to think that Kiela, Caz, and Meep are celebrating their book birthday by selling spells and jam somewhere along the Rhine... 

https://www.fischerverlage.de/buch/sarah-beth-durst-spellshop-9783596710942





hop

But sure, as it happens number 12 would have been: Put wooden chopping boards in the dishwasher.


 

1) Order the fish in a restaurant on a Monday. It'll be three days old. 

2) Base-jumping. He just doesn't see the appeal.

3) Cheat on his wife. Sandra is his world. 

4) Open a new battlefront without adequately securing supply lines first. This one probably won't come up. But still, he'd never do it. Look at Napoleon. 

5) That. He'll do anything for love. But. 


Edit: For some reason, a lot of people seem to be complaining that none of these have anything to do with dishwashers. Why should they? Our dishwasher expert knows a lot about dishwashers, sure, but they're not his whole life. Get some perspective, people.




  • Small Silly Jokes

hop

TIFF Day 6: Gay Teen Melodrama, A Brilliant Anthony Hopkins Performance, and Epic Municipal Poetry

City Hall [US, Frederick Wiseman, 4] The latest of Wiseman’s distinctive epic-length observational documentaries studies the quotidian, procedural and human moments of human life as seen through the processes of municipal government in Boston, as held together by the thoughtful charisma of Mayor Martin Walsh. Improbably absorbing as always, this institutional cross-section offers a beguiling vision of an oasis of good government in the USA.

In a normal year I’d wait for the four and a half hour Wiseman documentary to arrive on television rather than taking up two time slots to watch it from the confines of a cinema seat at TIFF. But this is not such a year and with a digital screening you get a pause button when you need it. This is bound for PBS and due to the breadth of its subject matter will serve as an excellent introduction to those unfamiliar with this pillar of the documentary form. Or track down 2017’s Ex Libris, about the New York Public Library. In North America Wiseman’s filmography can be found on the Kanopy platform, which you may be able to access through your public library system.

The Father [UK, Florian Zeller, 4] Retired engineer (Anthony Hopkins) struggles to piece together the confusing reality of his living circumstances as his daughter (Olivia Colman) copes with his progressing dementia. Impeccably performed stage play adaptation puts the viewer inside the contradictory shifts of the protagonist’s subjective viewpoint.

Forget Draculas and Cthulhus. This is the real terror.

Summer of 85 [France, Francois Ozon, 4] Love between two young men in a French beach town leads to a bizarre crime. Teen emotions run high in a sunlit melodrama of Eros and Thanatos.


Capsule review boilerplate: Ratings are out of 5. I’ll be collecting these reviews in order of preference in a master post the Monday after the fest. Films shown on the festival circuit will appear in theaters, disc and/or streaming over the next year plus.



  • toronto international film festival


hop

TurtleWare: Dynamic Vars - A New Hope

Table of Contents

  1. Dynamic Bindings
  2. The problem
  3. The solution
  4. Dynamic slots
  5. The context
  6. Summary

Dynamic Bindings

Common Lisp has an important language feature called dynamic binding. It is possible to rebind a dynamic variable somewhere on the call stack and downstream functions will see that new value, and when the stack is unwound, the old value is brought back.

While Common Lisp does not specify multi-threading, it seems to be a consensus among various implementations that dynamic bindings are thread-local, allowing for controlling the computing context in a safe way.

Before we start experiments, let's define a package to isolate our namespace:

(defpackage "EU.TURTLEWARE.BLOG/DLET"
  (:local-nicknames ("MOP" #+closer-mop "C2MOP"
                           #+(and (not closer-mop) ecl) "MOP"
                           #+(and (not closer-mop) ccl) "CCL"
                           #+(and (not closer-mop) sbcl) "SB-MOP"))
  (:use "CL"))
(in-package "EU.TURTLEWARE.BLOG/DLET")

Dynamic binding of variables is transparent to the programmer, because the operator LET is used for both lexical and dynamic bindings. For example:

(defvar *dynamic-variable* 42)

(defun test ()
  (let ((*dynamic-variable* 15)
        (lexical-variable 12))
    (lambda ()
      (print (cons *dynamic-variable* lexical-variable)))))

(funcall (test))
;;; (42 . 12)

(let ((*dynamic-variable* 'xx))
  (funcall (test)))
;;; (xx . 12)

Additionally the language specifies a special operator PROGV that gives the programmer a control over the dynamic binding mechanism, by allowing passing the dynamic variable by value instead of its name. Dynamic variables are represented by symbols:

(progv (list '*dynamic-variable*) (list 'zz)
  (funcall (test)))
;;; (zz . 12)

The problem

Nowadays it is common to encapsulate the state in the instance of a class. Sometimes that state is dynamic. It would be nice if we could use dynamic binding to control it. That said slots are not variables, and if there are many objects of the same class with different states, then using dynamic variables defined with DEFVAR is not feasible.

Consider the following classes which we want to be thread-safe:

(defgeneric call-with-ink (cont window ink))

(defclass window-1 ()
  ((ink :initform 'red :accessor ink)))

(defmethod call-with-ink (cont (win window-1) ink)
  (let ((old-ink (ink win)))
    (setf (ink win) ink)
    (unwind-protect (funcall cont)
      (setf (ink win) old-ink))))

(defclass window-2 ()
  ())

(defvar *ink* 'blue)
(defmethod ink ((window window-2)) *ink*)

(defmethod call-with-ink (cont (win window-2) ink)
  (let ((*ink* ink))
    (funcall cont)))

The first example is clearly not thread safe. If we access the WINDOW-1 instance from multiple threads, then they will overwrite a value of the slot INK.

The second example is not good either, because when we have many instances of WINDOW-2 then they share the binding. Nesting CALL-WITH-INK will overwrite the binding of another window.

The solution

The solution is to use PROGV:

(defclass window-3 ()
  ((ink :initform (gensym))))

(defmethod initialize-instance :after ((win window-3) &key)
  (setf (symbol-value (slot-value win 'ink)) 'red))

(defmethod call-with-ink (cont (win window-3) ink)
  (progv (list (slot-value win 'ink)) (list ink)
    (funcall cont)))

This way each instance has its own dynamic variable that may be rebound with a designated operator CALL-WITH-INK. It is thread-safe and private. We may add some syntactic sugar so it is more similar to let:

(defmacro dlet (bindings &body body)
  (loop for (var val) in bindings
        collect var into vars
        collect val into vals
        finally (return `(progv (list ,@vars) (list ,@vals)
                           ,@body))))

(defmacro dset (&rest pairs)
  `(setf ,@(loop for (var val) on pairs by #'cddr
                 collect `(symbol-value ,var)
                 collect val)))

(defmacro dref (variable)
  `(symbol-value ,variable))

Dynamic slots

While meta-classes are not easily composable, it is worth noting that we can mold it better into the language by specifying that slot itself has a dynamic value. This way CLOS aficionados will have a new tool in their arsenal.

The approach we'll take is that a fresh symbol is stored as the value of each instance-allocated slot, and then accessors for the slot value will use these symbols as a dynamic variable. Here are low-level accessors:

;;; Accessing and binding symbols behind the slot. We don't use SLOT-VALUE,
;;; because it will return the _value_ of the dynamic variable, and not the
;;; variable itself.
(defun slot-dvar (object slotd)
  (mop:standard-instance-access
   object (mop:slot-definition-location slotd)))

(defun slot-dvar* (object slot-name)
  (let* ((class (class-of object))
         (slotd (find slot-name (mop:class-slots class)
                      :key #'mop:slot-definition-name)))
    (slot-dvar object slotd)))

(defmacro slot-dlet (bindings &body body)
  `(dlet ,(loop for ((object slot-name) val) in bindings
                 collect `((slot-dvar* ,object ,slot-name) ,val))
     ,@body))

Now we'll define the meta-class. We need that to specialize functions responsible for processing slot definitions and the instance allocation. Notice, that we make use of a kludge to communicate between COMPUTE-EFFECTIVE-SLOT-DEFINITION and EFFECTIVE-SLOT-DEFINITION-CLASS – this is because the latter has no access to the direct slot definitions.

;;; The metaclass CLASS-WITH-DYNAMIC-SLOTS specifies alternative effective slot
;;; definitions for slots with an initarg :dynamic.
(defclass class-with-dynamic-slots (standard-class) ())

;;; Class with dynamic slots may be subclasses of the standard class.
(defmethod mop:validate-superclass ((class class-with-dynamic-slots)
                                    (super standard-class))
  t)

;;; When allocating the instance we initialize all slots to a fresh symbol that
;;; represents the dynamic variable.
(defmethod allocate-instance ((class class-with-dynamic-slots) &rest initargs)
  (declare (ignore initargs))
  (let ((object (call-next-method)))
    (loop for slotd in (mop:class-slots class)
          when (typep slotd 'dynamic-effective-slot) do
            (setf (mop:standard-instance-access
                   object
                   (mop:slot-definition-location slotd))
                  (gensym (string (mop:slot-definition-name slotd)))))
    object))

;;; To improve potential composability of CLASS-WITH-DYNAMIC-SLOTS with other
;;; metaclasses we treat specially only slots that has :DYNAMIC in initargs,
;;; otherwise we call the next method.
(defmethod mop:direct-slot-definition-class
    ((class class-with-dynamic-slots) &rest initargs)
  (loop for (key val) on initargs by #'cddr
        when (eq key :dynamic)
          do (return-from mop:direct-slot-definition-class
               (find-class 'dynamic-direct-slot)))
  (call-next-method))

;;; The metaobject protocol did not specify an elegant way to communicate
;;; between the direct slot definition and the effective slot definition.
;;; Luckily we have dynamic bindings! :-)
(defvar *kludge/mop-deficiency/dynamic-slot-p* nil)
(defmethod mop:compute-effective-slot-definition
    ((class class-with-dynamic-slots)
     name
     direct-slotds)
  (if (typep (first direct-slotds) 'dynamic-direct-slot)
      (let* ((*kludge/mop-deficiency/dynamic-slot-p* t))
        (call-next-method))
      (call-next-method)))

(defmethod mop:effective-slot-definition-class
    ((class class-with-dynamic-slots) &rest initargs)
  (declare (ignore initargs))
  (if *kludge/mop-deficiency/dynamic-slot-p*
      (find-class 'dynamic-effective-slot)
      (call-next-method)))

Finally we define a direct and an effective slot classes, and specialize slot accessors that are invoked by the instance accessors.

;;; There is a considerable boilerplate involving customizing slots.
;;;
;;; - direct slot definition: local to a single defclass form
;;;
;;; - effective slot definition: combination of all direct slots with the same
;;;   name in the class and its superclasses
;;;
(defclass dynamic-direct-slot (mop:standard-direct-slot-definition)
  ((dynamic :initform nil :initarg :dynamic :reader dynamic-slot-p)))

;;; DYNAMIC-EFFECTIVE-SLOT is implemented to return as slot-value values of the
;;; dynamic variable that is stored with the instance.
;;;
;;; It would be nice if we could specify :ALLOCATION :DYNAMIC for the slot, but
;;; then STANDARD-INSTANCE-ACCESS would go belly up. We could make a clever
;;; workaround, but who cares?
(defclass dynamic-effective-slot (mop:standard-effective-slot-definition)
  ())

(defmethod mop:slot-value-using-class
    ((class class-with-dynamic-slots)
     object
     (slotd dynamic-effective-slot))
  (dref (slot-dvar object slotd)))

(defmethod (setf mop:slot-value-using-class)
    (new-value
     (class class-with-dynamic-slots)
     object
     (slotd dynamic-effective-slot))
  (dset (slot-dvar object slotd) new-value))

(defmethod mop:slot-boundp-using-class
  ((class class-with-dynamic-slots)
   object
   (slotd dynamic-effective-slot))
  (boundp (slot-dvar object slotd)))

(defmethod mop:slot-makunbound-using-class
  ((class class-with-dynamic-slots)
   object
   (slotd dynamic-effective-slot))
  (makunbound (slot-dvar object slotd)))

With this, we can finally define a class with slots that have dynamic values. What's more, we may bind them like dynamic variables.

;;; Let there be light.
(defclass window-4 ()
  ((ink :initform 'red :dynamic t :accessor ink)
   (normal :initform 'normal :accessor normal))
  (:metaclass class-with-dynamic-slots))

(let ((object (make-instance 'window-4)))
  (slot-dlet (((object 'ink) 15))
    (print (ink object)))
  (print (ink object)))

ContextL provides a similar solution with dynamic slots, although it provides much more, like layered classes. This example is much more self-contained.

The context

Lately I'm working on the repaint queue for McCLIM. While doing so I've decided to make stream operations thread-safe, so it is possible to draw on the stream and write to it from arbitrary thread asynchronously. The access to the output record history needs to be clearly locked, so that may be solved by the mutex. Graphics state is another story, consider the following functions running from separate threads:

(defun team-red ()
  (with-drawing-options (stream :ink +dark-red+)
    (loop for i from 0 below 50000 do
      (write-string (format nil "XXX: ~5d~%" i) stream))))

(defun team-blue ()
  (with-drawing-options (stream :ink +dark-blue+)
    (loop for i from 0 below 50000 do
      (write-string (format nil "YYY: ~5d~%" i) stream))))

(defun team-pink ()
  (with-drawing-options (stream :ink +deep-pink+)
    (loop for i from 0 below 25000 do
      (case (random 2)
        (0 (draw-rectangle* stream 200 (* i 100) 250 (+ (* i 100) 50)))
        (1 (draw-circle* stream 225 (+ (* i 100) 25) 25))))))

(defun gonow (stream)
  (window-clear stream)
  (time (let ((a (clim-sys:make-process #'team-red))
              (b (clim-sys:make-process #'team-blue))
              (c (clim-sys:make-process #'team-grue)))
          (bt:join-thread a)
          (bt:join-thread b)
          (bt:join-thread c)
          (format stream "done!~%")))  )

Operations like WRITE-STRING and DRAW-RECTANGLE can be implemented by holding a lock over the shared resource without much disruption. The drawing color on the other hand is set outside of the loop, so if we had locked the graphics state with a lock, then these functions would be serialized despite being called from different processes. The solution to this problem is to make graphics context a dynamic slot that is accessed with WITH-DRAWING-OPTIONS.

Summary

I hope that I've convinced you that dynamic variables are cool (I'm sure that majority of readers here are already convinced), and that dynamic slots are even cooler :-). Watch forward to the upcoming McCLIM release!

If you like technical writeups like this, please consider supporting me on Patreon.




hop

an egg shop

Today on Married To The Sea: an egg shop


This RSS feed is brought to you by Drew and Natalie's podcast Garbage Brain University. Our new series Everything Is Real explores the world of cryptids, aliens, quantum physics, the occult, and more. If you use this RSS feed, please consider supporting us by becoming a patron. Patronage includes membership to our private Discord server and other bonus material non-patrons never see!




hop

Instant Catalog Shopping

Looking through the phone book to find a furniture store? Stop right there, you're already home.





hop

The Internet Took the Opportunity to Photoshop Donald Trump With a Blank Sign and Ran With It

Has Trump seen people holding signs on the internet before? It never turns out well.




hop

The Untouched Picture of Kim Jong-Un Started a Supreme Photoshop Battle

North Korea released a smiling picture of Kim Jong-Un and were VERY specific about pointing out the fact that the image was untouched. Obviously the first thing the internet did when they got a hold of the image was to touch it up a bit. The results were glorious.





hop

A Quick Look at the CC Strategic Workshop on Open Heritage

One year after Creative Commons (CC) hosted an exploratory Open Culture Roundtable, in Lisbon, Portugal, which initiated the Towards a Recommendation on Open Culture (TAROC) global initiative, nearly 50 stakeholders from all continents gathered again for a strategic workshop, in Lisbon in May 2024. In this blog post, we share a snapshot of key highlights.

The post A Quick Look at the CC Strategic Workshop on Open Heritage appeared first on Creative Commons.




hop

CC strategic workshop reveals big opportunities for open access to cultural heritage

In May 2024, CC organized a strategic workshop in Lisbon to develop a roadmap for future action to advance our work towards a UNESCO instrument on open cultural heritage. In this blog post, we share the full report and some of its key highlights.

The post CC strategic workshop reveals big opportunities for open access to cultural heritage appeared first on Creative Commons.




hop

In Africa, meager expectations and some hopes for a second Trump presidency

African leaders may have been quick to congratulate Donald Trump on his election, professing a desire for mutually beneficial partnerships, but there are meager expectations that his presidency will change things for this continent of over 1.4 billion people. In the wake of Trump's win, Kenya's…




hop

Early Black Friday apparel sales are live — shop the 15 best sales from Patagonia, Carhartt, Ugg and more

Shopping for clothing is one of my favorite past times — and with all the early Black Friday apparel sales happening now, it's starting to feel like Christmas morning! Apparel and shoes are seeing some of the biggest markdowns with popular brands like Lululemon, Nike, Adidas, Patagonia and more…




hop

Shopify stock skyrockets ahead of the holiday season




hop

German lithium plant hopes to turbo-charge Europe’s EV makers

Vulcan Energy says its new plant west of Frankfurt, now in its pilot phase, plans to soon produce lithium for batteries used by auto manufacturers including Volkswagen, Renault and Stellantis.




hop

Spider-Man Ps5 DualSense Controller $50/PS5 bundle $479 at shopcgx.com

The Coast Guard Exchange has the Spider-Man DualSense controller for $49.99. Also the Spiderman Ps5 bundle is $479. No sales tax. Only available for those active duty, retirees, veterans, and their dependents. 

 

https://shopcgx.com/electronics-en-2/featured-brands-en/sony/ps5-dualsense-wireless-controller-spiderman2-lmtd-ed-new-age-8-1-23.html

 

 

https://shopcgx.com/electronics-en-2/featured-brands-en/sony/ps5-disk-spiderman-2-slim-bundle-d-and-h-10-13-23.html




hop

Fire Emblem Warriors: Three Hopes (Switch) $15 @ Amazon

https://www.amazon.com/dp/B09KRKD3P2?tag=cheapassgam08-20&th=1

 

This is more like one of those hack and slash Musou type games for anyone that isn't usually interested in Fire Emblem. Metacritic 80 with an 89 user score.




hop

Eneba: $99 Nintendo eShop Gift Card (Digital Delivery) $85, $50 PSN eGift Card $43

Eneba has $99 Nintendo eShop Gift Card (Digital Delivery) on sale for around $85 when you follow the instructions below.

 

Deal Instructions:
  • Visit the product page
  • Click 'Buy Now' to add the item to cart
  • Click on "Got discount code?" Apply discount code USBFNintendo
  • Proceed to checkout
  • Select a payment method: PayPal or Credit Card (a service fee will be applied on this step)
  • Price after discount and service fee will be ~$85
    • Note: Price is subject to change by a few cents due to currency exchange rate volatility
  • After purchase, redeem the Gift Card code at Nintendo

 

Eneba also has $50 PlayStation Network Gift Card (Digital Delivery) on sale for around $43 when you follow the instructions below.

Deal Instructions:

  • Visit the product page
  • Click 'Buy Now' to add the item to cart
  • Click on "Got discount code?" Apply discount code USBFPSN
  • Proceed to checkout
  • Select a payment method: PayPal or Credit Card (a service fee will be applied on this step)
  • Price after discount and service fee will be ~$43
    • Note: Price is subject to change by a few cents due to currency exchange rate volatility
  • After purchase, redeem the Gift Card code at PlayStation

About:

  • Buy a PlayStation Store gift card and redeem for anything on PlayStation Store: games, add-ons, subscriptions and more. Codes can be redeemed on the PlayStation Store via console, any web browser or on the PlayStation App.
  • Please note that PlayStation Store digital gift cards are not redeemable at direct.playstation.com






hop

The Best Black Friday and Cyber Monday Mattress Deals to Shop Right Now

There’s no better time to upgrade your sleep setup than Black Friday and Cyber Monday — two of the biggest sale events of the year. As usual, there are tons of great deals on top-rated mattresses, from trusted names like Tempur-Pedic and Mattress Firm to direct-to-consumer favorites like Purple and Naturepedic. We recommend taking advantage of all these sleep brands impressive sales, especially since a majority of them have already started. Yup, weeks ahead of schedule! READ MORE...




hop

Escape from Psychopathocracy

"Most people do not get a clear opportunity to vote against Communism and prevent a historical evil from taking hold. We have that opportunity. Vote Trump." — James Lindsay




hop

Jonah Hill Saved This Beloved Recurring ‘SNL’ Sketch From the Chopping Block

By JM McNab Published: November 11th, 2024




hop

We'll Just Hope Joseph Doesn't Turn Up On The Same Day...!

Don't be such a shlemiel, Jacob! Stripes is just FINE already, and the Rabbi says you can wear that coat to the synagogue!





hop

Should you shop on Prime Day, or wait for Black Friday?

Prime Day sees some pretty tempting deals and discounts on science gifts, but is it worth waiting for Black Friday to potentially save even more?




hop

Princeton’s John Hopfield receives Nobel Prize in physics

Hopfield, the Howard A. Prior Professor in the Life Sciences, Emeritus, and professor of molecular biology, emeritus, shares the 2024 Nobel Prize with Toronto's Geoffrey E. Hinton.




hop

Advanced LaTeX Workshop

This workshop provides a hands-on introduction to more advanced topics in LaTeX, including using beamer and BibLaTeX. Beamer provides an elegant way to create presentations and posters while taking advantage of the potential of LaTeX. BibLaTeX is a powerful, integrated citation system that is easy to use with LaTeX. Peer consultations and troubleshooting also offered throughout the semester. Visit https://libcal.princeton.edu/appointments/jfz to book an appointment.




hop

Intro to Quantum Computing Workshop

Have you ever heard about quantum computing and wanted to learn more about it works? Come to our workshop teaching basics of quantum computing and run code on a real quantum computer! Snacks will be provided.




hop

Authentic Jazz and Swing Dance Workshop

As part of Dyane Harvey-Salaam's fall 2024 dance course, "The American Experience and Dance Practices of the African Diaspora," guest artist Mickey Davidson gives a lecture/workshop on Authentic Jazz and Swing Dance Practices. Open to University community.




hop

Early Modern Nahuatl Workshop

A working group analyzing Nahuatl-language documents of the sixteenth to nineteenth centuries with a concentration on deciphering paleography and considering issues of translation. The workshop will commence with Mesoamerican Manuscripts held in the special collections of the Princeton University Library in support of the Translating Mesoamerica project that will provide increased accessibility and analysis of these archival treasures.




hop

Finding and Giving Hope

The SVC Board will be hosting an event about the "now what" after the election, trying to spread hope and get students involved in community resilience building.




hop

12 Coffee Shops Where You Might Just Spot a Celebrity

If you’re an avid coffee connoisseur and celebrity-spotter, you’re in for a treat. There are coffee shops globally frequented by stars who enjoy a good cup of joe. Let’s explore 12 coffee shops where you might bump into your favorite celebrity. 1. Alfred Coffee, Los Angeles LA is the home of Hollywood stars, and one ... Read more

The post 12 Coffee Shops Where You Might Just Spot a Celebrity appeared first on Star Two.






hop

Important Changes in Shopify Feeds Generator

After the recent changes at the Shopify platform we had to make some updates to our Shopify Feeds generator.  Shopify has deprecated its private apps. They were not completely removed, they were replaced by custom apps.   Read more about Shopify custom apps  You can still continue using your existing private apps and its credentials with […]

The post Important Changes in Shopify Feeds Generator appeared first on RSSground.com.






hop

TV Week: Hanoch, Hopkins, and Billy muddle through


Hot’s Bad Boy debuts Nov. 21, joined by Daum's Life is a Difficult Age, Crystal’s Before, and Armageddon Time on Netflix.




hop

Bringing hope to Gaza border communities: First cohort of Kolot's 'Restart' program graduates


This marks the launch of various ventures, including a festival project, a therapeutic space with therapy animals, and a holistic health program for women. 




hop

Nhận diện công ty Trung Quốc non trẻ mà Việt Nam muốn trao hợp đồng lắp cáp biển

Nếu không phải Trung Quốc, thì lựa chọn nhà thầu Mỹ liệu có khả thi hơn trong bối cảnh Việt Nam chịu nhiều sức ép địa chính trị từ người hàng xóm khổng lồ?





hop

Biden’s Signature Climate ‘Boondoggle’ Might Be On Chopping Block After Trump Win

By David Blackmon In the wake of the election of President Donald Trump to serve a second term in office, along with presumptive Republican majorities in both houses of Congress, many are now asking about what the future will hold for the oddly named Inflation Reduction Act. Trump made it repeatedly clear on the campaign […]

The post Biden’s Signature Climate ‘Boondoggle’ Might Be On Chopping Block After Trump Win appeared first on Liberty Unyielding.