j

How just a few days cost some small businesses thousands on their PPP forgivable loans

For some of the smallest businesses that applied for forgivable loans through the Paycheck Protection Program, waiting just a few days or weeks would’ve gotten them thousands of dollars more.

But they had no way of knowing what was coming.

The Biden administration in late February announced a slew of changes to the loan program, which offered forgivable loans in return for keeping employees on a company’s payroll, after it reopened in January with $284 billion in funding. Those amendments included an adjusted loan formula that would mean larger amounts for sole proprietors as well as expanded eligibility for small business owners with certain criminal records, were delinquent on student loan debt or were non-citizens.




j

My first clojure macro

I'm finally experimenting with writing macros in clojure. Learning macros is (for me at least) a 4 stage process:

  1. Learn to use them (pretty straightforward)
  2. Learn to read their implementations (including the quoting)
  3. Learning to write them (in progress)
  4. Learning when to write them (in progress)

Those last two are iterative; #4 is especially tricky -- the web is full of general considerations ("when a function won't do", "when you want new syntax", "when you need to make decisions at compile time", etc) - but actually making that judgment in practice, takes... well practice.

Hence this exercise. Anyway to the code:

Clojure offers the if-let and when-let macros that allow you to combine a let block with testing the binding for nil:

(when-let [a (some-fn)]  
   (do-something-with a))

(if-let [a (some-fn)]  
   (do-something-with a)  
   (otherwise-fn)) 

I found myself (on some real code) wanting to be able to do something similar with try:

(try-let [a (some-potentially-exceptional-fn)]
  (do-something-with a))

(try-let [a (some-potentially-exceptional-fn)]
  (do-something-with a)
  ArithmeticException ((println (.getMessage e)) 42)
  :else (do-something-by-default-fn)
  :finally (println "always"))

etc.

So I wrote this (non-hygenic) macro that seems to do the job:

(defmacro try-let [let-expr good-expr & {fin-expr :finally else-expr :else :as handlers}]
  (letfn [(wrap [arg] (if (seq? arg) arg (list arg)))]
  `(try (let ~let-expr ~good-expr)
    ~@(map #(apply list 'catch (key %) 'e (wrap (val %))) (dissoc handlers :finally :else))
    ~(if else-expr `(catch Exception ~'e ~else-expr))
    (finally ~(if fin-expr `~fin-expr ())))))

Thing is... I don't if it's a good idea or not. For one thing its not hygienic (it implicitly declares e that can be used in the handler clauses) though this seems the kind of case that sort of thing is for.

For another... I don't know if its correct. It seems to be (I've tested all the scenarios I can think of), but this is kinda like security -- I suspect anyone can write a macro that they themselves can't break, but that doesn't mean its correct.

Some things to note: - e is available to handler expressions
- the local function wrap allows for a complex expression or single value to be spliced in
- any number of handlers can be included
- ':else' (default) handler and ':finally' handlers are optional (as are any others!)

In short: I'm interested in any opinions/feedback that aim at learning steps 3 & 4 (writing and when to write). Fire away!




j

Python Challenge answers 0 thru 4... in clojure

The Python Challenge is a nifty site that presents you with a series of puzzles that it asks you to solve using python; getting each answer allows you to move on to the next puzzle.

Python is a cool language and it's a good tool for this job1 However, I'm learning clojure right now, so I thought it would be fun to try and solve a few of them in clojure. Here's my answers for challenges 0 thru 4 (warning: if you want to do these puzzles yourself, reading further now might ruin the fun)

Challenge #0 (the "Warmup")

Asks you to solve 2 to the 38th power:

(clojure.contrib.math/expt 2 38)

i.e. just use the exponent function in clojure contrib.

Challenge #1

This one throws some scrambled text at you and a clue on what the key is (ROT 2):

(defn translate [text]
  (let [lookup (vec (map char (range 97 123)))]
    (letfn [(letter? [c] (and (>= (int c) 97) (<= (int c) 122)))
            (shift-2 [c] (mod (+ 2 (- (int c) 97)) 26))]
      (apply str (map #(if (letter? %) (get lookup (shift-2 %)) %) text)))))

Create a lookup table of the chars, a predicate to test if a char is a letter. & a function to get the index of 2nd to next letter (the index loops, essentially making lookup as a ring buffer), then map across the given text, shifting by 2 if its a letter or just returning the char if its not.

Challenge #2

This one throws a big hunk of random data at you and suggests you pick out the 'rare' characters:

(defn filter-file [path]
  (let [fs (line-seq (clojure.contrib.io/reader path))
        lookup (set (map char (range 97 123)))]
    (apply str (mapcat #(filter lookup %) fs))))

A quick visual scan of the text led me to a strong hunch the "rare"2 characters were lowercase alpha, so:

Re-use our lookup table from the last challenge; this time make it a set, then use the set to filter each line of the file denoted by 'path' (I first saved the text to a file to make it easier to work with); use mapcat to flatten the lines out (this has the effect of stripping empty lines altogether); apply str to the resulting sequence to get the answer.

Challenge #3

This one's a big hunk of text too, so a quick refactoring of our last solution results in a more abstract (and higher-order) function that takes a filter function as an additional parameter:

(defn filter-file [filter-fn path]
    (apply str (mapcat filter-fn (line-seq (io/reader path)))))

the filter from challenge #2 thus becomes an argument; partial works nicely here:

(filter-file (partial filter (set (map char (range 97 123)))) "path/to/file")

Now we can make a new filter for challenge #3. This one will need to find character patterns that look like this: ABCxDEF. We'll need grab x. This one just screamed regex at me, so here's a filter that gives us the answer:

#(second (re-find #"[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]" %)))

An anonymous function3 that uses re-find to match: "not-cap followed by 3 CAPS followed by not-cap followed by 3 CAPS followed by not-cap"; the second element of the resulting vector (because we use parens to create a group) produces x; mapcat et al do the rest.

Two big assumptions/limitations here: assumes each target is on its own line, and that the target pattern wasn't on the beginning or end of the line (which was good enough to get the answer).

Challenge #4

This challenge requires one to follow a url call chain, passing a different number as the argument to a 'nothing' parameter each time. The resulting page text provides the next number to follow (and/or some noise to keep you on your toes) until eventually we get the answer.

This one gets kinda ugly.

This is the kind of problem scripting languages are made for (e.g. perl, python & ruby coders would all make short work of this problem). Still, it's possible to write procedural code in clojure, and it's still reasonably straightforward.

One decision I had to make is how to GET the url's - my weapon of choice for this sort of thing is clj-http:

(require '[clj-http.client :as client])
(require '[clojure.contrib.string :as string]

(defn follow-chain [base-url number]
  (let [result (:body (client/get (str base-url number)))
        idx (.indexOf result "and the next")]
    (cond
      (re-find #"^Yes" result) (do
                                 (println result)
                                 (follow-chain base-url (/ (Integer/parseInt number) 2)))
      (= -1 idx)               result
      :else                    (let [result-vec (string/split (subs result idx) #" ")
                                     next-number (last result-vec)]
                                 (println result)
                                 (recur base-url next-number)))))

Take the url as a base & the first number to follow; use client-http/get to grab the page; extract the body of the page; get the index of the phrase "and the next" using the java "indexOf" method - we'll use the index later to parse out the end of the text and get the next number...

...unless of course, we get text that tells us something else (like a message saying "Yes" and then instructing us to divide the last number by two and continue on as before) so...

...we set up a switch using the cond macro: If the result starts with "Yes" make a recursive call dividing the last number by two; if indexOf otherwise came up empty, that's our answer, so return it; else pick the next number out of the result by splitting the end of the string into a vector (using clojure.contrib.string/split) and recur (tail recursively call the function again).

The println's could be removed, although they were essential when figuring out what the code needed to do.

Conclusion

This was a fun exercise; clojure's holding up pretty well so far, though clojure would not be my weapon of choice for that last one; if I choose to do the next five, I'll post them in a future article.

Footnotes

[1] It's also the darling of the hipster crowd right now -- in many cases the same people who snubbed python when ruby was the hip language about a decade ago... python abides.

[2] The official challenge answers also tackle ways to deduce "rare"; knock yourself out

[3] #() defines a function where % %2 etc represent positional parameters; the (fn [arg]) syntax would work here too




j

Test Driving Clojure Macros

When testing functions, one tests: evaluation result side-effects (if any)

When testing macros, one may also wish to test: expander code expansion




j

Just a note to say...

Just a note to say that this blog has become rather dusty and abandoned over the last two or three years. But I think it's time for me to use it a lot more. At least until Google notices that they still own Blogger, and close the whole thing down.

Hullo. Welcome back.

This is a good place, on the whole, this blog. I started it in February 2001, for American Gods. This was the first entry.)

Here is an Edward Gorey drawing called The Happy Ending, to celebrate the New Beginning.






j

A joint statement from Amanda and me

Hullo,

(Amanda is posting this on her blog as well.)

After many years of marriage, we have made the difficult decision to divorce. While we will no longer be partners in marriage, we will remain in one another’s lives as co-parents committed to raising our wonderful son in a loving and compassionate environment. We deeply appreciate everyone respecting our family’s privacy so we can focus on our son as we enter this new chapter in our lives.

Thank you.






j

Sjogren's Syndrome

Title: Sjogren's Syndrome
Category: Diseases and Conditions
Created: 12/31/1997 12:00:00 AM
Last Editorial Review: 8/1/2022 12:00:00 AM




j

3D-Printed Drones Market Projected to Reach $1.89 Billion by 2029 at a CAGR of 21.8%

(EMAILWIRE.COM, October 30, 2024 ) The 3D-printed drones market is projected to grow from USD 707 million in 2024 to USD 1,891 million by 2029, at a CAGR of 21.8% from 2024 to 2029. The market growth can be attributed to the growing utilization of 3D printing technology for rapid prototyping and...




j

Aromatherapy Diffuser Market Set for Strong Growth: Projected to Reach $3.45 Billion by 2030

(EMAILWIRE.COM, November 01, 2024 ) Aromatherapy Diffuser Market was valued at USD 1.87 Bn in 2023 and is expected to reach USD 3.45 Bn by 2030, at a CAGR of 9.17 % during the forecast period Aromatherapy Diffuser Market overview: The aromatherapy diffuser market has witnessed significant growth...




j

Micro Injection Molded Plastic Market worth $2.1 billion by 2028

(EMAILWIRE.COM, November 04, 2024 ) The report "Micro Injection Molded Plastic Market by Material Type (LCP, PEEK, PC, PE, POM, PMMA, PEI, PBT), Application (Medical, Automotive, Optics, Electronics), and Region (North America, Asia Pacific, Europe, MEA, South America) - Global Forecast to 2028"...




j

Quantum Communication Market Projected to Reach $5.54 Billion by 2030

(EMAILWIRE.COM, November 08, 2024 ) The global quantum communication market size is projected to grow from USD 0.74 billion in 2024 to USD 5.54 billion by 2030 at a Compound Annual Growth Rate (CAGR) of 39.6% during the forecast period. Download PDF Brochure@ https://www.marketsandmarkets.com/pdfdownloadNew.asp?id=143942501&utm_source=emailwire.com&utm_medium=paidpr&utm_campaign=quantum-communication-market Increasing...




j

Market Research Insight: India's Drone Market on a High-Flying Growth Trajectory

(EMAILWIRE.COM, November 12, 2024 ) The India Drone Market is witnessing a remarkable surge, with a projected growth from USD 654 million in 2024 to USD 1,437 million by 2029, driven by an impressive CAGR of 17.0%. This growth trajectory indicates a transformative shift in the adoption and application...




j

***** Aircraft and Private Jet Charter - Premier Aviation UK Ltd ... (rank 25)

An unrivalled personalised service offering care and attention around the clock. Premier Aviation UK Ltd, established in 1994, is one of the leading providers ...




j

***** HYPERION Aviation Services Malta - Private Jet Hire ... (rank 18)

We are aviation specialists with a proven track record as an Operator, and we manage one the largest fleets of widebody aircraft. The Company; Our Services; Our Fleet; Job Openings; Contact Us; We are an Aircraft Management Company. Learn About Us View Our Fleet. How we can help you ? Business Jet Management. Your aircraft is your asset. We’ll manage it like one. Charter and Jet cards ...




j

***** Prime Jet Services - Private Jet Charter Flights (rank 2)

5000+ Aircraft. Anywhere, Anytime, at the best price. Prime Jet Services is the leading worldwide Aircraft Charter provider. Booking your Private Jet Charter Flight with us is easy and takes only few minutes. Our travel consultants are available 24/7 to look after of every aspects of your flight.




j

***** Mach Aviation - Jet & Helicopter Specialists (rank 18)

Mach Aviation provides private Jets for sale as well as specialized Jet & Helicopter purchase and consulting services for both individuals and corporate clients globally. Call: +353 1 8138817. ... Mach Aviation Ltd. Co. Dublin Ireland. Tel: +353 (0)1 8138817 Email: jmccarthy@mach.ie.




j

***** Jet Airways' Insolvency: Potential Buyer Of Aircraft Gets Relief From ... (rank 13)

The National Company Law Tribunal on Tuesday granted relief to Ace Aviation Ltd., the potential buyer for Jet Airways Ltd.'s grounded aircraft. The court has allowed an application that allows them to purchase the debt-ridden airlines' aircraft, based on an agreement reached between Ace and the monitoring committee of Jet Airways.




j

***** Durban Aviation Services Ltd | Crowborough | Patricia Jane Wood - BizSeek (rank 23)

Patricia Jane Wood is the primary contact at Durban Aviation Services Ltd. You can contact Durban Aviation Services Ltd by phone using number 01892 610200. Durban Aviation Services Ltd ... Prime Aviation 15.78 km Saint Hill Rd, East Grinstead RH19 4NG, United Kingdom Airlines. Charter A 18.06 km 6 Copthorne Road, Felbridge, EAST GRINSTEAD, RH19 2NS




j

Dan Harmon and Justin Roiland

Rick and Morty: Dan Harmon’s Next Experiment After stunning the world (or at least the portion of the world that pays attention to what showrunners do) by reclaiming his series Community, after being removed for season four, Dan Harmon has...




j

J.M. DeMatteis, writer of "Constantine: City of Demons" interview

New York Comic Con 2018: Constantine: City of Demons At the 2018 New York Comic Con, DVDTalk’s Francis Rizzo III sat down with the cast and crew of the new feature-length animated film Constantine: City if Demons, due out...




j

2001 GMC Jimmy SLE from North America

If newer vehicles weren't so expensive I wouldn't be tolerating this one




j

2008 Volkswagen Jetta City from North America

Great until 200k




j

Schleswig-Holsteinischer Landtag stärkt die nordische Zusammenarbeit - Jahrestreffen des Nordischen Rates auf Island




j

Landesbeauftragter für politische Bildung, Aktion Kinder- und Jugendschutz SH und Offene Kirche Sankt Nikolai holen Anne-Frank-Ausstellung 2025 nach Kiel und erinnern mahnend an Novemberpogrome




j

Landesbeauftragter für politische Bildung: Alle Stolpersteine in Schleswig-Holstein jetzt in der App "Stolpersteine Digital" verfügbar




j

Schleswig-Holsteinischer Bürgerpreis 2024: Neun Projekte in den Kategorien "Alltagshelden" und "U27" nominiert!




j

Landtagspräsidentin Kristina Herbst liest am diesjährigen Bundesweiten Vorlesetag in der Grundschule Dänischenhagen vor




j

Sail On Will Jennings

Legendary songwriter Will Jennings passed away at the age of 80. He worked on two albums with Jimmy Buffett and Michael Utley, “Riddles in the Sand” and “Last Mango in Paris”, and co-wrote the songs …

The post Sail On Will Jennings first appeared on BuffettNews.com.




j

Jimmy Buffett will be honored with a star on the Music City Walk of Fame

From Music Row: Music City Walk Of Fame Announces 2024 Inductees The Nashville Convention & Visitors Corp have announced the Music City Walk of Fame will induct Jimmy Buffett, gospel quartet The Fairfield Four, Ryman Hospitality Properties’ Colin …

The post Jimmy Buffett will be honored with a star on the Music City Walk of Fame first appeared on BuffettNews.com.




j

Sail on JD Souther

Singer, songwriter John David (JD) Souther passed away on Tuesday at the age of 78. He co-wrote a couple of songs with Jimmy Buffett, “Livin’ it Up” and “The Good Fight”. He co-wrote several hits …

The post Sail on JD Souther first appeared on BuffettNews.com.




j

R&R Hall of Fame to pay tribute to Jimmy Buffett

From Good Morning America: Rock and Roll Hall of Fame to pay tribute to Jimmy Buffett James Taylor, Mac McAnally, Kenny Chesney, Dr. Dre, Demi Lovato, Dua Lipa, Jelly Roll and Keith Urban will be …

The post R&R Hall of Fame to pay tribute to Jimmy Buffett first appeared on BuffettNews.com.




j

Jimmy Buffett inducted into the Rock & Roll Hall of Fame

From Rolling Stone: Kenny Chesney, James Taylor Salute Jimmy Buffett at 2024 Rock Hall Ceremony. Dave Matthews, Mac McAnally also appear as late singer-songwriter receives Musical Excellence Award at Cleveland ceremony. Dave Matthews, Kenny Chesney, …

The post Jimmy Buffett inducted into the Rock & Roll Hall of Fame first appeared on BuffettNews.com.





j

GVSU Oral History: James Crawford and Vietnam

My father James Crawford was interviewed about his experiences in the service particularly during Vietnam and around the Battle of Firebase Ripcord. I am so proud of him sharing his oral history with the GVSU Veterans History Project. The video go his oral history is on YouTube and will be stored in the archives of...




j

Saw a doctor (good adjustments); drew a pickle (while talking to friends); crossed a river.

from Instagram https://instagr.am/p/DCIneGJpq6Z/ via IFTTT




j

Get a Job

Although the economy isn’t nearly as bad as some politicians would like us to believe (i.e., teetering on the edge of catastrophic collapse) nor as good as others claim (seriously: have you bought a bag of potato chips lately, one of the many items that victimizes consumers through shrinkflation?), one thing is certain: It is tough to get a job.

One of the recent events that could have conceivably caused a pandemic of globe luxation (i.e., eyes literally popping out of one’s head) was General Motors announcement a few weeks ago that it was jettisoning more than 1,000 software and services engineers. Just imagine a few years back when Susie or Johnny wanted to pursue studies of 17th-century metaphysical poets and were told by their parents that that was a dead-end and that they should go into a field with a bright future, one that would provide assured employment—like software engineering.

So it very well be that the un- or underemployed may think that now is a good time to take that weekends-only musical performing to a full-time gig.

After all, there was Swift’s remarkably lucrative Eras Tour, followed by Coldplay’s Music of the Spheres, which made it the first band to gross over a billion dollars.

Read more at Glorious Noise...




j

New Tiny Jackets: My Own Dark Age

Full disclosure–hell, this whole article is a full disclosure–Tiny Jackets is a project fronted by Kelly Simmons, who I played with in the band Daystar.

Some time ago I moved from Portland back to my hometown in Michigan and while we kept Daystar alive through those years (including through the pandemic lockdown), Kelly naturally got restless and started a new project called Tiny Jackets. 

Now, here’s the thing: Tiny Jackets is exactly the band I would have loved to be in. They have big hooks, big harmonies, occasionally jangly guitars, and clever lyrics. That sounds like me, right? 

Well, Tiny Jackets has a new single out called “My Own Dark Age” and it has all of the above plus a nifty outro that would sound natural on a banger from Waxwings (another band I wish I was in!).

Tiny Jackets Release Party

The Fixin’ To in Portland, Oregon

6:00 pm

Pre-order “My Own Dark Age”

Photo credit: Sarah Almedia

Read more at Glorious Noise...




j

Is Music in Jeopardy?

On February 16, 2011, IBM’s Watson DeepQA computer won Jeopardy!, beating trivia maven Brad Rutter and current Jeopardy! host and no slouch when it comes to knowing things that it is strange that things that aren’t databases know, Ken Jennings.

According to IBM, to get the computer to where it needed to be the company assigned more than 24 scientists, engineers and programmers, including a guy who’d won $10,000 on Jeopardy!

IBM: “It took the team five years to prefect the question-answering system.”

And the system “was a room-size computer consisting of 10 racks holding 90 servers, with a total of 2,880 processor cores.”

Rutter and Jennings? Just a couple of guys.

The idea for developing the system followed IBM’s Deep Blue computer defeating chess champion Garry Kasparov in 1997—although it should be noted that when the two first faced off in 1996 Kasparov beat the computer, 4-2.

And similarly, Watson didn’t win from the start, either.

There were two matches over three days.

In the first match, the clue for the question to be created for “Final Jeopardy” in the category “U.S.

Read more at Glorious Noise...




j

Codex decides to adopt ractopamine standard against consumer objections

Ractopamine is a drug given to pigs and cows in the last months of their lives to "make the meat more lean". Taiwan has been blocking imports of meat from the US over concerns that the drug's residues that stay in the meat are less than healthy. At a recent Codex Alimentarius Commission meeting, the meat producing and exporting countries, and those heavily lobbied and pressured by US diplomats prevailed in a close vote to make the agency adopt a standard for residues of ractopamine in meat. That means that the countries that resist meat from doped animals will have a harder time to justify why they don't want to subject their citizens to yet another experiment for the sake of the economy of large-scale animal-to-meat operations. Scott Tips of the National Health Federation has represented the consumer side at Codex and he reports on the meeting: After taking a vote by secret ballot this late morning, the Chairman of the Codex Alimentarius Commission, Mr. Sanjay Dave, announced the results of the voting on whether or not Ractopamine (a steroid-like vet drug, the residues of which remain in the slaughtered animal to then be consumed by meat-eaters) standards were adopted. Out of 143 ballots cast, the vote was 69 for Ractopamine, 67 against Ractopamine, with 7 abstaining. If only one vote had shifted from the “for” camp to the “against” camp, then the result would have been completely different and the Ractopamine standard would not have been adopted. This voting was forced upon the Commission by the insistence of the United States, Costa Rica, and Brazil that the long stalemate over the adoption of a standard for Ractopamine MRLs (Maximum Residue Levels) could not be resolved through the Codex-preferred process of “consensus” but would, after all, have to be voted upon......




j

"...you just get used to them"

“Young man, in mathematics you don’t understand things, you just get used to them.” —John von Neumann1

This, in a sense, is at the heart of why mathematics is so hard. Math is all about abstraction, about generalizing the stuff you can get a sense of to apply to crazy situations about which you otherwise have no insight whatsoever. Take, for example, one way of understanding the manifold structure on SO(3), the special orthogonal group on 3-space. In order to explain what I’m talking about, I’ll have to give several definitions and explanations and each, to a greater or lesser extent, illustrates both my point about abstraction and von Neumann’s point about getting used to things.

First off, SO(3) has a purely algebraic definition as the set of all real (that is to say, the entries are real numbers) 3 × 3 matrices A with the property ATA = I and the determinant of A is 1. That is, if you take A and flip rows and columns, you get the transpose of A, denoted AT; if you then multiply this transpose by A, you get the identity matrix I. The determinant has its own complicated algebraic definition (the unique alternating, multilinear functional…), but it’s easy to compute for small matrices and can be intuitively understood as a measure of how much the matrix “stretches” vectors. Now, as with all algebraic definitions, this is a bit abstruse; also, as is unfortunately all too common in mathematics, I’ve presented all the material slightly backwards.

This is natural, because it seems obvious that the first thing to do in any explication is to define what you’re talking about, but, in reality, the best thing to do in almost every case is to first explain what the things you’re talking about (in this case, special orthogonal matrices) really are and why we should care about them, and only then give the technical definition. In this case, special orthogonal matrices are “really” the set of all rotations of plain ol’ 3 dimensional space that leave the origin fixed (another way to think of this is as the set of linear transformations that preserve length and orientation; if I apply a special orthogonal transformation to you, you’ll still be the same height and width and you won’t have been flipped into a “mirror image”). Obviously, this is a handy thing to have a grasp on and this is why we care about special orthogonal matrices. In order to deal with such things rigorously it’s important to have the algebraic definition, but as far as understanding goes, you need to have the picture of rotations of 3 space in your head.

Okay, so I’ve explained part of the sentence in the first paragraph where I started throwing around arcane terminology, but there’s a bit more to clear up; specifically, what the hell is a “manifold”, anyway? Well, in this case I’m talking about differentiable (as opposed to topological) manifolds, but I don’t imagine that explanation helps. In order to understand what a manifold is, it’s very important to have the right picture in your head, because the technical definition is about ten times worse than the special orthogonal definition, but the basic idea is probably even simpler. The intuitive picture is that of a smooth surface. For example, the surface of a sphere is a nice 2-dimensional manifold. So is the surface of a donut, or a saddle, or an idealized version of the rolling hills of your favorite pastoral scene. Slightly more abstractly, think of a rubber sheet stretched and twisted into any configuration you like so long as there are no holes, tears, creases, black holes or sharp corners.

In order to rigorize this idea, the important thing to notice about all these surfaces is that, if you’re a small enough ant living on one of these surfaces, it looks indistinguishable from a flat plane. This is something we can all immediately understand, given that we live on an oblate spheroid that, because it’s so much bigger than we are, looks flat to us. In fact, this is very nearly the precise definition of a manifold, which basically says that a manifold is a topological space (read: set of points with some important, but largely technical, properties) where, at any point in the space, there is some neighborhood that looks identical to “flat” euclidean space; a 2-dimensional manifold is one that looks locally like a plane, a 3-dimensional manifold is one that looks locally like normal 3-dimensional space, a 4-dimensional manifold is one that looks locally like normal 4-dimensional space, and so on.

In fact, these spaces look so much like normal space that we can do calculus on them, which is why the subject concerned with manifolds is called “differential geometry”. Again, the reason why we would want to do calculus on spaces that look a lot like normal space but aren’t is obvious: if we live on a sphere (as we basically do), we’d like to be able to figure out how to, e.g., minimize our distance travelled (and, thereby, fuel consumed and time spent in transit) when flying from Denver to London, which is the sort of thing for which calculus is an excellent tool that gives good answers; unfortunately, since the Earth isn’t flat, we can’t use regular old freshman calculus.2 As it turns out, there are all kinds of applications of this stuff, from relatively simple engineering to theoretical physics.

So, anyway, the point is that manifolds look, at least locally, like plain vanilla euclidean space. Of course, even the notion of “plain vanilla euclidean space” is an abstraction beyond what we can really visualize for dimensions higher than three, but this is exactly the sort of thing von Neumann was talking about: you can’t really visualize 10 dimensional space, but you “know” that it looks pretty much like regular 3 dimensional space with 7 more axes thrown in at, to quote Douglas Adams, “right angles to reality”.

Okay, so the claim is that SO(3), our set of special orthogonal matrices, is a 3-dimensional manifold. On the face of it, it might be surprising that the set of rotations of three space should itself look anything like three space. On the other hand, this sort of makes sense: consider a single vector (say of unit length, though it doesn’t really matter) based at the origin and then apply every possible rotation to it. This will give us a set of vectors based at the origin, all of length 1 and pointing any which way you please. In fact, if you look just at the heads of all the vectors, you’re just talking about a sphere of radius 1 centered at the origin. So, in a sense, the special orthognal matrices look like a sphere. This is both right and wrong; the special orthogonal matrices do look a lot like a sphere, but like a 3-sphere (that is, a sphere living in four dimensions), not a 2-sphere (i.e., what we usually call a “sphere”).

In fact, locally SO(3) looks almost exactly like a 3-sphere; globally, however, it’s a different story. In fact, SO(3) looks globally like , which requires one more excursion into the realm of abstraction. , or real projective 3-space, is an abstract space where we’ve taken regular 3-space and added a “plane at infinity”. This sounds slightly wacky, but it’s a generalization of what’s called the projective plane, which is basically the same thing but in a lower dimension. To get the projective plane, we add a “line at infinity” rather than a plane, and the space has this funny property that if you walk through the line at infinity, you get flipped into your mirror image; if you were right-handed, you come out the other side left-handed (and on the “other end” of the plane). But not to worry, if you walk across the infinity line again, you get flipped back to normal.

Okay, sounds interesting, but how do we visualize such a thing? Well, the “line at infinity” thing is good, but infinity is pretty hard to visualize, too. Instead we think about twisting the sphere in a funny way:

You can construct the projective plane as follows: take a sphere. Imagine taking a point on the sphere, and its antipodal point, and pulling them together to meet somewhere inside the sphere. Now do it with another pair of points, but make sure they meet somewhere else. Do this with every single point on the sphere, each point and its antipodal point meeting each other but meeting no other points. It’s a weird, collapsed sphere that can’t properly live in three dimensions, but I imagine it as looking a bit like a seashell, all curled up on itself. And pink.

This gives you the real projective plane, . If you do the same thing, but with a 3-sphere (again, remember that this is the sphere living in four dimensions), you get . Of course, you can’t even really visualize or, for that matter, a 3-sphere, so really visualizing is going to be out of the question, but we have a pretty good idea, at least by analogy, of what it is. This is, as von Neumann indicates, one of those things you “just get used to”.

Now, as it turns out, if you do the math, SO(3) and look the same in a very precise sense (specifically, they’re diffeomorphic). On the face of it, of course, this is patently absurd, but if you have the right picture in mind, this is the sort of thing you might have guessed. The basic idea behind the proof linked above is that we can visualize 3-space as living inside 4-space (where it makes sense to talk about multiplication); here, a rotation (remember, that’s all the special orthogonal matrices/transformations really are) is just like conjugating by a point on the sphere. And certainly conjugating by a point is the same as conjugating by its antipodal point, since the minus signs will cancel eachother in the latter case. But this is exactly how we visualized , as the points on the sphere with antipodal points identified!

I’m guessing that most of the above doesn’t make a whole lot of sense, but I would urge you to heed von Neumann’s advice: don’t necessarily try to “understand” it so much as just to “get used to it”; the understanding can only come after you’ve gotten used to the concepts and, most importantly, the pictures. Which was really, I suspect, von Neumann’s point, anyway: of course we can understand things in mathematics, but we can only understand them after we suspend our disbelief and allow ourselves to get used to them. And, of course, make good pictures.


1 This, by the way, is my second-favorite math quote of the year, behind my complex analysis professor’s imprecation, right before discussing poles vs. essential singularities, to “distinguish problems that are real but not serious from those that are really serious.”

2 As a side note, calculus itself is a prime example of mathematical abstraction. The problem with the world is that most of the stuff in it isn’t straight. If it were, we could have basically stopped after the Greeks figured out a fair amount of geometry. And, even worse, not only is non-straight stuff (like, for example, a graph of the position of a falling rock plotted against time) all over the place, but it’s hard to get a handle on. So, instead of just giving up and going home, we approximate the curvy stuff in the world with straight lines, which we have a good grasp of. As long as we’re dealing with stuff that’s curvy (rather than, say, broken into pieces) this actually works out pretty well and, once you get used to it all, it’s easy to forget what the whole point was, anyway (this, I suspect, is the main reason calculus instruction is so uniformly bad; approximating curvy stuff with straight lines works so well that those who who are supposed to teach the process lose sight of what’s really going on).




j

Juristische Fangfrage: Scheidungsantrag beim Verwaltungsgericht

So blöd, wie es auf den ersten Blick aussehen mag, war die Frau keineswegs, die am 19.9.2007 einen Ehescheidungsantrag beim Schleswig-Holsteinischen Verwaltungsgericht einreichte. Welches Ziel hatte sie wohl mit ihrer - laut OLG Schleswig rechtsmissbräuchlichen, im Ergebnis aber doch erfolgreichen - Aktion im Auge?




j

Nicht jedes Wohnhaus ist so privat wie es erscheint

Auch im Regierungsbezirk Detmold ist der Kalte Krieg vorbei, so dass die Bezirksregierung die früher mit öffentlichen Zuschüssen geförderten Schutzräume in Privathäusern nicht mehr für notwendig hält. Das (teilweise) Verbot, solche Räume baulich zu verändern, hat sie daher neulich durch eine




j

JPEXS Free Flash Decompiler 22.0.0 (Freeware)

JPEXS Free Flash Decompiler enables you to decompile and edit the content of SWF Flash files, including .swf, .gfx and .swc. You can view and extract resources (shapes, sprites, fonts, buttons...), c....




j

BBBD JP Playlist


I have an... intimate relationship with Japanese music. 

For as long as I can remember, music from the Land of the Rising Sun has been my North Star: while perhaps not always in heavy rotation, it's always on my mind, and what I've learned and picked up through it functions as a sort of Rosetta stone; most of my other musical interests, ambitions, passions can be explained and understood through my connection to Japanese music. Particularly Japanese music that's from the 90s, that's a little askew of the mainstream, a little indie or alternative or left-field or out-there.

Disappointingly, because of, I presume, language barriers, contractual chaos, and plain ol' indifference, much of my personal collection, which I've been amassing for—gulp—twenty-plus years is not on Spotify. Granted, this helps preserve some of the mystique and curiosity that exists around it—in the everything's-always-available world we live in, it's nice to know some stuff is not within arm's reach—but, overall, it's a shame. A whole cosmos of music out there that one can't access.

(The above really only applies to Spotify in the U.S., which has, counterintuitively, a smaller catalog than other nations. I wouldn't be surprised if it's actually the smallest one of them all.)

Rather than continue to mope about this, though, I started maintaining a playlist that collects the best of what I know, love, adore. For the past few months, I've been painstakingly compiling this music. Many of these artists have slipped in through pre-DSP mixes, their legal gray zone in my favor. Many of these artists have a mere handful of pieces up. Many of these artists are only searchable through Japanese-language queries; the Latin alphabet will get you nowhere.

I updated it again, and I thought I'd finally take this opportunity to share it on BBBD. If you're apprehensive and daunted, begin with the final seventy or so tracks—that's the crash course and the beginning of the journey.




j

T.V. Jesus


In the mid-90s, Konishi Yasuharu (小西 康陽), at the apex of his imperial period, began spreading himself further and further afield, working in various genres and sowing the seeds for what would eventually become his own label, Readymade Records, which he launched in 1997.

I'm going to explore some of his other works, many of which have been lost to time and lack of translation, both into English and digital formats. As so much of this music only ever existed on CD—and was only ever packaged in Japanese text—it's difficult to track down, let alone be aware of. The man was obscenely prolific, however, and I'd like to spend a little time shining light on the efforts he made outside of his flagship project, Pizzicato Five (ピチカート・ファイヴ, P5).

And we shall begin with T.V. Jesus, a duo comprised of Masumi Arichika (有近真澄) and Rieko Teramoto (寺本りえ子).

If P5 was primarily an exploration of the past through jazzy pop, Burt Bacharach ballads, space-age lounge, rendered in polarly-opposed palettes—soft pastels, gentle and intimate, or bright neons, biting and intense—then T.V. Jesus was the same journey, but with fuzzier and greasier guitars and live drums, a glam-rock corollary to Konishi and Maki Nomiya's (野宮 真貴) union.

 
Arichika first worked with Yasuharu on a solo album, one of his earliest, Menoto (女の都City of Women), which was released in 1994, and it's my suspicion that this collaboration led to Konishi's efforts with T.V. Jesus. (That album was lovely, though I cannot find a single blip that's publicly online. It's similar to the previous LP, TRUEBLUE, in that it's all breakbeat and trip-hop beats, but with Yasuharu on production, a smoother side is revealed, like a Joe Jackson album reimagined with drum machines.)
   
Rieko, on the other hand, was recording solo as Transistor Glamour (トランジスタ・グラマー), the name of an old Sony portable radio. (And not to be confused with a duo of the same name.)

Her music had heart and charm, despite sometimes sounding as if it came off a J-pop assembly line, essentially karaoke backing tracks (lively and unusual as they may have been) with vocals laid atop. Tracks like "Fantasy" (「ファンタジー」) indicate such promise—a talented singer with a supple, calm voice, water through fine cloth.
 




j

ARA January 2019 Hanging Canal Video




j

JFA Bajada "hanging" canal author's preprint




j

Prehistoric Bajada Hanging canals




j

Confident In The Chaos Pt4: The Judged And The Just

In part 4 of 'Confident In The Chaos', 'The Judged And The Just', we discover part of the answer to Habakkuk's questioning of God and His ways - 'The just shall live by his faith' (2:4). The way we remain confident in the chaos is to believe God. This is also the way to be 'right with God', be saved from judgement and to stay in close fellowship with God - by faith. In this episode we go to the very heart of the Gospel - how Jesus took our sin and we receive God's righteousness through faith in Him. Why not share this message of Good News with someone you know who needs Jesus? This message is available at https://www.preachtheword.com now in MP3 audio format and in HD video on our YouTube Channel (https://youtube.com/PreachTheWord)...



  • Religion & Spirituality

j

Confident In The Chaos Pt7: Choose Joy!

In Part 7 of 'Confident In The Chaos' Habakkuk exhorts us to 'Choose Joy!'. In these closing verses of Habakkuk we see the power of joy, even in the worst of circumstances - how joy is not rooted in our circumstance, but in our faithful God. See with us how Habakkuk's journey from doubt to faith, and chaos to confidence, ends. In these strange and perplexing days we are living through, we face some similar scenarios to Habakkuk, not least a global economy in dire straits. How do we respond? How do we survive? Can we actually thrive to be 'Confident in the Chaos'? Habakkuk gives us an emphatic - YES!! This encouraging message is available at https://www.preachtheword.com now in MP3 audio format and in HD video on our YouTube Channel (https://youtube.com/PreachTheWord)...



  • Religion & Spirituality