Showing posts sorted by relevance for query copyright. Sort by date Show all posts
Showing posts sorted by relevance for query copyright. Sort by date Show all posts

Tuesday, December 13, 2011

Wikimania 2011 - Wiki Academy 2011 - Copyright and Intellectual Property (English)



Below is the short description.
Ниже есть продолжение.


00:08 - Opening - Prof. Niva Elkin-Koren, Haifa University

12:40 - Freedom of panorama and Wikimedia Commons
Christopher Cooper
Many people have difficulty understanding that a picture of a
building or of a statue in a street could be copyrighted, but
the Berne Convention makes this so. Following the deletion of
hundreds of potentially e ducational images, some contributors
are asking if the line between meeting strict copyright standards
and the ambitions of Commons is well placed.
http://wikimania2011.wikimedia.org/wiki/Submissions/Freedom_of_panorama_and_Wikimedia_Commons
Download slides


30:35 - Cultural Fair Use, Political Narrative and Copyright
Jonathan Klinger
What is the connection between copyright, cultural rights and
fair use? In a brief lecture, we shall discuss the correlation in
regards to the relevant Israeli legislation and struggle for fair use.
http://wikimania2011.wikimedia.org/wiki/Submissions/Cultural_Fair_Use,_Political_Narrative_and_Copyright.

46:15 - Fighting the Intellectual Property Regime
Nikolas Becker
The idea of intellectual property is not natural. It was
constructed in the 14th Century and has developed since then
into a worldwide accepted idea. A small group of Western
companies managed to spread this construction over the whole
world and build the regime of intellectual property. How could
countries of the Global South resist the much more powerful
western countries and make changes to the TRIPS agreement
during the Uruguay Round from 1986 to 1994?
http://wikimania2011.wikimedia.org/wiki/Submissions/Fighting_The_Intellectual_Property_Regime
Download slides


1:09:45 - Wikimedia and the Public Domain
Ryan Kaldari
Wikimedia is one of the largest repositories (and users) of
public domain material in the world. Commons alone hosts
over 3 million public domain files. Increasingly, however, the
public domain is coming under threat from a variety of sources:
governments restoring copyrights on public domain material,
media companies pushing for longer and longer copyright terms,
museums and archives acting as gatekeepers to the works
they house, DMCA abuse, etc. As one of the most prominent
projects in the Free Culture movement, how do we address
these problems and work to protect the public domain for the
long term?
http://wikimania2011.wikimedia.org/wiki/Submissions/Wikimedia_and_the_Public_Domain

1:18:50 - A panel headed by Prof. Niva Elkin-Koren, Haifa University

http://www.youtube.com/watch?v=4_xAX09jIR0

UPDATE 18-12-2011:
See also:

List: Wikimania 2011 copyright
List: Wiki Academy
Scheduled Lectured with link to youtube
Youtube list: Wikimania 2011
List: Wikimania 2011 posts

END OF UPDATE

Thursday, December 29, 2011

28c3: The copyright war was just the beginning (English)

По наводке блога Давыдова.
Форматирование не сохранено.




The coming war on general computation

The copyright war was just the beginning

The last 20 years of Internet policy have been dominated by the copyright war, but the war turns out only to have been a skirmish. The coming century will be dominated by war against the general purpose computer, and the stakes are the freedom, fortune and privacy of the entire human race.


There is more below, including links to another videos.
Ниже есть продолжение.


The problem is twofold: first, there is no known general-purpose computer that can execute all the programs we can think of except the naughty ones; second, general-purpose computers have replaced every other device in our world. There are no airplanes, only computers that fly. There are no cars, only computers we sit in. There are no hearing aids, only computers we put in our ears. There are no 3D printers, only computers that drive peripherals. There are no radios, only computers with fast ADCs and DACs and phased-array antennas. Consequently anything you do to "secure" anything with a computer in it ends up undermining the capabilities and security of every other corner of modern human society.

And general purpose computers can cause harm -- whether it's printing out AR15 components, causing mid-air collisions, or snarling traffic. So the number of parties with legitimate grievances against computers are going to continue to multiply, as will the cries to regulate PCs.

The primary regulatory impulse is to use combinations of code-signing and other "trust" mechanisms to create computers that run programs that users can't inspect or terminate, that run without users' consent or knowledge, and that run even when users don't want them to.

The upshot: a world of ubiquitous malware, where everything we do to make things better only makes it worse, where the tools of liberation become tools of oppression.

Our duty and challenge is to devise systems for mitigating the harm of general purpose computing without recourse to spyware, first to keep ourselves safe, and second to keep computers safe from the regulatory impulse.

http://events.ccc.de/congress/2011/Fahrplan/events/4848.en.html

See also:
Wikimania 2011 - Wiki Academy 2011 - Copyright. Cultural Fair Use, Political Narrative
Wikimania 2011 - Wiki Academy 2011 - Copyright. Fighting the Intellectual Property Regime
Wikimania 2011 - Wiki Academy 2011 - Copyright. Wikimedia and the Public Domain

Saturday, December 17, 2011

Wikimania 2011 - Wiki Academy 2011 - Copyright. Cultural Fair Use, Political Narrative (English)




Below is the short description.
Ниже есть продолжение.



30:35 - Cultural Fair Use, Political Narrative and Copyright
Jonathan Klinger
What is the connection between copyright, cultural rights and
fair use? In a brief lecture, we shall discuss the correlation in
regards to the relevant Israeli legislation and struggle for fair use.
http://wikimania2011.wikimedia.org/wiki/Submissions/Cultural_Fair_Use,_Political_Narrative_and_Copyright.

http://www.youtube.com/watch?v=4_xAX09jIR0

UPDATE 18-12-2011:
See also:

List: Wikimania 2011 copyright
List: Wiki Academy
Scheduled Lectured with link to youtube
Youtube list: Wikimania 2011
List: Wikimania 2011 posts

END OF UPDATE

Thursday, January 26, 2012

Clay Shirky: Why SOPA is a bad idea (English)

По наводке блога Давыдова.



http://www.ted.com/talks/defend_our_freedom_to_share_or_why_sopa_is_a_bad_idea.html

Below there is interactive transcript.
Ниже есть продолжение.


I'm going to start here. This is a hand-lettered sign that appeared in a mom and pop bakery in my old neighborhood in Brooklyn a few years ago. The store owned one of those machines that can print on plates of sugar. And kids could bring in drawings and have the store print a sugar plate for the top of their birthday cake.

But unfortunately, one of the things kids liked to draw was cartoon characters. They liked to draw the Little Mermaid, they'd like to draw a smurf, they'd like to draw Micky Mouse. But it turns out to be illegal to print a child's drawing of Micky Mouse onto a plate of sugar. And it's a copyright violation. And policing copyright violations for children's birthday cakes was such a hassle that the College Bakery said, "You know what, we're getting out of that business. If you're an amateur, you don't have access to our machine anymore. If you want a printed sugar birthday cake, you have to use one of our prefab images -- only for professionals."

So there's two bills in Congress right now. One is called SOPA, the other is called PIPA. SOPA stands for the Stop Online Piracy Act. It's from the Senate. PIPA is short for PROTECTIP, which is itself short for Preventing Real Online Threats to Economic Creativity and Theft of Intellectual Property -- because the congressional aides who name these things have a lot of time on their hands. And what SOPA and PIPA want to do is they want to do this. They want to raise the cost of copyright compliance to the point where people simply get out of the business of offering it as a capability to amateurs.

Now the way they propose to do this is to identify sites that are substantially infringing on copyright -- although how those sites are identified is never fully specified in the bills -- and then they want to remove them from the domain name system. They want to take them out of the domain name system. Now the domain name system is the thing that turns human-readable names, like Google.com, into the kinds of addresses machines expect -- 74.125.226.212.

Now the problem with this model of censorship, of identifying a site and then trying to remove it from the domain name system, is that it won't work. And you'd think that would be a pretty big problem for a law, but Congress seems not to have let that bother them too much. Now the reason it won't work is that you can still type 74.125.226.212 into the browser or you can make it a clickable link and you'll still go to Google. So the policing layer around the problem becomes the real threat of the act.

Now to understand how Congress came to write a bill that won't accomplish its stated goals, but will produce a lot of pernicious side effects, you have to understand a little bit about the back story. And the back story is this: SOPA and PIPA, as legislation, were drafted largely by media companies that were founded in the 20th century. The 20th century was a great time to be a media company, because the thing you really had on your side was scarcity. If you were making a TV show, it didn't have to be better than all other TV shows ever made; it only had to be better than the two other shows that were on at the same time -- which is a very low threshold of competitive difficulty. Which meant that if you fielded average content, you got a third of the U.S. public for free -- tens of millions of users for simply doing something that wasn't too terrible. This is like having a license to print money and a barrel of free ink.

But technology moved on, as technology is want to do. And slowly, slowly, at the end of the 20th century, that scarcity started to get eroded -- and I don't mean by digital technology; I mean by analog technology. Cassette tapes, video cassette recorders, even the humble Xerox machine created new opportunities for us to behave in ways that astonished the media business. Because it turned out we're not really couch potatoes. We don't really like to only consume. We do like to consume, but every time one of these new tools came along, it turned out we also like to produce and we like to share. And this freaked the media businesses out -- it freaked them out every time. Jack Valenti, who was the head lobbyist for the Motion Picture Association of America, once likened the ferocious video cassette recorder to Jack the Ripper and poor, helpless Hollywood to a woman at home alone. That was the level of rhetoric.

And so the media industries begged, insisted, demanded that Congress do something. And Congress did something. By the early 90s, Congress passed the law that changed everything. And that law was called the Audio Home Recording Act of 1992. What the Audio Home Recording Act of 1992 said was, look, if people are taping stuff off the radio and then making mixtapes for their friends, that is not a crime. That's okay. Taping and remixing and sharing with your friends is okay. If you make lots and lots of high quality copies and you sell them, that's not okay. But this taping business, fine, let it go. And they thought that they clarified the issue, because they'd set out a clear distinction between legal and illegal copying.

But that wasn't what the media businesses wanted. They had wanted Congress to outlaw copying full-stop. So when the Audio Home Recording Act of 1992 was passed, the media businesses gave up on the idea of legal versus illegal distinctions for copying because it was clear that if Congress was acting in their framework, they might actually increase the rights of citizens to participate in our own media environment. So they went for plan B. It took them a while to formulate plan B.

Plan B appeared in its first full-blown form in 1998 -- something called the Digital Millennium Copyright Act. It was a complicated piece of legislation, a lot of moving parts. But the main thrust of the DMCA was that it was legal to sell you uncopyable digital material -- except that there's no such things as uncopyable digital material. It would be, as Ed Felton once famously said, "Like handing out water that wasn't wet." Bits are copyable. That's what computers do. That is a side effect of their ordinary operation.

So in order to fake the ability to sell uncopyable bits, the DMCA also made it legal to force you to use systems that broke the copying function of your devices. Every DVD player and game player and television and computer you brought home -- no matter what you thought you were getting when you bought it -- could be broken by the content industries, if they wanted to set that as a condition of selling you the content. And to make sure you didn't realize, or didn't enact their capabilities as general purpose computing devices, they also made it illegal for you to try to reset the copyability of that content. The DMCA marks the moment when the media industries gave up on the legal system of distinguishing between legal and illegal copying and simply tried to prevent copying through technical means.

Now the DMCA had, and is continuing to have, a lot of complicated effects, but in this one domain, limiting sharing, it has mostly not worked. And the main reason it hasn't worked is the Internet has turned out to be far more popular and far more powerful than anyone imagined. The mixtape, the fanzine, that was nothing compared to what we're seeing now with the Internet. We are in a world where most American citizens over the age of 12 share things with each other online. We share written things, we share images, we share audio, we share video. Some of the stuff we share is stuff we've made. Some of the stuff we share is stuff we've found. Some of the stuff we share is stuff we've made out of what we've found, and all of it horrifies those industries.

So PIPA and SOPA are round two. But where the DMCA was surgical -- we want to go down into your computer, we want to go down into your television set, down into your game machine, and prevent it from doing what they said it would do at the store -- PIPA and SOPA are nuclear and they're saying, we want to go anywhere in the world and censor content. Now the mechanism, as I said, for doing this, is you need to take out anybody pointing to those IP addresses. You need to take them out of search engines, you need to take them out of online directories, you need to take them out of user lists. And because the biggest producers of content on the Internet are not Google and Yahoo, they're us, we're the people getting policed. Because in the end, the real threat to the enactment of PIPA and SOPA is our ability to share things with one another.

So what PIPA and SOPA risk doing is taking a centuries-old legal concept, innocent until proven guilty, and reversing it -- guilty until proven innocent. You can't share until you show us that you're not sharing something we don't like. Suddenly, the burden of proof for legal versus illegal falls affirmatively on us and on the services that might be offering us any new capabilities. And if it costs even a dime to police a user, that will crush a service with a hundred million users.

So this is the Internet they have in mind. Imagine this sign everywhere -- except imagine it doesn't say College Bakery, imagine it says YouTube and Facebook and Twitter. Imagine it says TED, because the comments can't be policed at any acceptable cost. The real effects of SOPA and PIPA are going to be different than the proposed effects. The threat, in fact, is this inversion of the burden of proof, where we suddenly are all treated like thieves at every moment we're given the freedom to create, to produce or to share. And the people who provide those capabilities to us -- the YouTubes, the Facebooks, the Twitters and TEDs -- are in the business of having to police us, or being on the hook for contributory infringement.

There's two things you can do to help stop this -- a simple thing and a complicated thing, an easy thing and a hard thing. The simple thing, the easy thing, is this: if you're an American citizen, call your representative, call your senator. When you look at the people who co-signed on the SOPA bill, people who've co-signed on PIPA, what you see is that they have cumulatively received millions and millions of dollars from the traditional media industries. You don't have millions and millions of dollars, but you can call your representatives, and you can remind them that you vote, and you can ask not to be treated like a thief, and you can suggest that you would prefer that the Internet not be broken.

And if you're not an American citizen, you can contact American citizens that you know and encourage them to do the same. Because this seems like a national issue, but it is not. These industries will not be content with breaking our Internet. If they break it, they will break it for everybody. That's the easy thing. That's the simple thing.

The hard thing is this: get ready, because more is coming. SOPA is simply a reversion of COICA, which was purposed last year, which did not pass. And all of this goes back to the failure of the DMCA to disallow sharing as a technical means. And the DMCA goes back to the Audio Home Recording Act, which horrified those industries. Because the whole business of actually suggesting that someone is breaking the law and then gathering evidence and proving that, that turns out to be really inconvenient. "We'd prefer not to do that," says the content industries. And what they want is not to have to do that. They don't want legal distinctions between legal and illegal sharing. They just want the sharing to go away.

PIPA and SOPA are not oddities, they're not anomalies, they're not events. They're the next turn of this particular screw, which has been going on 20 years now. And if we defeat these, as I hope we do, more is coming. Because until we convince Congress that the way to deal with copyright violation is the way copyright violation was dealt with with Napster, with YouTube, which is to have a trial with all the presentation of evidence and the hashing out of facts and the assessment of remedies that goes on in democratic societies. That's the way to handle this.

In the meantime, the hard thing to do is to be ready. Because that's the real message of PIPA and SOPA. Time Warner has called and they want us all back on the couch, just consuming -- not producing, not sharing -- and we should say, "No."

Thank you.

(Applause)

http://www.ted.com/talks/defend_our_freedom_to_share_or_why_sopa_is_a_bad_idea.html

Friday, January 22, 2021

Google agrees to pay French news sites to send them traffic (English)

Немного сокращено. Форматирование моё.
French news sites have prevailed in negotiations with Google over "neighboring rights," a new legal right granted by the 2019 EU Copyright Directive. An agreement between Google and the French news industry "establishes a framework within which Google will negotiate individual licensing agreements" with individual news organizations, according to Google. Under these deals, French news articles will be featured in a new Google product called News Showcase.

This isn't the outcome Google wanted. For years, European news organizations have tried to force Google to pay them for the privilege of indexing their articles, and for years Google flatly refused to do so. When Spain passed legislation to force Google to pay to link to Spanish News organizations in 2014, Google responded by shutting down Google News in Spain.


Ниже есть продолжение.

Google tried to use that same playbook in France after the passage of the EU copyright directive. France was the first country to transpose the EU directive into its own laws. In 2019, Google announced it was going to stop displaying "snippets" from French news articles in search results. Google believed that showing only news story headlines, not brief excerpts from articles, would bring it into compliance with the new law.

But that move earned a rebuke from France's competition regulator, which held that the move was likely an abuse of Google's monopoly power. Google has around 90 percent of the French search market. The French Competition Authority held that the deal Google offered to news sites—let us index your site for free or we won't index it at all—was an abuse of that market power and contrary to the spirit of the new French law.

French authorities ordered Google to conduct "good faith negotiations" with the news industry to decide how much Google would pay news sites for their content. And they made clear that the number had better not be zero.

Those negotiations were apparently successful, though Google's announcement offers few details about the new framework.

"The remuneration that is included in these licensing agreements is based on criteria such as the publisher’s contribution to political and general information, the daily volume of publications, and its monthly internet traffic," according to the announcement.

The agreement is particularly significant because it offers a model for other European countries that want to force Google to fork over cash to their own news sites.

In the past, Google's hardball tactics deterred most European countries from trying to force Google to pay up. But with the passage of the EU copyright directive, European countries formed a united front against Google, making it much harder for Google to resist. Google's capitulation in France will weaken its bargaining position as other European countries pass their own versions of the French law and news organizations in other countries line up for their share of Google cash.

https://arstechnica.com/tech-policy/2021/01/google-agrees-to-pay-french-news-sites-to-send-them-traffic/

Sunday, April 01, 2012

Copyright: The Surprising History (English)



Google Tech Talks
August 15, 2006

Karl Fogel

...Copyright is derived from a 16th-century English censorship law, later turned into a monopoly right to subsidize distribution. This history is somewhat at odds with the modern conception of copyright, and an understanding of it is increasingly important today, as the economics of distribution are changing radically...
http://www.youtube.com/watch?v=mhBpI13dxkI

Saturday, December 17, 2011

Wikimania 2011 - Wiki Academy 2011 - Copyright. Wikimedia and the Public Domain (English)



Below is the short description.
Ниже есть продолжение.



1:09:45 - Wikimedia and the Public Domain
Ryan Kaldari
Wikimedia is one of the largest repositories (and users) of
public domain material in the world. Commons alone hosts
over 3 million public domain files. Increasingly, however, the
public domain is coming under threat from a variety of sources:
governments restoring copyrights on public domain material,
media companies pushing for longer and longer copyright terms,
museums and archives acting as gatekeepers to the works
they house, DMCA abuse, etc. As one of the most prominent
projects in the Free Culture movement, how do we address
these problems and work to protect the public domain for the
long term?
http://wikimania2011.wikimedia.org/wiki/Submissions/Wikimedia_and_the_Public_Domain

1:18:50 - A panel headed by Prof. Niva Elkin-Koren, Haifa University

http://www.youtube.com/watch?v=4_xAX09jIR0

UPDATE 18-12-2011:
See also:

List: Wikimania 2011 copyright
List: Wiki Academy
Scheduled Lectured with link to youtube
Youtube list: Wikimania 2011
List: Wikimania 2011 posts

END OF UPDATE

Wikimania 2011 - Wiki Academy 2011 - Copyright. Fighting the Intellectual Property Regime (English)



Below is the short description.
Ниже есть продолжение.



46:15 - Fighting the Intellectual Property Regime
Nikolas Becker
The idea of intellectual property is not natural. It was
constructed in the 14th Century and has developed since then
into a worldwide accepted idea. A small group of Western
companies managed to spread this construction over the whole
world and build the regime of intellectual property. How could
countries of the Global South resist the much more powerful
western countries and make changes to the TRIPS agreement
during the Uruguay Round from 1986 to 1994?
http://wikimania2011.wikimedia.org/wiki/Submissions/Fighting_The_Intellectual_Property_Regime
Download slides

http://www.youtube.com/watch?v=4_xAX09jIR0

UPDATE 18-12-2011:
See also:

List: Wikimania 2011 copyright
List: Wiki Academy
Scheduled Lectured with link to youtube
Youtube list: Wikimania 2011
List: Wikimania 2011 posts

END OF UPDATE

Wednesday, February 15, 2012

Monday, December 12, 2011

Wikimania 2011 - Copyright - May it please the court (English)




58:30 Kat Walsh
Wikipedia has been cited by lawyers and courts in several places
for a variety of purposes: sometimes as support for information
regarded as "general knowledge", but sometimes in places where
a more authoritative source should have been used instead.
There are literally thousands of citations to Wikipedia in court
documents; this presentation is intended to discuss the ones which
have made the most impact and raise the most interesting issues.

http://www.youtube.com/watch?v=9c7N6XhK9Dc
http://wikimania2011.wikimedia.org/wiki/Submissions/Grey_Revolution:_Motivating_Older_Persons_to_Participate_in_Wikipedia

UPDATE 18-12-2011:
See also:
List: Wikimania 2011 copyright
Scheduled Lectured with link to youtube
Youtube list: Wikimania 2011
List: Wikimania 2011 posts

END OF UPDATE

Tuesday, October 30, 2012

Kissing Hank's Ass (English)

Из архива




Kissing Hank's Ass

This morning there was a knock at my door. When I answered the door I found a well groomed, nicely dressed couple. The man spoke first:

John:
"Hi! I'm John, and this is Mary."
Mary:
Hi! We're here to invite you to come kiss Hank's ass with us."
Me:
"Pardon me?! What are you talking about? Who's Hank, and why would
I want to kiss His ass?"

There is more below.
Ниже есть продолжение.

John:
"If you kiss Hank's ass, He'll give you a million dollars; and if
you don't, He'll kick the shit out of you."
Me:
"What? Is this some sort of bizarre mob shake-down?"
John:
"Hank is a billionaire philanthropists. Hank built this town. Hank
owns this town. He can do whatever he wants, and what He wants is
to give you a million dollars, but He can't until you kiss his
ass."
Me:
"That doesn't make any sense. Why..."
Mary:
"Who are you to question Hank's gift? Don't you want a million
dollars? Isn't it worth a little kiss on the ass?"
Me:
"Well maybe, if it's legit, but..."
John:
"Then come kiss Hank's ass with us."
Me:
"Do you kiss Hank's ass often?"
Mary:
"Oh yes, all the time..."
Me:
"And has He given you a million dollars?"
John:
"Well no. You don't actually get the money until you leave town."
Me:
"So why don't you just leave town now?"
Mary:
"You can't leave until Hank tells you to, or you don't get the
money, and He kicks the shit out of you."
Me:
"Do you know anyone who kissed Hank's ass, left town, and got the
million dollars?"
John:
"My mother kissed Hank's ass for years. She left town last year,
and I'm sure she got the money."
Me:
"Haven't you talked to her since then?"
John:
"Of course not, Hank doesn't allow it."
Me:
"So what makes you think He'll actually give you the money if
you've never talked to anyone who got the money?"
Mary:
"Well, he gives you a little bit before you leave. Maybe you'll get
a raise, maybe you'll win a small lotto, maybe you'll just find a
twenty-dollar bill on the street."
Me:
"What's that got to do with Hank?"
John:
"Hank has certain 'connections.'"
Me:
"I'm sorry, but this sounds like some sort of bizarre con game."
John:
"But it's a million dollars, can you really take the chance? And
remember, if you don't kiss Hank's ass He'll kick the shit of you."
Me:
"Maybe if I could see Hank, talk to Him, get the details straight
from him..."
Mary:
"No one sees Hank, no one talks to Hank."
Me:
"Then how do you kiss His ass?"
John:
"Sometimes we just blow Him a kiss, and think of His ass. Other
times we kiss Karl's ass, and he passes it on."
Me:
"Who's Karl?"
Mary:
"A friend of ours. He's the one who taught us all about kissing
Hank's ass. All we had to do was take him out to dinner a few
times."
Me:
"And you just took his word for it when he said there was a Hank,
that Hank wanted you to kiss His ass, and that Hank would reward
you?"
John:
"Oh no! Karl has a letter he got from Hank years ago explaining the
whole thing. Here's a copy; see for yourself."



From the desk of Karl

1. Kiss Hank's ass and He'll give you a million dollars
when you leave town.
2. Use alcohol in moderation.
3. Kick the shit out of people who aren't like you.
4. Eat right.
5. Hank dictated this list Himself.
6. The moon is made of green cheese.
7. Everything Hank says is right.
8. Wash your hands after going to the bathroom.
9. Don't use alcohol.
10. Eat your wieners on buns, no condiments.
11. Kiss Hank's ass or He'll kick the shit out of you.



Me: "This appears to be written on Karl's letterhead."
Mary:
"Hank didn't have any paper."
Me:
"I have a hunch that if we checked we'd find this is Karl's
handwriting."
John:
"Of course, Hank dictated it."
Me:
"I thought you said no one gets to see Hank?"
Mary:
"Not now, but years ago He would talk to some people."
Me:
"I thought you said He was a philanthropist. What sort of
philanthropist kicks the shit out of people just because they're
different?"
Mary:
"It's what Hank wants, and Hank's always right."
Me:
"How do you figure that?"
Mary:
"Item 7 says 'Everything Hank says is right.' That's good enough
for me!"
Me:
"Maybe your friend Karl just made the whole thing up."
John:
"No way! Item 5 says 'Hank dictated this list himself.' Besides,
item 2 says 'Use alcohol in moderation,' Item 4 says 'Eat right,'
and item 8 says 'Wash your hands after going to the bathroom.'
Everyone knows those things are right, so the rest must be true,
too."
Me:
"But 9 says 'Don't use alcohol.' which doesn't quite go with item
2, and 6 says 'The moon is made of green cheese,' which is just
plain wrong."
John:
"There's no contradiction between 9 and 2, 9 just clarifies 2. As
far as 6 goes, you've never been to the moon, so you can't say for
sure."
Me:
"Scientists have pretty firmly established that the moon is made of
rock..."
Mary:
"But they don't know if the rock came from the Earth, or from out
of space, so it could just as easily be green cheese."
Me:
"I'm not really an expert, but I think the theory that the Moon was
somehow 'captured' by the Earth has been discounted*. Besides, not
knowing where the rock came from doesn't make it cheese."
John:
"Ha! You just admitted that scientists make mistakes, but we know
Hank is always right!"
Me:
"We do?"
Mary:
"Of course we do, Item 5 says so."
Me:
"You're saying Hank's always right because the list says so, the
list is right because Hank dictated it, and we know that Hank
dictated it because the list says so. That's circular logic, no
different than saying 'Hank's right because He says He's right.'"
John:
"Now you're getting it! It's so rewarding to see someone come
around to Hank's way of thinking."
Me:
"But...oh, never mind. What's the deal with wieners?"
Mary:
She blushes.
John:
"Wieners, in buns, no condiments. It's Hank's way. Anything else is
wrong."
Me:
"What if I don't have a bun?"
John:
"No bun, no wiener. A wiener without a bun is wrong."
Me:
"No relish? No Mustard?"
Mary:
She looks positively stricken.
John:
He's shouting. "There's no need for such language! Condiments of
any kind are wrong!"
Me:
"So a big pile of sauerkraut with some wieners chopped up in it
would be out of the question?"
Mary:
Sticks her fingers in her ears."I am not listening to this. La la
la, la la, la la la."
John:
"That's disgusting. Only some sort of evil deviant would eat
that..."
Me:
"It's good! I eat it all the time."
Mary:
She faints.
John:
He catches Mary. "Well, if I'd known you where one of those I
wouldn't have wasted my time. When Hank kicks the shit out of you
I'll be there, counting my money and laughing. I'll kiss Hank's ass
for you, you bunless cut-wienered kraut-eater."
With this, John dragged Mary to their waiting car, and sped off.


* Older versions say "I'm not really an expert, but I think the theory
that the Moon came from the Earth has been discounted. Besides, not
knowing where the rock came from doesn't make it cheese." Several people
have written to say that the current theory is that the Moon did indeed
come from the Earth. I've finally gotten around to making the change.


Hankisms, by John Cooper (off site)

Besando el Culo de Jorge (off site)


This page is part of Jhuger - http://www.sonic.net/jhuger. Copyright (c) 1996-1999 Rev. Jim Huber, All rights reserved. Permission granted to duplicate for personal use. For other uses, see http://www.sonic.net/jhuger/copyright.htm, email jhuger@sonic.net, or write Rev. Jim Huber | P.O. Box 236 | Rio Nido, Ca. 95471 | U.S.A.
http://www.sonic.net/~jhuger/kisshank.htm

Sunday, April 20, 2014

Dangerous Knowledge - Аксиома выбора. Часть V (Russian)

Dailymotion. Видео. Часть I
Dailymotion. Видео. Часть II
Dailymotion. Видео. Часть III
Dailymotion. Видео. Часть IV
Dailymotion. Видео. Часть V

Этот пост я должен был довести до ума давно. Все части:
Dangerous Knowledge
Dangerous Knowledge - Бесконечное множество и интуиция.Часть I
Dangerous Knowledge - Парадокс брадобрея. Часть II
Dangerous Knowledge - Диагональный метод доказательства Кантора. Часть III
Dangerous Knowledge - Континуум-гипотеза. Часть IV
Dangerous Knowledge - Аксиома выбора. Часть V
Dangerous Knowledge - Теория меры. Часть VI
Dangerous Knowledge - Тест Тьюринга. Часть VII


Прикоснуться к бесконечности


Прошло около полутора лет со дня публикации последней части. К сожалению за это время ссылка на ролик была удалена из-за проблем с copyright-ом... Поэтому даю новую ссылку.

Как я уже говорил, есть некоторые вещи, которые явно не раскрыты в этой доке. Здесь, я кратко расскажу об аксиоме выбора.

Аксиома выбора утверждает:

Для каждого семейства A непустых непересекающихся множеств существует множество B, имеющее один и только один общий элемент с каждым из множеств X, принадлежащих A.

Ниже есть продолжение.


Пример 1. Пусть $X=\{1,2\}, Y=\{3,4\}, Z=\{5,6\}$. $A=X \cup Y \cup Z$. Очевидно, что множества X, Y, Z непустые, также легко видеть что они непересекающиеся. Аксиома выбора утверждает, что существует некоторое множество B, такое что $B \cap X = \{x\}$, $B \cap Y = \{y\}$, $B \cap Z = \{z\}$ и $x \neq y \neq z$ при чём $x \in X$, $y \in Y$, $z \in Z$. К примеру, множество $B=\{2,3,5\}$ удовлетворяет всем требованием.

Для конечного набора X аксиома выбора следует из других аксиом теории множеств. В этом случае это то же самое, что говорить, если мы имеем конечное число, скажем n>=1, коробок, каждая из которых содержит в себе вещи, тогда мы можем выбрать ровно одну вещь из каждой коробки. Ясно, что мы можем сделать это: мы начнём с первой коробки, выберем вещь; отправимся ко второй коробке, выберем вещь; и т.д. Так как есть конечное число коробок, то действуя нашей процедурой выбора, мы придём к концу. Результатом будет функция явного выбора: функция, которая первой коробке сопоставляет первый элемент, который мы выбрали, второй коробке — второй элемент и т. д. (Для получения формального доказательства для всех конечных множеств следует воспользоваться принципом математической индукции.)

Определение. Функция выбора — функция на множестве множеств X такая, что для каждого множества s в X, f(s) является элементом из s (f "выбирает" элемент из s).

С использованием понятия функции выбора аксиома утверждает:

Для любого семейства непустых множеств X существует функция выбора f, определённая на X.



Пример 2. Пусть элементы X — множества натуральных чисел. Каждый непустой
набор натуральных чисел имеет наименьший элемент, таким образом, определяя нашу функцию выбора, мы можем просто сказать, что каждому множеству сопоставляется наименьший элемент набора. Это позволяет нам сделать выбор элемента из каждого множества, поэтому мы можем записать явное выражение, которое говорит нам, какое значение наша функция выбора принимает. Если возможно таким образом определить функцию выбора, в аксиоме выбора нет необходимости.

То же определение можно сформулировать более сжато:

Каждое множество непустых множеств имеет функцию выбора.

Отсюда немедленно следует компактная формулировка отрицания аксиомы выбора:

Существует множество непустых множеств, которое не имеет никакой функции выбора.

До конца XIX века аксиома выбора использовалась безоговорочно. Например, после определения непустого множества X математик мог сказать: "Пусть F(s) будет определено для каждого s из X". В общем, невозможно доказать, что F существует без аксиомы выбора, но это, кажется, оставалось без внимания до Цермело.

Как было показано выше если X конечно, это функция выбора существует и без аксиомы выбора. Пример 2 показывает, что не всегда эта аксиома требуется и для бесконечных множеств.

Однако, сложности появляются в случае, если невозможно осуществить естественный выбор элементов из каждого множества. Если мы не можем сделать явный выбор, то почему уверены, что такой выбор можно совершить в принципе? Например, пусть X — это множество непустых подмножеств действительных чисел. Во-первых, мы могли бы попробовать поступить как в случае, если бы X было конечным. Если мы попробуем выбрать элемент из каждого множества, тогда, так как X бесконечно, наша процедура выбора никогда не придёт к концу, и вследствие этого мы никогда не получим функции выбора для всего X. Так что это не срабатывает. Далее, мы можем попробовать определить наименьший элемент из каждого множества. Но некоторые подмножества действительных чисел не содержат наименьший элемент. Например, таким подмножеством является открытый интервал (0,1). Если x принадлежит (0,1), то x/2 также принадлежит ему, причем меньше, чем x. Итак, выбор наименьшего элемента тоже не работает.

Причина, которая позволяет выбрать нам наименьший элемент из подмножества натуральных чисел — это факт, что натуральные числа обладают свойством вполнеупорядоченности - каждое подмножество натуральных чисел имеет единственный наименьший элемент в силу естественной упорядоченности. Возможно, если бы мы были умнее, то могли бы сказать: "Возможно, если обычный порядок для действительных чисел не позволяет найти особое (наименьшее) число в каждом подмножестве, мы могли бы ввести другой порядок, который таки давал бы свойство вполнеупорядоченности. Тогда наша функция сможет выбрать наименьший элемент из каждого множества в силу нашего необычного упорядочивания". Проблема тогда возникает в этом построении вполнеупорядоченности, которая для своего решения требует наличия аксиомы выбора. Иными словами, каждое множество может быть вполне упорядочено тогда и только тогда, когда аксиома выбора справедлива.

Доказательства, требующие аксиомы выбора, всегда неконструктивны: даже если доказательство создаёт объект, невозможно сказать, что же именно это за объект. Следовательно, хоть аксиома выбора позволяет вполне упорядочить множество действительных чисел, это не даёт нам никакой наглядности и конструктивизма в целом. Сама причина, по которой наш вышеуказанный выбор вполне упорядочения действительных чисел был таким для каждого множества X, мы могли явно выбрать элемент из такого множества. Если мы не можем указать, что мы используем вполне упорядоченность, тогда наш выбор не вполне явный. Это одна из причин, почему некоторые математики не любят аксиому выбора.

Оказывается, что для бесконечных семейств аксиома выбора является утверждением теории множеств, независимым от остальных аксиом этой теории (её статус в определённом смысле "такой же" как и континуум-гипотезы, отличие в том, что континуум-гипотеза независима от системы аксиом Цермело — Френкеля с аксиомой выбора,
а аксиома выбора независима от системы аксиом Цермело — Френкеля).

Определения.

Линейным порядком на множестве A частично упорядоченное множеством A называется отношение $R\subseteq A\times A$, обладающее следующим свойствами:
* Полное: $\forall x,\;y\in A\;((x,\;y)\in R\lor(y,\;x)\in R)$.
* Антисимметричное: $\forall x,\;y\in A\;((x,\;y)\in R\wedge(y,\;x)\in R\to y=x)$.
* Транзитивное: $\forall x,\;y,\;z\in A\;((x,\;y)\in R\wedge(y,\;z)\in R\to(x,\;z)\in R)$.

Линейно упорядоченное множество или цепь ― частично упорядоченное множество (полное, антисимметричное, транзитивное отношение $R\subseteq A\times A$), в котором для любых двух элементов a и b имеет место $a\leqslant b$ или $b\leqslant a$. Верхней гранью называется такой элемент $u\in R$, что $\forall x\in R\;x\leqslant u$.

Полным порядком на множестве A называется такой линейный порядок, что каждое подмножество $X\subseteq A$ имеет наименьший элемент.

Максимальный элементом множества A является такой элемент $\exists m\in A\;\nexists x\in A\;x>m$.


Теорема Цермело (принцип вполне упорядочивания)
Любое множество может быть вполне упорядочено.

Принцип полного порядка (теорема Цермелло) заключается в том, что любое множество может быть вполне упорядочено, т.е. на любом множестве может быть введёно полное, антисимметричное, транзитивное отношение $R\subseteq A\times A$ в котором каждое подмножество $X\subseteq A$ имеет наименьший элемент.

Доказательства эквивалентности теорема Цермелло аксимоы выбора есть тут..

Пример 3. Множество натуральных чисел может быть вполне упорядоченно
обычным отношением «меньше или равно чем». С тем же отношением множество целых чисел не имеет наименьшего элемента. В этом случае мы можем собрать целые числа в последовательность $(0,\;-1,\;1,\;-2,\;2,\;\ldots,\;-n,\;n,\;\ldots)$ и сказать, что младшие члены меньше, чем старшие. Очевидно, такое отношение будет полным порядком на целых числах.

Пример 4. Действительные числа, формирующие несчётное множество, могут быть вполне упорядочены. Это следует из теоремы Цермелло, при чём конструктивно представить такой порядок затруднительно.

Принцип максимума Хаусдорфа
В любом частично упорядоченном множестве существует максимальное линейно упорядоченное подмножество.


Лемма Цорна
Если в частично упорядоченном множестве любая цепь имеет верхнюю грань, то всё множество имеет хотя бы один максимальный элемент.

Лемма Цорна, наряду с теоремой Цермело (принцип вполнеупорядочивания) и принципом максимума Хаусдорфа (который, по сути, является альтернативной формулировкой леммы Цорна), является одним из утверждений, эквивалентных аксиоме выбора.

Во многих задачах лемма Цорна является наиболее удобной из всех формулировок, эквивалентных аксиоме выбора.

В качестве примера использования леммы Цорна можно рассмотреть доказательство существования базиса Гомеля в произвольном линейном пространстве.

Пусть $V$ — линейное пространство над полем $\mathfrak{R}$.

Свойство:
Базис есть максимальная (по включению) линейно независимая система векторов.
Замечания:
Вектор 0 не входит ни в одну в систему линейно независимой системе векторов.

Для доказательства существования рассмотрим два случая.

I. Линейное пространство V конечномерное, т.е. любая линейно независимая система состоит из $\leqslant n$ векторов. Применим принцип математической индукции.
Если n=1, то тогда $V=\mathfrak{R}$, а значит в качестве базиса Гомеля достаточно выбрать $B=\{\mathbf{1}\}$, а $1 \neq 0$, 1,0- единичные элемента поля $\mathfrak{R}$.

Допустим, что для всех линейный пространств с линейно независимой системой, состоящей из $\leqslant n$ векторов существует базис Гомеля, т.е. линейно независимая система $\{\mathbf{v_1},\;\ldots,\;\mathbf{v_n}\}$, в которой для всех $1<=i<=n v_i \neq 0$. Докажем, что базис Гомеля существует в линейном пространстве, состоящем из $\leqslant {n+1}$ линейно независимой системой векторов. Если у нас есть $\leqslant {n+1}$ линейно независимая система векторов, то значит у нас, в частности, есть и $\leqslant {n}$ линейно независимых векторов, таких что $\{\mathbf{v_1},\;\ldots,\;\mathbf{v_n}\}$, в которой для всех $1<=i<=n v_i \neq 0$. Это систему можно расширить путем добавления вектора $\mathbf{v_{n+1}} \neq 0$, таким что что система $\{\mathbf{v_1},\;\ldots,\;\mathbf{v_{n+1}}\}$ линейно независима. Тогда согласно принципу математической индукции утверждение доказано.

II. Линейное пространство V бесконечномерно.
Аналогично рассуждениям в пункте I мы можем построить цепь линейно независимых систем $B_1\subseteq B_2\subseteq\ldots$ следующим образом.

$B_1=\{\mathbf{v_1}\}$, состоящей из ненулевого вектора $\mathbf{v_1}\neq\mathbf{0}$. Далее, на каждом шаге мы присоединением вектор $\mathbf{v_{n+1}}$ к $B_n=\{\mathbf{v_1},\;\ldots,\;\mathbf{v_n}\}$, таким образом, что система $B_{n+1}=\{\mathbf{v_1},\;\ldots,\;\mathbf{v_n},\mathbf{v_{n+1}\}$ линейно независима (такой вектор существует, так как V бесконечномерно).

Получили $B_1\subseteq B_2\subseteq\ldots$ — цепь линейно независимых систем. Рассмотрим элемент $\bigcup B_k$. Легко доказать. что это объединение является также линейно независимой системой. Также, легко видеть, что для всех i $B_i$ меньше или равно (по включению), чем $\bigcup B_k$ (по построению объединения), т.е. $\bigcup B_k$ является верхней гранью по отношению к любой цепи частично упорядоченной через отношение включения. Тогда, согласно лемме Цорна, существует максимальный элемент, который и будет базисом Гомеля.

Что и требовалось доказать.

По сути в п. II мы воспользовались трансфинитной индукцией совместно с теоремой Цермело, а в п. I обычной математической индукцией, являющейся её частным (хотя и очень важным) случаем.

Трансфинитная индукция — метод доказательства, обобщающий математическую индукцию на случай несчётного числа значений параметра.

Трансфинитная индукция основана на следующем утверждении:

Пусть $M$ — вполне упорядоченное множество, $P(x)$ при $x\in M$ — некоторое утверждение. Пусть для любого $x\in M$ из того, что $P(y)$ истинно для всех $y<x$ следует, что верно $P(x)$. Тогда утверждение $P(x)$ верно для любого $x$.


Математическая индукция является частным случаем трансфинитной индукции. Действительно, пусть $M$ — множество натуральных чисел. Тогда утверждение трансфинитной индукции превращается в следующее: если для любого натурального $n$ из одновременной истинности утверждений $P(1)$, $P(2)$, $\ldots$, $P(n)$ следует истинность утверждения $P(n+1)$, то истинны все утверждения $P(n)$ для всех $n$. При этом база индукции, то есть $P(1)$, оказывается тривиальным частным случаем при $n=1$.

Во многих случаях трансфинитная индукция используется совместно с теоремой Цермело, утверждающей, что любое множество можно вполне упорядочить. Теорема Цермело эквивалентна аксиоме выбора, поэтому доказательство получается неконструктивным.

В заметке использованы метериалы Википедии.

Saturday, August 31, 2024

Иосиф Бейн: Пророчество

Орфография не сохранена.

Арику Шарону

Вижу бегущих по спящему городу гончих,
В каждом стихе моем слышу ритмический сбой.
С Газы начнем, и газовой камерой кончим,
С Газы начнем, и кончим самими собой.

Молитва пополам с грехом,
Оборванная пулей фраза.
Сначала с Газой Ерихон,
А после - с Ерихоном Газа.


Ниже есть продолжение.

Сначала Газа, а потом,
После большого карнавала,
Похожий на войну погром,
Как прежде, некогда, бывало.

Сначала камушек в висок,
Торгаш на рынке фрукты режет,-
И окровавлен весь песок
На Тель-Авивском побережье.

Весь мир божественно красив,
Но дремлет лодка у причала.
Сначала новый Тель-Авив,
Или Кейсария сначала?

По всем автобусам огонь,
Ржавеет старой пушки дуло.
Пробита детская ладонь,
Сначала Лод, или Афула?

Любой из нас теперь мишень,
За рощей адская машина,
Мелькнула террориста тень,
Жизнь, на прощанье помаши нам.

Скорей прохожего убей,
Пусть каждый сдохнет, как собака,
Лишь потому, что он еврей,
Сначала Яффо, или Акко?

Над спящей детворою мгла,
И сабры спят, и полукровки.
Сначала нож из-за угла,
А после - взрыв на остановке.

Напрасен филантропов труд,
Проходят конвоиры мимо.
Потом и Хайфу отберут,
И Древний Храм Иерусалима.

Святые осквернят места
В какое-то чумное лето,
Во имя щедрого Христа,
Или скупого Магомета.

И снова смерть, и снова стон,
И тень знакомого спецназа.
Сначала с Хайфой Ерихон,
А после с Тель-Авивом Газа.

Назло империи Кремля,
Где только тюрьмы и параши,
Вся иудейская земля
Всегда была, и будет нашей.

И чудом будут спасены,
Во имя высшего закона,
И эти Родины сыны,
И эти дочери Сиона.

Приходит горе на порог,
Но веруют родные люди:
Всегда спасающий нас Бог
И в этот раз нас не забудет.

За окнами террор и тьма,
Опять грозят большой войною.
Стране достаточно героев -
Хватило б лидерам ума.

Своей стране свои дома
Мы строили, и будем строить.
Мы будем жить на hАр-Хома,
Наш Третий Храм не за горою.

И никогда не отдадим
Чумазым ордам Арафата,
Ни судьям их, ни адвокатам,
Прекрасней, чем Москва иль Рим,

Неразделим, неповторим,
Воспетый в Библии когда-то,
Наш золотой Иерусалим.
Витают ангелы над ним,

Над древним городом моим,
Лежит клеймо на лбу распятом...
Спаси евреев, Элоhим,
И все, что дорого и свято!


© Copyright: Иосиф Бейн, 2007
Свидетельство о публикации №107072701926
https://stihi.ru/2007/07/27-1926

Wednesday, November 30, 2016

Revolution OS (сокращённая версия)



https://www.youtube.com/watch?v=n1F_MfLRlX0 Перевод Дмитрия Бачило (полная версия)
https://www.youtube.com/watch?v=jw8K460vx1c Revolution OS (оригинал)

Free Software, Open Source, Copyright, Coplyleft
GNU, Linux, Windows, Microsoft
Nestscape, Mozilla, Firefox

Friday, December 16, 2011

A modern Day [Black] Gold Rush (English)

По наводке блога Давыдова
Сокращено. Форматирование сохранено.


In 2009, U.S. oil production began to climb after declining for 22 of the previous 23 years. The shale oil production of the Bakken formation, which straddles the Montana-North Dakota border and stretches into Canada, has been a significant contributor to this temporary uptick in oil production.

...While the Bakken boom offers a hopeful story in which American ingenuity and nature’s endless bounty emancipate us from energy oppression and dependence on evil and oppressive foreign dictators, musings of energy independence are premature, misguided and misleading. The problem with the Bakken story as told by Crooks and others is that it lacks historical context. Referring to recent developments as an energy revolution implies that there are no lessons to be learned from history. But as Mark Twain put it, “history doesn’t repeat itself, but it does rhyme.”

Lessons from the California Gold Rush


There is more below.
Ниже есть продолжение.


In 1848, John Marshall discovered gold while constructing John Sutter’s sawmill in Coloma, California. Sutter and Marshall attempted to keep the discovery secret, but savvy newspaper publisher and merchant, Samuel Brannan, soon learned the news. Brannan hurriedly set up a store to sell prospecting tools and provisions and began promoting the discovery in much the same way that the media has been promoting the Bakken. As the news of Marshall’s discovery spread, the California Gold Rush grew to international proportions.

Forty-niners rushed to The Golden State in search of riches, and California’s population exploded from 8,000 in 1848 to 93,000 in 1850, a quarter of a million in 1852, and 350,000 by 1860. With the majority of the influx of humanity employed in prospecting, precious few engaged in support activities. But with the rapid accumulation of mineral wealth, imports were easily acquired. Timber, for instance, was sourced from the Pacific Northwest, and the small town of Seattle, which was only settled in 1852, entered a sustained period of rapid exponential growth.

Despite the low productivity of the labor-intensive process of gold panning, annual production grew from just over 1,400 ounces in 1848 to more than 3.9 million ounces by 1852. To put this into perspective, prior to 1848, cumulative U.S. gold production amounted to just over 1 million ounces.

The rapid growth in output was driven not by the backbreaking extraction of gold dust so much as by the discovery of colossal gold nuggets, like the twin 25-pounders found in Downieville (1850) and on the banks of the Mokelumne River (1848). By comparison, one could spend decades panning and toiling over rockers and sluices manually sorting flakes of gold from stream sediments and never accumulate such an amount.

Of course nuggets are easier to find than flakes, and the great majority were discovered in the first few years. By 1852, only four years after gold was first discovered, California gold production began a rapid descent. Production declined 50% by 1862 and 80% by 1872.



Figure 4: California gold production showing peak in 1852 followed by rapid decline (Source: Western Mining History – westernmininghistory.com)

The decline was only barely checked by the adoption of ‘hydraulic mining’ – a process by which massive amounts of water under intense pressure is used to disintegrate entire hillsides. At the North Bloomfield mine, for example, 60 million gallons of water per day eroded more than 41 million cubic yards of debris between 1866 and 1884. (http://www.sierranevadavirtualmuseum.com/docs/galleries/history/mining/hydraulic.htm)

The runoff from ‘hydraulicking’, as it was called, was directed to sluice boxes where dense gold dust was separated from the other detritus. The displaced earth eventually came to rest in California’s fertile valleys in massive quantities. It has been estimated that hydraulicking generated eight times the amount of ‘slickens’ (tailings) than was removed during construction of the Panama Canal, which, by the way, employed the same process.

...
During California’s successive gold rushes more than ­­a few prospectors became rich, but the vast majority spent more cash purchasing claims and supplies than they earned from the gold dust they sold. The main beneficiaries were the businessmen who profited from the search for gold, rather than the discovery of gold; men like Samuel Brannan and Thomas Craig, the manufacturer of the ‘Monitor’ nozzles used in hydraulic mining.

Lessons from the Klondike Gold Rush
A half-century later, a similar story unfolded in the Yukon. In 1897, the nation was suffering through the Long Depression, which, ironically, was in large part the result of the decision to revert to the gold standard upon the conclusion of the Civil War. As ‘greenbacks’ – notes which were not explicitly backed by gold – were pulled from circulation in order to bring the number of dollars back to par with gold reserves, deflation set in. Deflation hit laborers and farmers the hardest and proved to be a significant force behind the populist call for bimetallism.



Figure 6: These two cartoons illustrate a debate that lingers to this day. On the left, greenbacks are produced to pay debts. On the right, a worker and a farmer struggle for existence as the reversion to the gold standard elevates their debts and devalues their services. (Sources: Left: no copyright; Right: Klondike Gold Rush National Historic Park – a.k.a. The Gold Rush Museum, Seattle, WA)


As a result of the Long Depression, people were desperate for work, but even more desperate for a reason to maintain hope in the face of despair. Much as the Bakken has provided hope for contemporary society, the SS Portland provided hope when it arrived in Seattle in the summer of 1897 with a half a ton of Yukon gold on board. The conditions were primed for an outbreak of gold fever, and just as Samuel Brannan advertised the discovery of gold at Sutter’s mill, the Seattle Post-Intelligencer eagerly hyped the Klondike ‘prospects’ to not only sell newspapers but the entire town as the launch site for stampeders.



Figure 7: The newspaper that heralded the Klondike Gold Rush (Source: University of Washington digital archives)

The next day the Klondike gold rush commenced as the steamship Al-Ki departed with a full deck of stampeders and 350 tons of supplies, including foodstuffs, pack animals, prospecting equipment, and clothing, like C.C. Filson oiled canvas jackets and pants. These garments, which were impregnated with a mixture of paraffin wax and other oils, proved to be as waterproof as they were stiff – the stiffness resulting from the fact that the paraffins, which are solid at ‘normal’ temperatures, are nearly impenetrable under arctic conditions.

The Klondike Stampede caused demand for steamships to mushroom and Seattle quickly rose to become one of the nation’s preeminent ship building communities. And as the demand for steamships spiked, so too did demand for timber and coal, two of the Puget Sound’s most dominant industries. To this day, Alaska depends almost exclusively on the Puget Sound for the delivery of groceries, consumer goods, manufactures, and other commodities.

As was the case in California, Klondike gold discoveries fell just as quickly as they had climbed. Between 1896 and 1900, annual discoveries rose from $$$300,000 to more than $$$22 million, but by 1904 production had fallen to less than half the peak value, and by 1907 production had declined more than 80%. And just as the new and ecologically disruptive technology of hydraulic mining failed to arrest or reverse declining production in California, the introduction of hydraulic mining and large scale dredging failed to maintain the pace of discovery made by the first few waves of stampeders who employed far less technologically advanced and capital intensive processes.



Figure 10: Klondike gold production (Source: Data from J.P. Hutchins, January 4, 1908, “Klondike District”, The Engineering and Mining Journal)

After studying dredging operations in the Klondike, mining engineer J.P. Hutchins concluded, “The most satisfactory returns were from a dredge working an unfrozen area in the flood-plain of the Klondike River; this was installed before the large corporation, now so prominent in the Klondike, became interested. The dredges installed since that time have been very disappointing in returns. Three powerful dredges began operation on the lower Bonanza Creek, but the experience there has been most discouraging.” (J.P. Hutchins, January 4, 1908, “Klondike District”, Engineering and Mining Journal on January 4, 1908)

While dredging was not able to arrest declining production, the process certainly made an impression on the landscape. Tailings moraines provide a lasting visual testament to the efforts made by dredge operators, who quite literally left no stone unturned.



Figure 11: In order to dredge in the Yukon, steam had to be injected into the frozen earth. The thawed sand and gravel was then dredged to the bedrock, sorted in the floating dredge, and deposited into immense tailings that can be seen from space (Sources: Clockwise from top: http://www.flickr.com/photos/capncanuck/2972017631/; State of Alaska Guide (http://www.stateofalaskaguide.com/alaska-and-yukon.htm); Google Maps)

The similarity in California and Klondike gold production curves was not lost on Mr. Hutchins who further wrote, “[Klondike] figures reveal a marked similarity between this and other placer districts not only in respect to the rapid increase of the annual output to a maximum a few years after the discovery of the placers, but also in the rapid decrease in the output after the maximum figure had been reached. It is of passing interest to note that in both California and Klondike, the annual production reached a maximum the fourth year after discovery. These figures were more than $$$80,000,000 for California and more than $$$22,000,000 for Klondike.”

As historian Pierre Burton put it, “The statistics regarding the Klondike stampede are diminishing ones. One hundred thousand persons, it is estimated, actually set out on the trail; some thirty or forty thousand reached Dawson. Only about one half of this number bothered to look for gold, and of these only four thousand found any. Of the four thousand, a few hundred found gold in quantities large enough to call themselves rich. And out of these fortunate men only the merest handful managed to keep their wealth. The Kings of Eldorado toppled from their thrones one by one.”

While gold production continues to this day, the Klondike gold rush ended in the summer of 1899, when over the course of a single week, more than 20,000 ‘sourdoughs’ left the Yukon on news that gold had been discovered on the beaches of Nome, Alaska. The Nome gold rush, which was similarly short-lived, is widely cited as the last gold rush of importance, but only by those whose narrow definition excludes black gold.

The Rush for Black Gold on Alaska’s North Slope
In 1902, Alaska produced its first barrel of oil, and in 1953 the discovery of oil in a small town West of Fairbanks ushered in the modern era of oil production. In 1957 oil was discovered on the Kenai Peninsula, and in 1959, one hundred years after Colonel Drake produced the first barrel of oil in Pennsylvania, British Petroleum (BP) began prospecting for oil along Alaska’s expansive North Slope.

BP was soon joined by Atlantic Richfield Company (ARCO), who in 1968 discovered Prudhoe Bay, the oilfield equivalent of a 25-pound gold nugget. The Prudhoe Bay field is estimated to have had 25 billion barrels of crude before extraction commenced in 1977, making it the largest field in North America. Another major US field, Kuparuk with reserves of 6 billion barrels is also on the North Slope and was discovered in 1969 by Sinclair Oil.

In order to transport oil from the remote North Slope, the Trans Alaska Pipeline System (TAPS) was proposed, but construction did not begin until 1974, after 515 federal permits and 832 state permits were approved. Construction was completed in 1977. At peak construction, in October 1975, 51,000 direct and contract employees were at work on various aspects of the 800-mile pipeline. With construction costs totaling roughly $8 billion, small fortunes were made long before the first barrel of North Slope oil was produced, and once again the Puget Sound economy benefitted as nearly all equipment and supplies were shipped through Washington’s seaports.

Production from the Prudhoe Bay field peaked in 1988, and production from the Kuparuk field peaked in 1992. With these two fields dominating North Slope production, the black gold flowing through the TAPS then fell into decline after only 11 years of operation.

Eleven years after the peak, North Slope production had declined to less than half the peak volume. To use Mr. Hutchins’s words, it is of passing interest to note that in California, the Klondike, and Alaska, production had declined to roughly half the maximum value within the same period of time it took to reach the peak. Today, production is only slightly more than 24% of the peak, and it continues to decline. Through June this year production was 35,000 barrels per day less than the average production rate in 2010.



Figure 13: Source: Oil and Gas Production Forecasting: Presentation to the Senate Finance Committee, February 16, 2010, Alaska Department of Revenue.

Without some type of North Slope game-changer, production will by decade’s end decline to the minimum TAPS operating capacity of 350,000 bpd. Currently, it is believed that a flurry of new projects including projects that are already under development and those that are under evaluation will significantly slow the rate of decline.

One such project is BP’s Liberty project, which is currently a couple of years behind schedule and delayed indefinitely. If or when the Liberty project comes online, North Slope production will be goosed by an estimated 40,000 bpd, which will essentially add one year to the operating life of the TAPS. There is a danger associated with making hasty generalizations from the performance of just one field, but if the technologically challenging Liberty project is indicative of challenges that will be encountered elsewhere, it stands to reason that other new projects may encounter similarly long delays. And if this is the case, production will decline more quickly than is currently being anticipated.

The problem of declining rates of North Slope production is compounded by the engineering specifications of the pipeline system. At lower flow rates, the length of time required for a barrel of oil to make the trip from Prudhoe Bay to Valdez lengthens. In 2008, the trip took 12.9 days, and the temperature of the crude, which entered the TAPS at 110 degrees Fahrenheit, fell to just over 55 degrees by the time it reached Valdez. Longer transport times subject the oil to low ambient temperatures for longer periods, and as the temperature of the crude in the pipeline falls, paraffins begin to precipitate at ever increasing rates. The paraffins, which were once used (and still are used) to waterproof Klondikers’ jackets, behave much like arterial plaque when they precipitate in pipelines.

Longer transit times also allow emulsified water to separate from the crude. As the water separates it collects in low spots where it greatly accelerates pipeline corrosion. Under the right/wrong circumstances the water can freeze, thereby constricting flow, or worse yet, breaking free and damaging pumps.

Additionally, the Low Flow Study Project Team hired by Alyeska Pipeline Service Company explains that, “Lower crude oil temperatures will permit soils surrounding the buried portions of the pipeline to freeze, which will create ice lenses in certain soil conditions. Ice lenses could cause differential movement of the pipe via frost heave mechanisms. Assuming no heating of the crude oil, ice lens formation is predicted to occur at a throughput of 350,000 BPD. Unacceptable pipe displacement limits and possible overstress conditions in the pipe would be reached at a flow volume of 300,000 BPD.”4

If the long-term rate of decline remains fixed at 35,000 bpd, and it makes financial sense to re-engineer the TAPS to handle lower volumes, only 239,000 bpd will be produced in 2020. If it does not make financial sense, and the decline is not significantly slowed by production from new fields, North Slope output will fall to zero. Under this worst case scenario, the annualized rate of decline would be roughly 70,000 barrels per day.

Consequently, in order for U.S. oil production to remain flat in the face of North Slope declines, which have persisted for 22 years despite the fact that no fewer than nine significant fields have been brought online over this period, production elsewhere in the U.S. needs to increase by 35,000 or 70,000 bpd. This will be a challenge because the oilfield equivalents of colossal gold nuggets have, by and large, already been discovered.

There are exceptions, of course. It was estimated that the 1 billion barrel Thunder Horse field in the Gulf of Mexico would produce at a maximum rate of 250,000 bpd. Unfortunately, production peaked within 10 months and then fell into rapid decline.

The Rush for Shale Oil
The Bakken formation is estimated by the USGS to have an impressive 4 billion barrels of technically recoverable oil in place. (3 to 4.3 Billion Barrels of Technically Recoverable Oil Assessed in North Dakota and Montana’s Bakken Formation—25 Times More Than 1995 Estimate—)While this is a significant amount, it should be pointed out that the Prudhoe Bay field was more than 6 times the Bakken’s size, and Kuparuk was 1.5 times larger. It also bears mentioning that the Bakken oil is trapped in two layers of impermeable shale and a layer of ‘tight’ sandstone. In order to extract oil from the middle sandstone layer, producers utilize the process of hydraulic fracturing pioneered by natural gas producers. The process of hydraulic fracturing should not be confused with hydraulic mining, though similarities abound.

Hydraulic fracturing, or fracing, involves pumping millions of gallons of fracing fluid (a mixture of water, propants, and chemicals) per well into the earth under pressures great enough to fracture rock and release the oil. As a consequence of the process, flow rates from shale oil wells are low compared to the high flow rates of wells tapped into large conventional fields.

Whereas conventional wells like those in the Thunder Horse reservoir produce at a rate of 40,000 bpd, only 14 of the nearly 9,000 wells in the Bakken produce more than 800 barrels per day, and the average well produces only 52 bpd. Even at 800 barrels per day, 50 Bakken wells would need to be drilled for each Liberty/Thunder Horse size well, and nearly 800 of the average size Bakken wells would be required.

In order to arrest North Slope declines, 700 average size Bakken wells will need to be completed each and every year.

Due to the massive quantity of water required by the hydraulic fracturing process, the chemical cocktail that is added to the water to create fracing fluid, and the massive amount of dangerous wastewater generated by the process, environmental activists...oppose hydraulic fracturing...

...there is no escaping the fact that the Bakken wells are merely flakes of gold dust, and Prudhoe Bay and Kuparuk are the oilfield equivalents of colossal nuggets. And history teaches us that replacing nuggets with dust is at best a stopgap measure. While gold production in California continues to this day, production will never climb to anywhere near the peak reached in 1852 despite the fact that gold now trades at $$$1,800 per ounce and extraction technologies have improved by leaps and bounds.

Within this historical context we can sift the Bakken hope from the hype. The good news is that Bakken output rose from 130,000 bpd in June 2003 to over half a million barrels per day today, and is well on its way to producing a 750,000 barrels per day of high quality shale oil. Of course an analogous statement could have been said of California gold production in 1853, Klondike gold production in 1899, and North Slope oil production in 1987, so the danger of extrapolating past trends into the future is clear. That said, the growth rate is impressive.



Figure 14: North Dakota oil production showing the effect of unconventional oil production from the Bakken formation (Sources: EIA and the North Dakota Department of Mineral Resources)

Every silver lining has a cloud, and the bad news is that Montana production peaked in December 2006 and has already declined to 62% of the peak volume. This decline in Montana’s production indicate that what is commonly billed as a homogeneous geologic formation is in fact heterogeneous. The pattern of production suggests that the region of economically viable and productive wells is not ubiquitous, but rather concentrated in a few important areas. (Link for more on this topic)



Figure 15: North Dakota and Montana oil production – one formation, diverging trends (Sources: EIA and the North Dakota Department of Mineral Resources)

The Bakken narrative being constructed by the likes of Yergin, Crooks, and Luce is hopeful, yet incomplete. Production from North Dakota is climbing rapidly, but production in Montana and, more importantly, Alaska’s North Slope is declining. When taken together, a picture resembling the shadow of truth emerges. The Bakken boom has simply hidden a much more troubling trend; it has nearly perfectly balanced out the decline in North Slope output.



Figure 16: Aggregate oil production from Alaska’s North Slope and the Bakken (Source: EIA and the North Dakota Department of Mineral Resources)

Parting Thoughts
George Orwell wrote that, ”He who controls the present, controls the past, and he who controls the past, controls the future.” There is more than a nugget of truth in this statement. The future is guided by the stories which shape our imagination and our perception of what is possible, and therefore what is pursued...

The Bakken narrative being constructed by its proponents thrusts forth two main points. First, recent technological advances have opened the door to bountiful energy supply, so much so, that talk of energy independence has re-emerged. Second, alternative/renewable/clean energy requires subsidies that we (i.e. the U.S.) can’t afford, that the public doesn’t want, and that go against the free market ideology that Milton Fiedman chipped into the impenetrable stone walls that fortify the Chicago School. From these propositions it is concluded that shale oil and gas are not simply the best option for our non-negotiable way of life, they are the only option.

This narrative is enticing to many politicians and much of the public because it fits into a greater national narrative that holds at its core the primacy of market-led American ingenuity. When faced with a challenge, American entrepreneurs always emerge victorious, resource limits be damned! Or so the thinking goes.

A sober reading of history, however, suggests that the Bakken success story fits a well-established pattern in which every natural resource boom is followed by an inevitable decline.

Sometimes history provides us with lessons that we don’t want to learn. Gold dust can’t replace colossal nuggets, shale oil can’t replace giant conventional oil fields, and wishful thinking and ideological fortitude is no substitute for dispassionate analytical rigor.




http://mazamascience.com/EnergyTrends/?p=912

Thursday, June 18, 2026

Configuration guide for Kate on Ubuntu (English)

Text rendered via Dual-Core compilation (Human author + LLM co-processor).
Also available here https://alex-ber.medium.com/4d861cdd366c

Note:Windows alternative for Kate is Zed. As alternative Lapce can be considered, but it lost development momentum recently.

Limitation: Here there is no description for debugging. Even running on bare metal, not in docker containers.

Basic Installation:

sudo apt update
sudo apt install konsole
sudo snap install kate --classic

Now, many LSP uses Node.js. Because Node.js breaks backward compatibility we will use mise to manage it's versions.

Mise

Installing:

curl https://mise.run | sh

Making it work automatically when terminal is opened:

# Add shims to PATH instead of activating via eval
# echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
echo 'export PATH="$HOME/.local/share/mise/shims:$PATH"' >> ~/.bashrc

# Reload bashrc
source ~/.bashrc
There is more below. Ниже есть продолжение.

No system-level utils by default

#If you want to set one, but I do not recommend
#mise use --global uv@0.11.21
#mise use --global node@20.11.0

Unset global versions

Unfortunately,

mise unset --global uv
mise unset --global node

doesn't work for whatever reason. Instead run

nano ~/.config/mise/config.toml

directly. Revert it to it's default state that should look exactly like

[settings]
# Enable variable expansion
env_shell_expand = true

[tools]

[env]

Note:: env_shell_expand is set to true for forward compatibility. By default, this line doesn't exists and current behavior is as if it is set to false. But we in future version the default value will be changed to true, so we're just preparing ourselves to this change in advance. And we will exploit true value later in our scripts anyway just now.

After editing:

# Verify the config is clean
cat ~/.config/mise/config.toml

mise cache clear
mise reshim
# Checking that shims works
mise doctor  

# Check versions - shouldn't found anything
uv --version
node --version

Once in a while you can run

mise prune

to clean up space on the disk for unused tools.

Making sudo uv works

Now, if you want to run uv or node with sudo just type:

sudo -E env PATH="$PATH" uv
sudo -E env PATH="$PATH" node

Some useful mise commands

  • mise tool-alias ls node - here you can see LTS versions of the tool. Node supports this, uv doesn't.
  • mise latest uv - latest version of the tool.
  • mise ls-remote uv - list of full supported version of the tool.
  • mise ls uv - What version of uv is used and where it is configured.
  • mise list - list of currently installed utils.

For more advanced mise commands see my https://github.com/alex-ber/ubuntu2404-snapshots/blob/master/README-mise.md


Installing LSP Servers

First of all we will create isolated directory that will serve as LSP "control center":

sudo mkdir -p /work
sudo chmod 755 /work
sudo chown USER:USER /work
cd /work

Note:: Change USER for your real Linux user.
Important: All Git Repositories and all other thing that you want to benefit from your default miseconfig file you should strictly checkout to /work.

Than we'll use mise use. This command will create a mise.toml file where versions will be pinned.

#Note, here we're using more advance version of node than above
#It is LTS version of node at a time of writting of the story
mise use node@22
mise use uv@0.11.21

I recommend you to rename it to .mise.toml.

cd /work
mv mise.toml .mise.toml

Now a .mise.toml file has appeared in the folder.

After that, run:

mise install

Verify that the tools work locally:

uv --version

It should show 0.11.21.

npm --version

It should show 10.9.8.

About V8

The V8 engine is never installed separately. It is hard-wired inside Node.js (or inside Deno). Therefore, you cannot check the V8 version simply from the terminal. But you can ask Node.js itself which version of V8 is embedded in it! Run:

node -p "process.versions.v8"

You can also optionally verify that you doesn't have Deno installed by running:

deno --version

You should see Command 'deno' not found, did you mean: as first line at the output.


Environment variables

One of the best features of mise is that it can manage environment variables.
First of all verify that ~/.config/mise/config.toml looks like this:

[settings]
# Enable variable expansion
env_shell_expand = true

[tools]

[env]

Note:: env_shell_expand is set to true for forward compatibility. By default, this line doesn't exists and current behavior is as if it is set to false. But we in future version the default value will be changed to true, so we're just preparing ourselves to this change in advance. And we will exploit true value later in our scripts anyway just now.

Now, open /work/.mise.toml and make it look like this (insert your own data):

[tools]
node = "22"
uv = "0.11.21"
"npm:dockerfile-language-server-nodejs" = "0.15.0"
"npm:pyright" = "1.1.410"
"npm:typescript" = "5.5.2"
"npm:typescript-language-server" = "4.3.3"
"npm:vscode-langservers-extracted" = "4.10.0"
"npm:yaml-language-server" = "1.23.0"
"npm:eslint" = "10.5.0"
#ruff = "0.15.17"

[env]
# Your Git settings
GIT_TOKEN = "ghp_KR..."
GIT_USER = "alex-ber"
GIT_CONFIG_COUNT = "2"
GIT_CONFIG_KEY_0 = "url.@github.com/.insteadOf">https://${GIT_USER}:${GIT_TOKEN}@github.com/.insteadOf"
GIT_CONFIG_VALUE_0 = "https://github.com/"
GIT_CONFIG_KEY_1 = "url.@gist.github.com/.insteadOf">https://${GIT_USER}:${GIT_TOKEN}@gist.github.com/.insteadOf"
GIT_CONFIG_VALUE_1 = "https://gist.github.com/"

# Adding local binary paths to PATH so that Kate can see them
_.path = [
  "./node_modules/.bin",
  "./.venv/bin"
]

Note:: Change GIT_TOKEN and GIT_USER to your specific values.
Of course, this is only one of many of possible ways to configure GIT configuration value for Kate. I found this very straightforward. Note also that we're using variable expansion here.

WARNING:
1. You're storeing you GIT_TOKEN as plain text. On another hand attacher should know where to search GIT_TOKEN or it should scan whole file system for "GIT_TOKEN" key. Using /work to store is not standard in the industry. :-) I hope, yet. :-)
2. When Kate make git pushit passes your GIT_TOKEN as plain text. If this is unexectable security risk for you find another way to pass credenetial to GIT there are plenty documentaiton on the Internet.

Execute:

mise install

If you get

mise ERROR error parsing config file: /work/.mise.toml
mise ERROR Config files in /work/.mise.toml are not trusted.
Trust them with `mise trust`. See https://mise.en.dev/cli/trust.html for more information.
mise ERROR Version: 2026.6.6 linux-x64 (2026-06-13)
mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information

The error Config files ... are not trusted is an excellent and very important built-in security system of mise.

Why it occurred:
Your file contains an [env] section where you define tokens and, most critically, modify paths (_.path). Imagine you download someone else's repository containing a malicious mise.toml that replaces system commands. To prevent this, mise blocks the execution of such settings by default until you explicitly confirm that you trust this file.

How to fix it:
Since this is your own file in your working directory /work, you need to do exactly what mise asks.
While in the /work directory, run:

mise trust

This command will add the /work/.mise.toml file to your system's global allowlist.

In order to verify that environment variables are set properly run

mise env

or

mise env | grep GIT_CONFIG_KEY_0

Tips: You can edit .mise.toml file and run mise prune command it will remove unused tools. If you edit .mise.toml manually you must run mise install command in order to execute the configuration changes, see below for more details.

I pinned versions that was latest at the moment of installation. You can use @latest if you prefer. There is also @lts label, but see caveats below.

Nuance: latest vs lts

In mise, you can use keywords:

  • node@lts - installs the latest Long-Term Support version (currently 22, but this will change over time). This is the safest choice for production work.
  • node@latest - the absolute newest version (could be 23 or 24, which are still being "road-tested").

My advice: Use mise use node@22, as it currently offers the perfect balance between new features and stability.

Execute:

mise doctor

You should see something like this:

version: 2026.6.6 linux-x64 (2026-06-13)
activated: yes
shims_on_path: yes
self_update_available: yes
build_info:
  Target: x86_64-unknown-linux-gnu
  Features: openssl, rustls-native-roots, self_update
  Built: Sat, 13 Jun 2026 11:27:15 +0000
  Rust Version: rustc 1.94.0 (4a4ef493e 2026-03-02)
  Profile: release
shell:
  /bin/bash
  GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
  Copyright (C) 2022 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.
aqua:
  baked in registry: aquaproj/aqua-registry@93cd8ecfeef813610199913db392d0e8f8dc0c27
  baked in registry tools: 2218
dirs:
  cache: ~/.cache/mise
  config: ~/.config/mise
  data: ~/.local/share/mise
  shims: ~/.local/share/mise/shims
  state: ~/.local/state/mise
config_files:
  ~/.config/mise/config.toml
  /work/.mise.toml
env_files:
  (none)
ignored_config_files: (none)
backends:
  aqua
  asdf
  cargo
  conda
  core
  dotnet
  forgejo
  gem
  github
  gitlab
  go
  npm
  pipx
  spm
  http
  s3
  ubi
  vfox
plugins:
toolset:
  aqua:astral-sh/uv@0.11.21
  core:node@22.22.3
  npm:dockerfile-language-server-nodejs@0.15.0
  npm:pyright@1.1.410
  npm:typescript-language-server@4.3.3
  npm:typescript@5.5.2
  npm:vscode-langservers-extracted@4.10.0
  npm:yaml-language-server@1.23.0
path:
  /work/node_modules/.bin
  /work/.venv/bin
  ~/.local/share/mise/installs/node/22/bin
  ~/.local/share/mise/installs/uv/0.11.21/uv-x86_64-unknown-linux-musl
  ~/.local/share/mise/installs/npm-dockerfile-language-server-nodejs/0.15.0/bin
  ~/.local/share/mise/installs/npm-pyright/1.1.410/bin
  ~/.local/share/mise/installs/npm-typescript/5.5.2/bin
  ~/.local/share/mise/installs/npm-typescript-language-server/4.3.3/bin
  ~/.local/share/mise/installs/npm-vscode-langservers-extracted/4.10.0/bin
  ~/.local/share/mise/installs/npm-yaml-language-server/1.23.0/bin
  ~/.local/share/mise/shims
  ~/.local/bin
  /usr/local/sbin
  /usr/local/bin
  /usr/sbin
  /usr/bin
  /sbin
  /bin
  /usr/games
  /usr/local/games
  /snap/bin
  /snap/bin
  ~/go/bin
env_vars:
  MISE_SHELL=bash
settings:
  env_shell_expand  true ~/.config/mise/config.toml
No problems found

Whether you are building Kate, a custom Neovim configuration, supercharging Emacs, or just wanting to understand what happens under the hood of VS Code, knowing your toolchain is essential.
Let's break down a modern developer's stack by looking at eight fundamental tools, exactly in the order you would build them into a polyglot setup, and explore what they bring to your editing experience.

The Power of Modularity

The true beauty of the modern development ecosystem is modularity. By understanding what each of these packages does - from the strict type checking of Pyright and TypeScript to the blazing-fast formatting of Ruff - you can mix, match, and tailor your environment to be exactly as responsive and rigorous as you need it to be.

1. Dockerfile Language Server Node.js

(npm:dockerfile-language-server-nodejs)
When you are writing a Dockerfile, you want to ensure your instructions are valid and follow best practices. This server is powered by Node.js and hooks directly into your editor to provide auto-completion for Docker instructions like RUN, COPY, or ENTRYPOINT. It also offers on-the-fly syntax validation, hover documentation, and structural linting, ensuring your container builds won't fail due to simple typos or missing arguments.

2. Pyright

(npm:pyright)
Developed by Microsoft, Pyright is an incredibly fast, statically typed checker and language server for Python. Unlike traditional Python linters, Pyright focuses heavily on type inference and PEP 484 type hinting. It runs instantly as you type, catching type mismatches, missing imports, and undefined variables. It is an absolute favorite for large-scale Python codebases that require strict type safety and intelligent refactoring.

3. TypeScript

(npm:typescript)
While technically a programming language and a compiler rather than a standalone LSP, this core package is the brain behind any JavaScript or TypeScript development environment. It contains the TypeScript Language Service (tsserver), which parses your code, understands your project's tsconfig.json, and computes all the rich type information, completions, and diagnostics. Without this base package, no modern TypeScript tooling could function.

4. TypeScript Language Server

(npm:typescript-language-server)
Because the core tsserver does not natively speak the standardized Language Server Protocol (LSP), this wrapper was created to bridge the gap. It takes the deep intelligence provided by the base TypeScript package and translates it into standard LSP JSON-RPC messages. If you are using an editor outside of VS Code - this is the exact piece of software that grants you official, VS Code-level TypeScript and JavaScript support.

5. VSCode Langservers Extracted

(npm:vscode-langservers-extracted)
VS Code has brilliant built-in language support for front-end web technologies, but those servers are normally tightly integrated into the editor itself. This package extracts those official servers - specifically for HTML, CSS, SCSS, LESS, and JSON - so they can be used in any LSP-compatible editor. By installing this, you get Microsoft's official auto-completion, schema validation, and linting for standard web languages anywhere you choose to code.

6. YAML Language Server

(npm:yaml-language-server)
Writing YAML without assistance can lead to frustrating indentation errors and silent configuration bugs. Developed by Red Hat, this language server transforms the YAML writing experience. Its most powerful feature is the ability to map your files to JSON Schemas (for example, mapping to Kubernetes manifests, GitHub Actions, or Docker Compose files). This means you get intelligent auto-completion and validation tailored exactly to the specific DevOps tool you are configuring.

7. ESLint

(npm:eslint)
ESLint is the industry standard for identifying and reporting on patterns in JavaScript and TypeScript code. While it is fundamentally a linter and not an LSP on its own, modern development environments run ESLint as a background service (often wrapped in its own LSP integration) to provide real-time squiggly lines and auto-fix capabilities upon saving. It ensures your code adheres strictly to your team's style guide and catches logical errors before they ever reach production.
Note: I'm not using this LSP Server, but rely on Kate's built-in plugin, it works more reliability.

8. Ruff

(#ruff)
Ruff is the new heavyweight champion of Python tooling. Written in Rust, it is an astonishingly fast Python linter and formatter that replaces a dozen legacy tools like Flake8, isort, and Black. Many developers integrate Ruff directly into their editor via its own language server (such as ruff-lsp or the newer native ruff server) to get instantaneous feedback. It flags unused imports, stylistic errors, and code smells, fixing them in milliseconds without ever slowing down your editor.
Note: It is turned off in the configuration provided above, because personally I do not see any value of it. I started from Python 2 without any type hints and I have bad experiences with similar tools in Java scosystem. And Java is statically typed. IMHO such tools can be never be perfect.
Especially in such dynamic languages like Pyhton where you have eval(discoursage I know, but still in use), locals(), metaclassess, type hints are optional, if you're using duck typing without Protocol Ruff can't help you. Basically, in typicall code-base there too many "too dynamic" code that Ruff will be able to handle statically. You can treat it as my personal heuristic, but actually Turing halting problem and Gödel incompleteness theorems mathimatically proves that such tools can be never be perfect.


Set local versions (for a specific project)

Navigate to your project folder and run:

cd /path/to/your/project
mise use node@22
mise use uv@0.11.21

These commands won't download anything (since the versions are already downloaded globally), they will simply create a mise.toml file in the folder that locks these versions to the project. Don't forget to commit it to Git.

Manual editing of mise.toml

This is a completely valid and standard scenario. Many people do exactly this: edit the file by hand.
Just execute:

mise install

In 99% cases this is enough. If you manually added uv = "0.11.21" to mise.toml, running mise install will read this file, download the required version of uv, and make it available in the current directory. Nothing else is needed for the installation itself.

Note: If you there are problems (e.g., if your internet disconnects while downloading uv, the archive becomes corrupted, and mise install gives an unpacking error) you can use mise cache clear. Under normal workflow, you don't need to use this command.

Since we're working via shims the mise install command automatically creates and updates shims for new tools, so in 99% cases mise reshimis not needed. Manually calling mise reshim may only be needed as a "first aid" if you installed a tool but get command not found when typing its command in the terminal (e.g., this sometimes happens if you install a global CLI package via npm -g or pip, and mise hasn't had a chance to rebuild shims for the new binaries).

Once in a while you can run mise prune to clean up space on the disk for unused tools.

Note:

config_files:
  ~/.config/mise/config.toml
  /work/alexsmail-dns-fix/mise.toml

/work/alexsmail-dns-fix/mise.toml was added to config_files and ~/.local/share/mise/installs/uv/0.11.21/uv-x86_64-unknown-linux-musl was added to the path.


Create a startup script (Kate Wrapper)

To make Kate pick up the entire mise environment, the simplest approach is to launch it via the mise exec command.
Create the file /work/mise-app-launcher.sh:

Deprecated version:

#!/bin/bash
## Navigate to /work so that mise finds the correct .mise.toml
cd /work
# Use the absolute path to the snap version of Kate to avoid conflicts
exec ~/.local/bin/mise exec -- /snap/bin/kate -b "$@"

Robust version:

#!/bin/bash

# Check that at least one argument (executable) has been passed
if [ $# -lt 1 ]; then
    echo "Usage: $0 <executable_path> [args...]"
    exit 1
fi

# 1. Take the first argument as the command to run and shift the $@ array
APP_EXEC="$1"
shift

# Default base directory
TARGET_DIR="/work"

# Function for URL decoding (turns %20 into spaces, decodes Cyrillic, etc.)
urldecode() {
    local url_encoded="${1//+/ }"
    printf '%b' "${url_encoded//%/\\x}"
}

# Look for the first argument that is an existing file or directory
for arg in "$@"; do
    # 1. Strip protocol prefix if present
    clean_arg="${arg#file://}"
    
    # 2. Decode the URL if KDE/GNOME/Windows passed an escaped path
    if [[ "$clean_arg" == *%* ]]; then
        clean_arg=$(urldecode "$clean_arg")
    fi

    # 3. WSL2 AND WINDOWS PATH SUPPORT
    if [[ "$clean_arg" =~ ^/?([a-zA-Z]:[\\/].*) ]]; then
        clean_arg="${BASH_REMATCH[1]}" # Remove leading slash, keep "C:/..."
        
        # If we are in WSL, convert Windows path to Linux path (/mnt/c/...)
        if command -v wslpath >/dev/null 2>&1; then
            clean_arg=$(wslpath -u "$clean_arg" 2>/dev/null || echo "$clean_arg")
        fi
    fi

    # 4. Check if the directory or file exists (with protection against filenames starting with a dash)
    if [ -d -- "$clean_arg" ]; then
        TARGET_DIR="$clean_arg"
        break
    elif [ -f -- "$clean_arg" ]; then
        TARGET_DIR=$(dirname -- "$clean_arg")
        break
    fi
done

# 5. TOMCAT MAGIC: Convert the path to absolute and resolve all symlinks.
if command -v realpath >/dev/null 2>&1; then
    TARGET_DIR=$(realpath "$TARGET_DIR")
else
    # Reliable POSIX fallback for systems without the realpath utility
    TARGET_DIR=$(cd "$TARGET_DIR" 2>/dev/null && pwd -P)
fi

# 6. Change to the resolved directory and execute the requested app via mise
cd "$TARGET_DIR" || exit 1

# Use APP_EXEC, while $@ now contains only flags and files (since we performed shift)
exec ~/.local/bin/mise exec -- "$APP_EXEC" "$@"

Make it executable:

chmod +x /work/mise-app-launcher.sh

Update the shortcut (.desktop file)

Now, we will create .desktop file on your desktop. These instructions are GNOME specific.
Run

find /usr/share/applications -iname '*kate*.desktop'

or

find /var/lib/snapd/desktop/applications/ -iname '*kate*.desktop'

Typically second command will return something like this:

/var/lib/snapd/desktop/applications/kate_kate.desktop

Now execute:

cp /var/lib/snapd/desktop/applications/kate_kate.desktop ~/Desktop/

chmod +x ~/Desktop/kate_kate.desktop

gio set ~/Desktop/kate_kate.desktop metadata::trusted true

Now modify the Exec line in your .desktop file. For example:

nano ~/Desktop/kate_kate.desktop

Change the Exec line:

Exec=/work/mise-app-launcher.sh /snap/bin/kate -b %U

Plugins

These are plugins that I'm using:

  • Document Switcher (was default)
  • Documents Tree (was default)
  • ESLInt - note I'm not using LSP Server (see above), but rely on built-in plugin, it works more reliability.
  • External tools (was default)
  • LSP Client (see below)
  • Project plugin (was default) - very convenient minimalist Git client. I have provided above one version of passing auth params via env/export.
  • Search & replace (was default)
  • Symbol viewer
  • Terminal - built-in terminal. Personally, I prefer to us regular terminal, but it is handy for quick experimentation.
  • Text Filter

LSP Client's User Server Settings

Now click on .desktop shortcut. Kate should opened up.
Go to Settings->Configure Kate->LSP Client. Go to User Server Settings tab. Replace the content with following:

{
    "servers": {
        "python": {
            "command": ["pyright-langserver", "--stdio"],
            "rootIndicationFileNames": ["pyproject.toml", "mise.toml", ".git"],
            "highlightingModeRegex": "^Python$",
            "documentLanguageId": "python"
        },
        "javascript": {
            "command": ["typescript-language-server", "--stdio"],
            "rootIndicationFileNames": ["tsconfig.json", "package.json"],
            "highlightingModeRegex": "^JavaScript.*$",
            "documentLanguageId": "javascript"
        },
        "typescript": {
            "use": "javascript",
            "highlightingModeRegex": "^TypeScript.*$",
            "documentLanguageId": "typescript"
        },
        "json": {
            "command": ["vscode-json-language-server", "--stdio"],
            "highlightingModeRegex": "^JSON$",
            "documentLanguageId": "json"
        },
        "html": {
            "command": ["vscode-html-language-server", "--stdio"],
            "highlightingModeRegex": "^HTML$",
            "documentLanguageId": "html"
        },
        "css": {
            "command": ["vscode-css-language-server", "--stdio"],
            "highlightingModeRegex": "^CSS$",
            "documentLanguageId": "css"
        },
        "yaml": {
            "command": ["yaml-language-server", "--stdio"],
            "highlightingModeRegex": "^YAML$",
            "documentLanguageId": "yaml",
            "initializationOptions": {
                "settings": {
                    "yaml": {
                        "schemaStore": {
                            "enable": true
                        }
                    }
                }
            }
        },
        "dockerfile": {
            "command": ["docker-langserver", "--stdio"],
            "highlightingModeRegex": "^Dockerfile$",
            "documentLanguageId": "dockerfile"
        },
        "markdown": {
            "highlightingModeRegex": "DisabledMode"
        }
    }
}

Note:: When you're openning yaml file, say docker-compose.yml you can see error in the logs. If syntax highlighting and autocomplition works, you can safely ignore this error. It is harmless.


How it works and why it's great:

  • Clean system: If you open a regular terminal and type uv or node, the system won't find them (just as you wanted).
  • Automation: When you launch Kate via the script, mise exec looks at .mise.toml, instantly activates the correct versions of Node.js and uv, passes through GIT_TOKEN, and adds the node_modules/.bin and .venv/bin folders to PATH.
  • LSP in Kate: When the LSP plugin activates in Kate, it looks for the command (e.g., typescript-language-server). Since the startup script added the local project folder to PATH, Kate successfully finds and launches the server.

Verification:

  • Launch Kate via the new shortcut.
  • Open the built-in terminal in Kate (F4).
  • Type echo $GIT_TOKEN - you should see your token.

Code Index

Note:: I did

sudo apt install universal-ctags

but it is not used in Kate.

1. Configuring the Project Plugin

The foundation of a smooth IDE experience in Kate is the Project Plugin. This step is critical because LSP servers work significantly better when they know the exact "root" of your codebase.
Go to Settings → Configure Kate → Plugins.
Ensure that the Project Plugin is enabled.

When you open a folder as a project (via Project → Open Folder in the top menu), Kate automatically scans for version control directories (such as .git). Once detected, it passes this exact root path to the LSP server as the rootUri.
Note: Always open your working directory as a project via the Project menu rather than opening files individually. This simple habit guarantees that your LSP server will correctly resolve all local imports, modules, and dependencies across your entire workspace.

2. Enabling the Symbol Outline

To get a clear visual representation of your code architecture, we can utilize the structural data already provided by the LSP.
In the Plugins menu, verify that both the LSP Client and Symbol Viewer plugins are enabled.
Navigate to View → Tool Views in the main menu and check Show Symbol Outline (or Symbol Viewer).
If the panel appears empty at first, you can force a refresh by navigating to LSP Client → Restart All LSP Servers.

A sidebar or a bottom tab will immediately appear. It automatically builds a dynamic, clickable tree of all functions, classes, and variables based on the real-time data parsed by your Python or TypeScript language servers.

3. Testing the Magic

Finally, let us verify that your smart code navigation is fully operational.
Open your project folder using the Project menu.
At the bottom of the Kate window, click on the LSP Client panel and switch to the Log tab. You should see a confirmation message indicating that your specific servers (e.g., pyright-langserver) have started successfully and attached to your project root.
Open any source file, right-click on a custom function or class name, and select Go to Definition (or use the default Ctrl + Click / F12 shortcut).

Kate will instantly navigate you to the exact file and line where that symbol was declared, leveraging your local, fully isolated LSP environment.


Extras

Because Ubuntu doesn't provide built in base docker repositroy that is frozen in time I built one myself. This is https://github.com/alex-ber/ubuntu2404-snapshots project. You can pull latest golden/frozen version by

docker pull alexberkovich/ubuntu2404-snapshot:latest

or provide specific date for snapshot (if it exists in Docker hub).

Usually, it will be best on latest ubuntu:24.04 docker images with some extra OS-level dependecies installed and pinned.
For example, it has curl installed with specific version. No matter what security vulnaribility will be found if you're using my base image you will have this exact version.
It provides determenism and reproducability. Fixing, security whole often breaks your docker images. And it "just happen" in undefined time.
If there is serious security patch you will know about it and you should move to another snapshot (that I will provide) when you're ready to deal with broken docker image.
It also has get-image-hash and get-pkg-version abilities that can be utilized via docker-compose.yml. It also has update-uv-lock that is template for Python project's that want to utilize uv.


get-image-hash

The engine behind this entire workflow is a dedicated Docker Compose service named get-image-hash. It is designed to retrieve the latest immutable SHA256 digest for absolutely ANY Docker image.
Here is how you can utilize the daemon in your day-to-day workflow:

  • Default Execution:
    Running docker compose run --rm get-image-hash without any arguments defaults to targeting ghcr.io/astral-sh/uv:latest.
  • Custom Target Resolution:
    You can append any image name to fetch its specific hash. For example, running docker compose run --rm get-image-hash ubuntu:24.04 will instantly return the exact pointer for that Ubuntu release.
  • Debugging Mode:
    If the daemon is failing or you need to inspect the container environment, you can override the default execution by dropping into a shell. Simply run docker compose run --rm --entrypoint sh get-image-hash.

By standardizing how you retrieve and lock down your image hashes, you eliminate "it works on my machine" issues and create a foundation for truly bulletproof infrastructure.
The core concept starts with fetching the exact SHA256 digest of a specific tool before building. For example, if you want to use version 0.11.21 of the Astral uv tool, you would execute the daemon like this:

docker compose run --rm get-image-hash ghcr.io/astral-sh/uv:0.11.21

This query returns an absolute, immutable hash. Armed with this string, you can replace vulnerable floating tags in your Dockerfile with a bulletproof copy command:

COPY --from=ghcr.io/astral-sh/uv@sha256:abcd… /uv /uvx /bin/

By doing this, your container build is guaranteed to pull the exact same binaries every single time, regardless of what the maintainers publish in the future.

Managing Host Tooling with Mise

While Docker handles containerized dependencies, you also need to manage local versions predictably. If you use the mise tool manager, you can easily query version availability.
To check if a specific tool (like Node.js) natively supports Long Term Support (LTS) aliases, you can run:

mise tool-alias ls node

If your desired tool does not show up, you can search the remote registry:

mise ls-remote uv

Or, to simply grab the most current version number (which, in our example, returns 0.11.21), you can use:

mise latest uv

Note: For more advanced mise commands see my https://github.com/alex-ber/ubuntu2404-snapshots/blob/master/README-mise.md

The Reproducibility Warning: Forcing LTS

Sometimes, a tool lacks an official LTS policy. You might be tempted to force one to keep your local environment consistently updated within a minor version range. You can do this by setting a custom alias:

mise tool-alias set uv lts 0.11

Warning: While this is convenient for local development, doing this entirely breaks strict reproducibility. Because "0.11" is a moving target, your tools will shift beneath your feet as new patches are released.

get-pkg-version

Before you can pin a package, you need to know exactly which operating system environment you are targeting. Your first step when setting up your builds should always be to verify your base system. You can do this by running:

cat /etc/os-release

This ensures that the package versions you are about to resolve actually match the distribution (like Ubuntu 24.04) you intend to use in your final production Dockerfile.
This get-pkg-version queries the official Ubuntu repositories and returns the exact version string required for hard-pinning. Here is how you can use it in various scenarios:

  • Default Execution:
    If you run the service without passing any arguments, it is configured to resolve the ca-certificates package by default. You trigger this by running:
    docker compose run --rm get-pkg-version
  • Custom Target Resolution:
    You are not limited to the default. You can append any package names you need to resolve multiple dependencies at once. For example, to find the exact versions for the Nano editor and Git, you would run:
    docker compose run --rm get-pkg-version nano git
  • Debugging Mode:
    If the package resolver fails, or if you need to manually explore the APT repositories using tools like apt-cache policy, you can override the entrypoint and drop straight into a Bash shell:
    docker compose run --rm --entrypoint bash get-pkg-version

Under the hood, the get-pkg-version service needs to run inside a container that mirrors your production base image.
When configuring this service, you face a strategic choice regarding the image tag. The primary goal of this daemon is to discover what packages are currently available in the repositories before you permanently lock the exact package versions and image SHA in your main Dockerfile.
Because of this discovery phase, developers will often use a floating tag (like ubuntu:24.04) to query the most up-to-date repository state. However, in our specific configuration, we lock the resolver itself to a highly specific, immutable digest:

image: ubuntu@sha256:786a8b558f7be160c6c8c4a54f9a57274f3b4fb1491cf65146521ae77ff1dc54

By using this locked digest instead of the floating tag, you ensure that your Package Version Resolver queries the exact same snapshot of the Ubuntu repositories every single time you run it, guaranteeing total predictability during your dependency resolution phase.

update-uv-lock

Note:: The configuration discussed below is a conceptual template and not an executable utility directly runnable from https://github.com/alex-ber/ubuntu2404-snapshots the repository. We will break down the actual, practical usage below.

This utility is specifically designed to regenerate a uv.lock file, entirely without installing the Astral uv package on your local computer.
The goal of this service is to run interactively, update your dependencies, and then vanish. Here is how you trigger this ephemeral daemon:

  • Standard Execution: The exact, full command to run this specific tool service is
    docker compose run --rm update-uv-lock
  • Debugging Mode: If the lock generation fails and you need to inspect the container from the inside, you can override the execution and drop into a shell by running
    docker compose run --rm --entrypoint bash update-uv-lock

To make this utiliy work seamlessly with your local filesystem, the service configuration for update-uv-lock must be precisely tuned.

Image and Working Directory

The service boots up using a lightweight Python image. Currently, it is pinned to

ghcr.io/astral-sh/uv:python3.13-bookworm-slim

Note: It has hard coded dependeny on your python version.

The Hardware Bridge (Identity Mapping)

When a Docker container creates a file, it defaults to the root user. If Docker generates your lock file, you won't be able to edit or delete it on your host machine without using sudo.
To avoid permission decoherence between the Host OS and the Docker runtime (especially on Linux environments), you must map your bare-metal User ID and Group ID into the container. This guarantees that files created by the runtime belong to you, preventing root-owned pollution on the host.

Initialize the local environment bridge:

cp env.example .env

Inject your bare-metal host IDs (Linux/Ubuntu):

echo "HOST_UID=$(id -u)" >> .env
echo "HOST_GID=$(id -g)" >> .env

To prevent permission decoherence, we use an identity mapping bridge:

user: "${HOST_UID:-1000}:${HOST_GID:-1000}"

{HOST_GID:-1000}"
This crucial line ensures that the newly generated uv.lock file belongs exactly to your local user account, keeping your file permissions intact.
See https://github.com/alex-ber/ubuntu2404-snapshots/blob/master/README.md for more details about .env and HOST_UID and HOST_GID.

The utility executes its single purpose:

command: ["uv", "lock"]

Test case1: JavaScript/TypeScript test project

This https://github.com/alex-ber/js-hello-world project was built specifically to test integration of Kate and LSP Servers. It is typicall hello world project and is not expected to be maintained. You can see it as reference example that can be outdated at some point.


Test case2: Python real project

This https://github.com/alex-ber/alexsmail-dns-fix project was written to solve some very specific problem.
This is mainained reference project that did the real job once and I plan to keep it up to date as template despite the fact that it was one time job I do maintain this project as template project for my another Python project.
So, when you will run it, it will fail with error. But this is expected behaviour.
It's docker-compose.yml contain update-uv-lock utility that is exact copy from https://github.com/alex-ber/ubuntu2404-snapshots/blob/master/docker-compose.yml But basic image doesn't have uv(or python) installed and this project does have. So here, update-uv-lock utility will actually work.
If you have project that has another Python version you can easily modify image tag.

Note: You can read https://github.com/alex-ber/ubuntu2404-snapshots/blob/master/README-docker-compose.md for some explanation of how docker-compose.yml utilitys (the official name is actually service, but I deliberetely avoid to use this term up untill this point to not overcomplicate things).