9

История античной литературы. Книга 2. Древний Рим (1849K) - Борис Александрович Гиленсон - История

В живой наглядной форме представлены главные вехи в развитии античной литературы, дан филологический анализ. Особое внимание уделено восприятию античного литературного наследия в России.
Для студентов, преподавателей и всех, интересующихся историко-культурными вопросами.




9

«Чужие среди своих». Польское население в советском партизанском движении на территории Белорусской ССР. 1941—1944 (1255K) - Сергей Викторович Благов - Исторические приключения

Словосочетание «польские партизаны» периода Второй мировой войны традиционно ассоциируется с бойцами подразделений Армии крайовой, подчинявшейся польскому правительству в эмиграции. В 1944 г. под эгидой левых сил возникла еще одна партизанская сила – Армия людова. Но в этой книге речь пойдет о еще об одной, наименее известной категории польских партизан – советских.
В 1943—1944 гг. политическим и партизанским руководством БССР предпринимались активные попытки вовлечь многочисленное польское население Белоруссии в советское партизанское движение. Отчасти на территории Пинской, Барановичской и Вилейской областей БССР эти усилия увенчались успехом. Работа кандидата исторических наук С.В. Благова основана на документальном материале российских, белорусских и польских архивов, а также опубликованных документах и электронных базах данных белорусских партизан.
В формате PDF A4 сохранен издательский макет книги.




9

Письма и документы. 1917–1922 (2341K) - Юрий Георгиевич Фельштинский - Биографии и Мемуары

В сборник включены издающиеся впервые в России письма и документы виднейшего российского социал-демократа (меньшевика) Ю. О. Мартова, относящиеся к событиям революции и Гражданской войны. Публикуемые материалы дают яркое представление о сложнейшем клубке политических конфликтов тех лет, мужественном противостоянии демократических сил установленному в России диктаторскому большевистскому режиму, совершенно по-новому освещают трагический этап отечественной истории и жизнь самого Мартова, преданного забвению советской историографией, одного из основателей российской социал-демократической партии. Вступительная статья известных историков, докторов исторических наук Ю. Г. Фельштинского и Г. И. Чернявского, рассказывает о политическом пути Мартова и значении публикуемых документов, а детальные примечания разъясняют сущность событий тех лет и дают представление о деятелях, упоминаемых в книге.
Издание рассчитано не только на специалистов, но и на широкую читательскую аудиторию.




9

Дитя Смутного Времени (965K) - Алексей Сергеевич Любушкин - Героическая фантастика

Среди множества миров Мультивселенной есть один особенный, к которому приковано внимание могущественных сущностей. Битвы за последователей, власть над местами силы и древними артефактами. Война ни на минуту не оставляет этот мир. Варварские кланы, десятки постоянно враждующих рас, города-государства со своими интересами и небольшие королевства с имперскими амбициями. В этом не простом мире пытается выжить и стать сильнее наш соотечественник. Юноше придется сделать выбор остаться самим собой или принять свое новое я!




9

Наследие Дракона (956K) - Алексей Сергеевич Любушкин - Героическая фантастика

Среди множества миров Мультивселенной есть один особенный к которому приковано внимание могущественных сущностей. Битвы за последователей, власть над местами силы и древними артефактами. Война ни на минуту не оставляет этот мир. Варварские кланы, десятки постоянно враждующих рас, города-государства со своими интересами и небольшие королевства с имперскими амбициями. В этом не простом мире пытается выжить и стать сильнее наш соотечественник. Его не сломало влияние негативных Планов, жестокость и подлость окружающих. Осталось узнать удастся ли ему расправить крылья его наследия…




9

Королевская тайна (2209K) - Эндрю Тэйлор - Фэнтези

ГИБЕЛЬНАЯ МАГИЯ. Две юные особы замышляют убийство с помощью колдовства. Вскоре государственный служащий мучительно умирает при загадочных обстоятельствах. Его коллегу Джеймса Марвуда просят провести расследование, но задание сопряжено с неожиданными опасностями.
КОРОЛЕВСКИЙ ПОДАРОК. Кэт Хэксби успешно продолжает дело покойного мужа-архитектора, возглавляя его чертежное бюро. Ей предлагают новый престижный заказ: она должна спроектировать птичник для женщины, которую король любит больше всего на свете.
СТРАТЕГИЧЕСКИЙ СЕКРЕТ. Никто не подозревает, что в основе этих событий лежит королевский секрет, настолько взрывоопасный, что может не только разделить Англию на части, но и изменить весь облик Европы…
Впервые на русском!




9

Верность: воспоминания, рассказы, очерки (9753K) - Евгения Осиповна Каннак - Проза

В книгу вошли повести и рассказы: «Верность», «Alma Mater», «Бридж», «Хиромантия», «Сентиментальное путешествие из Берлина в Лейпциг», «Жертва», «Счастье», «Возвращение», «Советчица», «Телефонный разговор», «Парижанка», «Мирочка».
Раздел «Воспоминания, статьи, очерки» включает работы о поэте Георгии Адамовиче, художниках Гончаровой и Ларионове, драматурге, режиссере Н.Н.Евреинове, об актрисе О. Глебовой-Судейкиной, писателях: В.Набокове, Саше Черном, Борисе Пастернаке и других людях искусства.
Издание из коллекции «Книги издательства ИМКА-Пресс (YMCA-Press)» Фонда редких книг Центральной городской библиотеки им. В.Ф. Кашковой.




9

Beijing and Washington stops provide clues for Indonesia's direction under Prabowo Subianto - ABC News

  1. Beijing and Washington stops provide clues for Indonesia's direction under Prabowo Subianto  ABC News
  2. Prabowo pledges co-operation with Trump  The Australian Financial Review
  3. Indonesian president meets Biden and speaks with Trump  The Canberra Times
  4. At White House, Indonesia's new leader straddles US-China rivalry  VOA Asia
  5. Will Prabowo Subianto cosy up to Donald Trump or to China?  The Economist




9

Cop 29: Leaders to address summit after report finds climate pledges not kept – live updates - The Guardian

  1. Cop 29: Leaders to address summit after report finds climate pledges not kept – live updates  The Guardian
  2. Live Briefing: Greta Thunberg calls site of COP29 climate summit ‘beyond absurd’  The Washington Post
  3. COP29 gets underway in Azerbaijan  ABC News
  4. Oil and gas are ‘a gift of God’: COP29 leader  The Australian Financial Review




9

Germany to hold snap election in February after government's coalition collapse - ABC News

  1. Germany to hold snap election in February after government's coalition collapse  ABC News
  2. The briefcase, the Porsche and the collapse of the German government – podcast  The Guardian
  3. Germany set for snap election following collapse of Olaf Scholz’s coalition  The Conversation
  4. President calls German early election plan 'realistic'  DW (English)





9

Murder charge after beloved Elvis impersonator found dead after karaoke night - 9News

  1. Murder charge after beloved Elvis impersonator found dead after karaoke night  9News
  2. Beloved Elvis impersonator allegedly murdered after karaoke night  Sydney Morning Herald
  3. Love Island winner's best mate is accused of killing beloved grandad - after the Good Samaritan had tried to h  Daily Mail
  4. Video: Elvis impersonator named as alleged murder victim  WAtoday





9

Glad This Wasn't Me!

A judge who was verbally abused by a defendant reciprocated at a court hearing where he was being sentenced for breaching an antisocial behaviour order.
John Hennigan, 50, who had breached the order by using racist language towards a black woman and her two children told Chelmsford crown court judge Patricia Lynch QC that she was “a bit of a cunt”. And Judge Lynch replied: “You are a bit of a cunt yourself.”
When Hennigan screamed back “Go fuck yourself”, the judge replied: “You too.” He reportedly also shouted “Sieg Heil” – a pro-Hitler chant used in Nazi Germany – and banged the glass panel of the dock as he was jailed for 18 months.
Hennigan, from Harlow, Essex, has dozens of previous convictions for offences including drug and firearm possession and common assault.
An asbo was previously imposed on him in 2005 when a swastika was discovered daubed on the front door of his council house.

I can understand the Judge's  reaction, but I have never used that word in court, other than in direct quotation from the evidence.


Perhaps a quiet word from the circuit presider might be in order here.




9

What's In A Name?

The House of Commons has just refused to allow pardons to men convicted decades ago of sex offences that are no longer illegal. The issue has stirred up the inevitable hornets' nest of Twitter and Press comments, and we are left with the illogical situation that those men (yes, all men) who have died will be pardoned but the living remain with a stain on their character.

I suspect that the furore is largely a matter of semantics; a 'pardon' has a defined legal meaning, but in common parlance it has different implications. If I offend someone, or tread on their toe in error, they my well pardon me for the wrong that I have done them, and that is that. However, a pardon for  a crime looks to the layman as if the offence was indeed committed , but the Queen will overlook it. That is not at all what the convicted men are looking for, but rather an apologetic wiping clean of the slate. Only the archaic concept of a  royal pardon looks to be possible in law, unless legislation can be changed.

Common compassion suggests that the huge shift in public attitudes to same-sex relationships should be reflected in the law. It is a small  matter in the great scheme of things, but means a great deal to the men affected. Parliament is rammed to the doors with lawyers: surely a couple of them could draft a swift form of words to clear up this relatively minor injustice? 




9

Минобороны заявило о попытке атаки 29 дронов ВСУ на шесть регионов России




9

Подросток проник в дом 91-летней женщины и изнасиловал ее




9

Sochi's Winter Olympic preparations 'impressive'

Ski Sunday presenter Ed Leigh is wowed by Sochi two years ahead of the 2014 Winter Olympics




9

Pizza a Day Diet: Maggiano's Little Italy

Today's Pizza a Day Diet pizza is technically not a pizza.  It's a flatbread. NB: All pizzas are flatbreads but not all flatbreads are pizzas (A flatbread has an unleavened crust).

I happened to be up north during rush hour so I decided to find the closest Italian place and see what they had that resembled a pizza. :-). This happened to be the Maggiano's in the Domain.  The place has sort of a Disney-fied feel of a downtown Italian restaurant, which is not surprising since the first Maggiano's was founded in Chicago by the Lettuce Entertain You chain whose specialty is theme restaurants. 

Anyway, I took a table in the bar and ordered a Caesar salad and the sausage flatbread.  The sausage was removed from the casing but still distributed in large chunks and had that good Italian-sausage flavor.  The cheese was also abundant and flavorful.  And the crust? Nice and crispy at first and then steamed through. 

Here are a couple pics:







  • pizza a day
  • Pizza a Day Diet

9

Where Congress Stands on NASA's 2025 budget

Weeks before the new fiscal year, Congress still hasn't finalized NASA's 2025 budget.




9

1995 Range Rover Classic 300TDI




9

Eugene Zaikonnikov: Breaking the Kernighan's Law

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.." — Brian W. Kernighan.

I'm a sucker for sage advice much as anyone else, and Kernighan is certainly right on money in the epigraph. Alas there comes a time in programmer's career when you just end up there despite the warning. It could be that you were indeed too clever for your own good, or maybe the code isn't quite yours anymore after each of your colleague's take on it over the years. Or just sometimes, the problem is indeed so hard that it strains your capacity as a coder.

It would usually start with a reasonable idea made into first iteration code. The solution looks fundamentally sound but then as you explore the problem space further it begins to seep nuance, either as manifestation of some real world complexity or your lack of foresight. When I run into this my first instinct is to instrument the code. If the problem is formidable you got to respect it: flailing around blindly modifying things or ugh, doing a rewrite at this stage is almost guaranteed to be a waste of time. It helps to find a promising spot, chisel it, gain a foothold in the problem, and repeat until you crack it. Comfortable debugging tools here can really help to erode the original Kernighan coefficient from 2 to maybe 1.6 or 1.4 where you can still have a chance.

Lisp users are fortunate with the options of interactive debugging, and one facility I reach often for is the plain BREAK. It's easy enough to wrap it into a conditional for particular matches you want to debug. However sometimes you want it to trigger after a particular sequence of events across different positions in code has taken place. While still doable it quickly becomes cumbersome and this state machine starts to occupy too much mental space which is already scarce. So one day, partly as a displacement activity from being intimidated by a Really Hard Problem I wrote down my debugging patterns as a handful of macros.

Enter BRAKE. Its features reflect my personal preferences so are not necessarily your cup of tea but it could be a starting point to explore in this direction. Things it can do:

  • act as a simple BREAK with no arguments (duh)
  • wrap an s-expression, passing through its values upon continuing
  • trigger sequentially based on the specified position for a common tag
  • allow for marks that don't trigger the break but mark the position as reached
  • provide conditional versions for the expressions above
  • print traces of tagged breakpoints/marks

If you compile functions with debug on you hopefully should be able to see the wrapped sexpr's result values.

(use-package '(brake))

(defun fizzbuzz ()
  (loop for n from 100 downto 0
	for fizz = (zerop (mod n 3))
	for buzz = (zerop (mod n 5)) do
	(format t "~a "
		(if (not (or fizz buzz))
		    (format nil "~d" n)
		  (brake-when (= n 0)
			      (concatenate 'string
					   (if fizz "Fizz" "")
					   (if buzz "Buzz" "")))))))

These macros try to detect common cases for tagged sequences being either aborted via break or completed to the last step, resetting them after to the initial state. However it is possible for a sequence to end up "abandoned", which can be cleaned up by a manual command.

Say in the example below we want to break when the two first branches were triggered in a specific order. The sequence of 1, 3, 4 will reinitialize once the state 4 is reached, allowing to trigger continuously. At the same time if we blow our stack it should reset to initial when aborting.

(defun ack (m n)
  (cond ((zerop m) (mark :ack 3 (1+ n)))
        ((zerop n) (mark :ack 1 (ack (1- m) 1)))
        (t (brake :ack 4 (ack (1- m) (ack m (1- n)))))))

In addition there are a few utility functions to report on the state of brakepoints, enable or disable brakes based on tags and turn tracing on or off. Tracing isn't meant to replace the semantics of TRACE but to provide a souped up version of debug by print statements everyone loves.

CL-USER> (report-brakes)
Tag :M is DISABLED, traced, with 3 defined steps, current state is initial
Tag :F is DISABLED with 2 defined steps, current state is 0
Tag :ACK is ENABLED with 3 defined steps, current state is initial

Disabling breakpoints without recompilation is really handy and something I find using all the time. The ability to wrap a sexpr was often sorely missed when using BREAK in constructs without implicit body.

Sequencing across threads is sketchy as the code isn't guarded but in many cases it can work, and the appeal of it in debugging races is clear. One of those days I hope to make it more robust while avoiding potential deadlocks but it isn't there yet. Where it already shines tho is in debugging complex iterations, mutually recursive functions and state machines.




9

vindarel: Running my 4th Common Lisp script in production© - you can do it too

Last week I finished a new service written in Common Lisp. It now runs in production© every mornings, and it expands the set of services I offer to clients.

It’s the 4th service of this kind that I developed: - they are not big - but have to be done nonetheless, and the quicker the better (they each amount to 1k to 2k lines of Lisp code), - they are not part of a super advanced domain that requires Common Lisp superpowers - I am the one who benefits from CL during development, - I could have written them in Python - and conversely nothing prevented me from writing them in Common Lisp.

So here lies the goal of this post: illustrate that you don’t need to need a super difficult problem to use Common Lisp. This has been asked many times, directly to me or on social media :)

At the same time, I want to encourage you to write a little something about how you use Common Lisp in the real world. Sharing creates emulation. Do it! If you don’t have a blog you can simply write in a new GitHub repository or in a Gist and come share on /r/lisp. We don’t care. Thanks <3

We’ll briefly see what my scripts do, what libraries I use, how I deploy them, what I did along the way.

Needless to say that I dogfooded my CIEL (beta) meta-library and scripting tool for all those projects.

Table of Contents

Scripts n°4 and 2 - shaping and sending data - when you can write Lisp on the side

My latest script needs to read data from a DB, format what’s necessary according to specifications, and send the result by SFTP.

In this case I read a DB that I own, created by a software that I develop and host. So I could have developed this script in the software itself, right? I could have, but I would have been tied to the main project’s versioning scheme, quirks, and deployment. I rather had to write this script on the side. And since it can be done on the side, it can be done in Common Lisp.

I have to extract products and their data (price, VAT...), aggregate the numbers for each day, write this to a file, according to a specification.

To read the DB, I used cl-dbi. I didn’t format the SQL with SxQL this time like in my web apps (where I use the Mito light ORM), but I wrote SQL directly. I’m spoiled by the Django ORM (which has its idiosyncrasies and shortcomings), so I double checked the different kinds of JOINs and all went well.

I had to group rows by some properties, so it was a great time to use serapeum:assort. I left you an example here: https://dev.to/vindarel/common-lisps-group-by-is-serapeumassort-32ma

Dates have to be handled in different formats. I used local-time of course, and I still greatly appreciate its lispy formatter syntax:

(defun date-yymmddhhnnss (&optional date stream)
  (local-time:format-timestring stream
                                (or date (local-time:now))
                                :format
                                '((:year 4)
                                  (:month 2)
                                  (:day 2)
                                  (:hour 2)
                                  (:min 2)
                                  (:sec 2)
                                  )))

the 2 in (:month 2) is to ensure the month is written with 2 digits.

Once the file is written, I have to send it to a SFTP server, with the client’s codes.

I wrote a profile class to encapsulate the client’s data as well as some functions to read the credentials from either environment variables, the file system, or a lisp variable. I had a top-level profile object for ease of testing, but I made sure that my functions formatting or sending data required a profile parameter.

(defun send-stock (profile &key date) ...)
(defun write-stock (profile filename) ...)

Still nothing surprising, but it’s tempting to only use global parameters for a one-off script. Except the program grows and you pay the mess later.

SFTP

To send the result through SFTP, I had to make a choice. The SFTP command line doesn’t make it possible to give a password as argument (or via an environment variable, etc). So I use lftp (in Debian repositories) that allows to do that. In the end, we format a command like this:

lftp sftp://user:****@host  -e "CD I/; put local-file.name; bye"

You can format the command string and run it with uiop:run-program: no problem, but I took the opportunity to release another utility:

First, you create a profile object. This one-liner reads the credentials from a lispy file:

(defvar profile (make-profile-from-plist (uiop:read-file-form "CREDS.lisp-expr"))

then you define the commands you’ll want to run:

(defvar command (put :cd "I/" :local-filename "data.csv"))
;; #<PUT cd: "I/", filename: "data.csv" {1007153883}>

and finally you call the run method on a profile and a command. Tada.

Deploying

Build a binary the classic way (it’s all on the Cookbook), send it to your server, run it.

(during a testing phase I have deployed “as a script”, from sources, which is a bit quicker to pull changes and try again on the server)

Set up a CRON job.

No Python virtual env to activate in the CRON environment...

Add command line arguments the easy way or with the library of your choice (I like Clingon).

Script n°2 and simple FTP

My script #2 at the time was similar and simpler. I extract the same products but only take their quantities, and I assemble lines like

EXTRACTION STOCK DU 11/04/2008
....978202019116600010000001387
....978270730656200040000000991

For this service, we have to send the file to a simple FTP server.

We have a pure Lisp library for FTP (and not SFTP) which works very well, cl-ftp.

It’s a typical example of an old library that didn’t receive any update in years and so that looks abandoned, that has seldom documentation but whose usage is easy to infer, and that does its job as requested.

For example we do this to send a file:

(ftp:with-ftp-connection (conn :hostname hostname
                                   :username username
                                   :password password
                                   :passive-ftp-p t)
      (ftp:store-file conn local-filename filename))

I left you notes about cl-ftp and my SFTP wrapper here:

Scripts n°3 and n°1 - specialized web apps

A recent web app that I’m testing with a couple clients extends an existing stock management system.

This one also was done in order to avoid a Python monolith. I still needed additions in the Python main software, but this little app can be independent and grow on its own. The app maintains its state and communicates it with a REST API.

 

It gives a web interface to their clients (so my clients’ clients, but not all of them, only the institutional) so that they can:

  • search for products
  • add them in shopping carts
  • validate the cart, which sends the data to the main software and notifies the owner, who will work on them.

The peculiarities of this app are that:

  • there is no user login, we use unique URLs with UUIDs in the form: http://command.client.com/admin-E9DFOO82-R2D2-007/list?id=1
  • I need a bit of file persistence but I didn’t want the rigidity of a database so I am using the clache library. Here also, not a great activity, but it works©. I persist lists and hash-tables. Now that the needs grow and the original scope doesn’t cut it any more, I wonder how long I’ll survive without a DB. Only for its short SQL queries VS lisp code to filter data.

I deploy a self-contained binary: code + html templates in the same binary (+ the implementation, the web server, the debugger...), with Systemd.

I wrote more on how to ship a standalone binary with templates and static assets with Djula templates here:

I can connect to the running app with a Swank server to check and set parameters, which is super helpful and harmless.

It is possible to reload the whole app from within itself and I did it with no hiccups for a couple years, but it isn’t necessary the most reliable, easiest to set up and fastest method. You can do it, but nobody forces you to do this because you are running CL in production. You can use the industry’s boring and best practices too. Common Lisp doesn’t inforce a “big ball of mud” approach. Develop locally, use Git, use a CI, deploy a binary...

Every thing that I learned I documented it along the way in the Cookbook ;)

Another app that I’ll mention but about which I also wrote earlier is my first web app. This one is open-source. It still runs :)

 

In this project I had my friend and colleague contribute five lines of Lisp code to add a theme switcher in the backend that would help him do the frontend. He had never written a line of Lisp before. Of course, he did so by looking at my existing code to learn the existing functions at hand, and he could do it because the project was easy to install and run.

(defun get-template(template &optional (theme *theme*))
  "Loads template from the base templates directory or from the given theme templates directory if it exists."
  (if (and (str:non-blank-string-p theme)
           (probe-file (asdf:system-relative-pathname "abstock" (str:concat "src/templates/themes/" theme "/" template))))
      ;; then
      (str:concat "themes/" theme "/" template)
      ;; else :D
      template))

He had to annotate the if branches :] This passed the code review.

Lasting words

The 5th script/app is already on the way, and the next ones are awaiting that I open their .docx specification files. This one was a bit harder but the Lisp side was done sucessfully with the efficient collaboration of another freelance lisper (Kevin to not name him).

All those tasks (read a DB, transform data...) are very mundane.

They are everywhere. They don’t always need supercharged web framework or integrations.

You have plenty of opportunities to make yourself a favor, and use Common Lisp in the wild. Not counting the super-advanced domains where Lisp excels at ;)


Links

I have done some preliminary Common Lisp exploration prior to this course but had a lot of questions regarding practical use and development workflows. This course was amazing for this! I learned a lot of useful techniques for actually writing the code in Emacs, as well as conversational explanations of concepts that had previously confused me in text-heavy resources. Please keep up the good work and continue with this line of topics, it is well worth the price! [Preston, October of 2024]




9

Joe Marshall: Don't Try to Program in Lisp

A comment on my previous post said,

The most difficult thing when coming to a different language is to leave the other language behind. The kind of friction experienced here is common when transliterating ideas from one language to another. Go (in this case) is telling you it just doesn't like to work like this.
Try writing simple Go, instead of reaching for Lisp idioms. Then find the ways that work for Go to express the concepts you find.

That's not at all how I approach programming.

A friend of mine once paid me a high compliment. He said, “Even your C code looks like Lisp.”

When I write code, I don't think in terms of the language I'm using, I think in terms of the problem I'm solving. I'm a mostly functional programmer, so I like to think in terms of functions and abstractions. I mostly reason about my code informally, but I draw upon the formal framework of Lambda Calculus. Lambda Calculus is a simple, but powerful (and universal) model of computation.

Programming therefore becomes a matter of expressing the solution to a problem with the syntax and idioms of the language I'm using. Lisp was inspired by Lambda Calculus, so there is little friction in expressing computations in Lisp. Lisp is extensible and customizable, so I can add new syntax and idioms as desired.

Other languages are less accommodating. Some computations are not easily expressable in the syntax of the language, or the semantics of the language are quirky and inconsistent. Essentially, every general purpose fourth generation programming language can be viewed as a poorly-specified, half-assed, incomplete, bug-ridden implementation of half of Common Lisp. The friction comes from working around the limitations of the language.




9

All Souls Night (Part 19 of 31)

.


 


 

CONTINUED TOMORROW.

 

Above: Every Autumn, I write a Halloween story, write it out on leaves (one word per leaf), photograph the leaves, and then leave them where.I found them. The story is then serialized, starting on October 1 and concluding on the 31st--All Souls Day.

 

*

 

 




9

All Souls Night (Part 29 of 31)

.






 

 

 

CONTINUED TOMORROW. (For those who came in late: The first sentence was posted here on October 1 and a new sentence was posted every day thereafter.)

 

Above: Every Autumn, I write a Halloween story, write it out on leaves (one word per leaf), photograph the leaves, and then leave them where.I found them. The story is then serialized, starting on October 1 and concluding on the 31st--All Souls Day.

 

*

 




9

Don 039 t mess with Acorns

Don 039 t mess with Acorns



View Comic!







9

Estonia 039 s National Animal

Estonia 039 s National Animal



View Comic!








9

Eight injured in explosion at oil refinery in UP's Mathura - ANI News

  1. Eight injured in explosion at oil refinery in UP's Mathura  ANI News
  2. 8 injured, three critical in major explosion at Indian Oil plant in UP's Mathura  India Today
  3. Eight injured in fire at IndianOil’s Mathura refinery  BusinessLine
  4. Mathura refinery blast: Indian Oil refinery explosion injures 12 people  The Financial Express
  5. At least 8 injured in explosion at Mathura refinery  The Indian Express




9

3 Children, 3 Women Missing After 10 Suspected Kuki Militants Killed In Encounter In Manipur's Jiribam - NDTV

  1. 3 Children, 3 Women Missing After 10 Suspected Kuki Militants Killed In Encounter In Manipur's Jiribam  NDTV
  2. Manipur on boil: 2 more bodies found, 6 missing  The Times of India
  3. Additional paramilitary forces rushed to Manipur amid spike in ethnic violence  Hindustan Times
  4. Letters to The Editor — November 13, 2024  The Hindu
  5. 2 men found dead, 6 of family missing day after militants killed in Manipur  India Today







9

Meet BRAD (Berkeley's Ridiculously Automated Dorm Room)

Party the absolute hardest you can imaginably party!




9

It's Even Just as Environmentally Friendly!

Though it's considerably less sanitary.




9

The Built-In Air Conditioning Just Wasn't Effective

Especially after someone put that giant wooden thing on top.




9

One Item Doesn't Quite Fit Here

When I need to replace a swing on my swing set, I don't often come to the conclusion that a helicopter chassis would be better suited for the task, but hey, I'm not everybody I guess.




9

Buckethead's Ready To Roll

You do realize you have a perfectly functional (?) helmet sitting right in front of you. Right?





9

Lakers' Anthony Davis says his eye is fine, declines to wear goggles

Los Angeles Lakers star Anthony Davis says he has recovered from being poked in the left eye by Toronto’s Jakob Poeltl, and his latest eye injury still hasn’t persuaded him to wear protective goggles




9

Bev Priestman fired as Canada women's soccer coach after Olympic drone scandal

Canada women's soccer coach Bev Priestman has been fired after an independent review of a drone surveillance scandal at the Paris Olympics




9

Joey Logano 1-on-1: Winning Cup Series championship is 'electric'

Joey Logano sat down with FOX Sports to discuss the wild pace-car wreck, the playoff format and the feeling of winning the title at Phoenix.




9

Opportunity knocks for USMNT's Ricardo Pepi: 'I'm feeling ready to be the man'

With several U.S. men's national team strikers out with injuries, 21-year-old Ricardo Pepi has a golden opportunity to prove why he deserves to be Mauricio Pochettino top choice up top.




9

Alabama's Ryan Williams on Travis Hunter winning Biletnikoff: 'I can't let him do that'

In an interview on FOX Sports' "All Facts, No Brakes," Alabama stars Ryan Williams and Jaylen Mbakwe shared why they stayed after Nick Saban's retirement and their thoughts on Travis Hunter.




9

Providence's Oswin Erhunmwunse throws down a POWERFUL two-hand dunk vs. Hampton

Providence Friars' Oswin Erhunmwunse threw down a powerful two-handed dunk against the Hampton Pirates.




9

49ers agree to 5-year, $92 million extension with CB Deommodore Lenoir

San Francisco 49ers cornerback Deommodore Lenoir has agreed to a five-year, $92 million extension to stay with the team instead of testing the free agent market next offseason




9

Mavs' Klay Thompson cheered by 400 Warriors employees in return to Golden State

Klay Thompson was greeted by some 400 cheering Warriors employees showing their love and appreciation for the former Golden State star and lined up along his path to the Dallas locker room




9

Tom Brady’s 3 Stars of Week 10: Lamar Jackson, Ja'Marr Chase, Leo Chenal | DIGITAL EXCLUSIVE

Tom Brady gave his 3 stars of Week 10 which included Baltimore Ravens QB Lamar Jackson, Cincinnati Bengals WR Ja'Marr Chase and Kansas City Chiefs LB Leo Chenal.




9

Tom Brady's 3 Stars of Week 10, including Ravens' Lamar Jackson

Week 10 of the 2024 NFL season had a few memorable and exciting finishes as several stars showed out! Check out FOX Sports lead NFL analyst Tom Brady to name his latest 3 Stars of The Week.