10 interesting stories served every morning and every evening.

1 666 shares, 69 trendiness

Daniel Dennett (1942-2024)

Begin typ­ing your search above and press re­turn to search. Press Esc to can­cel.

news for & about the phi­los­o­phy pro­fes­sion

Daniel Dennett, pro­fes­sor emer­i­tus of phi­los­o­phy at Tufts University, well-known for his work in phi­los­o­phy of mind and a wide range of other philo­soph­i­cal ar­eas, has died.

Professor Dennett wrote ex­ten­sively about is­sues re­lated to phi­los­o­phy of mind and cog­ni­tive sci­ence, es­pe­cially con­scious­ness. He is also rec­og­nized as hav­ing made sig­nif­i­cant con­tri­bu­tions to the con­cept of in­ten­tion­al­ity and de­bates on free will. Some of Professor Dennett’s books in­clude Content and Consciousness (1969), Brainstorms: Philosophical Essays on Mind and Psychology (1981), The Intentional Stance (1987), Consciousness Explained (1992), Darwin’s Dangerous Idea (1995), Breaking the Spell (2006), and From Bacteria to Bach and Back: The Evolution of Minds (2017). He pub­lished a mem­oir last year en­ti­tled I’ve Been Thinking. There are also sev­eral books about him and his ideas. You can learn more about his work here.

Professor Dennett held a po­si­tion at Tufts University for nearly all his ca­reer. Prior to this, he held a po­si­tion at the University of California, Irvine from 1965 to 1971. He also held vis­it­ing po­si­tions at Oxford, Harvard, Pittsburgh, and other in­sti­tu­tions dur­ing his time at Tufts University. Professor Dennett was awarded his PhD from the University of Oxford in 1965 and his un­der­grad­u­ate de­gree in phi­los­o­phy from Harvard University in 1963.

Professor Dennett is the re­cip­i­ent of sev­eral awards and prizes in­clud­ing the Jean Nicod Prize, the Mind and Brain Prize, and the Erasmus Prize. He also held a Fulbright Fellowship, two Guggenheim Fellowships, and a Fellowship at the Center for Advanced Study in Behavioral Sciences. An out­spo­ken athe­ist, Professor Dennett was dubbed one of the Four Horsemen of New Atheism”. He was also a Fellow of the Committee for Skeptical Inquiry, an hon­ored Humanist Laureate of the International Academy of Humanism, and was named Humanist of the Year by the American Humanist Organization.

He died this morn­ing from com­pli­ca­tions of in­ter­sti­tial lung dis­ease.*

The fol­low­ing in­ter­view with Professor Dennett was recorded last year:

Related: Philosophers: Stop Being Self-Indulgent and Start Being Like Daniel Dennett, says Daniel Dennett“. (Other DN posts on Dennett can be found here.)

*This was added af­ter the ini­tial pub­li­ca­tion of the post. Source: New York Times.

The eth­i­cal aca­d­e­mic should be op­posed to most of our cur­rent grad­ing prac­tices, but they still need to grade stu­dents any­way”

– John Danaher (Galway) on the whats, whys, and hows of eth­i­cal grad­ing

Kant saw rea­son’s po­ten­tial as a tool for lib­er­a­tion”

– Susan Neiman (Einstein Forum) in the NYT on why we should cel­e­brate Kant

Assisted evo­lu­tion is… an ac­knowl­edg­ment that there is no step­ping back, no fu­ture in which hu­mans do not pro­foundly shape the lives and fates of wild crea­tures”

– new ways of pro­tect­ing an­i­mals raise ques­tions about what con­ser­va­tion is and what species are

Metaphysics be­gins with the dis­tinc­tion be­tween ap­pear­ance and re­al­ity, be­tween seems and is, and the play con­stantly plays with this dis­tinc­tion”

– Brad Skow (MIT) on the phi­los­o­phy in Hamlet

Beliefs aim at the truth, you say?

– the New Yorker cov­ers work by philoso­phers and oth­ers in an ar­ti­cle about the com­pli­ca­tions of mis­in­for­ma­tion

Philosophical the­o­ries are very much like pictures’ or stories’ and… philo­soph­i­cal de­bates of­ten come down to temperamental dif­fer­ences’”

– Peter West (Northeastern U. London) on the metaphi­los­o­phy of Margaret MacDonald

The swift­ness and ease of the tech­nol­ogy sep­a­rates peo­ple from the re­al­ity of what they are tak­ing part in”

– and there’s a lot go­ing on

Any sur­pris­ing re­sults sci­en­tists achieved, whether they sup­ported or chal­lenged a pre­vi­ous as­sump­tion, were seen as the ul­ti­mate source of aes­thetic plea­sure”

– Milena Ivanova (Cambridge) on the role of aes­thet­ics in sci­ence

I could­n’t have jus­ti­fied spend­ing a ca­reer as an aca­d­e­mic philoso­pher. Not in this world.”

– Nathan J. Robinson on the im­moral­ity of phi­los­o­phy in a time of cri­sis

Within the ring of light lies what is straight­for­wardly know­able through com­mon sense or main­stream sci­ence” but phi­los­o­phy lives in the penum­bra of dark­ness”

– and even as that light grows, says Eric Schwitzgebel (UC Riverside), just be­yond it there will al­ways be dark­ness”–-and phi­los­o­phy

The sci­en­tific com­mu­nity has gen­er­ally done a poor job of ex­plain­ing to the pub­lic that sci­ence is what is known so far”

– H. Holden Thorp, the ed­i­tor in chief of Science, on why the his­tory and phi­los­o­phy of sci­ence should be part of the sci­ence cur­ricu­lum (via Nathan Nobis)

– Tamar Gendler (Yale) dis­cusses an ex­per­i­men­tal course she taught on phi­los­o­phy and its forms

If you’re go­ing to be a philoso­pher, learn about the world, learn about the sci­ence… Scientists are just as ca­pa­ble of mak­ing philo­soph­i­cal mis­takes… as any lay peo­ple [and] they need the help of in­formed philoso­phers”

I’m cu­ri­ous about why these kinds of places have such a spell­bind­ing aura, and I think it’s be­cause they are ana­log out­liers”

– Evan Selinger (RIT) re­flects on his ob­ses­sion with a small-town fam­ily-run ho­tel that serves sim­ple and de­li­cious food

The story that a sports fan en­gages with is a col­lab­o­ra­tively writ­ten story; [it is] a so­cial en­ter­prise fo­cused around knit­ting in­di­vid­ual games into nar­ra­tive arcs, sto­ries, leg­ends, and char­ac­ter­i­za­tions”

– Peter Kung and Shawn Klein (ASU) on imag­i­na­tion and sports fan­dom

Claude 3 Opus pro­duces ar­gu­ments that don’t sta­tis­ti­cally dif­fer in their per­sua­sive­ness com­pared to ar­gu­ments writ­ten by hu­mans”

– the meth­ods and re­sults of a study on AI per­sua­sive­ness

Limiting virtues [are] virtues that con­strain us in or­der to set us free”

– Sara Hendren (Northeastern), in­spired by David McPherson (Creighton) looks for lim­it­ing virtues in ar­chi­tec­ture

It is not only false but morally mis­lead­ing to de­scribe the re­sult­ing civil­ian deaths as unintentional’ or as what happens in war’”

– Jessica Wolfendale (Case Western) on the tools and tac­tics used in Gaza by Israel’s mil­i­tary

Both were an­a­lyt­i­cal philoso­phers, but their in­tel­lec­tual frame­works and their philo­soph­i­cal ap­proaches were markedly dif­fer­ent”

– Dan Little (UM-Dearborn) on Popper and Parfit

El Salvador seeks philoso­phers (and doc­tors, sci­en­tists, en­gi­neers, artists, and oth­ers)

– the na­tion’s pres­i­dent has of­fered 5000 free pass­ports along with tax ben­e­fits to those an­swer­ing his call

He has awak­ened us to the back­ground prac­tices in our cul­ture, and re­vealed to us that they have no ne­ces­sity, which of­fers us a kind of free­dom we may not have rec­og­nized”

– Mark Ralkowski (GWU) on the phi­los­o­phy of Larry David

I think [NASAs] re­quire­ments are clos­ing the as­tro­naut pro­gram off from im­por­tant in­sights from the hu­man­i­ties and so­cial sci­ences”

– a phi­los­o­phy PhD and US Air Force of­fi­cer on why we should send philoso­phers into space

Before he was the lit­tle guy who spake about teach­ing of the Superman, he ap­peared in Nietzsche’s book The Gay Science’” Who is….?”

– phi­los­o­phy was a cat­e­gory in the sec­ond round of Jeopardy!” ear­lier this week (mouse over the $ to see the an­swers, er ques­tions)

Can phi­los­o­phy be done through nar­ra­tive films like Barbie?”

– that de­pends on what we mean by do­ing phi­los­o­phy, says Tom McClelland (Cambridge)

There is no moral va­lence to some­one just not lik­ing us.” There’s a good­ness and rich­ness in this sort of pre­des­tined suf­fer­ing.”

– the moral sen­si­bil­i­ties of Lillian Fishman, ad­vice colum­nist at The Point

Philosophers write a lot about friend­ship and love, but they tend to do so in terms that leave out the cen­tral­ity of the heart and heart­felt con­nec­tion”

– as a re­sult, says Stephen Darwall (Yale), we miss some im­por­tant things

Wenar’s al­ter­na­tive to ef­fec­tive al­tru­ism is nei­ther vi­able nor de­sir­able nor in­deed any im­prove­ment on ef­fec­tive al­tru­ism”

While the shal­low pond may be a good model to help us think about our im­me­di­ate du­ties, it is a bad model to help us think about the re­la­tion­ship be­tween would be donors and the suf­fer­ing poor in the con­text of de­vel­op­ment”

– Eric Schliesser (Amsterdam) on Richard Pettigrew on Leif Wenar on ef­fec­tive al­tru­ism


Read the original on dailynous.com »

2 389 shares, 29 trendiness

Tesla recalls the Cybertruck for faulty accelerator pedals that can get stuck

Tesla is re­call­ing all 3,878 Cybertrucks that it has shipped to date, due to a prob­lem where the ac­cel­er­a­tor pedal can get stuck, putting dri­vers at risk of a crash, ac­cord­ing to the National Highway Traffic Safety Administration.

The re­call caps a tu­mul­tuous week for Tesla. The com­pany laid off more than 10% of its work­force on Monday, and lost two of its high­est-rank­ing ex­ec­u­tives. A few days later, Tesla asked share­hold­ers to re-vote on CEO Elon Musk’s mas­sive com­pen­sa­tion pack­age that was struck down by a judge ear­lier this year.

Reports of prob­lems with the Cybertruck’s ac­cel­er­a­tor pedal started pop­ping up in the last few weeks. Tesla even re­port­edly paused de­liv­er­ies of the truck while it sorted out the is­sue. Musk said in a post on X that Tesla was being very cau­tious” and the com­pany re­ported to NHTSA that it was not aware of any crashes or in­juries re­lated to the prob­lem.

The com­pany has now con­firmed to NHTSA that the pedal can dis­lodge, mak­ing it pos­si­ble for it to slide up and get caught in the trim around the footwell.

Tesla said it first re­ceived a no­tice of one of these ac­cel­er­a­tor pedal in­ci­dents from a cus­tomer on March 31, and then a sec­ond one on April 3. After per­form­ing a se­ries of tests, it de­cided on April 12 to is­sue a re­call af­ter de­ter­min­ing that [a]n un­ap­proved change in­tro­duced lu­bri­cant (soap) to aid in the com­po­nent as­sem­bly of the pad onto the ac­cel­er­a­tor pedal,” and that [r]esidual lu­bri­cant re­duced the re­ten­tion of the pad to the pedal.”

Tesla says it will re­place or re­work the ac­cel­er­a­tor pedal on all ex­ist­ing Cybertrucks. It also told NHTSA that it has started build­ing Cybertrucks with a new ac­cel­er­a­tor pedal, and that it’s fix­ing the ve­hi­cles that are in tran­sit or sit­ting at de­liv­ery cen­ters.

While the Cybertruck only first started ship­ping late last year, this is not the ve­hi­cle’s first re­call. But the ini­tial one was mi­nor: Earlier this year, Tesla re­called the soft­ware on all of its ve­hi­cles be­cause the font sizes of its warn­ing lights were too small. The com­pany un­veiled the truck back in 2019.


Read the original on techcrunch.com »

3 385 shares, 20 trendiness

now supports the S3 protocol

Supabase Storage is now of­fi­cially an S3-Compatible Storage Provider. This is one of the most-re­quested fea­tures and is avail­able to­day in pub­lic al­pha. Resumable Uploads are also tran­si­tion­ing from Beta to Generally Available.

The Supabase Storage Engine is fully open source and is one of the few stor­age so­lu­tions that of­fer 3 in­ter­op­er­a­ble pro­to­cols to man­age your files:

* S3 up­loads: for com­pat­i­bil­ity across a plethora of tools

We al­ways strive to adopt in­dus­try stan­dards at Supabase. Supporting stan­dards makes work­loads portable, a key prod­uct prin­ci­ple. The S3 API is un­doubt­edly a stor­age stan­dard, and we’re mak­ing it ac­ces­si­ble to de­vel­op­ers of var­i­ous ex­pe­ri­ence-lev­els.

The S3 pro­to­col is back­wards com­pat­i­ble with our other APIs. If you are al­ready us­ing Storage via our REST or TUS APIs, to­day you can use any S3 client to in­ter­act with your buck­ets and files: up­load with TUS, serve them with REST, and man­age them with the S3 pro­to­col.

The pro­to­col works on the cloud, lo­cal de­vel­op­ment, and self-host­ing. Check out the API com­pat­i­bil­ity in our docs

To au­then­ti­cate with Supabase S3 you have 2 op­tions:

The stan­dard ac­cess_key and se­cret_key cre­den­tials. You can gen­er­ate these from the stor­age set­tings page. This au­then­ti­ca­tion method is widely com­pat­i­ble with tools sup­port­ing the S3 pro­to­col. It is also meant to be used ex­clu­sively server­side since it pro­vides full ac­cess to your Storage re­sources.

We will add scoped ac­cess key cre­den­tials in the near fu­ture which can have ac­cess to spe­cific buck­ets.

User-scoped cre­den­tials with RLS. This takes ad­van­tage of a well-adopted con­cept across all Supabase ser­vices, Row Level Security. It al­lows you to in­ter­act with the S3 pro­to­col by scop­ing stor­age op­er­a­tions to a par­tic­u­lar au­then­ti­cated user or role, re­spect­ing your ex­ist­ing RLS poli­cies. This method is made pos­si­ble by us­ing the Session to­ken header which the S3 pro­to­col sup­ports. You can find more in­for­ma­tion on how to use the Session to­ken mech­a­nism in the doc.

With the sup­port of the S3 pro­to­col, you can now con­nect Supabase Storage to many 3rd-party tools and ser­vices by pro­vid­ing a pair of cre­den­tials which can be re­voked at any time.

You can use pop­u­lar tools for back­ups and mi­gra­tions, such as:

* and any other s3-com­pat­i­ble tool …

Check out our Cyberduck guide here.

S3 com­pat­i­bil­ity pro­vides a nice prim­i­tive for Data Engineers. You can use it with many pop­u­lar tools:

In this ex­am­ple our in­cred­i­ble data an­a­lyst, Tyler, demon­strates how to store Parquet files in Supabase Storage and query them di­rectly us­ing DuckDB:

In ad­di­tion to the stan­dard up­loads and re­sum­able up­loads, we now sup­port mul­ti­part up­loads via the S3 pro­to­col. This al­lows you to max­i­mize up­load through­put by up­load­ing chunks in par­al­lel, which are then con­cate­nated at the end.

Along with the plat­form GA an­nounce­ment, we are also thrilled to an­nounce that re­sum­able up­loads are also gen­er­ally avail­able.

Resumable up­loads are pow­ered by the TUS pro­to­col. The jour­ney to get here was im­mensely re­ward­ing, work­ing closely with the TUS team. A big shoutout to the main­tain­ers of the TUS pro­to­col, @murderlon and @acconut, for their col­lab­o­ra­tive ap­proach to open source.

Supabase con­tributed some ad­vanced fea­tures from the Node im­ple­men­ta­tion of TUS Spec in­clud­ing dis­trib­uted locks, max file size, ex­pi­ra­tion ex­ten­sion and nu­mer­ous bug fixes:

These fea­tures were es­sen­tial for Supabase, and since the TUS node server is open source, they are also avail­able for you to use. This is an­other core prin­ci­ple: wher­ever pos­si­ble, we use and sup­port ex­ist­ing tools rather than de­vel­op­ing from scratch.

* Cross-bucket trans­fers: We have added the avail­abil­ity to copy and move ob­jects across buck­ets, where pre­vi­ously you could do these op­er­a­tions only within the same Supabase bucket.

* Standardized er­ror codes: Error codes have now been stan­dard­ized across the Storage server and now will be much eas­ier to branch logic on spe­cific er­rors. You can find the list of er­ror codes here.

* Multi-tenant mi­gra­tions: We made sig­nif­i­cant im­prove­ments to the run­ning mi­gra­tions across all our ten­ants. This has re­duced mi­gra­tion er­rors across the fleet and en­ables us to run long run­ning mi­gra­tions in an asyn­chro­nous man­ner. Stay tuned for a sep­a­rate blog post with more de­tails.

* Decoupled de­pen­den­cies: Storage is fully de­cou­pled from other Supabase prod­ucts, which means you can run Storage as a stand­alone ser­vice. Get started with this docker-com­pose file.


Read the original on supabase.com »

4 235 shares, 17 trendiness



Read the original on www.blurmatic.com »

5 234 shares, 32 trendiness

Your powerful rich text editor

Used in small pro­jects and gi­ant Fortune 500s alike. Start sim­ple with the Quill core then eas­ily cus­tomize or add your own ex­ten­sions later if your prod­uct needs grow.

Learn More


Read the original on quilljs.com »

6 225 shares, 21 trendiness

Programming -- Principles and Practice Using C++ (3rd Edition)

Modified April 18, 2024.

Programming — Principles and Practice Using C++ (3rd Edition)

You can buy di­rectly from the pub­lisher.

Programming: Principles and Practice Using C++, Third Edition, will help any­one who is will­ing to work hard learn the fun­da­men­tal prin­ci­ples of pro­gram­ming and de­velop the prac­ti­cal skills needed for pro­gram­ming in the real world. Previous edi­tions have been used suc­cess­fully by many thou­sands of stu­dents. This re­vised and up­dated edi­tion

Assumes that your aim is to even­tu­ally write pro­grams that are good enough for oth­ers to use

and main­tain

Focuses on fun­da­men­tal con­cepts and tech­niques, rather than on ob­scure lan­guage-tech­ni­cal de­tails

Is an in­tro­duc­tion to pro­gram­ming in gen­eral, in­clud­ing pro­ce­dural, ob­ject-ori­ented, and generic

pro­gram­ming, rather than just an in­tro­duc­tion to a pro­gram­ming lan­guage

Covers both con­tem­po­rary high-level tech­niques and the lower-level tech­niques needed for ef­fi­cient

use of hard­ware

Will give you a solid foun­da­tion for writ­ing use­ful, cor­rect, type-safe, main­tain­able, and ef­fi­cient code

Is pri­mar­ily de­signed for peo­ple who have never pro­grammed be­fore, but even sea­soned pro­gram­mers

have found pre­vi­ous edi­tions use­ful as an in­tro­duc­tion to more ef­fec­tive con­cepts and tech­niques

Covers the de­sign and use of both built-in types and user-defi ned types, com­plete with in­put,

out­put, com­pu­ta­tion, and sim­ple graph­ics/​GUI

Offers an in­tro­duc­tion to the C++ stan­dard li­brary con­tain­ers and al­go­rithms

ABOUT THE AUTHOR Bjarne Stroustrup is the de­signer and orig­i­nal im­ple­menter of C++, as well as the au­thor of

The C++ Programming Language and

A Tour of C++, and many pop­u­lar and aca­d­e­mic pub­li­ca­tions. He is a pro­fes­sor of Computer Science at Columbia University in New York City. Dr. Stroustrup is a mem­ber of the US National Academy of Engineering, and an IEEE, ACM, and CHM fel­low. He re­ceived the 2018 Charles Stark Draper Prize, the IEEE Computer Society’s 2018 Computer Pioneer Award, and the 2017 IET Faraday Medal.

Programming: Principles and Practice us­ing C++ (3rd Edition)”, aka PPP3,

is an in­tro­duc­tion to pro­gram­ming for peo­ple who have never pro­grammed be­fore.

It will also be use­ful for peo­ple who have pro­grammed a bit and want to im­prove

their style and tech­nique - or sim­ply learn mod­ern C++.

It is de­signed for class­room use, but writ­ten with an eye on self study.

Ealier ver­sions of this book

have been used as the ba­sis for first pro­gram­ming classes for elec­tri­cal en­gi­neer­ing,

com­puter en­gi­neer­ing, and com­puter sci­ence stu­dents at Texas A&M University and in many other places.

People who have seen PPP2 will no­tice that PPP3 is about half its size. What I have done to keep the weight down is to

strengthen the foun­da­tional chap­ters usu­ally cov­ered in a one-se­mes­ter course,

uti­liz­ing key parts of C++20 and C+23,

and re-bas­ing the Graphics/GUI chap­ter code on


for porta­bil­ity (e.g., to browsers and phones).

placed the more spe­cial­ized chapers (known as broadening the view” in PPP2) on the Web for peo­ple to use as needed.

See be­low.

elim­i­nate the pure ref­er­ence ma­te­r­ial.

You now can find more and more up-to-date ma­te­r­ial on the web, e.g.



sup­port­ing ma­te­r­ial for PPP2 is avail­able as ever (lecture slides, code, etc.).

Here are some PPP3 sam­ples


What the book promises, and what it does not promise.

Chapter 0: Notes to the Reader.

Some notes on the ap­proach taken by the book.

Chapter 10: A Display Model.

A sam­ple chap­ter.

If you are a real novice, don’t read this chap­ter quite yet.

I post it to show teach­ers and more ex­pe­ri­enced read­ers where the book gets to in the 5th week or so (assuming two chap­ters a week).

Also, to show off a lit­tle bit of con­tem­po­rary C++.

These chap­ters were writ­ten us­ing C++14, rather than C++23, but are still cor­rect and in­tro­duce their top­ics in a rea­son­able man­ner.

None yet. See my book cov­ers page for trans­la­tions of ear­lier edi­tions.


Read the original on www.stroustrup.com »

7 222 shares, 9 trendiness

The SeaMonkey® Project

Web-browser, ad­vanced e-mail, news­group and feed client, IRC chat, and HTML edit­ing made sim­ple—all your Internet needs in one ap­pli­ca­tion.

Which op­er­at­ing sys­tem are you us­ing?

Would you like to se­lect a dif­fer­ent lan­guage?

The SeaMonkey pro­ject is a com­mu­nity ef­fort to de­velop the SeaMonkey Internet Application Suite (see be­low). Such a soft­ware suite was pre­vi­ously made pop­u­lar by Netscape and Mozilla, and the SeaMonkey pro­ject con­tin­ues to de­velop and de­liver high-qual­ity up­dates to this con­cept. Containing an Internet browser, email & news­group client with an in­cluded web feed reader, HTML ed­i­tor, IRC chat and web de­vel­op­ment tools, SeaMonkey is sure to ap­peal to ad­vanced users, web de­vel­op­ers and cor­po­rate users.

Under the hood, SeaMonkey uses much of the same Mozilla Firefox source code which pow­ers such prod­ucts as

Thunderbird. Legal back­ing is pro­vided by the SeaMonkey Association (SeaMonkey e. V.).

The SeaMonkey pro­ject is proud to pre­sent SeaMonkey The new re­lease of the all-in-one Internet suite is

avail­able for free down­load now! is a mi­nor bug­fix re­lease on the 2.53.x branch and con­tains a crash fix and a few other fixes to the ap­pli­ca­tion from the un­der­ly­ing plat­form code.

SeaMonkey is avail­able in 23 lan­guages, for Windows, ma­cOS x64 and Linux.

Automatic up­grades from pre­vi­ous 2.53.x ver­sions are en­abled for this

re­lease, but if you have prob­lems with it please down­load the full in­staller

from the down­loads sec­tion and in­stall SeaMonkey man­u­ally over the

pre­vi­ous ver­sion.

For a more com­plete list of ma­jor changes in SeaMonkey, see the

What’s New in SeaMonkey

sec­tion of the Release Notes, which also con­tains a list of known is­sues and an­swers to fre­quently asked ques­tions. For a more gen­eral overview of the SeaMonkey pro­ject (and screen shots!), visit www.sea­mon­key-pro­ject.org.

We en­cour­age users to get in­volved in dis­cussing and re­port­ing prob­lems as well as fur­ther im­prov­ing the prod­uct.

The SeaMonkey pro­ject is proud to pre­sent SeaMonkey 2.53.18 Beta 1: The new beta test re­lease of the all-in-one Internet suite is

avail­able for free down­load now!

2.53.18 will be an in­cre­men­tal up­date on the 2.53.x branch and in­cor­po­rates a num­ber of en­hance­ments, changes and fixes to the ap­pli­ca­tion as well as those from the un­der­ly­ing plat­form code. Support for pars­ing and pro­cess­ing newer reg­exp ex­pres­sions has been added help­ing with web com­pat­i­bil­ity on more than a few sites. Crash re­port­ing has been switched over to

BugSplat. We also added many fixes and back­ports for over­all plat­form sta­bil­ity.

Before in­stalling the new ver­sion make a full backup of

your pro­file and thor­oughly read and fol­low the

Release Notes. We en­cour­age testers to get in­volved in dis­cussing and re­port­ing prob­lems as well as fur­ther im­prov­ing the prod­uct.

SeaMonkey 2.53.18 Beta 1 is avail­able in 23 lan­guages, for Windows, ma­cOS x64 and Linux.

Attention ma­cOS users! The cur­rent SeaMonkey re­lease crashes dur­ing startup af­ter up­grad­ing to ma­cOS 13 Ventura. Until we have a fix we ad­vise you not to up­grade your ma­cOS in­stal­la­tion to Ventura. No us­able crash in­for­ma­tion is gen­er­ated and this might take a bit longer than usual to fix. This is not a prob­lem with Monterey 12.6.1 or any lower sup­ported ma­cOS ver­sion so might even be an Apple bug.

SeaMonkey has in­her­ited the suc­cess­ful all-in-one con­cept of the orig­i­nal Netscape Communicator and con­tin­ues that prod­uct line based on the mod­ern, cross-plat­form ar­chi­tec­ture pro­vided by the

Mozilla pro­ject.

* The Internet browser at the core of

the SeaMonkey Internet Application Suite uses the same ren­der­ing en­gine and

ap­pli­ca­tion plat­form as Mozilla Firefox, with pop­u­lar fea­tures like tabbed

brows­ing, feed de­tec­tion, popup block­ing, smart lo­ca­tion bar, find as you

type and a lot of other func­tion­al­ity for a smooth web ex­pe­ri­ence.

* SeaMonkey’s Mail and Newsgroups client

shares lots of code with Thunderbird and fea­tures adap­tive Junk mail

fil­ter­ing, tags and mail views, web feeds read­ing, tabbed mes­sag­ing, mul­ti­ple

ac­counts, S/MIME, ad­dress books with LDAP sup­port and is ready for both

pri­vate and cor­po­rate use.

* Additional com­po­nents in­clude an easy-to-use

HTML Editor, the ChatZilla IRC chat

ap­pli­ca­tion and web de­vel­op­ment tools like a DOM Inspector.

* If that’s still not enough, SeaMonkey can be ex­tended with nu­mer­ous

Add-Ons that pro­vide

ad­di­tional func­tion­al­ity and cus­tomiza­tion for a com­plete Internet



Read the original on www.seamonkey-project.org »

8 217 shares, 12 trendiness

Discover the vast ranges of our visible and invisible world.

Scale of Universe is an in­ter­ac­tive ex­pe­ri­ence to in­spire peo­ple to learn about the vast ranges of the vis­i­ble and in­vis­i­ble world. Click on ob­jects to learn more. Use the scroll bar to zoom in and out. Remastered by Dave Caruso, Ben Plate, and more.


Read the original on scaleofuniverse.com »

9 216 shares, 13 trendiness

The state of AI for hand-drawn animation inbetweening

The state of AI for hand-drawn an­i­ma­tion in­be­tween­ing

There are many po­ten­tial ways to use AI

(and com­put­ers in gen­eral) for 2D an­i­ma­tion. I’m cur­rently in­ter­ested in a seem­ingly con­ser­v­a­tive goal: to im­prove the

pro­duc­tiv­ity of a tra­di­tional hand-drawn full an­i­ma­tion work­flow by AI as­sum­ing re­spon­si­bil­i­ties sim­i­lar to those of a hu­man


As a sub-goal” of that larger goal, we’ll take a look at two re­cently pub­lished pa­pers on an­i­ma­tion inbetweening” — the au­to­matic gen­er­a­tion of in­ter­me­di­ate frames be­tween given keyframes. AFAIK these pa­pers rep­re­sent the cur­rent state of the art. We’ll see how these pa­pers and a com­mer­cial frame in­ter­po­la­tion tool per­form on some test se­quences. We’ll then briefly dis­cuss the fu­ture of the broad fam­ily of tech­niques in these pa­pers ver­sus some sub­stan­tially dif­fer­ent emerg­ing ap­proaches.

There’s a lot of other rel­e­vant re­search to look into, which I’m try­ing to do - this is just the start. I should say that I’m not an AI guy” - or rather I am if you’re build­ing an in­fer­ence chip, but not if you’re train­ing a neural net. I’m in­ter­ested in this as a pro­gram­mer who could in­cor­po­rate the lat­est tech into an an­i­ma­tion pro­gram, and as an an­i­ma­tor who could use that pro­gram. But I’m no ex­pert on this, and so I’ll be very happy to get feed­back/​sug­ges­tions through email or com­ments.

I’ve been into an­i­ma­tion tech since for­ever, and what’s pos­si­ble these days is ex­cit­ing. Specifically with in­be­tween­ing tech, I think we’re still not there yet”, and I think you’ll agree af­ter see­ing the re­sults be­low. But we might well get there within a decade, and maybe much sooner.

I think this stuff is very, very in­ter­est­ing! If you think so, too, we should get in touch. Doubly so if you want to work on this. I am go­ing to work on ex­actly this!

Why is it in­ter­est­ing to make AI a 2D an­i­ma­tor’s as­sis­tant, of all the things we could have it do (text to video, im­age to video, im­age style trans­fer onto a video, etc.)?

* An an­i­ma­tor is an ac­tor. The mo­tion of a char­ac­ter re­flects the im­plied phys­i­cal and men­tal state of that

char­ac­ter. If the mo­tion of a char­ac­ter, even one de­signed by a hu­man, is fully ma­chine-gen­er­ated, it means that hu­man con­trol

over act­ing is lim­ited; the ma­chine is now the ac­tor, and the hu­man’s in­flu­ence is lim­ited to directing” at best. It is

in­ter­est­ing to de­velop AI-assisted work­flows where the hu­man is still the ac­tor.

* To con­trol mo­tion, the an­i­ma­tor needs to draw sev­eral keyframes (or per­haps edit a ma­chine-gen­er­ated draft

- but with a pos­si­bil­ity to erase and re­draw it fully.) The range of ways to do a sad walk” or an an­gry, sur­prised head turn”

and the range of char­ac­ter traits in­flu­enc­ing the act­ing is too wide for act­ing to be con­trolled via cues other than ac­tu­ally

draw­ing the pose.

* If a hu­man is to be in con­trol, moving line art” is the nec­es­sary ba­sis for any in­no­va­tions in the ap­pear­ance of

the char­ac­ters. That’s be­cause hu­mans use a light table”, aka onion skin”, to draw mov­ing char­ac­ters, where you see

sev­eral frames over­laid on top of each other (like the frames of a bounc­ing ball se­quence be­low). And it’s roughly not hu­manly

pos­si­ble to read” a light table un­less the frames have the sharp edges of line art (believe me, I spent more time try­ing than I

should have.) Any work­flow with hu­man an­i­ma­tors in con­trol of mo­tion needs to have line art at its ba­sis, even if the fi­nal

ren­dered film looks very dif­fer­ently from the tra­di­tional line art style.

* The above gives the hu­man a role sim­i­lar to a tra­di­tional key an­i­ma­tor, so it’s nat­ural to give the ma­chine the

roles of as­sis­tants. It could be that AI can ad­di­tion­ally do some of the key an­i­ma­tor’s work, so that less keyframes

are pro­vided in some cases than you’d have to give a hu­man as­sis­tant (and one rea­son for this could be your abil­ity to quickly

get the AI to com­plete your work in 10-20 pos­si­ble ways, and choose the best op­tion, which is im­prac­ti­cal with a hu­man

as­sis­tant.) But the ba­sic role of the hu­man as a key an­i­ma­tor would re­main, and so the first thing to ex­plore is the ma­chine

tak­ing over the as­sis­tan­t’s role.

So I’m not say­ing that we can’t im­prove pro­duc­tiv­ity be­yond the machine as the as­sis­tant” arrange­ment, nor that we must limit our­selves to the tra­di­tional ap­pear­ance of hand-drawn an­i­ma­tion. I’m just say­ing that our con­ser­v­a­tive scope is

likely the right start­ing point, even if our fi­nal goals are more am­bi­tious - at least as long as we want the hu­man to

re­main the ac­tor.

What would the ma­chine do in an as­sis­tan­t’s role? Traditionally, as­sis­tants’ jobs in­clude:

* Coloring (“should” be triv­ial with a paint bucket tool, but sur­pris­ingly an­noy­ing around small gaps in the lines)

Our scope here is nar­rowed fur­ther by fo­cus­ing ex­clu­sively on in­be­tween­ing. There’s no deep rea­son for this be­yond hav­ing to start some­where, and in­be­tween­ing be­ing the most animation-y” as­sis­tan­t’s job, be­cause it’s about move­ment. So fo­cus­ing our search on in­be­tween­ing is most likely to give re­sults rel­e­vant to an­i­ma­tion and not just still” line art.

Finally, in this in­stall­ment, we’re go­ing to fo­cus on pa­pers which call them­selves AI for an­i­ma­tion

in­be­tween­ing” pa­pers. It’s not ob­vi­ous that any rel­e­vant killer tech­nique” has to come from a pa­per fo­cus­ing on this prob­lem ex­plic­itly. We could end up bor­row­ing ideas from pa­pers on video frame in­ter­po­la­tion, or video/​an­i­ma­tion gen­er­a­tion not de­signed for in­be­tween­ing, etc. In fact, I’m look­ing at some things like this. But again, let’s start some­where.

Before look­ing at pa­pers for the lat­est ideas, let’s check out Runway Frame Interpolation. Together with Stability AI and the CompVis group, Runway re­searchers were be­hind Stable Diffusion, and Runway is at the fore­front of de­ploy­ing gen­er­a­tive AI for video.

Let’s test frame in­ter­po­la­tion on a sneaky car­toony rab­bit se­quence. It’s good as a test se­quence be­cause it has both fast/​large and slower/​smaller move­ment (so both harder and eas­ier parts.) It also has both flat 2D body move­ment and 3D head ro­ta­tion - one might say too much ro­ta­tion… But ro­ta­tion is good to test be­cause it’s a big rea­son for do­ing full hand-drawn an­i­ma­tion. Absent ro­ta­tion, you can split your char­ac­ter into cut-out” parts, and an­i­mate it by mov­ing and stretch­ing these parts.

We throw away every sec­ond frame, ask Runway to in­ter­po­late the se­quence, and af­ter some con­ver­sions and a frame rate ad­just­ment (don’t ask), we get some­thing like this:

This tool def­i­nitely is­n’t cur­rently op­ti­mized for car­toony mo­tion. Here’s an ex­am­ple in­be­tween:

Now let’s try a sim­i­lar se­quence with a sneaky me in­stead of a sneaky rab­bit. Incidentally, this is one of sev­eral styles I’m in­ter­ested in - some­thing be­tween live ac­tion and Looney Tunes, with this self-por­trait tak­ing live ac­tion maybe 15% to­wards Looney Tunes:

Frame in­ter­po­la­tion looks some­what bet­ter here, but it’s still more mor­ph­ing than mov­ing from pose to pose:

While the Frame Interpolation tool cur­rently does­n’t work for this use case, I’d bet that Runway could solve the prob­lem quicker and bet­ter than most if they wanted to. Whether there’s a large enough mar­ket for this is an­other ques­tion, and it might de­pend on the ex­act de­f­i­n­i­tion of this.” Personally, I be­lieve that a lot of good things in life can­not be monetized”, a lot of art-re­lated things are in this un­for­tu­nate cat­e­gory, and I’m very pre­pared to in­vest time and ef­fort into this with­out clear, or even any prospects of mak­ing money.

In any case, we’ve got our test se­quences, and we’ve got our mo­ti­va­tion to look for bet­ter per­for­mance in re­cent pa­pers.

There’s a lot of work on AI for im­age pro­cess­ing/​com­puter vi­sion. It’s nat­ural to bor­row tech­niques from this deeply re­searched space and ap­ply them to line art rep­re­sented as raster im­ages.

There are a few pa­pers do­ing this; AFAIK the state of the art with this ap­proach is cur­rently Improving the Perceptual Quality of 2D Animation Interpolation (2022). Their EISAI GitHub repo points to a co­lab demo and a Docker im­age for run­ning lo­cally, which I did, and things ba­si­cally Just Worked.

That this can even hap­pen blows my mind. I re­mem­ber how things worked 25 years ago, when you rarely had the code pub­lished, and peo­ple im­ple­ment­ing com­puter vi­sion pa­pers would oc­ca­sion­ally swear that the pa­per is out­right ly­ing, be­cause the de­scribed al­go­rithms don’t do and could­n’t pos­si­bly do what the pa­per says.

The se­quence be­low shows just in­be­tweens pro­duced by EISAI. Meaning, frame N is pro­duced from the orig­i­nal frames N-1 and N+1; there’s not a sin­gle orig­i­nal frame here. So this se­quence is­n’t di­rectly com­pa­ra­ble to Runway’s out­put.

I could­n’t quite pro­duce the same out­put with Runway as with the pa­pers (don’t ask.) If you care, this se­quence is closer to be­ing com­pa­ra­ble to Runway’s, if not fully ap­ples to ap­ples:

If you look at in­di­vid­ual in­be­tweens, you’ll see that EISAI and Runway have sim­i­lar dif­fi­cul­ties - big changes be­tween frames, oc­clu­sion and de­for­ma­tion, and both do their best and worst in about the same places. One of the best in­be­tweens by EISAI:

One of the worst:

The in­be­tweens are pro­duced by for­ward-warp­ing based on bidi­rec­tional flow es­ti­ma­tion. Flow es­ti­ma­tion” means com­put­ing, per pixel or re­gion in the first keyframe, its most likely cor­re­spond­ing lo­ca­tion in the other keyframe - finding where it went to” in the other im­age (if you have two im­ages of mostly the same thing,” you can hope to find parts from one in the other.) Warping” means trans­form­ing pixel data - for ex­am­ple, scal­ing, trans­lat­ing and ro­tat­ing a re­gion. Forward-warping by bidi­rec­tional flow es­ti­ma­tion” means tak­ing re­gions from both keyframes and warp­ing them to put them where they be­long” in the in­be­tween - which is halfway be­tween a re­gion’s po­si­tion in the source im­age, and the po­si­tion in the other im­age that the flow es­ti­ma­tion says this re­gion cor­re­sponds to.

Warping by flow ex­plains the oc­ca­sional 3-4 arms and legs and 2 heads (it warps a left hand from both in­put im­ages into two far-away places in the out­put im­age, since the flow es­ti­ma­tor found a wrong match, in­stead of match­ing the hands to each other.) This also ex­plains empty space” patches of var­i­ous sizes in the oth­er­wise flat back­ground.

Notably, warp­ing by flow gives up” on cases of oc­clu­sion up front (I mean cases where some­thing is vis­i­ble in one frame and not in the other due to ro­ta­tion or any other rea­son.) If your prob­lem for­mu­la­tion is let’s find parts of one im­age in the other im­age, and warp each part to the mid­dle po­si­tion be­tween where it was in the first and where we found it in the sec­ond” - then the cor­rect an­swer to where did the oc­cluded part move?” is I don’t know; I can’t track some­thing that is­n’t there.”

When the op­ti­cal flow matches large parts” be­tween im­ages cor­rectly, you still have oc­ca­sional is­sues due to both im­ages be­ing warped into the re­sult, with ghosting” of de­tails of fin­gers or noses or what-not (meaning, you see two slightly dif­fer­ent draw­ings of a hand at roughly the same place, and you see one draw­ing through the other, as if that other draw­ing was a semi-trans­par­ent ghost”.) A dumb ques­tion com­ing to my mind is if this could be im­proved through brute force, by increasing the res­o­lu­tion of the im­age” / hav­ing a higher-resolution flow es­ti­ma­tion,” so you have a larger num­ber of smaller patches ca­pa­ble of rep­re­sent­ing the de­for­ma­tions of de­tails, be­cause each patch is tracked and warped sep­a­rately.

An in­ter­est­ing thing in this pa­per is the use of dis­tance

trans­form to create” tex­ture for con­vo­lu­tional neural net­works to work with for fea­ture ex­trac­tion. The dis­tance trans­form re­places every pixel value with the dis­tance from that pix­el’s co­or­di­nates to the clos­est black pixel. If you in­ter­pret dis­tances as black & white pixel val­ues, this gives texture” to your line art in a way. The pa­per cites Optical flow based line draw­ing frame in­ter­po­la­tion us­ing dis­tance trans­form to sup­port in­be­tween­ings” (2019) which also used dis­tance trans­form for this pur­pose.

If you’re deal­ing with 2D an­i­ma­tion and you’re bor­row­ing im­age pro­cess­ing/​com­puter vi­sion neural net­works (hyperparameters and maybe even pre­trained weights, as this pa­per does with a few lay­ers of ResNet), you will have the prob­lem of lack of tex­ture” - you have these large flat-color re­gions, and the out­put of every con­vo­lu­tion on each pixel within the re­gion is ob­vi­ously ex­actly the same. Distance trans­form gives some tex­ture for the con­vo­lu­tions to respond” to.

This amuses me in a machine learn­ing in­side joke” sort of way. But they told me that man­ual fea­ture en­gi­neer­ing

was over in the era of Deep Learning!” I mean, sure, a lot of it is over - you won’t see a pa­per on the next SIFT or HOG.” But, apart from the hyperparameters” (a name for, ba­si­cally, the en­tire net­work ar­chi­tec­ture) be­ing man­u­ally en­gi­neered, and the var­i­ous man­ual data aug­men­ta­tion and what-not, what’s Kornia, if not a tool for man­ual fea­ture en­gi­neer­ing in a dif­fer­en­tiable pro­gram­ming con­text”? And I’m not im­ply­ing that there’s any­thing wrong with it - quite the con­trary, my point is that peo­ple still do this be­cause it works, or at least makes some things work bet­ter.

Before we move on to other ap­proaches, let’s check how EISAI does on the rab­bit se­quence. I don’t care for the rab­bit se­quence; I’m self­ishly in­ter­ested in the me se­quence. But since un­like Runway, EISAI was trained on an­i­ma­tion data, it seems fair to feed it some­thing more like the train­ing data:

Both Runway and EISAI do worse on the rab­bit, which has more change in hands and ears and walks a bit faster. It seems that large move­ments, de­for­ma­tions and ro­ta­tions af­fect per­for­mance more than similarity to train­ing data,” or at least sim­i­lar­ity in a naive sense.

Instead of treat­ing the in­put as im­ages, you could work on a vec­tor rep­re­sen­ta­tion of the lines. AFAIK the most re­cent pa­per in this cat­e­gory is Deep Geometrized Cartoon Line Inbetweening (2023). Their AnimeInbet GitHub repo lets you re­pro­duce the pa­per’s re­sults. To run on your own data, you need to hack the code a bit (at least I did­n’t man­age with­out some code changes.) More im­por­tantly, you need to vec­tor­ize your in­put data some­how.

The pa­per does­n’t come with its own in­put draw­ing vec­tor­iza­tion sys­tem, and ar­guably should­n’t, since vec­tor draw­ing pro­grams ex­ist, and vec­tor­iz­ing raster draw­ings is a prob­lem in its own right and out­side the pa­per’s scope. The code in the pa­per has no trou­ble get­ting in­put data in a vec­tor rep­re­sen­ta­tion be­cause their line art dataset is pro­duced from their dataset of mov­ing 3D char­ac­ters, ren­dered with a toon shader” or what­ever the thing ren­der­ing lines in­stead of shaded sur­faces is called. And since the 2D points/​lines come from 3D ver­tices/​edges, you’re ba­si­cally pro­ject­ing a 3D vec­tor rep­re­sen­ta­tion into a 2D space and it’s still a vec­tor rep­re­sen­ta­tion.

What’s more, this data set pro­vides a kind of ground truth that you don’t get from 2D an­i­ma­tion data sets - namely,

de­tailed cor­re­spon­dence be­tween the points in both in­put frames and the ground truth in­be­tween frame. If your ground truth is a frame from an an­i­mated movie, you only know that this frame is the in­be­tween you ex­pect be­tween the pre­vi­ous frame and the next.” But here, you know where every 3D ver­tex ended up in every im­age!

This cor­re­spon­dence in­for­ma­tion is used at train­ing time - and omit­ted at in­fer­ence time, or it would be cheat­ing. So if you want to feed data into AnimeInbet, you only need to vec­tor­ize this data into points con­nected by straight lines, with­out wor­ry­ing about ver­tex cor­re­spon­dence. The pa­per it­self cites Virtual

Sketching, it­self a deep learn­ing based sys­tem, as the vec­tor­iza­tion tool they used for their own ex­per­i­ments in one of the ablation stud­ies” (I know it’s id­iomatic sci­en­tific lan­guage, but can I just say that I love this ex­pres­sion? Please don’t con­tribute to the pro­ject dur­ing the next month. We’re per­form­ing an ab­la­tion study of in­di­vid­ual pro­duc­tiv­ity. If the study proves suc­cess­ful, you shall be ab­lated from the com­pany by the end of the month.”)

There are com­ments in the AnimeInbet repo about is­sues us­ing Virtual Sketching; mine was that some lines par­tially dis­ap­peared (could be my fault for not us­ing it prop­erly.) I ended up writ­ing some ne­an­derthal-style im­age pro­cess­ing code skele­toniz­ing the raster lines, and then flood-fill­ing the skele­ton and con­nect­ing the points while flood-fill­ing. I’d ex­plain this at more length if it was more than a one-off hack; for what it’s worth, I think it’s rea­son­ably cor­rect for pre­sent pur­poses. (My testing” is that when I ren­der my ver­tices and the lines con­nect­ing them and eye­ball the re­sult, no ob­vi­ously stu­pid line con­nect­ing un­re­lated things ap­pears, and no big thing from the in­put raster im­age is clearly miss­ing.)

This hacky vectorization” code (might need more hack­ing to ac­tu­ally use) is in Animation Papers GitHub repo, to­gether with other code you might use to run AnimeInbet on your data.

The rab­bit is harder for AnimeInbet, sim­i­larly to the oth­ers. For ex­am­ple, the ears are com­pletely de­stroyed by the head turn, as usual:

The worst and the best in­be­tweens oc­cur in pretty much the same frames:

Visually no­table as­pects of AnimeInbet’s out­put com­pared to the pre­vi­ous sys­tems we’ve seen:

* AnimeInbet does­n’t blur lines. It might shred lines on oc­ca­sion, but you don’t blur

vec­tor lines like you blur pix­els. (You very much can put a bunch of garbage lines into the out­put, and AnimeInbet is

pretty good at not do­ing that, but this ca­pa­bil­ity be­longs to our next item. Here we’ll just note that raster-based

sys­tems did­n’t quite learn” to avoid line blur­ring, which this sys­tem avoids by de­sign.)

* AnimeInbet seems quite good at match­ing small de­tails and avoid­ing ghost­ing/​copy­ing the same thing twice from both

im­ages. This is not some­thing that can sal­vage bad in­be­tweens, but it makes good in­be­tweens bet­ter; in the one above,

the pants and the hands are ex­am­ples where small de­tail is matched bet­ter than in the raster sys­tems.

* For every part, AnimeInbet ei­ther finds a match or re­moves it from the out­put. The pa­per for­mu­lates

in­be­tween­ing as a graph match­ing prob­lem (where ver­tices are the nodes and the lines con­nect­ing them are edges.) Parts with­out a

match are marked as in­vis­i­ble. This does­n’t solve” oc­clu­sion or ro­ta­tion, but it tends to keep you from putting stuff into the

out­put that the an­i­ma­tor needs to erase and re­draw af­ter­wards. This makes good in­be­tweens mar­gin­ally bet­ter; for bad in­be­tweens,

it makes them less funny” but prob­a­bly not much more us­able (you get 2 legs in­stead of 4, but they’re of­ten not the right

legs; and you can still get a head with two fore­heads as in the bad in­be­tween above.)

AnimeInbet has a com­pre­hen­sive eval­u­a­tion of their sys­tem vs other sys­tems (EISAI and VFIformer as well as FILM and RIFE, video in­ter­po­la­tion rather than specif­i­cally an­i­ma­tion in­be­tween­ing sys­tems.) According to their method­ol­ogy (where they use their own test dataset), their sys­tem comes out ahead by a large mar­gin. In my ex­tremely small-scale and qual­i­ta­tive test­ing, I’d say that it looks bet­ter, too, though per­haps less dra­mat­i­cally.

Here we have deep learn­ing with a model and in­put data set tai­lored care­fully to the prob­lem - some­thing I think you won’t see as of­ten as pa­pers reusing one or sev­eral pre­trained net­works, and com­bin­ing them with var­i­ous adap­ta­tions to ap­ply to the prob­lem at hand. My emo­tional re­ac­tion to this ap­proach ap­pear­ing to do bet­ter than ideas bor­rowed from general im­age/​video AI re­search” is mixed.

I like being right” (well, vaguely) about AI not be­ing general ar­ti­fi­cial in­tel­li­gence” but a set of tech­niques that you need to ap­ply care­fully to build a sys­tem for your needs, in­stead of just throw­ing data into some gi­ant gen­eral-pur­pose black box - this is some­thing I like go­ing on about, maybe more than I should given my level of un­der­stand­ing. As a prospec­tive user/​im­ple­menter look­ing for the next break­through pa­per,” how­ever, it would be bet­ter for me if ideas bor­rowed from general video re­search” worked great, be­cause there’s so many of them com­pared to the vol­ume of animation-focused re­search.”

I mean, Disney al­ready fired its hand-drawn an­i­ma­tion de­part­ment years ago. If the medium is to be re­vived (and peo­ple even car­ing about it aren’t get­ting any younger), it’s less likely to hap­pen through di­rect in­vest­ment into an­i­ma­tion than as a byprod­uct of other, more prof­itable things. I guess we’ll see how it goes.

No fu­ture im­prove­ment of the tech­niques in both pa­pers can pos­si­bly take care of all of in­be­tween­ing,” be­cause oc­clu­sion and ro­ta­tion hap­pen a lot, and do not fit these pa­pers’ ba­sic ap­proach of match­ing 2D fea­tures in the in­put frames. And even the best in­be­tweens aren’t quite us­able as is. But they could be used with some edit­ing, and it could be eas­ier to edit them than draw the whole thing from scratch.

An en­cour­ag­ing ob­ser­va­tion is that ma­chines strug­gle with big changes and peo­ple strug­gle with small changes, so they

can com­ple­ment each other well. A hu­man is bet­ter at (and less bored by) draw­ing an in­be­tween be­tween two keyframes which look very dif­fer­ent than draw­ing some­thing very close to both in­put frames and putting every line at ju­u­u­u­ust the right place. If ma­chines can help han­dle the lat­ter kind of work, even with some edit­ing re­quired, that’s great!

It’s very in­ter­est­ing to look into ap­proaches that can in fact han­dle more change be­tween in­put frames. For ex­am­ple, check out the mid­dle frame be­low, gen­er­ated from the frames on its left and right:

This is from Explorative Inbetweening of Time and Space (2024); they say the code is com­ing soon. It does have some prob­lems with oc­clu­sion (look at the right arm in the mid­dle im­age.) But it seems to only strug­gle when show­ing some­thing that is oc­cluded in both in­put frames (for ex­am­ple, the right leg is fine, though it’s largely oc­cluded in the im­age on the left.) This is a big im­prove­ment over what we’ve seen above, or right be­low (this is one frame of Runway’s out­put, where one right leg slowly merges into the left leg, while an­other right leg is grow­ing):

But what’s even more im­pres­sive - ex­tremely im­pres­sive - is that the sys­tem de­cided that the body would go up be­fore go­ing back down be­tween these two poses! (Which is why it’s hav­ing trou­ble with the right arm in the first place! A fea­ture match­ing sys­tem would­n’t have this prob­lem, be­cause it would­n’t re­al­ize that in the mid­dle po­si­tion, the body would go up, and the right arm would have to be some­where. Struggling with things not vis­i­ble in ei­ther in­put keyframe is a good prob­lem to have - it’s ev­i­dence of know­ing these things ex­ist, which demon­strates quite the ca­pa­bil­i­ties!)

This sys­tem clearly learned a lot about three-di­men­sional real-world move­ment be­hind the 2D im­ages it’s asked to in­ter­po­late be­tween. Let’s call ap­proaches go­ing in this di­rec­tion 3D mo­tion re­con­struc­tion” tech­niques (and I apol­o­gize if there’s bet­ter, stan­dard ter­mi­nol­ogy / tax­on­omy; I’d use it if I knew it.)

My point here, be­yond ea­gerly wait­ing for the code in this pa­per, is that fea­ture match­ing tech­niques might re­main in­ter­est­ing in the long term, pre­cisely be­cause they don’t un­der­stand what’s go­ing on in the scene.” Sure, they clearly don’t learn how a fig­ure moves or looks like.” But this gives some hope that what they can do - han­dling small changes - will work on more kinds of in­puts. Meaning, a sys­tem that learned hu­man move­ment” might be less use­ful for an oc­to­pus se­quence than a sys­tem that learned to match patches of pix­els, or graphs of points con­nected by lines.” So falling back on 2D fea­ture match­ing could re­main use­ful for a long time, even once 3D mo­tion re­con­struc­tion works great on the kinds of char­ac­ters it was trained on.


Read the original on yosefk.com »

10 204 shares, 15 trendiness

Tips on how to structure your home directory

Someone wrote me an email and asked if I could share some tips on how to struc­ture the $HOME di­rec­tory, so here we go.

Structuring or or­ga­niz­ing di­rec­to­ries is not much dif­fer­ent from struc­tur­ing or or­ga­niz­ing other stuff and it re­ally comes down to what makes the most sense to you - at least as long as you’re only deal­ing with your own di­rec­to­ries. As soon as you’re deal­ing with an or­ga­ni­za­tion, things can very quickly get out of hand.

The main pur­pose be­hind any kind of or­ga­niz­ing is ef­fi­ciency. That re­ally is the key­word. You need to be able to eas­ily and quickly find what you’re look­ing for and just as eas­ily and quickly be able to store what needs to be stored.

Over the years I have changed my di­rec­tory struc­ture for my home di­rec­tory a cou­ple of times, but not so for about the last 10+ years be­cause I have set­tled on some­thing that works re­ally well for me.

I don’t like clut­ter and I try to keep things sim­ple. If I need some kind of rule book in or­der to re­mem­ber how to store my files in my home di­rec­tory, then this is a clear sign that some­thing has gone wrong.

In my home di­rec­tory I have all the ba­sic hid­den stuff which is a part of any mod­ern Unix op­er­at­ing sys­tem such as .config, .aliases, .profile, .gnupg, .mozilla, etc. Though I would pre­fer that all ap­pli­ca­tions would re­spect the XDG_CONFIG_HOME, which de­faults to $HOME/.config, I don’t mess with that and gen­er­ally don’t care too much about that.

In the past I kept my $HOME in Git - the right way ;), which is a re­ally great way to or­ga­nize dot­files. Today I still put all my dot­files in Git be­cause I like to keep a his­tory of changes, but I only leave those dot­files in place which work iden­ti­cally across the dif­fer­ent sys­tems I use. The setup spe­cific dot­files is kept in a dotfiles” di­rec­tory and I then use sym­links (more about that in a lit­tle while).

Regarding nor­mal files and di­rec­to­ries I pri­mar­ily use two meth­ods of or­ga­niz­ing, namely category” and dates”.

This is my ba­sic di­rec­tory struc­ture:






Besides from the above, I just leave the Desktop and Downloads di­rec­to­ries, which dif­fer­ent ap­pli­ca­tions seem to want to shove down the throat of every­body. In the past I fought” against those, be­cause I gen­er­ally don’t use them and I don’t like them, but life is just too short to mess with crap like that.

Update 2023-09-04: You can set di­rec­to­ries such as Desktop, Downloads and oth­ers with the user-dirs.dirs - set­tings for XDG user dirs, which most ap­pli­ca­tions should re­spect (thanks Hugo for point­ing this out!)

In the bin di­rec­tory I keep my shell scripts and per­sonal bi­nary ex­e­cuta­bles (not stuff in­stalled via the pack­age man­ager).

The mnt di­rec­tory I use for dif­fer­ent mount points, like when I mount an SD card, a USB disk, some of the shared stor­age I use in my home­lab.

It looks some­thing like this:





I never auto mount, but gen­er­ally use shell scripts for mount­ing. So if I have a USB disk I call foo”, I have a shell script called mfoo. It does­n’t mat­ter how the foo” disk gets rec­og­nized by the sys­tem, the shell script will make sure that the disk gets mounted at mnt/​foo each time, and if the disk is en­crypted, it will prompt me for the passphrase, if I don’t use a key.

The usr/​dot­files di­rec­tory is kept in Git to­gether with generic dot­files that work iden­ti­cally across all sys­tems, like .aliases. I use sym­links to the rel­e­vant files in the dot­files di­rec­tory. It looks some­thing like this:

$ ls -l ~/usr/dotfiles/config/i3



$ ls -l ~/.config/i3

con­fig -> /home/foo/usr/dotfiles/config/i3/linux-config

linux-con­fig is then a spe­cific con­fig­u­ra­tion file for i3 which I only use on my Linux sys­tems. This might be be­cause the short­cut I use to run Firefox, starts Firefox in a AppArmor con­trolled Firejail, which does­n’t ex­ist on FreeBSD. On FreeBSD I might use Capsicum to get a sim­i­lar ex­pe­ri­ence. Just as an ex­am­ple.

I have a cou­ple of other sub­di­rec­to­ries in the $HOME/usr di­rec­tory be­sides the dot­files di­rec­tory, but those are not re­ally rel­e­vant to men­tion in de­tail for this ar­ti­cle (a di­rec­tory for some out­dated shell scripts, some wall­pa­pers, etc.)

NOTE: Configuration files (dotfiles) can be man­aged in many dif­fer­ent ways. I have changed my ap­proach a cou­ple of times through­out the years. My pre­ferred method is to keep my $HOME in Git. If you only run a sin­gle sys­tem or sim­i­lar sys­tems I can highly rec­om­mend the method I de­scribe in the tu­to­r­ial I have linked to.

But re­mem­ber this, don’t just fol­low what other peo­ple tell you to do, find the way that makes you the most pro­duc­tive, the way that is best wired to fit your brain, your way of think­ing” and then sim­ply change that if you later find a more pro­duc­tive way.

The data and edata di­rec­to­ries are the two main di­rec­to­ries where I keep all my stuff. These two di­rec­to­ries are ZFS datasets that run on a mir­rored pool of disks that are sep­a­rate from my root in­stal­la­tion. I run both FreeBSD and sev­eral dif­fer­ent Linux dis­tri­b­u­tions on my main work­sta­tion and these each run on their own set of disks.

All of this could be setup in other ways too, but I pre­fer this setup. I can eas­ily mount both data and edata from both FreeBSD and Linux.

The dif­fer­ence be­tween data and edata is that edata is a ZFS na­tive en­crypted dataset.

By uti­liz­ing ZFS I reg­u­larly use snap­shots and ZFS send and re­ceive for easy backup to net­work stor­age. This can be done even with­out de­crypt­ing the en­crypted dataset.

You could ask what the point is of hav­ing both an en­cryptet dataset and an un­en­cryptet dataset, why not just put every­thing into the en­cryptet dataset?

The fact is that I would rather not have any­thing en­cryptet at all. Encryption is great for pri­vacy, but it is an ab­solute hor­ri­ble layer of com­plex­ity to put on top of an al­ready com­plex layer of a filesys­tem and ZFS en­cryp­tion is not with­out its bugs, see is­sues 13533 and 14330.

TIP: I highly rec­om­mend that you ALWAYS backup all your im­por­tant data to mul­ti­ple dif­fer­ent stor­age so­lu­tions and lo­ca­tions - it’s okay to be para­noid about im­por­tant data.

Actually, you SHOULD be para­noid about im­por­tant data. I learned this the re­ally hard way - a long time ago - when I had just fin­ished writ­ing a 200+ A4 pages book and then lost every­thing be­cause of a silly mis­take and had to start all over and write the book again!

It is im­pos­si­ble to de­scribe that very spe­cial feel­ing that arises when you have just re­al­ized what just hap­pened! Noooooooooooooo! Pleeeeeeaseeeeee NOOOOOOOOOOO! (utter de­spair and dis­be­lief - LOL).

So, to­day I not only use ZFS send and re­ceive, but I also copy data to other filesys­tems all to­gether, us­ing rsync. For en­cryp­tion I uti­lize both ZFS na­tive en­cryp­tion, GELI (for my main FreeBSD root disks) and LUKS (for my main Linux root disks) and I also not only fol­low the 3-2-1 backup rule, but add fur­ther copies to mul­ti­ple sys­tems. That way, even if some bug is found that might cause a prob­lem for me, I have a high de­gree of be­ing able to get my files with­out hav­ing to mess with the prob­lem.

I do NOT use cloud stor­age for any­thing im­por­tant. I rather keep lo­cal copies at places like fam­ily, friends or in a safety de­posit box (unfortunately, safety de­posit boxes are cur­rently be­ing re­moved from the banks in Denmark).

In the data di­rec­tory I have a few sub­di­rec­to­ries:




The books di­rec­tory con­tains books I have writ­ten or I am work­ing on.

The source di­rec­tory con­tains source code for var­i­ous pro­jects I work on.

The notes di­rec­tory con­tains a huge amount of per­sonal notes on every­thing from health to pol­i­tics to com­puter re­lated sub­jects. I write every­thing in pure text, mainly in Markdown or just with­out any spe­cial markup. Everything is struc­tured ac­cord­ing to cat­e­gory or sub­ject and it looks like this (short ver­sion):








Each main sub­ject also has a sub­di­rec­tory called files which I use for stuff I find on­line re­lated to the sub­ject. Files in the files di­rec­tory can be im­ages, text, au­dio and video. If I only have a few files, I just dump them all in the files di­rec­tory, but if I have a lot, I or­ga­nize them fur­ther by putting them in the rel­e­vant cat­e­gories.

Within each cat­e­gory of di­rec­tory I might also keep a hid­den sub­di­rec­tory called .outdated. I use this hid­den di­rec­tory to put stuff away that is, well, out­dated, but might still come in handy.

It then looks some­thing like this:

$ tree

└── data

└── notes

└── it

└── op­er­at­ing-sys­tems

├── freebsd

│   ├── .outdated

│   ├── files

│   │   ├── au­dio

│   │   ├── im­ages

│   │   ├── text

│   │   │   └── why-we-mi­grated-away-from-y-at-foo.pdf

│   │   └── video

│   │   └── how-we-setup-y-at-z.mp4

│   ├── how-to-do-x.md

│   └── how-to-setup-y.md

├── linux

└── openbsd

I al­ways keep an ex­ported shell vari­able that con­tains the lo­ca­tion of my notes. That way I can eas­ily link to any other doc­u­ment or ex­ter­nal file from within my notes and use Vim to open the file (if it’s a text doc­u­ment) by press­ing gf or use Vim’s build in abil­ity to ex­e­cute a shell com­mand from within the doc­u­ment. I use that to view PDF files or play a video, etc.

In my notes I might have a Markdown link to a PDF file which looks like this:

This is the [foo doc­u­ment]($NOTES/​it/​op­er­at­ing-sys­tems/​freebsd/​files/​text/​foo.pdf) rel­e­vant for in­for­ma­tion about foo.

When you have setup a de­fault ap­pli­ca­tion for read­ing PDF files, then from within Vim you can just place the cur­sor on the file­name and then press gx and Vim will open up the PDF file in the rel­e­vant PDF reader. Or you can copy and paste the path to the file and then open it with your PDF reader by typ­ing ! from within Vim (I gen­er­ally use MuPDF or za­thura for read­ing PDF doc­u­ments):

:!mupdf $NOTES/it/operating-systems/freebsd/files/text/foo.pdf

This works for other ap­pli­ca­tions as well, such as open­ing video with mpv or im­ages with some­thing like feh.

NOTE: Hyphen vs un­der­score in file­names and di­rec­tory names?

Originally, when I stopped us­ing Windows back in about 1998, I was used to us­ing spaces be­tween words in file­names and di­rec­to­ries. As I pro­gressed into the world of Linux and BSD, I changed all spaces to un­der­scores, but since I have done (and still do) a lot of web de­vel­op­ment I even­tu­ally set­tled on hy­phens. I not only think it looks bet­ter, but the fact is that search en­gines in­ter­pret hy­phens in file and di­rec­tory names as spaces be­tween words. Underscores are usu­ally not rec­og­nized, and as such, their pres­ence can neg­a­tively af­fect search en­gine op­ti­miza­tion. Even though files in my home di­rec­tory are my pri­vate files and not some­thing I put out on the web, I have just set­tled on us­ing hy­phens every­where.

Filename foo_bar_baz” be­comes foobarbaz” on a search en­gine, whereas foo-bar-baz” be­comes foo bar baz”.

As men­tioned, I also keep an en­crypted di­rec­tory called edata. I do that be­cause I be­lieve that it’s im­por­tant to en­crypt pri­vate stuff in case your com­puter gets stolen.

TIP: Remember that if you use en­cryp­tion for any­thing which other fam­ily mem­bers might need to be able to ac­cess in case you pass away, you need to make sure that they know how to do that!

The edata di­rec­tory is or­ga­nized in a sim­i­lar fash­ion with categories” be­ing the main struc­ture.










Read the original on unixdigest.com »

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

If you like 10HN please leave feedback and share

Visit pancik.com for more.