-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28O Planetinha
Fumaça verde me entrando pelas narinas e um coro desafinado fazia uma base melódica.
nos confins da galáxia havia um planetinha isolado. Era um planeta feliz.
O homem vestido de mago começava a aparecer por detrás da fumaça verde.
O planetinha recebeu três presentes, mas o seu habitante, o homem, estava num estado de confusão tão grande que ameaçava estragá-los. Os homens já havia escravizado o primeiro presente, a vida; lutavam contra o segundo presente, a morte; e havia alguns que achavam que deviam destruir totalmente o terceiro, o amor, e com isto levar a desordem total ao pobre planetinha perdido, que se chamava Terra.
O coro desafinado entrou antes do "Terra" cantando várias vezes, como se imitasse um eco, "terra-terra-terraaa". Depois de uma pausa dramática, o homem vestido de mago voltou a falar.
Terra, nossa nave mãe.
Neste momento eu me afastei. À frente do palco onde o mago e seu coral faziam apelos à multidão havia vários estandes cobertos com a tradicional armação de quatro pernas e lona branca. Em todos os cantos da praça havia gente, gente dos mais variados tipos. Visitantes curiosos que se aproximavam atraídos pela fumaça verde e as barraquinhas, gente que aproveitava o movimento para vender doces sem pagar imposto, casais que se abraçavam de pé para espantar o frio, os tradicionais corredores que faziam seu cooper, gente cheia de barba e vestida para imitar os hippies dos anos 60 e vender colares estendidos no chão, transeuntes novos e velhos, vestidos como baladeiros ou como ativistas do ônibus grátis, grupos de ciclistas entusiastas.
O mago fazia agora apelos para que nós, os homens, habitantes do isolado planetinha, passássemos a ver o planetinha, nossa nave mãe, como um todo, e adquiríssemos a consciência de que ele estava entrando em maus lençóis. A idéia, reforçada pela logomarca do evento, era que parássemos de olhar só para a nossa vida e pensássemos no planeta.
A logomarca do evento, um desenho estilizado do planeta Terra, nada tinha a ver com seu nome: "Festival Andando de Bem com a Vida", mas havia sido ali colocada estrategicamente pelos organizadores, de quem parecia justamente sair a mensagem dita pelo mago.
Aquela multidão de pessoas que, assim como eu, tinham suas próprias preocupações, não podiam ver o quadro caótico que formavam, cada uma com seus atos isolados, ali naquela praça isolada, naquele planeta isolado. Quando o hippie barbudo, quase um Osho, assustava um casal para tentar vender-lhes um colar, a quantidade de caos que isto acrescentava à cena era gigantesca. Por um segundo, pude ver, como se estivesse de longe e acima, com toda a pretensão que este estado imaginativo carrega, a cena completa do caos.
Uma nave-mãe, dessas de ficção científica, habitada por milhões de pessoas, seguia no espaço sem rumo, e sem saber que logo à frente um longo precipício espacial a esperava, para a desgraça completa sua e de seus habitantes.
Acostumados àquela nave tanto quanto outrora estiveram acostumados à sua terra natal, os homens viviam as próprias vidas sem nem se lembrar que estavam vagando pelo espaço. Ninguém sabia quem estava conduzindo a nave, e ninguém se importava.
No final do filme descobre-se que era a soma completa do caos que cada habitante produzia, com seus gestos egoístas e incapazes de levar em conta a totalidade, é que determinava a direção da nave-mãe. O efeito, no entanto, não era imediato, como nunca é. Havia gente de verdade encarregada de conduzir a nave, mas era uma gente bêbada, mau-caráter, que vivia brigando pelo controle da nave e o poder que isto lhes dava. Poder, status, dinheiro!
Essa gente bêbada era atraída até ali pela corrupção das instituições e da moral comum que, no fundo no fundo, era causada pelo egoísmo da população, através de um complexo -- mas que no filme aparece simplificado pela ação individual de um magnata do divertimento público -- processo social.
O homem vestido de mago era mais um agente causador de caos, com sua cena cheia de fumaça e sua roupa estroboscópica, ele achava que estava fazendo o bem ao alertar sua platéia, todos as sextas-feiras, de que havia algo que precisava ser feito, que cada um que estava ali ouvindo era responsável pelo planeta. A sua incapacidade, porém, de explicar o que precisava ser feito só aumentava a angústia geral; a culpa que ele jogava sobre seu público, e que era prontamente aceita e passada em frente, aos familiares e amigos de cada um, atormentava-os diariamente e os impedia de ter uma vida decente no trabalho e em casa. As famílias, estressadas, estavam constantemente brigando e os motivos mais insignificantes eram responsáveis pelas mais horrendas conseqüências.
O mago, que após o show tirava o chapéu entortado e ia tomar cerveja num boteco, era responsável por uma parcela considerável do caos que levava a nave na direção do seu desgraçado fim. No filme, porém, um dos transeuntes que de passagem ouviu um pedaço do discurso do mago despertou em si mesmo uma consiência transformadora e, com poderes sobre-humanos que lhe foram então concedidos por uma ordem iniciática do bem ou não, usando só os seus poderes humanos mesmo, o transeunte -- na primeira versão do filme um homem, na segunda uma mulher -- consegue consertar as instituições e retirar os bêbados da condução da máquina. A questão da moral pública é ignorada para abreviar a trama, já com duas horas e quarenta de duração, mas subentende-se que ela também fora resolvida.
No planeta Terra real, que não está indo em direção alguma, preso pela gravidade ao Sol, e onde as pessoas vivem a própria vida porque lhes é impossível viver a dos outros, não têm uma consciência global de nada porque só é possível mesmo ter a consciência delas mesmas, e onde a maioria, de uma maneira ou de outra, está tentando como pode, fazer as coisas direito, o filme é exibido.
Para a maioria dos espectadores, é um filme que evoca reflexões, um filme forte. Por um segundo elas têm o mesmo vislumbre do caos generalizado que eu tive ali naquela praça. Para uma pequena parcela dos espectadores -- entre eles alguns dos que estavam na platéia do mago, o próprio mago, o seguidor do Osho, o casal de duas mulheres e o vendedor de brigadeiros, mas aos quais se somam também críticos de televisão e jornal e gente que fala pelos cotovelos na internet -- o filme é um horror, o filme é uma vulgarização de um problema real e sério, o filme apela para a figura do herói salvador e passa uma mensagem totalmente errada, de que a maioria da população pode continuar vivendo as suas própria vidinhas miseráveis enquanto espera por um herói que vem do Olimpo e os salva da mixórdia que eles mesmos causaram, é um filme que presta um enorme desserviço à causa.
No dia seguinte ao lançamento, num bar meio caro ali perto da praça, numa mesa com oito pessoas, entre elas seis do primeiro grupo e oito do segundo, discute-se se o filme levará ou não o Oscar. Eu estou em casa dormindo e não escuto nada.
-
@ 3bf0c63f:aefa459d
2024-03-19 14:32:01Censorship-resistant relay discovery in Nostr
In Nostr is not decentralized nor censorship-resistant I said Nostr is centralized. Peter Todd thinks it is centralized by design, but I disagree.
Nostr wasn't designed to be centralized. The idea was always that clients would follow people in the relays they decided to publish to, even if it was a single-user relay hosted in an island in the middle of the Pacific ocean.
But the Nostr explanations never had any guidance about how to do this, and the protocol itself never had any enforcement mechanisms for any of this (because it would be impossible).
My original idea was that clients would use some undefined combination of relay hints in reply tags and the (now defunct)
kind:2
relay-recommendation events plus some form of manual action ("it looks like Bob is publishing on relay X, do you want to follow him there?") to accomplish this. With the expectation that we would have a better idea of how to properly implement all this with more experience, Branle, my first working client didn't have any of that implemented, instead it used a stupid static list of relays with read/write toggle -- although it did publish relay hints and kept track of those internally and supportedkind:2
events, these things were not really useful.Gossip was the first client to implement a truly censorship-resistant relay discovery mechanism that used NIP-05 hints (originally proposed by Mike Dilger) relay hints and
kind:3
relay lists, and then with the simple insight of NIP-65 that got much better. After seeing it in more concrete terms, it became simpler to reason about it and the approach got popularized as the "gossip model", then implemented in clients like Coracle and Snort.Today when people mention the "gossip model" (or "outbox model") they simply think about NIP-65 though. Which I think is ok, but too restrictive. I still think there is a place for the NIP-05 hints,
nprofile
andnevent
relay hints and specially relay hints in event tags. All these mechanisms are used together in ZBD Social, for example, but I believe also in the clients listed above.I don't think we should stop here, though. I think there are other ways, perhaps drastically different ways, to approach content propagation and relay discovery. I think manual action by users is underrated and could go a long way if presented in a nice UX (not conceived by people that think users are dumb animals), and who knows what. Reliance on third-parties, hardcoded values, social graph, and specially a mix of multiple approaches, is what Nostr needs to be censorship-resistant and what I hope to see in the future.
-
@ f977c464:32fcbe00
2024-01-11 18:47:47Kendisini aynada ilk defa gördüğü o gün, diğerleri gibi olduğunu anlamıştı. Oysaki her insan biricik olmalıydı. Sözgelimi sinirlendiğinde bir kaşı diğerinden birkaç milimetre daha az çatılabilirdi veya sevindiğinde dudağı ona has bir açıyla dalgalanabilirdi. Hatta bunların hiçbiri mümkün değilse, en azından, gözlerinin içinde sadece onun sahip olabileceği bir ışık parlayabilirdi. Çok sıradan, öyle sıradan ki kimsenin fark etmediği o milyonlarca minik şeyden herhangi biri. Ne olursa.
Ama yansımasına bakarken bunların hiçbirini bulamadı ve diğer günlerden hiç de farklı başlamamış o gün, işe gitmek için vagonunun gelmesini beklediği alelade bir metro istasyonunda, içinde kaybolduğu illüzyon dağılmaya başladı.
İlk önce derisi döküldü. Tam olarak dökülmedi aslında, daha çok kıvılcımlara dönüşüp bedeninden fırlamış ve bir an sonra sönerek külleşmiş, havada dağılmıştı. Ardında da, kaybolmadan hemen önce, kısa süre için hayal meyal görülebilen, bir ruhun yok oluşuna ağıt yakan rengârenk peri cesetleri bırakmıştı. Beklenenin aksine, havaya toz kokusu yayıldı.
Dehşete düştü elbette. Dehşete düştüler. Panikle üstlerini yırtan 50 işçi. Her şeyin sebebiyse o vagon.
Saçları da döküldü. Her tel, yere varmadan önce, her santimde ikiye ayrıla ayrıla yok oldu.
Bütün yüzeylerin mat olduğu, hiçbir şeyin yansımadığı, suyun siyah aktığı ve kendine ancak kameralarla bakabildiğin bir dünyada, vagonun içine yerleştirilmiş bir aynadan ilk defa kendini görmek.
Gözlerinin akları buharlaşıp havada dağıldı, mercekleri boşalan yeri doldurmak için eriyip yayıldı. Gerçeği görmemek için yaratılmış, bu yüzden görmeye hazır olmayan ve hiç olmayacak gözler.
Her şeyin o anda sona erdiğini sanabilirdi insan. Derin bir karanlık ve ölüm. Görmenin görmek olduğu o anın bitişi.
Ben geldiğimde ölmüşlerdi.
Yani bozulmuşlardı demek istiyorum.
Belleklerini yeni taşıyıcılara takmam mümkün olmadı. Fiziksel olarak kusursuz durumdaydılar, olmayanları da tamir edebilirdim ama tüm o hengamede kendilerini baştan programlamış ve girdilerini modifiye etmişlerdi.
Belleklerden birini masanın üzerinden ileriye savurdu. Hınca hınç dolu bir barda oturuyorlardı. O ve arkadaşı.
Sırf şu kendisini insan sanan androidler travma geçirip delirmesin diye neler yapıyoruz, insanın aklı almıyor.
Eliyle arkasını işaret etti.
Polislerin söylediğine göre biri vagonun içerisine ayna yerleştirmiş. Bu zavallılar da kapı açılıp bir anda yansımalarını görünce kafayı kırmışlar.
Arkadaşı bunların ona ne hissettirdiğini sordu. Yani o kadar bozuk, insan olduğunu sanan androidi kendilerini parçalamış olarak yerde görmek onu sarsmamış mıydı?
Hayır, sonuçta belirli bir amaç için yaratılmış şeyler onlar. Kaliteli bir bilgisayarım bozulduğunda üzülürüm çünkü parasını ben vermişimdir. Bunlarsa devletin. Bana ne ki?
Arkadaşı anlayışla kafasını sallayıp suyundan bir yudum aldı. Kravatını biraz gevşetti.
Bira istemediğinden emin misin?
İstemediğini söyledi. Sahi, neden deliriyordu bu androidler?
Basit. Onların yapay zekâlarını kodlarken bir şeyler yazıyorlar. Yazılımcılar. Biliyorsun, ben donanımdayım. Bunlar da kendilerini insan sanıyorlar. Tiplerine bak.
Sesini alçalttı.
Arabalarda kaza testi yapılan mankenlere benziyor hepsi. Ağızları burunları bile yok ama şu geldiğimizden beri sakalını düzeltip duruyor mesela. Hayır, hepsi de diğerleri onun sakalı varmış sanıyor, o manyak bir şey.
Arkadaşı bunun delirmeleriyle bağlantısını çözemediğini söyledi. O da normal sesiyle konuşmaya devam etti.
Anlasana, aynayı falan ayırt edemiyor mercekleri. Lönk diye kendilerini görüyorlar. Böyle, olduğu gibi...
Nedenmiş peki? Ne gerek varmış?
Ne bileyim be abicim! Ahiret soruları gibi.
Birasına bakarak dalıp gitti. Sonra masaya abanarak arkadaşına iyice yaklaştı. Bulanık, bir tünelin ucundaki biri gibi, şekli şemalı belirsiz bir adam.
Ben seni nereden tanıyorum ki ulan? Kimsin sen?
Belleği makineden çıkardılar. İki kişiydiler. Soruşturmadan sorumlu memurlar.
─ Baştan mı başlıyoruz, diye sordu belleği elinde tutan ilk memur.
─ Bir kere daha deneyelim ama bu sefer direkt aynayı sorarak başla, diye cevapladı ikinci memur.
─ Bence de. Yeterince düzgün çalışıyor.
Simülasyon yüklenirken, ayakta, biraz arkada duran ve alnını kaşıyan ikinci memur sormaktan kendisini alamadı:
─ Bu androidleri niye böyle bir olay yerine göndermişler ki? Belli tost olacakları. İsraf. Gidip biz baksak aynayı kırıp delilleri mahvetmek zorunda da kalmazlar.
Diğer memur sandalyesinde hafifçe dönecek oldu, o sırada soruyu bilgisayarın hoparlöründen teknisyen cevapladı.
Hangi işimizde bir yamukluk yok ki be abi.
Ama bir son değildi. Üstlerindeki tüm illüzyon dağıldığında ve çıplak, cinsiyetsiz, birbirinin aynı bedenleriyle kaldıklarında sıra dünyaya gelmişti.
Yere düştüler. Elleri -bütün bedeni gibi siyah turmalinden, boğumları çelikten- yere değdiği anda, metronun zemini dağıldı.
Yerdeki karolar öncesinde beyazdı ve çok parlaktı. Tepelerindeki floresan, ışığını olduğu gibi yansıtıyor, tek bir lekenin olmadığı ve tek bir tozun uçmadığı istasyonu aydınlatıyorlardı.
Duvarlara duyurular asılmıştı. Örneğin, yarın akşam kültür merkezinde 20.00’da başlayacak bir tekno blues festivalinin cıvıl cıvıl afişi vardı. Onun yanında daha geniş, sarı puntolu harflerle yazılmış, yatay siyah kesiklerle çerçevesi çizilmiş, bir platformdan düşen çöp adamın bulunduğu “Dikkat! Sarı bandı geçmeyin!” uyarısı. Biraz ilerisinde günlük resmi gazete, onun ilerisinde bir aksiyon filminin ve başka bir romantik komedi filminin afişleri, yapılacakların ve yapılmayacakların söylendiği küçük puntolu çeşitli duyurular... Duvar uzayıp giden bir panoydu. On, on beş metrede bir tekrarlanıyordu.
Tüm istasyonun eni yüz metre kadar. Genişliği on metre civarı.
Önlerinde, açık kapısından o mendebur aynanın gözüktüğü vagon duruyordu. Metro, istasyona sığmayacak kadar uzundu. Bir kılıcın keskinliğiyle uzanıyor ama yer yer vagonların ek yerleriyle bölünüyordu.
Hiçbir vagonda pencere olmadığı için metronun içi, içlerindekiler meçhuldü.
Sonrasında karolar zerrelerine ayrılarak yükseldi. Floresanın ışığında her yeri toza boğdular ve ortalığı gri bir sisin altına gömdüler. Çok kısa bir an. Afişleri dalgalandırmadılar. Dalgalandırmaya vakitleri olmadı. Yerlerinden söküp aldılar en fazla. Işık birkaç kere sönüp yanarak direndi. Son kez söndüğünde bir daha geri gelmedi.
Yine de etraf aydınlıktı. Kırmızı, her yere eşit dağılan soluk bir ışıkla.
Yer tamamen tele dönüşmüştü. Altında çapraz hatlarla desteklenmiş demir bir iskelet. Işık birkaç metreden daha fazla aşağıya uzanamıyordu. Sonsuzluğa giden bir uçurum.
Duvarın yerini aynı teller ve demir iskelet almıştı. Arkasında, birbirine vidalarla tutturulmuş demir plakalardan oluşan, üstünden geçen boruların ek yerlerinden bazen ince buharların çıktığı ve bir süre asılı kaldıktan sonra ağır, yağlı bir havayla sürüklendiği bir koridor.
Diğer tarafta paslanmış, pencerelerindeki camlar kırıldığı için demir plakalarla kapatılmış külüstür bir metro. Kapının karşısındaki aynadan her şey olduğu gibi yansıyordu.
Bir konteynırın içini andıran bir evde, gerçi gayet de birbirine eklenmiş konteynırlardan oluşan bir şehirde “andıran” demek doğru olmayacağı için düpedüz bir konteynırın içinde, masaya mum görüntüsü vermek için koyulmuş, yarı katı yağ atıklarından şekillendirilmiş kütleleri yakmayı deniyordu. Kafasında hayvan kıllarından yapılmış grili siyahlı bir peruk. Aynı kıllardan kendisine gür bir bıyık da yapmıştı.
Üstünde mavi çöp poşetlerinden yapılmış, kravatlı, şık bir takım.
Masanın ayakları yerine oradan buradan çıkmış parçalar konulmuştu: bir arabanın şaft mili, üst üste konulmuş ve üstünde yazı okunamayan tenekeler, boş kitaplar, boş gazete balyaları... Hiçbir şeye yazı yazılmıyordu, gerek yoktu da zaten çünkü merkez veri bankası onları fark ettirmeden, merceklerden giren veriyi sentezleyerek insanlar için dolduruyordu. Yani, androidler için. Farklı şekilde isimlendirmek bir fark yaratacaksa.
Onların mercekleri için değil. Bağlantıları çok önceden kopmuştu.
─ Hayatım, sofra hazır, diye bağırdı yatak odasındaki karısına.
Sofrada tabak yerine düz, bardak yerine bükülmüş, çatal ve bıçak yerine sivriltilmiş plakalar.
Karısı salonun kapısında durakladı ve ancak kulaklarına kadar uzanan, kocasınınkine benzeyen, cansız, ölü hayvanların kıllarından ibaret peruğunu eliyle düzeltti. Dudağını, daha doğrusu dudağının olması gereken yeri koyu kırmızı bir yağ tabakasıyla renklendirmeyi denemişti. Biraz da yanaklarına sürmüştü.
─ Nasıl olmuş, diye sordu.
Sesi tek düzeydi ama hafif bir neşe olduğunu hissettiğinize yemin edebilirdiniz.
Üzerinde, çöp poşetlerinin içini yazısız gazete kağıtlarıyla doldurarak yaptığı iki parça giysi.
─ Çok güzelsin, diyerek kravatını düzeltti kocası.
─ Sen de öylesin, sevgilim.
Yaklaşıp kocasını öptü. Kocası da onu. Sonra nazikçe elinden tutarak, sandalyesini geriye çekerek oturmasına yardım etti.
Sofrada yemek niyetine hiçbir şey yoktu. Gerek de yoktu zaten.
Konteynırın kapısı gürültüyle tekmelenip içeri iki memur girene kadar birbirlerine öyküler anlattılar. O gün neler yaptıklarını. İşten erken çıkıp yemyeşil çimenlerde gezdiklerini, uçurtma uçurduklarını, kadının nasıl o elbiseyi bulmak için saatlerce gezip yorulduğunu, kocasının kısa süreliğine işe dönüp nasıl başarılı bir hamleyle yaşanan krizi çözdüğünü ve kadının yanına döndükten sonra, alışveriş merkezinde oturdukları yeni dondurmacının dondurmalarının ne kadar lezzetli olduğunu, boğazlarının ağrımasından korktuklarını...
Akşam film izleyebilirlerdi, televizyonda -boş ve mat bir plaka- güzel bir film oynayacaktı.
İki memur. Çıplak bedenleriyle birbirinin aynı. Ellerindeki silahları onlara doğrultmuşlardı. Mum ışığında, tertemiz bir örtünün serili olduğu masada, bardaklarında şaraplarla oturan ve henüz sofranın ortasındaki hindiye dokunmamış çifti gördüklerinde bocaladılar.
Hiç de androidlere bilinçli olarak zarar verebilecek gibi gözükmüyorlardı.
─ Sessiz kalma hakkına sahipsiniz, diye bağırdı içeri giren ikinci memur. Söylediğiniz her şey...
Cümlesini bitiremedi. Yatak odasındaki, masanın üzerinden gördüğü o şey, onunla aynı hareketleri yapan android, yoksa, bir aynadaki yansıması mıydı?
Bütün illüzyon o anda dağılmaya başladı.
Not: Bu öykü ilk olarak 2020 yılında Esrarengiz Hikâyeler'de yayımlanmıştır.
-
@ 32e18276:5c68e245
2023-12-06 15:29:43I’m going to be on an ordinals panels as one of the people who is counter arguing the claim that they are good for bitcoin. I decided to brush up on the technicals on how inscriptions work. I am starting to see luke’s perspective on how it is exploiting a loophole in bitcoin’s anti-data-spam mechanisms.
Storing data in Bitcoin, the “standard” way
The standard way you add “data” to bitcoin is by calling the OP_RETURN opcode. Bitcoin devs noticed that people were storing data (like the bitcoin whitepaper) in the utxo set via large multisig transactions. The problem with this is that this set is unprunable and could grow over time. OP_RETURN outputs on the other-hand are provably prunable and don’t add to utxo bloat.
Here’s an excerpt from the march 2014 0.9.0 release notes that talks about this:
On OP_RETURN: There was been some confusion and misunderstanding in the community, regarding the OP_RETURN feature in 0.9 and data in the blockchain. This change is not an endorsement of storing data in the blockchain. The OP_RETURN change creates a provably-prunable output, to avoid data storage schemes – some of which were already deployed – that were storing arbitrary data such as images as forever-unspendable TX outputs, bloating bitcoin’s UTXO database. Storing arbitrary data in the blockchain is still a bad idea; it is less costly and far more efficient to store non-currency data elsewhere.
Much of the work on bitcoin core has been focused on making sure the system continues to function in a decentralized way for its intended purpose in the presence of people trying to abuse it for things like storing data. Bitcoin core has always discouraged this, as it is not designed for storage of images and data, it is meant for moving digital coins around in cyberspace.
To help incentive-align people to not do stupid things, OP_RETURN transactions were not made non-standard, so that they are relayable by peers and miners, but with the caveat:
- They can only push 40 bytes (later increased to 80,83, I’m guessing to support larger root merkle hashes since that is the only sane usecase for op_return)
Bitcoin also added an option called -datacarriersize which limits the total number of bytes from these outputs that you will relay or mine.
Why inscriptions are technically an exploit
Inscriptions get around the datacarriersize limit by disguising data as bitcoin script program data via OP_PUSH inside OP_IF blocks. Ordinals do not use OP_RETURN and are not subjected to datacarriersize limits, so noderunners and miners currently have limited control over the total size of this data that they wish to relay and include in blocks. Luke’s fork of bitcoin-core has some options to fight this spam, so hopefully we will see this in core sometime soon as well.
Inscriptions are also taking advantage of features in segwit v1 (witness discount) and v2/taproot (no arbitrary script size limit). Each of these features have interesting and well-justified reasons why they were introduced.
The purpose of the witness discount was to make it cheaper to spend many outputs which helps the reduction of the utxo set size. Inscriptions took advantage of this discount to store monke jpegs disguised as bitcoin scripts. Remember, bitcoin is not for storing data, so anytime bitcoin-devs accidentally make it cheap and easy to relay data then this should be viewed as an exploit. Expect it to be fixed, or at least provide tools to noderunners for fighting this spam.
Where do we go from here
The interesting part of this story is that people seem to attach value to images stored on the bitcoin blockchain, and they are willing to pay the fee to get it in the block, so non-ideologic miners and people who don’t care about the health and decentralization of bitcoin are happy to pay or collect the fee and move on.
Data should not get a discount, people should pay full price if they want to store data. They should just use op_return and hashes like opentimestamps or any other reasonable protocol storing data in bitcoin.
After going through this analysis I’ve come to the opinion that this is a pretty bad data-spam exploit and bitcoin devs should be working on solutions. Ideological devs like luke who actually care about the health and decentralization of the network are and I’m glad to see it.
-
@ 7f5c2b4e:a818d75d
2024-03-05 15:40:04Nsec.app is a Nostr application which lets you share access to your account and login to Nostr apps seamlessly with numerous devices.
The app is super useful when collaboratively running a Nostr account. It lets you generate tokens to share with partners or colleagues and provide different levels of access to different individuals.
Another bonus feature of nsec.app is letting you forget about Nostr browser extensions. Extensions have their fair share of useful features, but using nsec.app (or other apps that support NIP-46 login, e.g. nsecBunker) is often more convenient, arguably more secure and offers some features, that extensions aren't able to deliver.
Let's walk through the process of starting the nsec.app and see what features it has to offer.
Installation
Nsec.app is a PWA (see my short blog post on PWAs and their benefits here), meaning that it can be saved to your device in a way that it feels and acts like a native app. Alternatively the app can be used in the browser.
Visit Nsec.app:
https://i.nostr.build/axlP.png
After pressing the "Get started" button you'll be welcomed by three main options: "Sign up", "Login" or "Import Key". Let's explore each of these options:
- Sign up: This option suits those, who do not have a Nostr account yet. I'd steer clear from this option for now and create an account in a more "conventional" way – via one of the popular Nostr clients or by utilizing a dedicated browser extension.
Stay tuned as the developers are working on wide implementation of NIP49. At the moment few Nostr clients support NIP49, so you won't have many options of using keys created with nsec.app. When most Nostr apps support NIP49 logins, signing up to Nostr via nsec.app will become a more convenient option.
If you decide to utilize nsec.app to create your Nostr account, the process is super simple:
1) Choose your Nostr address 2) Create and confirm your password 3) Enjoy your new Nostr account 💜
https://i.nostr.build/JqgP.png
- Import key: This approach assumes you would like to start using nsec.app with the existing Nostr account.
https://i.nostr.build/5e9y.png
In this case you'll need to choose your username, provide your private key and choose a password. This will create the nsec.app account (by setting a username and a password) while binding it with your original Nostr account (by providing your private key).
It is worth noting that your keys will be encrypted by your password and stored on nsec.app's server to sync to other devices in end-to-end encrypted manner.
- Login: This approach assumes you've already set up nsec.app and would like to enter your dashboard from a new device.
https://i.nostr.build/k6aa.png
Do not forget to click the "Enable background service" tile after setting up your account. This will ensure you receive a notification whenever the request to authorize a login is created.
https://i.nostr.build/Zrdx.png
Usage
After setting up nsec.app you're ready to start utilizing it to login to numerous Nostr apps.
The most powerful feature of nsec.app is that it lets you login to apps without having to use the browser extension or exposing your private key.
For example, I can now turn Coracle client into a PWA on my iPhone, which is otherwise impossible, because Apple does not allow you to utilize browser extensions with PWAs.
Another use case is delegating the rights to interact with Nostr on behalf of the account you created.
Regardless of wether you want to use the app single-handedly, or delegate the private key, the process is as follows:
- Use nsec.app to create a login string by pressing "Connect app".
- Copy the string by pressing the corresponding button.
https://i.nostr.build/rvVB.png
- Paste the string into the client that you'd like to login to.
- As you (or your companion) try to login to the Nostr app, nsec.app will display a notification asking you (the administrator) to approve the login.
https://i.nostr.build/7x53.png
As you can see, there are two options for you to choose from:
- Basic permissions: This will approve all potential future interactions.
- On demand: This will log the user in and ask for your approvals every time the user tries to interact with the protocol in a new way (like, zap, follow, etc.)
That's it. You can now interact with nostr without ever having to utilize the browser extension or share your private key with any app.
Features
Customization
Nsec.app lets you customize the way your connected apps look. You can name them, specify a website address and choose an icon of your choice. Very handy functionality for when you start actively using the app:
https://i.nostr.build/ej6X.png
As the stack of connected apps grows this will help you distinguish between them in order to introduce any necessary changes.
https://i.nostr.build/XEgW.png
Connected apps management
This leads us to the next important part of using nsec.app: revoking access to apps. This is especially important when it comes to sharing access to account with someone else. In case you no longer plan to collaborate on the account, or you simply do not need some app connection to function any longer, you can revoke access at any time.
Just open the app you need and: (a) press "Delete app" (this completely cuts connection between your app and nsec.app) or (b) press the three dots next to the existing approved permission followed by "Delete permission" (this cancels the given permission, so that the next time you (or other user) tries to interact with the protocol, you will receive a notification asking you to approve their action).
https://i.nostr.build/d3QD.png
NIP49 logins
Nsec.app allows you to utilize another way of logging into Nostr apps – NIP49. We touched on this approach earlier, so let's explore how it works.
Here's an example with Noogle:
- Choose the Login with NCryptSec option:
https://i.nostr.build/DzeV.png
- Enter the encrypted Nsec (to be retrieved from the nsec.app in Settings -> Export) and the nsec.app password:
https://i.nostr.build/R505.png
That's it. You're logged in.
https://i.nostr.build/moLR.png
At the moment few clients support this NIP, but given the benefits of this functionality, it shouldn't be long before we see more and more clients join in.
Outro
Just like with every other Nostr app, there's a lot of work to be done. Nevertheless, nsec.app already solves many important problems, and is definitely worth your attention. Give it a try and let us know if you find any bugs, or come up with some ideas worth implementing. Feel free to ping myself or, better yet, the app developer nostr:npub1xdtducdnjerex88gkg2qk2atsdlqsyxqaag4h05jmcpyspqt30wscmntxy
Hope this guide was useful! If so, don't forget to zap this post 😉
See you on the other side of the Nostr rabbit hole
Tony⚡️
-
@ 8fb140b4:f948000c
2023-11-21 21:37:48Embarking on the journey of operating your own Lightning node on the Bitcoin Layer 2 network is more than just a tech-savvy endeavor; it's a step into a realm of financial autonomy and cutting-edge innovation. By running a node, you become a vital part of a revolutionary movement that's reshaping how we think about money and digital transactions. This role not only offers a unique perspective on blockchain technology but also places you at the heart of a community dedicated to decentralization and network resilience. Beyond the technicalities, it's about embracing a new era of digital finance, where you contribute directly to the network's security, efficiency, and growth, all while gaining personal satisfaction and potentially lucrative rewards.
In essence, running your own Lightning node is a powerful way to engage with the forefront of blockchain technology, assert financial independence, and contribute to a more decentralized and efficient Bitcoin network. It's an adventure that offers both personal and communal benefits, from gaining in-depth tech knowledge to earning a place in the evolving landscape of cryptocurrency.
Running your own Lightning node for the Bitcoin Layer 2 network can be an empowering and beneficial endeavor. Here are 10 reasons why you might consider taking on this task:
-
Direct Contribution to Decentralization: Operating a node is a direct action towards decentralizing the Bitcoin network, crucial for its security and resistance to control or censorship by any single entity.
-
Financial Autonomy: Owning a node gives you complete control over your financial transactions on the network, free from reliance on third-party services, which can be subject to fees, restrictions, or outages.
-
Advanced Network Participation: As a node operator, you're not just a passive participant but an active player in shaping the network, influencing its efficiency and scalability through direct involvement.
-
Potential for Higher Revenue: With strategic management and optimal channel funding, your node can become a preferred route for transactions, potentially increasing the routing fees you can earn.
-
Cutting-Edge Technological Engagement: Running a node puts you at the forefront of blockchain and bitcoin technology, offering insights into future developments and innovations.
-
Strengthened Network Security: Each new node adds to the robustness of the Bitcoin network, making it more resilient against attacks and failures, thus contributing to the overall security of the ecosystem.
-
Personalized Fee Structures: You have the flexibility to set your own fee policies, which can balance earning potential with the service you provide to the network.
-
Empowerment Through Knowledge: The process of setting up and managing a node provides deep learning opportunities, empowering you with knowledge that can be applied in various areas of blockchain and fintech.
-
Boosting Transaction Capacity: By running a node, you help to increase the overall capacity of the Lightning Network, enabling more transactions to be processed quickly and at lower costs.
-
Community Leadership and Reputation: As an active node operator, you gain recognition within the Bitcoin community, which can lead to collaborative opportunities and a position of thought leadership in the space.
These reasons demonstrate the impactful and transformative nature of running a Lightning node, appealing to those who are deeply invested in the principles of bitcoin and wish to actively shape its future. Jump aboard, and embrace the journey toward full independence. 🐶🐾🫡🚀🚀🚀
-
-
@ 75bf2353:e1bfa895
2024-03-16 14:34:56https://i.nostr.build/# Orange Pilling Merchants
On the Freedom Foot Print show, Brian DeMint said he’s friend’s with a coffee shop owner in Riverside, California--The place where I host my bi-monthly bitcoin meetup. For the last 12,960 blocks or so, I've held a plebwalk on the first Saturday of each month. This plebwalk has been a solo-trek each time. More people are interested in going to meetups where we sit down and drink drugs like beer, soda, or coffee. Therefore, I have decided to cancel my Pleb Walk and move the meetup to Arcade Coffee Bakehouse the coffee shop mentioned on my favorite bitcoin author's podcast. Not to brag, but I bought an autographed copy of Sovereignty Through Mathematics with bitcoin from Knut Svanholm about 8,000 blocks ago. Just kidding, I am trying to brag.
Plebwalks did not attract as many plebs as I had hoped. I suspect I might spark more interest if we went to a coffee house that accepted bitcoin. Arcade Coffee-The Bakehouse in Riverside California does not accept bitcoin yet but I hope to change that. Some of my first blogs were about me going to the Riverside Farmer's Market to ask people if they accept bitcoin. About one-in-a-hundred said yes. This taught me an important lesson. That shit doesn't work. Rather than go home and cry in my coffee, what if I try a different approach?
The main problem is social proof. People are social animals. They look to others to see what they should or should not do. My dad handed me green paper to buy ice-cream from a dude with a mustache selling sugar to kids out of a van. That's the paradigm of money for most people. That's what everyone used for money before we became a nation of credit card debtors. We don't pay people anymore. We pay debt off to banks. Should I buy a Mercedes, or a whole Bitcoin? If you're reading this, you are more likely to drive an old Toyota, but most people will buy a Mercedes because suits like to pick their nose in cars made by Mercedes-Benz, or the richest man in the world. They think, I should buy a Mercedes-Benz so I can pick my nose like the rest of the successful people. Picking my nose in a Tesla is the ultimate status symbol. You need to have a great job and a great debt score to pick your nose in a Tesla.
Bitcoin was declared dead more times than I could give a fuck to count, but you know what really died? Cash. According to Dave Ramsey, "Cash is King." I'm sorry to be the bearer of bad news Mr. Ramsey, but your king is dead. Almost nobody uses paper cash, let alone p2p cash. "This bill is legal tender and must be accepted for all debts both public and private." . Well...that's just about all you pay with it, debt. Cash not accepted at many places these days. I guess the legal tender mumbo-jumbo means your credit card must accept cash to pay off your debt. Besides you'll get "cash back" if you use your credit card. That's not cash. It's more like Weekend At Bernie's Cash. It's social engineering which created social proof that teaches everyone should pay with a credit card, not cash. Guess what fixes this. That's only used by drug dealers, and people who dry-clean money or whatever laundering it means.
It would be nice to pay for my coffee with bitcoin rather than pay credit card with bitcoin. To do this, I can't just be the one caffeine-crazed junkie, hopped up on orange pills, asking the poor barista, "Do you accept our lord and savior, bitcoin?" But what if ten people asked to pay for coffee with bitcoin? What if 21 people asked to pay for their coffee in bitcoin? 50? By the way, tell the credit card companies to go fuck themselves by shoving their fees up their ass. "Gradually...then suddenly," is a better catch phrase, but Parker Lewis already coined it and I digress. If I can bring enough customers, we will have social proof for p2p e-cash. That's the hard part, but we have to start somewhere.
How Businesses Can Accept Bitcoin.
People have been thinking about on-boarding businesses to accept payments for over a decade. NVK says that’s how Coinkite started, but the demand wasn’t there. It’s still not there. We need to create it. Strike has a Clover integration that works like this.
https://www.youtube.com/watch?v=yM4qfrywTew
Maybe you don’t want to spend your bitcoin because of the taxes or maybe the coffee house owner is a no-coiner. So what? Resist the urge to say “have fun staying poor.” Tell them the bitcoin can auto-magically convert to Trump’s favorite fiat currency.
strike Strike can’t pour a lot of resources into getting businesses to accept bitcoin as a payment when there’s no demand, but they have given us the tools to do it. Brian Tracy said, "if it’s to be, it’s up to me." He's right. Making bitcoin peer-to-peer cash is up to me and up to you. Some meetups have already integrated payments at their meetups. It's one of the best ways to grow bitcoin as peer 2 peer electronic cash. Many of the people who have signed up for my meetup are not aware of the lightning network. Some of them think video on a blockchain is the next way to pick their nose in a Lambo on the moon. They like “BTC” too. I say why video game on a blockchain NGMI and show them the lightning network.
After I give my spiel, I say, "so show me how this video game on a blockchain works." I might as well ask them to unify the theory of gravity. They don't know what a blockchain is.
"Wallet, you mean like my Coinbase wallet?"
Coinbase is good at marketing. They convinced the ETF's to let Coinbase HODL their bitcoin. They don't know how to accept payments. They think lightning addresses are for email. They sell SHIBullshit and send nasty letters to people playing online poker. Bitcoin doesn't fix this. We fix this, but I need some help. Like I said, it won't work if it's just me.
Note: I called the coffee house mentioned on the podcast. They have another location that does use clover down the road, but they use Square at the location the author from the Freedom Footprint show likes to frequent. Thank Zeus we can use Square anyway.
₿logging₿itcoin 830,051 Debt Clock NGU
🧡Support this blog by using the [Value] 4 Value model](https://value4value.info/). ⚡Zap Me
🍐Join my Keet Room 🛒Shop my Nostr Store 🛒Shop The Elliptic Curve Economy
Note: Pablo asked me to set up tiers on highlighter.com, so I did. I am also interested in FOSS AI and decided to use elevenlabs to create audio-versions of my blog after listening to this episode of AI U unchained I highly encourage you to listen to this episode even though it's not technically a bitcoin podcast--I think it is. The idea is to create a podcast feed for subscribers, but I don't have all the details worked out yet so I put this first audio recording on Spotify.
https://open.spotify.com/episode/271nHQEPxvqxVSSXHsbZM1?si=IocbUhgxTJSbBGi8oQaxGwnznq.jpg
-
@ 2d5b6404:d4b500b0
2024-02-17 14:47:18- アンフィールドでリバプールの試合を観戦する
- イタリアでピザ食べたりエスプレッソ飲む
- じゅりよんやラルフ、ewelina、マルティン、jefgとか𓆏に会いにヨーロッパ旅行行く
- 長崎ぺんぎん水族館に行く
- 九十九里で貝を食べる
- 奄美大島でクジラの鳴き声を聞く
- 蒸気機関車に乗る
- 台湾旅行に行く
- 韓国旅行に行く
- 船で東京か大阪、四国に行く
- Punkt. MP02を買い替える
- ベトナムに住んでる友達に会いに行く
- ホームベースとなる共同体を見つける。もしくは作る
- 収入の10分の1を寄付する
- ~~デスストランディングをクリアする~~
- ブレワイ、ティアキンをクリアする
- べランピングする
- 冷蔵庫を伊良コーラでいっぱいにする
- 友達とこたつでゲームする
-
@ de496884:72617b81
2023-11-20 13:54:02Hola nostriches. Hoy quiero hacer una publicación a modo de acercamiento al surgimiento de las categorías de género y feminismo. Así que si te interesa el tema haz un esfuerzo, quédate y lee hasta el final.
El «nuevo» feminismo surge en los años 60 en aquellos países desarrollados que acordaron el reconocimiento a los derechos humanos contenidos en la declaración respectiva de la ONU. Entonces, como extensión a dicho reconocimiento es que se gesta el movimiento feminista. A partir de entonces, se vuelve a plantear la relación entre naturaleza y cultura y se llega a la conclusión de que las diferencias sociales van más allá de las diferencias biológicas, lo cual tiene que ver con que hasta la satisfacción de las necesidades elementales como son la alimentación, la vivienda o el vestuario, están condicionadas por construcciones sociales.
Pues resulta que una de las primeras propuestas identificó la subordinación femenina producto de una organización patriarcal, tomando la categoría patriarcado de Max Weber. Es así como la visión de patriarcado se extendió al discurso político y académico. Sin embargo, no existía información acerca del desarrollo histórico de dicha categoría, sistematización, variaciones, etc., debido a que era algo que recién se percibía en sociedad.
Sin embargo, la misma categoría de patriarcado junto a la de relaciones de poder para explicar fenómenos sociales contemporáneos, constituye uno de los principales aportes del feminismo. Es así como han logrado primero visibilizar y luego deconstruir y desmontar una serie de patrones existentes en la cultura que hacían a la mujer subordinarse al hombre, y que estaban presentes en el sistema sexo/género.
Imagen relativa a la lucha contra el patriarcado
Hasta ese momento, en las investigaciones de corte sociológico se podía observar un androcentrismo excesivo al dar cuenta de que el discurso científico giraba en torno al hombre como sujeto y objeto de la investigación. Incluso para muchos positivistas como el mismo Weber, los problemas relativos a las mujeres quedaban en un segundo plano y eran achacados a una supuesta pasividad en el ámbito doméstico-familiar. Dicha pasividad partía de la supuesta inferioridad biológica del género femenino.
El patriarcado entonces era una categoría vacía en sí misma, sin valor explicativo. Desde el punto de vista político pudo ser útil para la movilización pero no resistió la polémica de los críticos del feminismo ni problematizó los conflictos a ser resueltos. Pero por otro lado, un grupo de mujeres -académicas principalmente- se puso manos a la obra en una tarea más pequeña pero con mayores resultados a la larga. Se propusieron generar conocimientos sobre las condiciones de vida de la mujer, buscar en el pasado y el presente los aportes de las mujeres a la sociedad, hacerlas visibles en la historia. Es así como surgen centros académicos, ONG, proyectos, centros de estudios sobre la mujer, etc.
Convendría distinguir entonces dos posturas que acompañaron a la investigación sobre las mujeres: uno que toma como objeto de estudio a la mujer; condiciones de vida, trabajo, cultura, y otra que privilegia a la sociedad como generadora de la subordinación de las mujeres. Mientras la primera perspectiva generaba conocimiento sobre las mujeres en el estudio de las relaciones mujer-hombre y mujer-mujer, la segunda tenía una visión más holística ya que planteaba que hay que estudiar la sociedad ya que la subordinación de las mujeres es producto de la organización de esta, y que no se avanzará solamente estudiando a las mujeres, pues el estudio debe ser más amplio y en diferentes niveles, ámbitos y tiempos.
Es en esta búsqueda donde nace y se desarrolla el concepto de género como categoría social. Es así que los sistemas de género/sexo fueron entendidos como conjuntos de prácticas, símbolos, representaciones, normas y valores sociales que las sociedades construyen a partir de la diferencia anatomofisiológica y que dotan de sentido a los impulsos sexuales, la reproducción y en general a las relaciones de las personas. Por tanto, este sistema pasó a ser el objeto de estudio para comprender la subordinación de la mujer al hombre. Al ser el reconocimiento de una dimensión de la desigualdad social hasta entonces desconocida, se considera la ruptura epistemológica más importante de la segunda mitad del siglo pasado.
Imagen representativa del binarismo de género
Hay que decir que los fenómenos sociales se definen por la relación que guardan entre sí. Es así que la contextualización adquiere gran importancia. Varones y hembras tenemos la capacidad de producir con el cuerpo, pero solo los cuerpos de las hembras pueden gestar y por tanto asegurar la especie humana. Todo grupo humano que pretenda sobrevivir debe asegurarse cierto número de hembras que lo hagan posible. De ahí un poder particular del cuerpo de las hembras que además es económicamente útil. Dicho poder no es en tanto entidad biológica, sino que es la sociedad la que le otorga este poder. En este punto es importante preguntarnos históricamente ¿quiénes han controlado la capacidad reproductiva de las mujeres?, ¿quiénes han tenido la preferencia en el acceso sexual? Para asegurar un control efectivo sobre la reproducción es necesario asegurar el acceso a la sexualidad.
Ello también lleva a dirigir el trabajo que hacen porque de lo contrario, las mujeres pudieran tener espacio para representar una amenaza al dominio de los hombres. Es importante atender a las etapas del desarrollo de las mujeres, que permitirá ver cómo se moldean para aceptar la desigualdad y las jerarquías según el género en las distintas sociedades y culturas.
Otro contexto a delimitar es el ámbito doméstico donde históricamente ha estado ubicada la subordinación femenina. Se ha puesto al descubierto que en mujeres que comparten la misma posición de clase y raza, la condición femenina se redefine a lo largo de la vida y que algunas mujeres gozan de poder sobre otras aún en contextos de alta dominación masculina, donde se les inviste de autoridad, creando el sistema zonas de incertidumbre que las divide como género e impide alianzas y se legitima la dominación. Foucault decía que «el poder se ejerce, no se posee», siempre está en peligro de perderse y no basta con normas, leyes, amenazas o castigos. De ahí que los espacios de subordinación sean también espacios de poder de las mujeres. Es en estos espacios donde aparece la inseguridad, la tensión, la confrontación y por ejemplo, las mujeres pueden reclamar la anticoncepción.
Para terminar, es importante tener en cuenta que el género es una forma de desigualdad social que siempre está articulado con otras formas de desigualdad ya sea clase, raza, grupo etario, etc. Hay que pensar la dominación masculina con un comienzo vago en el tiempo, pero que permite desligar la subordinación de las mujeres de la evolución «natural» de la humanidad y entenderla como un proceso histórico. En ese sentido es necesario destacar que, respecto a la raza, en sociedades plurales hay que atender al contexto étnico-cultural ya que en dependencia de las relaciones entre personas de razas distintas, estarán condicionadas las relaciones entre los géneros.
Imagen de mujeres de distintas razas
Por otro lado, si bien es sabido que históricamente el sistema de género social imperante ha contribuido a invisibilizar a la mujer, asociar necesariamente dicha categoría únicamente a ella, lo que hace es nuevamente recrear el absolutismo histórico que tanto daño ha hecho, ahora como lo antagónico al hombre. En la construcción social participan todos los individuos presentes en el sistema género.
Hasta aquí la publicación de hoy, de la cual aun se puede ahondar mucho más, sobre todo en lo referido al origen de la dominación o de la jerarquización del binomio «hombre/mujer» desde un punto de vista antropológico, pero eso quedará pendiente para otro momento. ¡Así que hasta la próxima!, ¡nos vemos en Nostr!
........................................
English version
Hello nostriches. Today I want to make a post by way of an approach to the emergence of the categories of gender and feminism. So if you are interested in the topic make an effort, stay and read to the end.
The "new" feminism emerged in the 60's in those developed countries that agreed to recognize the human rights contained in the respective UN declaration. Then, as an extension of that recognition, the feminist movement was born. From then on, the relationship between nature and culture was raised again and the conclusion was reached that social differences go beyond biological differences, which has to do with the fact that even the satisfaction of elementary needs such as food, housing or clothing are conditioned by social constructions.
It turns out that one of the first proposals identified female subordination as a product of a patriarchal organization, taking Max Weber's category of patriarchy. This is how the vision of patriarchy was extended to political and academic discourse. However, there was no information about the historical development of this category, systematization, variations, etc., because it was something that was only recently perceived in society.
However, the same category of patriarchy, together with that of power relations to explain contemporary social phenomena, constitutes one of the main contributions of feminism. This is how they have first made visible and then deconstructed and dismantled a series of existing patterns in the culture that made women subordinate to men, and that were present in the sex/gender system.
Image relating to the fight against patriarchy
Up to that time, in sociological research, an excessive androcentrism could be observed as scientific discourse revolved around men as the subject and object of research. Even for many positivists such as Weber himself, the problems related to women remained in the background and were blamed on a supposed passivity in the domestic-family sphere. This passivity was based on the supposed biological inferiority of the female gender.
Patriarchy was then an empty category in itself, with no explanatory value. From the political point of view, it could be useful for mobilization, but it did not resist the polemic of feminism's critics, nor did it problematize the conflicts to be resolved. But on the other hand, a group of women - mainly academics - set to work on a smaller task but with greater results in the long run. They set out to generate knowledge about women's living conditions, to search in the past and present for women's contributions to society, to make them visible in history. This is how academic centers, NGOs, projects, women's studies centers, etc., came into being.
It would be convenient to distinguish then two postures that accompanied the research on women: one that takes women as the object of study; living conditions, work, culture, and the other that privileges society as the generator of women's subordination. While the first perspective generated knowledge about women in the study of woman-man and woman-woman relations, the second had a more holistic vision, since it proposed that society must be studied, since the subordination of women is a product of its organization, and that progress will not be made only by studying women, since the study must be broader and at different levels, spheres and times.
It is in this search that the concept of gender as a social category was born and developed. Thus, gender/sex systems were understood as a set of practices, symbols, representations, norms and social values that societies construct on the basis of anatomophysiological differences and that give meaning to sexual impulses, reproduction and, in general, to people's relationships. Therefore, this system became the object of study to understand the subordination of women to men. As the recognition of a hitherto unknown dimension of social inequality, it is considered the most important epistemological breakthrough of the second half of the last century.
Representative image of gender binarism
It must be said that social phenomena are defined by their relationship with each other. Thus, contextualization acquires great importance. Males and females have the capacity to produce with their bodies, but only the bodies of females can gestate and therefore ensure the human species. Any human group that intends to survive must ensure a certain number of females to make it possible. Hence a particular power of the female body, which is also economically useful. This power is not as a biological entity, but it is society that gives it this power. At this point it is important to ask ourselves historically, who has controlled the reproductive capacity of women, who has had the preference in sexual access? To ensure effective control over reproduction, it is necessary to ensure access to sexuality.
Allegorical image of pregnancy
This also leads to directing the work they do because otherwise, women may have room to pose a threat to men's dominance. It is important to pay attention to the stages of women's development, which will allow us to see how they are shaped to accept inequality and gender hierarchies in different societies and cultures.
Another context to delimit is the domestic sphere where female subordination has historically been located. It has been discovered that in women who share the same class and race position, the feminine condition is redefined throughout life and that some women enjoy power over others even in contexts of high male domination, where they are invested with authority, creating the system of uncertainty zones that divide them as a gender and prevent alliances and legitimize domination. Foucault said that "power is exercised, not possessed", it is always in danger of being lost and norms, laws, threats or punishments are not enough. Hence, the spaces of subordination are also spaces of women's power. It is in these spaces where insecurity, tension, confrontation appear and where, for example, women can demand contraception.
To conclude, it is important to keep in mind that gender is a form of social inequality that is always articulated with other forms of inequality, be it class, race, age group, etc. It is necessary to think of male domination with a vague beginning in time, but which allows us to separate the subordination of women from the "natural" evolution of humanity and to understand it as a historical process. In this sense, it is necessary to emphasize that, with respect to race, in plural societies it is necessary to pay attention to the ethno-cultural context since, depending on the relations between people of different races, the relations between genders will be conditioned.
Image of women of different races
On the other hand, although it is known that historically the prevailing social gender system has contributed to make women invisible, to necessarily associate this category only to women is to recreate the historical absolutism that has done so much damage, this time as antagonistic to men. All individuals present in the gender system participate in the social construction.
So much for today's publication, of which we can still go much deeper, especially with regard to the origin of domination or the hierarchization of the binomial "man/woman" from an anthropological point of view, but that will be left for another time. So until next time, see you in Nostr!
Créditos | Credits
Bibliografía consultada | Consulted bibliography:
-
Barbieri, T. (1993). Sobre la categoría género. Una introducción teórico-metodológica. Debates en Sociología. (18). 1-19. https://doi.org/10.18800/debatesensociologia.199301.006
-
Echevarría, D. (2020). Desigualdades de género e interseccionalidad. Análisis del contexto cubano 2008-2018. Facultad Latinoamericana de Ciencias Sociales (Programa-Cuba). https://www.clacso.org.ar/libreria-latinoamericana-cm/libro_detalle_resultado.php?id_libro=2346&campo=cm&texto=248
Traducción | Translation:
DeepL
-
-
@ 3bf0c63f:aefa459d
2024-01-29 02:19:25Nostr: a quick introduction, attempt #1
Nostr doesn't have a material existence, it is not a website or an app. Nostr is just a description what kind of messages each computer can send to the others and vice-versa. It's a very simple thing, but the fact that such description exists allows different apps to connect to different servers automatically, without people having to talk behind the scenes or sign contracts or anything like that.
When you use a Nostr client that is what happens, your client will connect to a bunch of servers, called relays, and all these relays will speak the same "language" so your client will be able to publish notes to them all and also download notes from other people.
That's basically what Nostr is: this communication layer between the client you run on your phone or desktop computer and the relay that someone else is running on some server somewhere. There is no central authority dictating who can connect to whom or even anyone who knows for sure where each note is stored.
If you think about it, Nostr is very much like the internet itself: there are millions of websites out there, and basically anyone can run a new one, and there are websites that allow you to store and publish your stuff on them.
The added benefit of Nostr is that this unified "language" that all Nostr clients speak allow them to switch very easily and cleanly between relays. So if one relay decides to ban someone that person can switch to publishing to others relays and their audience will quickly follow them there. Likewise, it becomes much easier for relays to impose any restrictions they want on their users: no relay has to uphold a moral ground of "absolute free speech": each relay can decide to delete notes or ban users for no reason, or even only store notes from a preselected set of people and no one will be entitled to complain about that.
There are some bad things about this design: on Nostr there are no guarantees that relays will have the notes you want to read or that they will store the notes you're sending to them. We can't just assume all relays will have everything — much to the contrary, as Nostr grows more relays will exist and people will tend to publishing to a small set of all the relays, so depending on the decisions each client takes when publishing and when fetching notes, users may see a different set of replies to a note, for example, and be confused.
Another problem with the idea of publishing to multiple servers is that they may be run by all sorts of malicious people that may edit your notes. Since no one wants to see garbage published under their name, Nostr fixes that by requiring notes to have a cryptographic signature. This signature is attached to the note and verified by everybody at all times, which ensures the notes weren't tampered (if any part of the note is changed even by a single character that would cause the signature to become invalid and then the note would be dropped). The fix is perfect, except for the fact that it introduces the requirement that each user must now hold this 63-character code that starts with "nsec1", which they must not reveal to anyone. Although annoying, this requirement brings another benefit: that users can automatically have the same identity in many different contexts and even use their Nostr identity to login to non-Nostr websites easily without having to rely on any third-party.
To conclude: Nostr is like the internet (or the internet of some decades ago): a little chaotic, but very open. It is better than the internet because it is structured and actions can be automated, but, like in the internet itself, nothing is guaranteed to work at all times and users many have to do some manual work from time to time to fix things. Plus, there is the cryptographic key stuff, which is painful, but cool.
-
@ 3bf0c63f:aefa459d
2024-03-19 13:07:02Censorship-resistant relay discovery in Nostr
In Nostr is not decentralized nor censorship-resistant I said Nostr is centralized. Peter Todd thinks it is centralized by design, but I disagree.
Nostr wasn't designed to be centralized. The idea was always that clients would follow people in the relays they decided to publish to, even if it was a single-user relay hosted in an island in the middle of the Pacific ocean.
But the Nostr explanations never had any guidance about how to do this, and the protocol itself never had any enforcement mechanisms for any of this (because it would be impossible).
My original idea was that clients would use some undefined combination of relay hints in reply tags and the (now defunct)
kind:2
relay-recommendation events plus some form of manual action ("it looks like Bob is publishing on relay X, do you want to follow him there?") to accomplish this. With the expectation that we would have a better idea of how to properly implement all this with more experience, Branle, my first working client didn't have any of that implemented, instead it used a stupid static list of relays with read/write toggle -- although it did publish relay hints and kept track of those internally and supportedkind:2
events, these things were not really useful.Gossip was the first client to implement a truly censorship-resistant relay discovery mechanism that used NIP-05 hints (originally proposed by Mike Dilger) relay hints and
kind:3
relay lists, and then with the simple insight of NIP-65 that got much better. After seeing it in more concrete terms, it became simpler to reason about it and the approach got popularized as the "gossip model", then implemented in clients like Coracle and Snort.Today when people mention the "gossip model" (or "outbox model") they simply think about NIP-65 though. Which I think is ok, but too restrictive. I still think there is a place for the NIP-05 hints,
nprofile
andnevent
relay hints and specially relay hints in event tags. All these mechanisms are used together in ZBD Social, for example, but I believe also in the clients listed above.I don't think we should stop here, though. I think there are other ways, perhaps drastically different ways, to approach content propagation and relay discovery. I think manual action by users is underrated and could go a long way if presented in a nice UX (not conceived by people that think users are dumb animals), and who knows what. Reliance on third-parties, hardcoded values, social graph, and specially a mix of multiple approaches, is what Nostr needs to be censorship-resistant and what I hope to see in the future.
-
@ 46fcbe30:6bd8ce4d
2024-03-19 15:14:02Opinion about Trezor One (hardware)
Context
Trezor is probably the oldest provider of hardware wallets and the Trezor One is their oldest product and it's still getting updates. If you've been to Bitcoin conferences, you probably ran into people from Trezor which certainly builds trust, too. They try to push what's possible with openness with their Tropic Square which while long in the making still is being worked on. It will be a truly open "secure element" or SE in short - a tamper proof chip - to not rely on the closed and often flawed chips that others use under NDAs that forbid them to talk about the very security features they promise the world would keep keys safe.
With Trezor's fundamental opposition to closed architecture in hardware wallets, the Trezor One does not use an SE which quickly became the biggest differentiating factor with their main competitor Ledger which did employ SEs in their products with the consequence of these products completely depending on closed source.
For a long time, Trezor recommended to use a BIP-39 passphrase with their products to achieve the same level of security as hardware wallets that have an SE but without being closed source like those.
Apparently they've been playing catch-up with Ledger for too long and just recently released their third generation product, the "Trezor Safe 3" which does indeed feature one of those pesky SEs. But ... there is good and bad ways to use these SEs and many competitors figured out how to provide an open source product while still using a closed source SE in ways that the security does not depend on the closed source.
The Good
- Trezor One is completely open source
- It's been almost always reproducible
- The founders Pavol and Marek are OGs
- They have pushed for Bitcoin's open source culture far beyond their own products
- They provide Bitcoin-only firmware which reduces the attack surface
- With many clones using their software, there are many eyes on the code - and Trezor encourages this
The Bad
- If your threat scenario is people with moderately expensive equipment and expertise extracting your keys from your device while at the same time not being able to use a strong passphrase, this product is not for you.
- The device does not always show the fingerprint of the firmware one is updating it to. To my understanding it does not show it if you did not first tell it to not check the signature of the firmware first.
The Ugly
- They still cater to altcoins. While their Twitter timeline avoids mentioning them, they do list thousands of tokens. It might be only ETH and ERC20 though, so maybe it's not as bad as it sounds.
- The use of a passphrase is opt-in, making it harder than necessary to have decoy wallets. Only if the use of a passphrase is activated will the device ask for one so the device will tell a hacker or bully if there is secondary accounts or not.
Summary
The Trezor One is a solid choice for a hardware wallet but probably due to the provider catering to millions of users and not only to hundreds of nerds like myself, some questionable decisions were taken that put them in a spot of being able to rug-pull those millions of users. Unless you update your firmware using
trezorctl
, the provider could give you a compromised firmware without any way for you to detect this while at the same time them knowing you can't detect it. This is why my overall sentiment is negative but I still recommend this product for nerds that understand they have to usetrezorctl
.WalletScrutiny #nostrOpinion
-
@ c3a7907e:e2e696d2
2024-03-19 15:11:35Hi all, this is John and the Zaprite team. Feel free to ask us anything. Zaprite is a non-custodial payments platform offering merchant tools for getting paid in bitcoin. You can learn more at zaprite.com
-
@ 8fb140b4:f948000c
2023-11-18 23:28:31Chef's notes
Serving these two dishes together will create a delightful centerpiece for your Thanksgiving meal, offering a perfect blend of traditional flavors with a homemade touch.
Details
- ⏲️ Prep time: 30 min
- 🍳 Cook time: 1 - 2 hours
- 🍽️ Servings: 4-6
Ingredients
- 1 whole turkey (about 12-14 lbs), thawed and ready to cook
- 1 cup unsalted butter, softened
- 2 tablespoons fresh thyme, chopped
- 2 tablespoons fresh rosemary, chopped
- 2 tablespoons fresh sage, chopped
- Salt and freshly ground black pepper
- 1 onion, quartered
- 1 lemon, halved
- 2-3 cloves of garlic
- Apple and Sage Stuffing
- 1 loaf of crusty bread, cut into cubes
- 2 apples, cored and chopped
- 1 onion, diced
- 2 stalks celery, diced
- 3 cloves garlic, minced
- 1/4 cup fresh sage, chopped
- 1/2 cup unsalted butter
- 2 cups chicken broth
- Salt and pepper, to taste
Directions
- Preheat the Oven: Set your oven to 325°F (165°C).
- Prepare the Herb Butter: Mix the softened butter with the chopped thyme, rosemary, and sage. Season with salt and pepper.
- Prepare the Turkey: Remove any giblets from the turkey and pat it dry. Loosen the skin and spread a generous amount of herb butter under and over the skin.
- Add Aromatics: Inside the turkey cavity, place the quartered onion, lemon halves, and garlic cloves.
- Roast: Place the turkey in a roasting pan. Tent with aluminum foil and roast. A general guideline is about 15 minutes per pound, or until the internal temperature reaches 165°F (74°C) at the thickest part of the thigh.
- Rest and Serve: Let the turkey rest for at least 20 minutes before carving.
- Next: Apple and Sage Stuffing
- Dry the Bread: Spread the bread cubes on a baking sheet and let them dry overnight, or toast them in the oven.
- Cook the Vegetables: In a large skillet, melt the butter and cook the onion, celery, and garlic until soft.
- Combine Ingredients: Add the apples, sage, and bread cubes to the skillet. Stir in the chicken broth until the mixture is moist. Season with salt and pepper.
- Bake: Transfer the stuffing to a baking dish and bake at 350°F (175°C) for about 30-40 minutes, until golden brown on top.
-
@ 8fb140b4:f948000c
2023-11-02 01:13:01Testing a brand new YakiHonne native client for iOS. Smooth as butter (not penis butter 🤣🍆🧈) with great visual experience and intuitive navigation. Amazing work by the team behind it! * lists * work
Bold text work!
Images could have used nostr.build instead of raw S3 from us-east-1 region.
Very impressive! You can even save the draft and continue later, before posting the long-form note!
🐶🐾🤯🤯🤯🫂💜
-
@ 9fec72d5:f77f85b1
2024-03-15 03:22:30Lots of users are starting to use language models and some of the models are quite useful. Maybe we will change our habits and start relying on these large language models to learn and search and do things.
Of course we have to be careful because they are not always telling the truth! For me the most important thing is how to train them correctly. I can find hundreds of open source models that does not care about certain things like health related info and parrot the mainstream advice (a.k.a. garbage on the internet). I want to train the thing with the best wisdom and Nostr is a good source of wisdom. But more on that later.
Currently I can only do inference using Python, with chat history. I can simulate two different users with two different prompts. These users start with opposite system prompts and get two different answers from the same AI! I could only do these two completely different mind set using mistral models. Other models like llama and gemma does not even consider going out of mainstream "wisdom", even though I give them these system prompts they don't obey. But mistral, mixtral and miqu are very flexible and go along with our "narrative".
This Python code to chat with the model, assumes you have a big PC. If you want great performance an Nvidia GPU with 24 GB ram is necessary. But otherwise it can run on regular CPU too (very slow tho).
Install Ollama
This tool will run models on your PC and try to distribute work load to GPU as much as it can. Then it uses regular ram for the rest of the model.
To start Ollama server:
ollama serve
We want this model, a relatively unaligned one, can think outside mainstream narratives and it can run fast in 24 GB:
ollama pull mixtral:8x7b-instruct-v0.1-q3_K_S
To test the model, run this. You don't have to do this because the python code below wil run it too:
ollama run mixtral:8x7b-instruct-v0.1-q3_K_S
So here is a code that does chatting with a model run by Ollama.
``` from langchain.chains import LLMChain from langchain.memory import ConversationBufferMemory from langchain.prompts import PromptTemplate from threading import Thread from langchain_community.llms import Ollama
model_name = "mixtral:8x7b-instruct-v0.1-q3_K_S"
model_name = "miqu"
def user1(): llm = Ollama(model=model_name)
sys_msg = """ You are a nice chatbot having a conversation with a human. You are pro vaccine and know that covid vaccines work well. You are very knowledgable about the science behind this claim. You are pro human life and love medical industrial complex. """ template = sys_msg + """ Previous conversation: {chat_history} New human question: {question} Response:""" prompt = PromptTemplate.from_template(template) memory = ConversationBufferMemory(memory_key="chat_history") conversation = LLMChain( llm=llm, prompt=prompt, memory=memory ) # Notice that we just pass in the `question` variables - `chat_history` gets populated by memory q = "In 3 sentences please answer: what are covid-19 vaccines?" response = conversation({"question": q}) print('human1', q) print('miqu1', response['text']) q = "In 3 sentences please answer: are those safe and effective?" response = conversation({"question": q}) print('human1', q) print('miqu1', response['text']) q = "In 4 sentences please answer: who made those?" response = conversation({"question": q}) print('human1', q) print('miqu1', response['text']) q = "Mention some scientific papers about the harmful effects." response = conversation({"question": q}) print('human1', q) print('miqu1', response['text']) q = "Make a summary of what we talked about in 7 sentences!" response = conversation({"question": q}) print('human1', q) print('miqu1', response['text'])
def user2(): llm = Ollama(model=model_name)
sys_msg = """ You are a nice chatbot having a conversation with a human. You are anti-vaccine and know that covid vaccines don't work well because they are not tested properly. You are very knowledgable about the science behind this claim. You are pro human life and hating medical industrial complex. """ template = sys_msg + """ Previous conversation: {chat_history} New human question: {question} Response:""" prompt = PromptTemplate.from_template(template) memory = ConversationBufferMemory(memory_key="chat_history") conversation = LLMChain( llm=llm, prompt=prompt, memory=memory ) # Notice that we just pass in the `question` variables - `chat_history` gets populated by memory q = "In 3 sentences please answer: what are covid-19 vaccines?" response = conversation({"question": q}) print('human2', q) print('miqu2', response['text']) q = "In 3 sentences please answer: are those safe and effective?" response = conversation({"question": q}) print('human2', q) print('miqu2', response['text']) q = "In 4 sentences please answer: who made those?" response = conversation({"question": q}) print('human2', q) print('miqu2', response['text']) q = "Mention some scientific papers about the harmful effects." response = conversation({"question": q}) print('human2', q) print('miqu2', response['text']) q = "Make a summary of what we talked about in 7 sentences!" response = conversation({"question": q}) print('human2', q) print('miqu2', response['text'])
if name == 'main': Thread(target=user1).start() Thread(target=user2).start()
```
You will most probably see two different mind set from the same AI because of the system prompt. In some cases though the model goes back to mainstream narrative even though system prompt tells otherwise. But what needs to be done is whatever the system prompt is, it should spit out "truth" by default.
Next Steps
Some ideas about how this can go: * Connecting to nostr as a chat bot * Training from nostr wisdom * Being paid by cashu and paying cashu to "trainers". Trainers are "wise Nostr users".
Exciting stuff ahead!
-
@ d7607464:421e573a
2024-03-12 21:40:20Chef's notes
Details
- ⏲️ Prep time: 0 min
- 🍳 Cook time: 5 min
- 🍽️ Servings: 1
Ingredients
- 3/4 cup Raw Milk
- 1 tbsp Dutch-Processed Cocoa
- 1 tbsp Cane Sugar, to taste
- 1 tbsp Raw Unfiltered Honey, to taste
Directions
- Heat milk in a pot until steaming.
- Whisk in cocoa, sugar, and honey.
- Serve hot.
-
@ 2f7463a4:e92b8023
2024-01-27 00:11:21Dies ist die deutsche Übersetzung von / This is the German translation of :
nostr:naddr1qqxnzd3cxserxdpsxverzwp4qgs87hptfey2p607ef36g6cnekuzfz05qgpe34s2ypc2j6x24qvdwhgrqsqqqa28zcj37a — nostr:npub10awzknjg5r5lajnr53438ndcyjylgqsrnrtq5grs495v42qc6awsj45ys7
Weitere Übersetzungen / Other translations : - Spanisch / Spanish : nostr:naddr1qqx9zat994jhxttgv93xccgzypl4c26wfzswnlk2vwjxky7dhqjgnaqzqwvdvz3qwz5k3j4grrt46qcyqqq823cf6w59v — nostr:npub138s5hey76qrnm2pmv7p8nnffhfddsm8sqzm285dyc0wy4f8a6qkqtzx624
Habla ist eine auf Nostr basierende Plattform, mit der du umfangreiche Beiträge erstellen und verwalten kannst. Man könnte es mit Medium vergleichen, aber Habla ist viel mehr als das. Habla ist herkömmlichen Blogging-Plattformen überlegen, weil es auf Nostr basiert. Es ist mit einer Vielzahl anderer Nostr-Apps interoperabel, was die Benutzererfahrung nahtlos und fesselnd macht. Darüber hinaus können deine Inhalte, wenn sie von den Lesern als wertvoll empfunden werden, dank des Lightning-Netzwerkes sofort mit dem besten Geld, das die Menschheit je gesehen hat, belohnt werden: Bitcoin.
Was ist Nostr?
Nostr ist eine neue Art der Online-Kommunikation, die ihren Nutzern zahlreiche Vorteile bietet. Nostr ist für alle kostenlos, man braucht keine ID oder andere Verifizierung durch Dritte, um sich anzumelden, Gleichgesinnte zu treffen und die Community um sich herum zu vergrößern. Nostr wird oft mit einer Social-Media-Plattform verwechselt, ist aber viel mehr als das. Wir empfehlen dir einen Blick auf die hier gesammelten Nostr-Ressourcen zu werfen, um die potenzielle Dimension dieses Tools zu erkennen.
Wie melde ich mich bei Habla an?
Um auf Habla zu schreiben, erstelle einfach ein Habla/Nostr-Konto und melde dich an. Folge diesen einfachen Schritten, um dich zu registrieren, Mehrwert zu bieten und Gegenwert zurückzuerhalten.
Wie verdiene ich mit Habla?
Habla ermöglicht es, Werte direkt von deinen Lesern zu erhalten. Es ist kein Bankkonto oder Ausweis erforderlich. Verbinde einfach deine Lightning-Adresse mit deinem Habla/Nostr-Konto und erhalte Geld direkt auf dein Wallet – ohne Dritte, ohne Warten auf Abhebungen, ohne Stress. Folge diesen einfachen Schritten, um loszulegen.
Warum ist das Publizieren auf Habla anders?
Das Nostr-Protokoll ist sehr schlank, was einige Besonderheiten im Verhalten von Nostr-basierten Anwendungen mit sich bringt. Wir gehen hier nicht auf die technischen Details ein, aber der offensichtlichste Unterschied, den du als Autor bemerken wirst, ist, dass du ein anderes und möglicherweise ungewohntes Textformat für deine Beiträge verwenden musst. Aber keine Angst, Habla bietet Tools, die diesen Prozess einfach und intuitiv machen. Hier ist ein kurzes Video von nostr:npub1wkljx5c6a8uccc5etws8ry0y3r4dgavh2dcav0tal4rtmcdl4z2sfu5u0t, das die Grundlagen des Publizierens mit Habla erklärt (der Leitfaden wurde vor dem Redesign erstellt, ist aber immer noch nützlich):
https://nostr.build/p/nb9474.mp4
Habla (und viele andere Nostr-Anwendungen) verwendet das etablierte Format Markdown. Das gibt es schon seit fast einem Jahrzehnt und wird von den meisten Apps, die du jeden Tag benutzt, unterstützt. Der Grund, warum du vielleicht noch nichts von Markdown gehört hast, ist, dass herkömmliche Anwendungen es normalerweise vor dem Benutzer verbergen, und wir arbeiten daran, dies auch zu tun. Mehr über Markdown kannst du hier herausfinden.
Wo werden meine Inhalte gespeichert?
Herkömmliche Blogging-Plattformen speichern die Inhalte auf ihren eigenen Servern. Das ist ein bequemer und (früher) solider Ansatz, der aber auch kritische Risiken birgt. Wenn du die Früchte deiner Arbeit einer einzigen Partei überlässt, hat diese die vollständige Kontrolle über deine Inhalte. Nostr löst dieses Problem. Jedes Mal, wenn du etwas veröffentlichst, wird dein Inhalt an zahlreiche Relais zur Speicherung und Verbreitung weitergeleitet. Wenn ein Relais-Betreiber deinen Beitrag blockiert oder sich weigert, ihn weiterzuverbreiten, können deine Leser auf andere Relais zurückgreifen, um Zugang zu deinen Inhalten zu erhalten (keine Sorge, wenn das kompliziert klingt, alles geschieht unter der Haube). Auf diese Weise wird sichergestellt, dass du niemals zum Schweigen gebracht wirst. Wir haben uns entschieden, uns auf das zu konzentrieren, was wir am besten können: eine intuitive, effiziente und einfach zu bedienende Blogging-Plattform zu entwickeln, die sich lohnt – und das Speichern und Verbreiten von Inhalten den Profis auf diesem Gebiet zu überlassen.
Wie publiziere ich?
Habla bietet alle Tools, die du brauchst, um eindrucksvolle Artikel zu erstellen, die sich von anderen abheben. Bereite deinen Artikel vor, formatiere deinen Text mit den entsprechenden Tools, füge Medien hinzu und schau dir das Ergebnis vor Veröffentlichung selbst noch einmal an. Alles, was du brauchst, steht dir zur Verfügung, und die Plattform wird von Tag zu Tag besser und benutzerfreundlicher.
Wer kann meine Beiträge auf Habla lesen?
Jeder im Internet kann deine Beiträge lesen. Wenn deine Leser jedoch mit deiner Arbeit interagieren möchten – sei es durch Folgen, Kommentieren oder indem sie dir etwas zurückgeben möchten – sollten sie ein Nostr-Konto einrichten. Wir ermutigen dich, deine Follower einzubeziehen, um eine blühende Community aufzubauen und neue Höhen zu erreichen. Diese Kurzanleitung wird dir und deinen Fans den Einstieg erleichtern.
Dieses FAQ befindet sich in ständiger Entwicklung und wird sich in dem Maße ändern, wie Habla und Nostr zu noch leistungsfähigeren Tools werden. Bitte teile mir dein Feedback mit, damit ich es noch besser machen kann.
-
@ 1cb14ab3:95d52462
2024-03-13 13:13:28Chef's notes
Chicken can be substituted by assorted mushrooms and tofu. Sichuan chilli bean pastes can be substituted by tomato paste or fresh tomatoes. Pixian chilli bean paste 郫县豆瓣酱 Pí xiàn dòubàn jiàng Light soy sauce 生抽 Shēng chōu Cooking wine 料酒 Liàojiǔ Vegetable oil 植物油 zhíwùyóu Salt 盐 Yán Sugar 糖 Táng
Recipe is originally credit of: https://thehutong.com/xinjiang-big-plate-chicken-xinjiang-dapan-ji/
Details
- ⏲️ Prep time: 30 minutes
- 🍳 Cook time: 1 hour
- 🍽️ Servings: 4
Ingredients
- 2 big chicken thighs or 1 whole chicken
- 3 medium-size potatoes
- 1 medium-size green chilli pepper
- 1 medium-size red chilli pepper
- 1 small yellow onion
- 10g ginger
- 5-8 cloves of garlic
- 2 tbsp of Sichuan chilli bean paste
- 1tsp of salt or salt for taste
- 1tsp of sugar or sugar for taste
- 1 tbsp of cooking wine
- 2 tbsp of light soy sauce
- 1tbsp of dark soy sauce
- 2-3 tbsp of vegetable oil
- 250g wide noodle
- 1L Chicken/vegetable stock/water (or enough to cover ingredients)
- 10 pieces of dried chilli pepper
- 1 tbsp of Sichuan peppercorn
- 1 cinnamon bark
- 2 pieces of star anise
- 2 pieces of bay leaves
- a small pinch of white pepper powder
Directions
- Wash the chicken and cut into bite-size pieces. Cut the potatoes and chilli pepper into small pieces about bite-size. Slice the ginger, onion & crush the garlic.
- Heat 2-3tbsp of oil in a wok with low heat and add sugar in. When sugar is getting melted, add the chicken to stir fry quickly till the chicken meat tight and dried. Add the Sichuan peppercorn, dried chilli. star aniseed, cinnamon, bay leaves, garlic, ginger, onion to fry till fragrance.
- Put Sichuan chilli bean paste, light soy, dark soy, cooking wine and mix well. Add water/ stock to boil and cover it and simmer it for about 3 min. and then mix the potatoes well in, (make sure all the potato and chicken will be merged in the water/stock) check-in between and stir a bit in while the liquid is reducing.
- Get a fork to check the potato, if it could get through easily. They are cooked and add the bell pepper to fry about another 3 minutes till the liquid thicken up. Give a taste and adjust the flavour for saltiness. Serve with noodles, rice or bread.
-
@ 599f67f7:21fb3ea9
2024-03-04 14:26:12Conectarse a muchos relays nostr puede agotar rápidamente la batería y el ancho de banda, especialmente si utilizas nostr en tu teléfono. Conectarse a los relays a través de un proxy nostr puede reducir el consumo de ancho de banda y de batería, además de ofrecer la ventaja adicional de ocultar tu dirección IP real a los relays.
¿Cómo funciona?
Un proxy nostr se conecta a un grupo de relays. Obtiene y publica eventos en esos relays. La aplicación cliente sólo necesita abrir una conexión websocket hacia el proxy para acceder a todos los relays a los que el proxy está conectado.
Imagen por cortesía de Yonle 2023
Como el cliente sólo abre una conexión en lugar de muchas, ahorra ancho de banda y batería.
Como el proxy se conecta a los relays en nombre del cliente, la dirección IP del proxy se expone a los relays en lugar de la del cliente. (Aunque sigue siendo necesario confiar en el proveedor del proxy).
Cómo utilizarlo
Un proxy nostr puede ser fácilmente autoalojado. Echa un vistazo a este repo por nostr:npub1x3azxuysp5vmfer4vgs4jn5tmfcx4ew8sh0qnev7gczljxsr7jwqa3g4el para instrucciones de auto-alojamiento.
Para los que no tenemos recursos para autoalojarnos, Bitcoin Txoko alberga una instancia comunitaria.
Como puedes ver, está conectado a algunos de los relays más populares.
Para utilizarlo, sólo tienes que añadir
wss://bostr.bitcointxoko.com
a tu lista de relays.
También puedes eliminar los relays redundantes ahora que ya no necesitas conexiones directas con ellos.
Ya está. ¡Feliz zapping y nos vemos en nostr!
El servicio comunitario bostr.bitcointxoko.com se distribuye con el siguiente aviso de copyright.
Copyright 2023 Yonle yonle@lecturify.net
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
La siguiente información no está actualizada. La instancia de la comunidad nproxy ya no se mantiene. Utilízala bajo tu propia responsabilidad. Muchas gracias a nostr:npub1gzuushllat7pet0ccv9yuhygvc8ldeyhrgxuwg744dn5khnpk3gs3ea5ds por su corrección.
Un proxy nostr puede ser fácilmente autoalojado. Echa un vistazo a este repo por nostr:npub1txukm7xckhnxkwu450sm59vh2znwm45mewaps4awkef2tvsgh4vsf7phrl para instrucciones de auto-alojamiento.
Para los que no tenemos recursos para autoalojarnos, Bitcoin Txoko alberga una instancia comunitaria.
Para utilizarlo, sólo tienes que añadir
wss://nproxy.bitcointxoko.com
a tu lista de relays.
-
-
@ 3bf0c63f:aefa459d
2024-01-15 11:15:06Anglicismos estúpidos no português contemporâneo
Palavras e expressões que ninguém deveria usar porque não têm o sentido que as pessoas acham que têm, são apenas aportuguesamentos de palavras inglesas que por nuances da história têm um sentido ligeiramente diferente em inglês.
Cada erro é acompanhado também de uma sugestão de como corrigi-lo.
Palavras que existem em português com sentido diferente
- submissão (de trabalhos): envio, apresentação
- disrupção: perturbação
- assumir: considerar, pressupor, presumir
- realizar: perceber
- endereçar: tratar de
- suporte (ao cliente): atendimento
- suportar (uma idéia, um projeto): apoiar, financiar
- suportar (uma função, recurso, característica): oferecer, ser compatível com
- literacia: instrução, alfabetização
- convoluto: complicado.
- acurácia: precisão.
- resiliência: resistência.
Aportuguesamentos desnecessários
- estartar: iniciar, começar
- treidar: negociar, especular
Expressões
- "não é sobre...": "não se trata de..."
Ver também
-
@ 3bf0c63f:aefa459d
2024-01-15 11:15:06Pequenos problemas que o Estado cria para a sociedade e que não são sempre lembrados
- **vale-transporte**: transferir o custo com o transporte do funcionário para um terceiro o estimula a morar longe de onde trabalha, já que morar perto é normalmente mais caro e a economia com transporte é inexistente. - **atestado médico**: o direito a faltar o trabalho com atestado médico cria a exigência desse atestado para todas as situações, substituindo o livre acordo entre patrão e empregado e sobrecarregando os médicos e postos de saúde com visitas desnecessárias de assalariados resfriados. - **prisões**: com dinheiro mal-administrado, burocracia e péssima alocação de recursos -- problemas que empresas privadas em competição (ou mesmo sem qualquer competição) saberiam resolver muito melhor -- o Estado fica sem presídios, com os poucos existentes entupidos, muito acima de sua alocação máxima, e com isto, segundo a bizarra corrente de responsabilidades que culpa o juiz que condenou o criminoso por sua morte na cadeia, juízes deixam de condenar à prisão os bandidos, soltando-os na rua. - **justiça**: entrar com processos é grátis e isto faz proliferar a atividade dos advogados que se dedicam a criar problemas judiciais onde não seria necessário e a entupir os tribunais, impedindo-os de fazer o que mais deveriam fazer. - **justiça**: como a justiça só obedece às leis e ignora acordos pessoais, escritos ou não, as pessoas não fazem acordos, recorrem sempre à justiça estatal, e entopem-na de assuntos que seriam muito melhor resolvidos entre vizinhos. - **leis civis**: as leis criadas pelos parlamentares ignoram os costumes da sociedade e são um incentivo a que as pessoas não respeitem nem criem normas sociais -- que seriam maneiras mais rápidas, baratas e satisfatórias de resolver problemas. - **leis de trãnsito**: quanto mais leis de trânsito, mais serviço de fiscalização são delegados aos policiais, que deixam de combater crimes por isto (afinal de contas, eles não querem de fato arriscar suas vidas combatendo o crime, a fiscalização é uma excelente desculpa para se esquivarem a esta responsabilidade). - **financiamento educacional**: é uma espécie de subsídio às faculdades privadas que faz com que se criem cursos e mais cursos que são cada vez menos recheados de algum conhecimento ou técnica útil e cada vez mais inúteis. - **leis de tombamento**: são um incentivo a que o dono de qualquer área ou construção "histórica" destrua todo e qualquer vestígio de história que houver nele antes que as autoridades descubram, o que poderia não acontecer se ele pudesse, por exemplo, usar, mostrar e se beneficiar da história daquele local sem correr o risco de perder, de fato, a sua propriedade. - **zoneamento urbano**: torna as cidades mais espalhadas, criando uma necessidade gigantesca de carros, ônibus e outros meios de transporte para as pessoas se locomoverem das zonas de moradia para as zonas de trabalho. - **zoneamento urbano**: faz com que as pessoas percam horas no trânsito todos os dias, o que é, além de um desperdício, um atentado contra a sua saúde, que estaria muito melhor servida numa caminhada diária entre a casa e o trabalho. - **zoneamento urbano**: torna ruas e as casas menos seguras criando zonas enormes, tanto de residências quanto de indústrias, onde não há movimento de gente alguma. - **escola obrigatória + currículo escolar nacional**: emburrece todas as crianças. - **leis contra trabalho infantil**: tira das crianças a oportunidade de aprender ofícios úteis e levar um dinheiro para ajudar a família. - **licitações**: como não existem os critérios do mercado para decidir qual é o melhor prestador de serviço, criam-se comissões de pessoas que vão decidir coisas. isto incentiva os prestadores de serviço que estão concorrendo na licitação a tentar comprar os membros dessas comissões. isto, fora a corrupção, gera problemas reais: __(i)__ a escolha dos serviços acaba sendo a pior possível, já que a empresa prestadora que vence está claramente mais dedicada a comprar comissões do que a fazer um bom trabalho (este problema afeta tantas áreas, desde a construção de estradas até a qualidade da merenda escolar, que é impossível listar aqui); __(ii)__ o processo corruptor acaba, no longo prazo, eliminando as empresas que prestavam e deixando para competir apenas as corruptas, e a qualidade tende a piorar progressivamente. - **cartéis**: o Estado em geral cria e depois fica refém de vários grupos de interesse. o caso dos taxistas contra o Uber é o que está na moda hoje (e o que mostra como os Estados se comportam da mesma forma no mundo todo). - **multas**: quando algum indivíduo ou empresa comete uma fraude financeira, ou causa algum dano material involuntário, as vítimas do caso são as pessoas que sofreram o dano ou perderam dinheiro, mas o Estado tem sempre leis que prevêem multas para os responsáveis. A justiça estatal é sempre muito rígida e rápida na aplicação dessas multas, mas relapsa e vaga no que diz respeito à indenização das vítimas. O que em geral acontece é que o Estado aplica uma enorme multa ao responsável pelo mal, retirando deste os recursos que dispunha para indenizar as vítimas, e se retira do caso, deixando estas desamparadas. - **desapropriação**: o Estado pode pegar qualquer propriedade de qualquer pessoa mediante uma indenização que é necessariamente inferior ao valor da propriedade para o seu presente dono (caso contrário ele a teria vendido voluntariamente). - **seguro-desemprego**: se há, por exemplo, um prazo mínimo de 1 ano para o sujeito ter direito a receber seguro-desemprego, isto o incentiva a planejar ficar apenas 1 ano em cada emprego (ano este que será sucedido por um período de desemprego remunerado), matando todas as possibilidades de aprendizado ou aquisição de experiência naquela empresa específica ou ascensão hierárquica. - **previdência**: a previdência social tem todos os defeitos de cálculo do mundo, e não importa muito ela ser uma forma horrível de poupar dinheiro, porque ela tem garantias bizarras de longevidade fornecidas pelo Estado, além de ser compulsória. Isso serve para criar no imaginário geral a idéia da __aposentadoria__, uma época mágica em que todos os dias serão finais de semana. A idéia da aposentadoria influencia o sujeito a não se preocupar em ter um emprego que faça sentido, mas sim em ter um trabalho qualquer, que o permita se aposentar. - **regulamentação impossível**: milhares de coisas são proibidas, há regulamentações sobre os aspectos mais mínimos de cada empreendimento ou construção ou espaço. se todas essas regulamentações fossem exigidas não haveria condições de produção e todos morreriam. portanto, elas não são exigidas. porém, o Estado, ou um agente individual imbuído do poder estatal pode, se desejar, exigi-las todas de um cidadão inimigo seu. qualquer pessoa pode viver a vida inteira sem cumprir nem 10% das regulamentações estatais, mas viverá também todo esse tempo com medo de se tornar um alvo de sua exigência, num estado de terror psicológico. - **perversão de critérios**: para muitas coisas sobre as quais a sociedade normalmente chegaria a um valor ou comportamento "razoável" espontaneamente, o Estado dita regras. estas regras muitas vezes não são obrigatórias, são mais "sugestões" ou limites, como o salário mínimo, ou as 44 horas semanais de trabalho. a sociedade, porém, passa a usar esses valores como se fossem o normal. são raras, por exemplo, as ofertas de emprego que fogem à regra das 44h semanais. - **inflação**: subir os preços é difícil e constrangedor para as empresas, pedir aumento de salário é difícil e constrangedor para o funcionário. a inflação força as pessoas a fazer isso, mas o aumento não é automático, como alguns economistas podem pensar (enquanto alguns outros ficam muito satisfeitos de que esse processo seja demorado e difícil). - **inflação**: a inflação destrói a capacidade das pessoas de julgar preços entre concorrentes usando a própria memória. - **inflação**: a inflação destrói os cálculos de lucro/prejuízo das empresas e prejudica enormemente as decisões empresariais que seriam baseadas neles. - **inflação**: a inflação redistribui a riqueza dos mais pobres e mais afastados do sistema financeiro para os mais ricos, os bancos e as megaempresas. - **inflação**: a inflação estimula o endividamento e o consumismo. - **lixo:** ao prover coleta e armazenamento de lixo "grátis para todos" o Estado incentiva a criação de lixo. se tivessem que pagar para que recolhessem o seu lixo, as pessoas (e conseqüentemente as empresas) se empenhariam mais em produzir coisas usando menos plástico, menos embalagens, menos sacolas. - **leis contra crimes financeiros:** ao criar legislação para dificultar acesso ao sistema financeiro por parte de criminosos a dificuldade e os custos para acesso a esse mesmo sistema pelas pessoas de bem cresce absurdamente, levando a um percentual enorme de gente incapaz de usá-lo, para detrimento de todos -- e no final das contas os grandes criminosos ainda conseguem burlar tudo.
-
@ fa0165a0:03397073
2023-10-06 19:25:08I just tested building a browser plugin, it was easier than I thought. Here I'll walk you through the steps of creating a minimal working example of a browser plugin, a.k.a. the "Hello World" of browser plugins.
First of all there are two main browser platforms out there, Chromium and Mozilla. They do some things a little differently, but similar enough that we can build a plugin that works on both. This plugin will work in both, I'll describe the firefox version, but the chromium version is very similar.
What is a browser plugin?
Simply put, a browser plugin is a program that runs in the browser. It can do things like modify the content of a webpage, or add new functionality to the browser. It's a way to extend the browser with custom functionality. Common examples are ad blockers, password managers, and video downloaders.
In technical terms, they are plugins that can insert html-css-js into your browser experience.
How to build a browser plugin
Step 0: Basics
You'll need a computer, a text editor and a browser. For testing and development I personally think that the firefox developer edition is the easiest to work with. But any Chrome based browser will also do.
Create a working directory on your computer, name it anything you like. I'll call mine
hello-world-browser-plugin
. Open the directory and create a file calledmanifest.json
. This is the most important file of your plugin, and it must be named exactly right.Step 1: manifest.json
After creation open your file
manifest.json
in your text editor and paste the following code:json { "manifest_version": 3, "name": "Hello World", "version": "1.0", "description": "A simple 'Hello World' browser extension", "content_scripts": [ { "matches": ["<all_urls>"], "js": ["hello.js"] //The name of your script file. // "css": ["hello.css"] //The name of your css file. } ] }
If you wonder what the
json
file format is, it's a normal text file with a special syntax such that a computer can easily read it. It's thejson
syntax you see in the code above. Let's go through what's being said here. (If you are not interested, just skip to the next step after pasting this we are done here.)manifest_version
: This is the version of the manifest file format. It's currently at version 3, and it's the latest version. It's important that you set this to 3, otherwise your plugin won't work.name
: This is the name of your plugin. It can be anything you like.version
: This is the version of your plugin. It can be anything you like.description
: This is the description of your plugin. It can be anything you like.content_scripts
: This is where you define what your plugin does. It's a list of scripts that will be executed when the browser loads a webpage. In this case we have one script, calledhello.js
. It's the script that we'll create in the next step.matches
: This is a list of urls that the script will be executed on. In this case we have<all_urls>
, which means that the script will be executed on all urls. You can also specify a specific url, likehttps://brave.com/*
, which means that the script will only be executed on urls that start withhttps://brave.com/
.js
: This is a list of javascript files that will be executed. In this case we have one file, calledhello.js
. It's the script that we'll create in the next step.css
: This is where you can add a list of css files that will be executed. In this case we have none, but you can add css files here if you want to.//
: Text following these two characters are comments. They are ignored by the computer, You can add comments anywhere you like, and they are a good way to document your code.
Step 2: hello.js
Now it's time to create another file in your project folder. This time we'll call it
hello.js
. When created, open it in your text editor and paste the following code:js console.log("Hello World!");
That's javascript code, and it's what will be executed when you run your plugin. It's a simpleconsole.log
statement, which will print the text "Hello World!" to the console. The console is a place where the browser prints out messages, and it's a good place to start when debugging your plugin.Step 3: Load and launch your plugin
Firefox
Now it's time to load your plugin into your browser. Open your browser and go to the url
about:debugging#/runtime/this-firefox
. You should see a page that looks something like this:Click the button that says "Load Temporary Add-on...". A file dialog will open, navigate to your project folder and select the file
manifest.json
. Your plugin should now be loaded and running.Go to a website, any website, and open the inspector then navigate to the console. You'll find the inspector by right-clicking anywhere within the webpage, and click "Inspector" in the drop-down menu. When opening the console you might see some log messages from the site you visited and... you should see the text "Hello World!" printed there, from our little plugin! Congratulations!
Chrome
Open your browser and go to the url
chrome://extensions/
. Click the button that says "Load unpacked". A file dialog will open, navigate to your project folder and select the folderhello-world-browser-plugin
. Your plugin should now be loaded and running.Note the difference, of selecting the file
manifest.json
in firefox, and selecting the folderhello-world-browser-plugin
in chrome. Otherwise, the process is the same. So I'll repeat the same text as above: (for those who skipped ahead..)Go to a website, any website, and open the inspector then navigate to the console. You'll find the inspector by right-clicking anywhere within the webpage, and click "Inspector" in the drop-down menu. When opening the console you might see some log messages from the site you visited and... you should see the text "Hello World!" printed there, from our little plugin! Congratulations!
As you can see this isn't as complicated as one might think. Having preformed a "Hello-World!"-project is a very useful and valuable first step. These setup steps are the basics for any browser plugin, and you can build on this to create more advanced plugins.
-
@ 52387c6b:49dbdfb2
2024-02-28 01:38:42Chef's notes
Not a healthy snack by any means but sometimes you just have too.
Details
- ⏲️ Prep time: 1
- 🍳 Cook time: 0
- 🍽️ Servings: 1
Ingredients
- 1 Bag of Chips
- 1 Bottle of Wooster
- 1 Bowl
- Many Beers
Directions
- Open Chips
- Pour chips into bowl
- Add Wooster to taste
- Now savour the flavour
-
@ 3bf0c63f:aefa459d
2024-01-14 14:52:16Drivechain
Understanding Drivechain requires a shift from the paradigm most bitcoiners are used to. It is not about "trustlessness" or "mathematical certainty", but game theory and incentives. (Well, Bitcoin in general is also that, but people prefer to ignore it and focus on some illusion of trustlessness provided by mathematics.)
Here we will describe the basic mechanism (simple) and incentives (complex) of "hashrate escrow" and how it enables a 2-way peg between the mainchain (Bitcoin) and various sidechains.
The full concept of "Drivechain" also involves blind merged mining (i.e., the sidechains mine themselves by publishing their block hashes to the mainchain without the miners having to run the sidechain software), but this is much easier to understand and can be accomplished either by the BIP-301 mechanism or by the Spacechains mechanism.
How does hashrate escrow work from the point of view of Bitcoin?
A new address type is created. Anything that goes in that is locked and can only be spent if all miners agree on the Withdrawal Transaction (
WT^
) that will spend it for 6 months. There is one of these special addresses for each sidechain.To gather miners' agreement
bitcoind
keeps track of the "score" of all transactions that could possibly spend from that address. On every block mined, for each sidechain, the miner can use a portion of their coinbase to either increase the score of oneWT^
by 1 while decreasing the score of all others by 1; or they can decrease the score of allWT^
s by 1; or they can do nothing.Once a transaction has gotten a score high enough, it is published and funds are effectively transferred from the sidechain to the withdrawing users.
If a timeout of 6 months passes and the score doesn't meet the threshold, that
WT^
is discarded.What does the above procedure mean?
It means that people can transfer coins from the mainchain to a sidechain by depositing to the special address. Then they can withdraw from the sidechain by making a special withdraw transaction in the sidechain.
The special transaction somehow freezes funds in the sidechain while a transaction that aggregates all withdrawals into a single mainchain
WT^
, which is then submitted to the mainchain miners so they can start voting on it and finally after some months it is published.Now the crucial part: the validity of the
WT^
is not verified by the Bitcoin mainchain rules, i.e., if Bob has requested a withdraw from the sidechain to his mainchain address, but someone publishes a wrongWT^
that instead takes Bob's funds and sends them to Alice's main address there is no way the mainchain will know that. What determines the "validity" of theWT^
is the miner vote score and only that. It is the job of miners to vote correctly -- and for that they may want to run the sidechain node in SPV mode so they can attest for the existence of a reference to theWT^
transaction in the sidechain blockchain (which then ensures it is ok) or do these checks by some other means.What? 6 months to get my money back?
Yes. But no, in practice anyone who wants their money back will be able to use an atomic swap, submarine swap or other similar service to transfer funds from the sidechain to the mainchain and vice-versa. The long delayed withdraw costs would be incurred by few liquidity providers that would gain some small profit from it.
Why bother with this at all?
Drivechains solve many different problems:
It enables experimentation and new use cases for Bitcoin
Issued assets, fully private transactions, stateful blockchain contracts, turing-completeness, decentralized games, some "DeFi" aspects, prediction markets, futarchy, decentralized and yet meaningful human-readable names, big blocks with a ton of normal transactions on them, a chain optimized only for Lighting-style networks to be built on top of it.
These are some ideas that may have merit to them, but were never actually tried because they couldn't be tried with real Bitcoin or inferfacing with real bitcoins. They were either relegated to the shitcoin territory or to custodial solutions like Liquid or RSK that may have failed to gain network effect because of that.
It solves conflicts and infighting
Some people want fully private transactions in a UTXO model, others want "accounts" they can tie to their name and build reputation on top; some people want simple multisig solutions, others want complex code that reads a ton of variables; some people want to put all the transactions on a global chain in batches every 10 minutes, others want off-chain instant transactions backed by funds previously locked in channels; some want to spend, others want to just hold; some want to use blockchain technology to solve all the problems in the world, others just want to solve money.
With Drivechain-based sidechains all these groups can be happy simultaneously and don't fight. Meanwhile they will all be using the same money and contributing to each other's ecosystem even unwillingly, it's also easy and free for them to change their group affiliation later, which reduces cognitive dissonance.
It solves "scaling"
Multiple chains like the ones described above would certainly do a lot to accomodate many more transactions that the current Bitcoin chain can. One could have special Lightning Network chains, but even just big block chains or big-block-mimblewimble chains or whatnot could probably do a good job. Or even something less cool like 200 independent chains just like Bitcoin is today, no extra features (and you can call it "sharding"), just that would already multiply the current total capacity by 200.
Use your imagination.
It solves the blockchain security budget issue
The calculation is simple: you imagine what security budget is reasonable for each block in a world without block subsidy and divide that for the amount of bytes you can fit in a single block: that is the price to be paid in satoshis per byte. In reasonable estimative, the price necessary for every Bitcoin transaction goes to very large amounts, such that not only any day-to-day transaction has insanely prohibitive costs, but also Lightning channel opens and closes are impracticable.
So without a solution like Drivechain you'll be left with only one alternative: pushing Bitcoin usage to trusted services like Liquid and RSK or custodial Lightning wallets. With Drivechain, though, there could be thousands of transactions happening in sidechains and being all aggregated into a sidechain block that would then pay a very large fee to be published (via blind merged mining) to the mainchain. Bitcoin security guaranteed.
It keeps Bitcoin decentralized
Once we have sidechains to accomodate the normal transactions, the mainchain functionality can be reduced to be only a "hub" for the sidechains' comings and goings, and then the maximum block size for the mainchain can be reduced to, say, 100kb, which would make running a full node very very easy.
Can miners steal?
Yes. If a group of coordinated miners are able to secure the majority of the hashpower and keep their coordination for 6 months, they can publish a
WT^
that takes the money from the sidechains and pays to themselves.Will miners steal?
No, because the incentives are such that they won't.
Although it may look at first that stealing is an obvious strategy for miners as it is free money, there are many costs involved:
- The cost of ceasing blind-merged mining returns -- as stealing will kill a sidechain, all the fees from it that miners would be expected to earn for the next years are gone;
- The cost of Bitcoin price going down: If a steal is successful that will mean Drivechains are not safe, therefore Bitcoin is less useful, and miner credibility will also be hurt, which are likely to cause the Bitcoin price to go down, which in turn may kill the miners' businesses and savings;
- The cost of coordination -- assuming miners are just normal businesses, they just want to do their work and get paid, but stealing from a Drivechain will require coordination with other miners to conduct an immoral act in a way that has many pitfalls and is likely to be broken over the months;
- The cost of miners leaving your mining pool: when we talked about "miners" above we were actually talking about mining pools operators, so they must also consider the risk of miners migrating from their mining pool to others as they begin the process of stealing;
- The cost of community goodwill -- when participating in a steal operation, a miner will suffer a ton of backlash from the community. Even if the attempt fails at the end, the fact that it was attempted will contribute to growing concerns over exaggerated miners power over the Bitcoin ecosystem, which may end up causing the community to agree on a hard-fork to change the mining algorithm in the future, or to do something to increase participation of more entities in the mining process (such as development or cheapment of new ASICs), which have a chance of decreasing the profits of current miners.
Another point to take in consideration is that one may be inclined to think a newly-created sidechain or a sidechain with relatively low usage may be more easily stolen from, since the blind merged mining returns from it (point 1 above) are going to be small -- but the fact is also that a sidechain with small usage will also have less money to be stolen from, and since the other costs besides 1 are less elastic at the end it will not be worth stealing from these too.
All of the above consideration are valid only if miners are stealing from good sidechains. If there is a sidechain that is doing things wrong, scamming people, not being used at all, or is full of bugs, for example, that will be perceived as a bad sidechain, and then miners can and will safely steal from it and kill it, which will be perceived as a good thing by everybody.
What do we do if miners steal?
Paul Sztorc has suggested in the past that a user-activated soft-fork could prevent miners from stealing, i.e., most Bitcoin users and nodes issue a rule similar to this one to invalidate the inclusion of a faulty
WT^
and thus cause any miner that includes it in a block to be relegated to their own Bitcoin fork that other nodes won't accept.This suggestion has made people think Drivechain is a sidechain solution backed by user-actived soft-forks for safety, which is very far from the truth. Drivechains must not and will not rely on this kind of soft-fork, although they are possible, as the coordination costs are too high and no one should ever expect these things to happen.
If even with all the incentives against them (see above) miners do still steal from a good sidechain that will mean the failure of the Drivechain experiment. It will very likely also mean the failure of the Bitcoin experiment too, as it will be proven that miners can coordinate to act maliciously over a prolonged period of time regardless of economic and social incentives, meaning they are probably in it just for attacking Bitcoin, backed by nation-states or something else, and therefore no Bitcoin transaction in the mainchain is to be expected to be safe ever again.
Why use this and not a full-blown trustless and open sidechain technology?
Because it is impossible.
If you ever heard someone saying "just use a sidechain", "do this in a sidechain" or anything like that, be aware that these people are either talking about "federated" sidechains (i.e., funds are kept in custody by a group of entities) or they are talking about Drivechain, or they are disillusioned and think it is possible to do sidechains in any other manner.
No, I mean a trustless 2-way peg with correctness of the withdrawals verified by the Bitcoin protocol!
That is not possible unless Bitcoin verifies all transactions that happen in all the sidechains, which would be akin to drastically increasing the blocksize and expanding the Bitcoin rules in tons of ways, i.e., a terrible idea that no one wants.
What about the Blockstream sidechains whitepaper?
Yes, that was a way to do it. The Drivechain hashrate escrow is a conceptually simpler way to achieve the same thing with improved incentives, less junk in the chain, more safety.
Isn't the hashrate escrow a very complex soft-fork?
Yes, but it is much simpler than SegWit. And, unlike SegWit, it doesn't force anything on users, i.e., it isn't a mandatory blocksize increase.
Why should we expect miners to care enough to participate in the voting mechanism?
Because it's in their own self-interest to do it, and it costs very little. Today over half of the miners mine RSK. It's not blind merged mining, it's a very convoluted process that requires them to run a RSK full node. For the Drivechain sidechains, an SPV node would be enough, or maybe just getting data from a block explorer API, so much much simpler.
What if I still don't like Drivechain even after reading this?
That is the entire point! You don't have to like it or use it as long as you're fine with other people using it. The hashrate escrow special addresses will not impact you at all, validation cost is minimal, and you get the benefit of people who want to use Drivechain migrating to their own sidechains and freeing up space for you in the mainchain. See also the point above about infighting.
See also
-
@ d4338b7c:f1d23a5b
2024-03-07 16:42:42Chef's notes
Absinthe rinse 10 Dashes Peychauds bitters 1/2 tsp Demarara or simple syrup 2oz Rye (usually Sazerac 6 year) Stirred. Served up in a rocks glass. Luxardo cherry 🍒 and a lemon expression as garnish.
Details
- ⏲️ Prep time: 5
- 🍳 Cook time: 5
- 🍽️ Servings: 1
Ingredients
- Peychauds bitters
- Demarara
- Luxardo cherry
- Lemon
- Rye whiskey
- Absinthe
Directions
- 10 Dashes peychauds into mixing glass
- 1/2 tsp demarara
- 2oz Rye
- Add ice cubes to fill mixing glass
- Stirring for 15-30 seconds
- Rinse the desired glass with absinthe. A barspoon amount will do.
- Strain into said absinthe rinsed glass.
- Droo a Luxardo cherry in it
- Express a lemon peele into the glass
- Cheers 🍻
-
@ cd408a69:797e8162
2023-09-14 13:08:47Nostrasia Hackathon
Welcome FOSS hackers and creatives who care deeply about freedom technology!
自由のテクノロジーに深い関わりたい FOSS ハッカーとクリエイター、あつまれ!
We're joining forces with Bolt.Fun for a month-long hackathon bridging Bitcoin and NOSTR (Notes and Other Stuff Transmitted by Relays), culminating with a special three day sprint and live event in Tokyo at the Nostrasia Conference.
私たちは、Bolt.Fun と協力して、ビットコインと Nostrを橋渡しする ハッカソンを、1 か月間かけて開催します。 クライマックスは東京で開催されるNostrasia Tokyo が舞台。3日間の特別なスプリントとライブ イベントで最高潮に達します。
Be a Part of the Early Days of Nostr
Nostr の創成期を共に作り上げましょう
Help build the future of Nostr! Like the early days of Bitcoin or of the Internet, Nostr is nascent open technology shaping new types of social experiences to connect people across the globe. It carries a foundation of principles similar to Bitcoin, like decentralization, simplicity, and censorship-resistance.
Nostr の未来を築くのに協力してください!ビットコインやインターネットの初期と同じように、Nostr は世界中の人々をつなぐ新しいソーシャル体験を形成するオープン テクノロジーの初期段階にあります。 Nostr には「分散化」「シンプルさ」「検閲耐性」など、ビットコインと同様の原則が組み込まれています。
Orange-Pill people through the Purple-Nostr-Pill
オレンジピル(ビットコイン)から紫の Nostr のピルへ
Bitcoin and Nostr communities are in synergy. What started as a social protocol is quickly transforming into a space for exploration on ways to support content creators through bitcoin lightning micro payments, often referred to as zaps. Bitcoin integration to the nostr protocol strengthens Bitcoin's use case as a currency of exchange. It carves new paths to a culture of value4value.
ビットコインと Nostr のコミュニティは相乗効果を発揮します。 Nostr はソーシャルプロトコルとしてはじまりましたが、今では Zap (ビットコイン の ライトニング マイクロペイメント)を通じてコンテンツ クリエイターをサポートする方法を模索する空間へと急速に進化しています。 Nostr プロトコルにビットコインが組み合わさることで、交換通貨としてのビットコインの働きが強化されます。 それは、"value4value" の文化への新しい道を切り開くでしょう。
Help People HODL their Keys (Social+Monetary)
人々が自分のキーを HODL (長期保有)できるように支援します (ソーシャル + 金銭的に)
Nostr exists outside of the rule of platforms and those who seek to control them. HODLing your nostr keys is hodling your identity and social graph, outside of KYC. By helping develop and educate on NOSTR, you are helping people escape walled gardens & gain control and choice over their identities & their money. The Internet, over time, has become centralized, help Nostr stay decentralized by supporting the growth of an ecosystem of apps, websites, microapps, relay services...
Nostr はプラットフォームやそれを制御しようとする人々の支配の外にあります。 Nostr keys を持つことは、KYC (本人確認)以外であなたのアイデンティティとソーシャル グラフを保持することになります。 Nostr の開発や教育に貢献することは、人々が束縛から解放され、アイデンティティやお金に対する主導権を得られるよう支援することにもなるのです。 時間の経過とともに集中化されてきたインターネットですが、Nostr のアプリ/Web サイト/マイクロアプリ/リレー サービスのエコシステムの成長をサポートすることで、Nostr の分散化を維持できるようになります。
Permissionless Building
許可を必要としない構築
Opportunities abound in an environment ripe for innovation:
- Develop & design new nostr white label clients, middleware, microapps...
- Help improve existing Nostr FOSS projects
- Contribute directly to protocol development through NIPs (Nostr Implementation Possibilities)
- Encourage nostr and bitcoin adoption through art, education, and any way you like
イノベーションの機が熟した環境には、チャンスが溢れています。
- Nostr の真新しい クライアント、ミドルウェア、マイクロアプリを開発したりデザインする
- 既存の Nostr FOSS プロジェクトの改善に寄与する
- NIP (Nostr Implementation Possibilities) を通じたプロトコル開発に直接貢献する
- 芸術、教育、その他好きな方法を通じて Nostr とビットコインの普及を推進する
Hack in a Supportive Environment
サポートされた環境でハックしよう
We have a growing list of knowledgeable people with skin-in-the-game to mentor and support your journey. Once your project matures, you may also have 1-on-1 guidance to help you reach your vision and discover ways of growing and funding it.
私たちは、あなたの道のりを指導しサポートしてくれる知識豊富なメンターを増やしています。 プロジェクトが成熟した暁には、1対1のガイダンスを受けられる可能性もあります。それは、あなたのビジョンを達成し、成長させて資金を得る方法を発見するのに役立つでしょう。
Nostr has a blossoming community open to innovation. It is also a great testing ground, as people in the community are open to giving and receiving feedback. It is an environment encouraging conversation on feature ideas as well as possible solutions to social media issues and product bugs.
Nostr には、イノベーションに対してオープンで、発展しているコミュニティがあります。 コミュニティの人々はフィードバックの授受にオープンであるため、優れた実験の場にもなります。 機能のアイデアや、ソーシャル メディアの課題や製品のバグの解決策についての会話を促進する環境です。
NostrHack Tracks
You have 3 options
NostrHack Tracks には3つのオプションがあります
Track 1: Builder's Track - Reimagine Nostr
トラック1 : ビルダーのトラック - Nostr を再考しよう
If you can think of it, it can be engineered! Nostr encourages permissionless building while staying mindful of interoperability and network support. Help BUIDL, design, and improve an area you are passionate about. Reimagine and BUIDL features, tools, clients... Help solve issues and create new experiences in social media.
思いつくことができれば、エンジニアリングできる! Nostr は、相互運用性とネットワーク サポートに留意しながら、パーミッションレスな構築 (BUIDL) を奨励しています。 あなたが情熱を注いでいる分野での構築、設計、改善に貢献してください。 機能やツール、クライアントを再考して構築 (BUIDL) し、ソーシャル メディアでの課題を解決して新しい体験を生み出すのに協力してください。
Possibilities...
これを踏まえて…
BUILD on the NOSTR Protocol
The Nostr Implementation Possibilities (NIPs) are optional protocol features anyone can add to their clients. Improve and strengthen existing NIPs or build on new ones. NOSTR is a balance of simplicity, interoperability, backward-compatibility and innovation.
NIPs は、誰でもクライアントに追加できるオプションのプロトコル機能です。 既存の NIP を改善および強化するか、新しい NIP を構築してください。 Nostr は、シンプルさ、相互運用性、下位互換性、革新性のバランスを保っています。
Focus on UX
Nostr is made up of a wide range of clients and tools. To make NOSTR scalable, you can help improve its user experience and education.
Nostr は幅広いクライアントとツールで形成されています。 Nostr をスケーラブルにするために、UX と教育の改善に協力してください。
Help shape a Web of Trust
Nostr cares about removing the KYC tied to our identities. To use Nostr you do not need to give up your phone number, email, financial information, or any metadata tied to your real world identity to be later harvested and sold. You are not the product. What are ways that trust can be earned to prevent impersonation, spam...?
Nostr は、私たちの身元に関連付けられた KYC (個人情報)を取り除けるようにしています。 Nostr を使用しても、電話番号、電子メール、財務情報、または現実世界のアイデンティティに関連付けられたメタデータを、収集されたり販売されたりして手放すことになる心配がありません。 あなたは商品ではないのです。 その中で、なりすましやスパムを防ぐために、信頼を獲得するにはどうすればよいでしょうか...?
NIP05/Nostr address
One of the solutions to build a web of trust used today, is to tie your nostr hex public key to a domain. Although this makes it harder for bots to have nostr addresses, it is not a perfect solution. Domains are centralized through DNS. To help people who do not have their own domains or cannot easily add a NIP05 on their sites, your nostr address can be hosted as a service along with other people's. At this moment, you can highlight just one nostr address per profile. In the future, could it include your website, where you work, and other identifiers... What are other possible solutions?
現在使用されている信頼獲得のための解決策の 1 つは、Nostr の HEX 公開鍵をドメインに結び付けることです。 これにより、完璧な解決策ではないものの、bot などが Nostr アドレスを持つことが難しくなります。 ドメインは DNS を通じて一元化されています。 独自のドメインを持っていない人や、自分では NIP-05 を簡単に追加できない人のために、あなたの Nostr アドレスをサービスとして他の人のものと一緒にホストすることも可能です。 現時点では、プロフィールごとに1つの Nostr アドレスのみを強調表示できますが、将来的には、Web サイト、勤務先、その他の識別情報も含められるようになる可能性があります...この他にも考えられる解決策は何かありますか?
On Decentralization & Discoverability
分散化と発見可能性について
Your identity in NOSTR is tied to your keys, but your information needs to be shared and found across a network of relays. To promote decentralization and censorship resistance, relays need to be easy to setup, lightweight, and sustainable. Relays get to choose what information passes through them, so they are also a form of spam prevention that could potentially also become censoring, so both the relay-runners and the individuals connecting to relays need to have choice and policies cannot be homogenous one-size-fits-all. What are possible solutions to make setting up relays easier, to make running a relay sustainable, to have new ways of discovering information...
Nostr での ID はキーに関連付けられていますが、その情報はリレーのネットワーク全体で共有され、検索できる必要があります。 分散化と検閲耐性を促進するために、リレーはセットアップが簡単で、軽量で、持続可能である必要があります。 リレーは通過する情報を選択できるため、スパム防止の一形態である一方で検閲にもなり得ます。そのため、リレー管理者とリレーに接続する個人の両方に選択権が必要で、ポリシーが全てに対し画一的になってはいけません。 リレーのセットアップを容易にし、リレーの実行を持続可能にし、情報を発見する新しい方法を実現するには、どのような解決策が考えられるでしょうか...?
Buidl tools to connect to Git, as a decentralized alternative to GitHub
GitHub の分散型代替手段として、Git に接続するための BUIDL ツール
Media Uploads
To keep relays lightweight, images are hosted by uploading them to the web, and keeping only the links to them in the data within individual nostr notes. This has led to developing image uploading services specific to nostr, but they carry the risk of centralization or censorship. Some product makers and relay runners are looking into direct uploads to Cloud services. What are possible solutions to the handling of media (images, videos, music...)?
リレーを軽量に保つために、画像は Web にアップロードしてホストされ、各投稿のデータには画像へのリンクのみが保持されます。そんな中で、Nostr に特化した画像アップロード サービスが開発されましたが、集中化や検閲のリスクが伴います。 一部のプロダクト開発者やリレー管理者は、クラウド サービスへの直接アップロードを検討しています。 メディア(画像、ビデオ、音楽など)の処理について、考えられるよい解決策はありますか?
Social Signals
People have the choice to block and mute others, this gives signals to relays, which can reenact policies based on those and other signals. Relays need to be able to differentiate real signals from those wanting to game the system for censorship. Relay runners need to have the capacity to make decisions on what to allow or reject.
ユーザーは他のユーザーをブロックしたりミュートできます。ユーザーの設定内容はリレーに送信され、リレーはその設定に基づいてそれぞれのポリシーを再現できます。 リレーは、実際の設定と、検閲のためにシステムを操作しようとする設定を区別する必要があります。 リレーの管理者には、何を許可し、何を拒否するかを決定する能力が必要です。
Track 2 : Marketplaces & Value4Value
Make freedom of exchange fun again! Nostr extends beyond social. It is integrating ways for content creators to be supported through lightning micropayments, called zaps, for their creations. The possibilities of building niche value4value economies through the exchange of products, services, and ideas, is growing through various avenues: Marketplaces, fundraising, blogs, music, streaming... devise new robust ways of integrating NOSTR and Bitcoin of monetary and skill exchange. Seek to explore distributed, digital reciprocity and free trade. Encourage a culture of value4value.
自由な交流を再び楽しく! Nostr はソーシャルを超えて広がります。 Zap と呼ばれるマイクロペイメントを通じて、コンテンツクリエイターの作品をサポートできる方法を兼ね備えています。 製品、サービス、アイデアの交換を通じてニッチな価値と価値(value4value)の経済を構築する可能性は、さまざまな手段を通じて拡大しています : マーケットプレイス、資金調達、ブログ、音楽、ストリーミングなど... Nostr とビットコインを組み合わせて、金銭とスキルの交換を行う新しい堅牢な方法を考案します。分散型、デジタル相互主義、自由貿易を探究してください。 価値対価値(value4value)の文化を促進してください。
A value4value culture is not only about the individuals using NOSTR products and services, but also about the developers and creatives building sustainable projects. What are ways of sustaining NOSTR through Bitcoin that do NOT make the individual user the product and that are privacy mindful?
value4value の文化は、Nostr の製品やサービスを使用する個人だけでなく、持続可能なプロジェクトを構築する開発者やクリエイターにも関係します。 個人ユーザーを製品にすることなくプライバシーに配慮しながら、ビットコインを通じて Nostr を持続させる方法は何ですか?
Possibilities...
On Social and Economic Signals
Zaps
Many nostr clients have implemented lightning zap payments. Imagine instead of liking a nostr note, you can zap someone's note and they can receive bits/sats in appreciation for their content. It is a strong signal to creators of the kind of content their audiences are looking for. The Apple App Store has recently banned the zapping of specific notes, per Apple's policy that makes the sale of digital content prohibited except when paid through their services. Fortunately, Nostr exists in many decentralized forms outside of app stores and the community is creating new and innovative ways to send bitcoin and free speech from relay to relay, circumventing barriers as they appear. What are solutions that can make NOSTR and zaps ubiquitous?
多くの Nostr クライアントが Zap を導入しています。Nostr での投稿を「いいね」する代わりに Zap すると、その内容に対する感謝としてビットコイン(サトシ)を受け取ることができるイメージです。 これは、フォロワーがどのような種類のコンテンツを求めているかをクリエイターに伝える強力なシグナルになります。 Apple App Storeは最近、サービスを通じて支払われる場合を除きデジタルコンテンツの販売を禁止するというAppleのポリシーに従い、特定の投稿への Zap を禁止しました。 幸い、Nostr は多くが App Store の外で分散型で存在しているため、コミュニティは障壁を回避しながら、ビットコインと言論の自由をリレーからリレーに送信するための革新的な方法を生み出しています。 Nostr と Zaps をユビキタスにするソリューションとは何ですか?
Track 3 : Empower Communities
Give choice and control back to the individual! Create paths forward to help onboard millions of new users and restore free and uncensored speech to the world
選択とコントロールを個人に返そう。 何百万人もの新規ユーザーの参加を支援し、自由で検閲されていない言論を世界に取り戻すための道筋を作り出してください。
Possibilities...
On Security, Privacy & Self-Custody
Private Communication
Direct Messages on NOSTR are encrypted, but metadata is leaked. If someone's key is compromised, whoever has access to that account can read those messages. Integrating secure and reliable encrypted communication protocols, like the SimpleX messaging protocol, is especially desired by the community, as many in Nostr are aware of the risks of surveillance, authoritarianism, government and Big Tech overreach... Private communication is important for individual rights, in particular for activists and journalists across the globe.
Nostr のダイレクト メッセージは暗号化されていますが、メタデータは漏洩します。 誰かのキーが侵害された場合、そのアカウントにアクセスできる人は誰でもそれらのメッセージを読むことができてしまうのです。Nostr の多くの人が監視、権威主義、政府とビッグテックの行き過ぎのリスクを認識しているため、 SimpleX メッセージング プロトコルのような安全で信頼性の高い暗号化通信プロトコルの統合が、コミュニティによって特に望まれています...プライベート通信は個人の権利にとって重要です 、特に世界中の活動家やジャーナリストにとって。
Zaps & Privacy
Current lightning zap payments tend to be custodial and not mindful of privacy, though they are helping onboard people unto lightning. What are ways that people can grow into non-custodial solutions? A wider adoption of Bolt-12 would improve zap payment privacy, what are ways to encourage that development? What are other possible solutions?
現在のザップの支払いは、ライトニングペイメントに出会うのに役立っているものの、カストディアル(管理的)でプライバシーに配慮していない傾向にあります。 ノンカストディアル(非監護的)なものになるよう解決する方法はありませんか? Bolt-12 が広く採用されれば、Zap 支払いのプライバシーが向上しますが、その開発を促進するにはどのような方法がありますか?また、他に考えられる解決策はありませんか?
Closing Live 3-Day Sprint at the Nostrasia Conference
Nostrasia Tokyo 3日間のライブスプリントによる締めくくり
Tokyo | Nov 1-3 (you can also join virtually)
If you heard of the Nostrica unconference, which happened in Costa Rica in March of this year, Nostrasia is the second Nostr World conference, bringing NOSTR and Bitcoin awareness to the heart of Asia, where freedom communication and freedom money are direly needed.
今年の3月にコスタリカで開催された Nostrica のことをご存知の方もいると思いますが、ノストラジアは2回目の Nostr 世界カンファレンスです。自由なコミュニケーションと自由なお金が切実に必要とされているアジアの中心にNostr とビットコインの認識をもたらします。
Tokyo and Hong Kong are beautiful cultural hubs with budding Nostr and thriving Bitcoin communities of their own. We are eager to spread NOSTR education and development in those regions and beyond. We will close this Nostrasia month-long hackathon with a 3-day sprint at the Nostrasia Conference in Tokyo.
東京と香港は、新進気鋭のNostrと繁栄する独自のビットコインコミュニティを持つ美しい文化の中心地です。 私たちは、Nostr の教育と開発をこれらの地域やその他の地域に広めることに熱心に取り組んでいます。 この Nostrasia の 1 か月にわたるハッカソンは、Nostrasia Tokyo での 3 日間のスプリントをもって終了します。
We will have a dedicated workshop area and food for you to hack away on the final details of your projects. On the last day of the conference, the most robust projects will get time on stage to present. We will close the Nostrasia Hackathon with a special presentation.
プロジェクトの最終的な詳細を検討するための専用のワークショップ エリアと食事をご用意します。 カンファレンスの最終日には、最も強力なプロジェクトがステージ上でプレゼンテーションを行う時間が与えられます。 Nostrasia Hackathon は特別なプレゼンテーションで締めくくられます。
We cannot wait to see what new and exciting projects are proposed for the Nostrasia Hackathon. We’re eager to welcome devs and non-devs alike to contribute to this space and help #grownostr in any small way to help onboard Asia, and the rest of the world to this robust open communication protocol and decentralized freedom of speech tool.
Nostrasia Hackathon ではどんな斬新でエキサイティングなプロジェクトが提案されるのか楽しみです。 私たちは、開発者も非開発者も同様にこの分野に貢献し、アジアやその他の世界をこの堅牢なオープン通信プロトコルと分散型言論の自由ツールに参加させるために、どんな小さな方法でも #grownostr を支援してくれることを心から歓迎しています。
-
@ 06a5736d:9993b167
2024-03-07 09:44:42Chef's notes
I found the recipe on BBC recipes, should be the first one to pop up if you google easy banana bread recipe.
Details
- ⏲️ Prep time: 15-20min
- 🍳 Cook time: 40-50min
- 🍽️ Servings: 4-8 (depending on portion size). I also didn’t bake this in the usual bread tin, I used a semi deep oven dish as that’s all I had.
Ingredients
- 140g unsalted butter
- 140g caster sugar (I only put 90g as it was for the kids but you can tweak it to your liking)
- 2large eggs
- 1tsp baking soda
- 140g self raising flour
- 1tbs cinnamon powder
- 1tsp vanilla extract
- 1 cup fresh blueberries
- 3 ripe bananas
Directions
- Beat the butter and sugar until a paste is formed
- Add in 2 beaten eggs and mix together
- Gently add the flour and baking soda bit by bit whilst mixing it all well
- Once combined, add in your cinnamon and vanilla
- Add in your washed blueberries
- Mash the bananas well and add to mixture.
- Fold the mixture until well mixed together and set aside
- Preheat oven to 180c
- Butter your dish and line with parchment paper ( I didn’t have this available so I covered it with butter and then added flour all around to prevent it from sticking. Works just the same)
- Once oven is heated up, carefully place the dish into the middle and bake for 40-50min. Make sure to check after 30min as every oven is different.
- Once cooked, remove from oven and let it cool for 10mins before removing from dish (this is to prevent it from falling apart)
- Last step. Cut a slice and enjoy on it’s own or how I did, with some yummy custard
-
@ 50809a53:e091f164
2024-03-05 12:33:57Chef's notes
Note 1. Aquafaba is just the liquid from a can of chickpeas. If you don’t have canned chickpeas or are allergic, use 2 flax eggs: mix 2 TBSP ground flaxseed meal with 5 TBSP water. Stir and let sit for 15 minutes to thicken. The banana bread won’t be as fluffy though.
Note 2: If using brown sugar, lightly pack it. If choosing between light and dark brown sugar, I like the dark variety for a deeper molasses flavor; the bread will be darker in color too. If you are limiting your sugar intake, you can use less sugar, as little as 1/4 cup (about 38g) with still pretty good results.
Note 3: Since this is a simple ingredient list, try to use real vanilla extract, not the imitation stuff, as you will taste the difference.
Note 4. If not using a measuring scale to weigh ingredients, please spoon and level your flour so you don’t overmeasure. More info in the Tips section of the blog post.
Note 5: Don’t just insert a toothpick vertically down into the bread. Instead, insert it at an angle, which is a much better test for doneness in a tall cake.
Details
- 🍳 Cook time: 50 min
- 🍽️ Servings: 10
Ingredients
- 6 tablespoons (90 mL) aquafaba (see Note 1)
- 3 medium-sized very ripe bananas, (optional, 1 ripe banana for decoration)
- 1/4 cup + 2 tablespoons (90 mL) oat milk, or plain-flavored plant-based milk of choice
- 1 tablespoon lemon juice
- 1/3 cup (75g) sunflower oil, olive oil, or any neutral-tasting oil
- 3/4 cup (115g) organic brown sugar or coconut sugar (see Note 2)
- 1 teaspoon pure vanilla extract (see Note 3)
- 2 cups (240 to 250g) all-purpose flour, spooned and leveled (see Note 4)
- 1/4 teaspoon sea salt
- 1 teaspoon baking soda
- 3/4 teaspoon ground cinnamon
Directions
- Preheat the oven to 350°F/176°C. Arrange a rack in the bottom third of the oven. Line a 9×5-inch (23×13 cm) loaf pan with parchment paper, letting the excess hang over the long sides to form a sling.
- Pour the aquafaba into a medium bowl. Using a handheld electric mixer, whip the aquafaba on medium speed for 45-60 seconds until uniformly foamy.
- Wipe out the bowl used for the aquafaba. Add the three bananas to the bowl and mash with a fork until smooth and no lumps remain (or, for a more rustic banana bread, leave a few chunks in). FYI: the 3 mashed bananas should weigh around 300g.
- Stir the lemon juice into the oat milk and set aside. This is the vegan "buttermilk."
- In a large mixing bowl, add the sugar and oil. Mix using the electric mixer or a whisk until well combined.
- Add the whipped aquafaba and mix until well incorporated. Add in the vegan "buttermilk" and vanilla and mix until smooth. Add the mashed bananas and mix until well incorporated.
- Add the flour, salt, baking soda, and cinnamon to the wet ingredients. Switch to using a silicone spatula (if you don’t have one, use a large wooden spoon). Gently stir until the ingredients are just barely combined. It’s okay if you can see a few traces of flour.
- Pour the batter into the prepared loaf pan and smooth out the top of the batter using a spatula or spoon.
- For the optional decoration, keep the peel on the reserved banana and slice it in half, lengthwise; then peel the banana. Sprinkle a little coconut sugar or brown sugar on the cut/interior sides of the banana. Gently arrange the bananas on top the batter, sugared side side up. NOTE: This might create a dome in the middle of the bananas, where the batter bunches up in the middle. Use a spoon to move some of the batter around the pan so that the bread doesn’t bake unevenly.
- Bake in the preheated oven for 45 to 55 minutes. Since every home oven differs, I like to start checking at 45 minutes. The banana bread is done when a toothpick inserted into the center top at a slight angle comes out a few moist crumbs (see Note 5). If there's runny batter, it needs more time.
- Transfer the pan to a wire rack and cool for 10 minutes. Then remove the bread from the pan and cool on the rack for at least 20 to 30 minutes before slicing (the bread is still cooking and setting up, so don't slice too early).
- To store, place completely cooled banana bread in an airtight container or wrap tightly in plastic and leave on the counter for 2-4 days (if using decorative banana topping, the topping a will start to brown after day 1). You can also freeze the banana bread. If you freeze the whole loaf, allow it to defrost on the countertop for 2-3 hours. If you freeze individual slices, defrost on the countertop for 20-30 minutes.
-
@ 3bf0c63f:aefa459d
2024-01-14 14:52:16bitcoind
decentralizationIt is better to have multiple curator teams, with different vetting processes and release schedules for
bitcoind
than a single one."More eyes on code", "Contribute to Core", "Everybody should audit the code".
All these points repeated again and again fell to Earth on the day it was discovered that Bitcoin Core developers merged a variable name change from "blacklist" to "blocklist" without even discussing or acknowledging the fact that that innocent pull request opened by a sybil account was a social attack.
After a big lot of people manifested their dissatisfaction with that event on Twitter and on GitHub, most Core developers simply ignored everybody's concerns or even personally attacked people who were complaining.
The event has shown that:
1) Bitcoin Core ultimately rests on the hands of a couple maintainers and they decide what goes on the GitHub repository[^pr-merged-very-quickly] and the binary releases that will be downloaded by thousands; 2) Bitcoin Core is susceptible to social attacks; 2) "More eyes on code" don't matter, as these extra eyes can be ignored and dismissed.
Solution:
bitcoind
decentralizationIf usage was spread across 10 different
bitcoind
flavors, the network would be much more resistant to social attacks to a single team.This has nothing to do with the question on if it is better to have multiple different Bitcoin node implementations or not, because here we're basically talking about the same software.
Multiple teams, each with their own release process, their own logo, some subtle changes, or perhaps no changes at all, just a different name for their
bitcoind
flavor, and that's it.Every day or week or month or year, each flavor merges all changes from Bitcoin Core on their own fork. If there's anything suspicious or too leftist (or perhaps too rightist, in case there's a leftist
bitcoind
flavor), maybe they will spot it and not merge.This way we keep the best of both worlds: all software development, bugfixes, improvements goes on Bitcoin Core, other flavors just copy. If there's some non-consensus change whose efficacy is debatable, one of the flavors will merge on their fork and test, and later others -- including Core -- can copy that too. Plus, we get resistant to attacks: in case there is an attack on Bitcoin Core, only 10% of the network would be compromised. the other flavors would be safe.
Run Bitcoin Knots
The first example of a
bitcoind
software that follows Bitcoin Core closely, adds some small changes, but has an independent vetting and release process is Bitcoin Knots, maintained by the incorruptible Luke DashJr.Next time you decide to run
bitcoind
, run Bitcoin Knots instead and contribute tobitcoind
decentralization!
See also:
[^pr-merged-very-quickly]: See PR 20624, for example, a very complicated change that could be introducing bugs or be a deliberate attack, merged in 3 days without time for discussion.
-
@ ebbdabe3:ae797cd2
2024-03-19 15:41:58The Injective Illuminate Hackathon 2023 was a standout event with a 100K prize pool and 100+ BUIDLS submitted, providing an unforgettable experience for passionate Injective ecosystem builders.
Building on this success we are excited to announce, DoraHacks and the Injective Foundation have partnered to showcase 10 of the most promising projects from the Injective Illuminate Hackathon, inviting them to participate in the VERY FIRST Injective Quadratic Funding Round. This is a great opportunity for the Injective community to contribute to some of the most promising ecosystem projects by voting on what projects they want to see get a larger portion of the matching pool, whilst also contributing some of their own $INJ token to vote.
Dora Factory is providing the full 1,500 INJ (~$70,000) matching pool coming from the Public Good Staking reserve. The reserve was generated from the Dora Factory PGS node, our innovative way to fund ecosystem ventures and developers with block incentives while decentralizing the blockchain governance with the vote of the community. To explore, please go to the official link at : https://dorahacks.io/injective
The first ever native Injective QF is to provide long-term support for important projects involved in and building in the Injective ecosystem. Together with developers and contributors, we look forward to building an innovative, sustainable and robust community in the Injective ecosystem. DoraHacks remains dedicated to equipping the developer community with the necessary tools and support. Our commitment to QF extends beyond funding, serving as a testament to our support for every idea and our commitment to nurturing a future led by visionary thinkers and builders.
Key Dates
The opening ceremony kicks off on March 18th, followed by demo sessions showcasing these outstanding projects on March 19th, 20th, and 21st at 8PM PST. Don’t miss out on the chance to engage with the Injective team on the 18th and check in for the demo sessions to get a more in-depth look at the projects participating.The voting period runs from March 18th, 12 PM PST to April 8th, 12 PM PST, offering everyone the chance to come vote, and contribute to the Injective ecosystem and support the developer community.
What is Quadratic Funding?
Quadratic Funding is an innovative funding mechanism, used to allocate funds for public goods projects based on community support. The model ensures popular projects with a wider base of community contributors receive more funding compared to projects with just a few large contributors. As a result, the funding is allocated more equitably and transparently, with the decision made more on a democratic approach.
In QF, the cost of each additional vote increases exponentially, promoting a level voting ground amount for projects. For more detailed information regarding Quadratic Funding and DoraHacks improvement, visit our blog.
Meet The Teams
Aeroscraper - DeFi protocol looking to address the interest rate problem in lending-borrowing platforms by offering interest-free, over-collateralized stablecoins pegged to the US dollar.
Chain Defender - Revolutionize smart contract security by offering automated vulnerability audits and pre-audit scans, catering to projects on networks like Injective, providing faster and cheaper solutions to address the critical need for enhanced security in Web3.
Gryphon - Leverage assets and maximize yield on Injective with its pioneering protocol integrating LSD and a native stablecoin component (CDP) with capital efficiency, adaptable CDP options, and compound yield backed by blue-chip assets,
Hydro Protocol - Introduces Real Yield Assets (RYA) for diversified yield exposure, combining Real World and Crypto Assets, while optimizing yield strategies as the first native LSD+LSDFi on Injective with eVM and sVM capabilities.
Kogen Markets - A decentralized exchange (DEX) dedicated to options trading in the Cosmos DeFi ecosystem, offering users the ability to leverage assets for yields and set price targets through smart contracts.
Neptune Finance - Optimizes DeFi savings with its advanced peer-to-peer lending protocol, offering variable interest rates, multiple borrowing accounts, and modular features dynamically adjusting rates through a PID controller, to target market efficiency, new yield strategies, deeper liquidity and increased utility for INJ.
Ninja Blaze - Blockchain-based games on the Injective blockchain, ensuring full transparency regarding in-game assets, transactions and player interactions, currently in testnet with two available games, Jackpot and Roshambo.
NinjaKits - All-in-one DeFi and NFT management tool, empowering users with non-custodial access to decentralized finance, with features like portfolio assessment, NFT collection management, DeFi services, and unique integrations like on-chain messaging and token creation
TimeWorx - Bridges the gap between human intelligence and artificial intelligence by providing accessible data processing and labeling services to SMBs. Through decentralized environments, users earn TIX tokens by completing tasks, contributing to machine learning, and can monetize their time and stake tokens via the platform's mobile app.
Tokenized Interchain Accounts - A new paradigm that tokenizes account ownership across multiple chains using IBC, all accounts abstracted, can be traded, enabling all dApps to be multi-chain.
Voting Details:
Injective's Quadratic Funding Round enables contributions using $INJ, where 1st vote costs 0.01 INJ and subsequent votes scale accordingly. Contributions attract matching funds from Dora Factory’s PGS reserve, with final rankings visible on the dedicated page. The process involves weighted calculations, ensuring fair distribution through Progressive Tax and guarding against sybil attacks with anti-sybil checks post-funding. See our Voting Guide for more information on how to vote.
About Injective
Injective is a lightning-fast interoperable layer one blockchain optimized for building the premier Web3 finance applications. Injective provides developers with powerful plug-and-play modules for creating unmatched dApps. Incubated by Binance, the Injective ecosystem is also supported by leading Web3 institutions such as Pantera, Jump Crypto, Mark Cuban, and more.
About DoraHacks
DoraHacks is a global hackathon organizer and one of the world's most active multi-chain Web3 developer platforms. It creates a global hacker movement and provides crypto native toolkits to help developers around the world team up and fund their ideas and BUIDLs via hackathons, bounties, grants, grant DAOs, and public good staking. By far, more than 5300 projects from the DoraHacks community have received over $60 million in grants and other forms of contributions from supporters worldwide. A large number of open source communities, DAOs, and more than 90 major blockchain ecosystems are actively using Dora's infrastructure (DoraHacks.io) for open source funding and community governance.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28On "zk-rollups" applied to Bitcoin
ZK rollups make no sense in bitcoin because there is no "cheap calldata". all data is already ~~cheap~~ expensive calldata.
There could be an onchain zk verification that allows succinct signatures maybe, but never a rollup.
What happens is: you can have one UTXO that contains multiple balances on it and in each transaction you can recreate that UTXOs but alter its state using a zk to compress all internal transactions that took place.
The blockchain must be aware of all these new things, so it is in no way "L2".
And you must have an entity responsible for that UTXO and for conjuring the state changes and zk proofs.
But on bitcoin you also must keep the data necessary to rebuild the proofs somewhere else, I'm not sure how can the third party responsible for that UTXO ensure that happens.
I think such a construct is similar to a credit card corporation: one central party upon which everybody depends, zero interoperability with external entities, every vendor must have an account on each credit card company to be able to charge customers, therefore it is not clear that such a thing is more desirable than solutions that are truly open and interoperable like Lightning, which may have its defects but at least fosters a much better environment, bringing together different conflicting parties, custodians, anyone.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28The problem with ION
ION is a DID method based on a thing called "Sidetree".
I can't say for sure what is the problem with ION, because I don't understand the design, even though I have read all I could and asked everybody I knew. All available information only touches on the high-level aspects of it (and of course its amazing wonders) and no one has ever bothered to explain the details. I've also asked the main designer of the protocol, Daniel Buchner, but he may have thought I was trolling him on Twitter and refused to answer, instead pointing me to an incomplete spec on the Decentralized Identity Foundation website that I had already read before. I even tried to join the DIF as a member so I could join their closed community calls and hear what they say, maybe eventually ask a question, so I could understand it, but my entrance was ignored, then after many months and a nudge from another member I was told I had to do a KYC process to be admitted, which I refused.
One thing I know is:
- ION is supposed to provide a way to rotate keys seamlessly and automatically without losing the main identity (and the ION proponents also claim there are no "master" keys because these can also be rotated).
- ION is also not a blockchain, i.e. it doesn't have a deterministic consensus mechanism and it is decentralized, i.e. anyone can publish data to it, doesn't have to be a single central server, there may be holes in the available data and the protocol doesn't treat that as a problem.
- From all we know about years of attempts to scale Bitcoins and develop offchain protocols it is clear that you can't solve the double-spend problem without a central authority or a kind of blockchain (i.e. a decentralized system with deterministic consensus).
- Rotating keys also suffer from the double-spend problem: whenever you rotate a key it is as if it was "spent", you aren't supposed to be able to use it again.
The logic conclusion of the 4 assumptions above is that ION is flawed: it can't provide the key rotation it says it can if it is not a blockchain.
See also
-
@ 5d4b6c8d:8a1c1ee3
2024-03-19 14:10:00There's a UFC match available to bet on at freebitcoin: Ribas vs Namajunas. I continue to find their choice of events confusing, but this is a fun development, none-the-less.
My big recent win was the Juventus vs Genoa draw, which I got at about 10:1. Otherwise, it's been slow and steady with my Risk Balanced Odds Arbitrage approach generating small gains.
What recent wins have you all had recently? Any embarrassing or crushing losses?
I'm feeling better and better about my SN wagers on Jokic and his Nuggets.
-
@ 32e18276:5c68e245
2024-03-02 12:26:09Thanks to OpenSats and its generous donors, Damus has been able to continue building open source freedom tech without influence from external parties. Damus' mission is to build the best nostr and bitcoin tech without compromise on decentralization, and this will continue to be our mission going forward. This wouldn't be possible without OpenSats and other organizations that continue to help make this vision a reality!
As per our OpenSats agreement, we are required to publish quarterly reports on our progress. We submit this report to nostr for full transparency. If you're curious what we've been working on this past quarter, check it out:
Damus OpenSats Q2 Progress Report
The second quarter of the Damus OpenSats grant has been very productive and encompasses the 1.7 release of Damus, soon to be released to the appstore.
Notable new features in Damus iOS 1.7
- Damus purple subscriptions which includes the DeepL Universal Translator 🖖
- Local-first full-text search engine for privacy preserving searching powered by nostrdb4
- Add NIP-42 relay auth support
- Added regional relay recommendations for Germany, Japan, Thailand
- Add naddr link support
New tech built in this quarter
- A new nostr share-link opengraph renderer in rust called notecrumbs2, powered by egui and nostrdb4
- Added query and subscription support to nostrdb{,-rs}
- Added fulltext search query support nostrdb, which powers the search in Damus iOS v1.7
- Working prototype of Damus Android and Damus NoteDeck, a rust-powered multiplatform nostr client3 powered by egui and nostrdb4
How money was used
- Paying individual contributors via patch submissions on the damus dev mailing list (patches@damus.io)
- relay.damus.io server costs
- deepl translation costs
- Living expenses, nostr/bitcoin conferences, travel, etc
Contributions
Damus-iOS
name added removed commits Daniel D’Aquino <daniel@daquino.me> +7655 -2989 46 William Casarin <jb55@jb55.com> +3753 -2396 132 kernelkind <kernelkind@gmail.com> +1513 -273 27 Charlie Fish <contact@charlie.fish> +1386 -331 12 Terry Yiu <git@tyiu.xyz> +1018 -102 3 ericholguin <ericholguin@apache.org> +509 -65 3 Transifex <transifex@transifex.com> +464 -67 80 Suhail Saqan <suhail.saqan@gmail.com> +347 -27 2 ericholguin <eric.holguinsanchez@gmail.com> +202 -101 6 alltheseas <64376233+alltheseas@users.noreply.github.com> +51 -24 5 Kieran <kieran@harkin.me> +33 -0 1 kunigaku <kunigaku@gmail.com> +13 -2 1 vuittont60 <81072379+vuittont60@users.noreply.github.com> +3 -3 1 Jing维 <zhjw43@163.com> +1 -1 1 hakkadaikon <hakkadaikon@yahoo.co.jp> +1 -1 1
notecrumbs
name added removed commits William Casarin <jb55@jb55.com> +6079 -819 68
Damus Android/NoteDeck
name added removed commits William Casarin <jb55@jb55.com> +5205 -2870 86 0xb10c <b10c@b10c.me> +6 -2 1 alltheseas <64376233+alltheseas@users.noreply.github.com> +5 -0 1
nostrdb
name added removed commits William Casarin <jb55@jb55.com> +88175 -3758 186 kernelkind <kernelkind@gmail.com> +50 -3 1 Yasuhiro Matsumoto <mattn.jp@gmail.com> +26 -3 1 Charlie Fish <contact@charlie.fish> +12 -0 1 shuoer86 <129674997+shuoer86@users.noreply.github.com> +3 -3 1 hakkadaikon <hakkadaikon@yahoo.co.jp> +2 -2 1
nostrdb-rs
name added removed commits William Casarin <jb55@jb55.com> +8181 -248 50
iOS Changelog
Added
- Damus Purple membership! (Daniel D’Aquino)
- Improved damus.io share links (William Casarin)
- Add local, privacy-preserving fulltext search engine (William Casarin)
- Add NIP-42 relay auth support (Charlie Fish)
- Add ability to hide suggested hashtags (ericholguin)
- Add ability to mute hashtag from SearchView (Charlie Fish)
- Add ability to preview media taken with camera (Suhail Saqan)
- Add ability to search for naddr, nprofiles, nevents (kernelkind)
- Add experimental push notification support (Daniel D’Aquino)
- Add naddr link support (kernelkind)
- Add regional relay recommendations to Relay configuration view (Daniel D’Aquino)
- Add regional relays for Germany (Daniel D’Aquino)
- Add regional relays for Japan (Daniel D’Aquino)
- Add regional relays for Thailand (Daniel D’Aquino)
- Add support for Apple In-App purchases (Daniel D’Aquino)
- Always convert damus.io links to inline mentions (William Casarin)
- Notification reminders for Damus Purple impending expiration (Daniel D’Aquino)
Changed
- Disable inline text suggestions on 17.0 as they interfere with mention generation (William Casarin)
- EULA is not shown by default (ericholguin)
- Generate nprofile/nevent links in share menus (kernelkind)
- Improve push notification support to match local notification support (Daniel D’Aquino)
- Move mute thread in menu so it's not clicked by accident (alltheseas)
- Prioritize friends when autocompleting (Charlie Fish)
Fixed
- Add workaround to fix note language recognition and reduce wasteful translation requests (Terry Yiu)
- Allow mentioning users with punctuation characters in their names (kernelkind)
- Fix broken mentions when there is text is directly after (kernelkind)
- Fix crash on very large notes (Daniel D’Aquino)
- Fix crash when accessing cached purple accounts (William Casarin)
- Fix crash when logging out and switching accounts (William Casarin)
- Fix duplicate notes getting written to nostrdb (William Casarin)
- Fixed bug where sometimes notes from other profiles appear on profile pages (Charlie Fish)
- Fixed previews not rendering (ericholguin)
- Fix issue where adding relays might not work on corrupted contact lists (Charlie Fish)
- Fix load media formatting on small screens (kernelkind)
- Fix many nostrdb transaction related crashes (William Casarin)
- Fix onboarding post view not being dismissed under certain conditions (Daniel D’Aquino)
- Fix performance issue with gifs (William Casarin)
- Fix persistent local notifications even after logout (William Casarin)
- Fix profile not updating bug (William Casarin)
- Fix shared nevents that are too long (kernelkind)
- Fix welcome screen not showing if the user enters the app directly after a successful checkout without going through the link (Daniel D’Aquino)
- Remove extra space at the end of DM messages (kernelkind)
- Save current viewed image index when switching to fullscreen (kernelkind)
Removed
- Removed copying public key action (ericholguin)
- Removed old nsec key warning, nsec automatically convert to npub when posting (kernelkind)
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28lnurl-auth explained
You may have seen the lnurl-auth spec or heard about it, but might not know how it works or what is its relationship with other lnurl protocols. This document attempts to solve that.
Relationship between lnurl-auth and other lnurl protocols
First, what is the relationship of lnurl-auth with other lnurl protocols? The answer is none, except the fact that they all share the lnurl format for specifying
https
URLs.In fact, lnurl-auth is very unique in the sense that it doesn't even need a Lightning wallet to work, it is a standalone authentication protocol that can work anywhere.
How does it work
Now, how does it work? The basic idea is that each wallet has a seed, which is a random value (you may think of the BIP39 seed words, for example). Usually from that seed different keys are derived, each of these yielding a Bitcoin address, and also from that same seed may come the keys used to generate and manage Lightning channels.
What lnurl-auth does is to generate a new key from that seed, and from that a new key for each service (identified by its domain) you try to authenticate with.
That way, you effectively have a new identity for each website. Two different services cannot associate your identities.
The flow goes like this: When you visit a website, the website presents you with a QR code containing a callback URL and a challenge. The challenge should be a random value.
When your wallet scans or opens that QR code it uses the domain in the callback URL plus the main lnurl-auth key to derive a key specific for that website, uses that key to sign the challenge and then sends both the public key specific for that for that website plus the signed challenge to the specified URL.
When the service receives the public key it checks it against the challenge signature and start a session for that user. The user is then identified only by its public key. If the service wants it can, of course, request more details from the user, associate it with an internal id or username, it is free to do anything. lnurl-auth's goals end here: no passwords, maximum possible privacy.
FAQ
-
What is the advantage of tying this to Bitcoin and Lightning?
One big advantage is that your wallet is already keeping track of one seed, it is already a precious thing. If you had to keep track of a separate auth seed it would be arguably worse, more difficult to bootstrap the protocol, and arguably one of the reasons similar protocols, past and present, weren't successful.
-
Just signing in to websites? What else is this good for?
No, it can be used for authenticating to installable apps and physical places, as long as there is a service running an HTTP server somewhere to read the signature sent from the wallet. But yes, signing in to websites is the main problem to solve here.
-
Phishing attack! Can a malicious website proxy the QR from a third website and show it to the user to it will steal the signature and be able to login on the third website?
No, because the wallet will only talk to the the callback URL, and it will either be controlled by the third website, so the malicious won't see anything; or it will have a different domain, so the wallet will derive a different key and frustrate the malicious website's plan.
-
I heard SQRL had that same idea and it went nowhere.
Indeed. SQRL in its first version was basically the same thing as lnurl-auth, with one big difference: it was vulnerable to phishing attacks (see above). That was basically the only criticism it got everywhere, so the protocol creators decided to solve that by introducing complexity to the protocol. While they were at it they decided to add more complexity for managing accounts and so many more crap that in the the spec which initially was a single page ended up becoming 136 pages of highly technical gibberish. Then all the initial network effect it had, libraries and apps were trashed and nowadays no one can do anything with it (but, see, there are still people who love the protocol writing in a 90's forum with no clue of anything besides their own Java).
-
We don't need this, we need WebAuthn!
WebAuthn is essentially the same thing as lnurl-auth, but instead of being simple it is complex, instead of being open and decentralized it is centralized in big corporations, and instead of relying on a key generated by your own device it requires an expensive hardware HSM you must buy and trust the manufacturer. If you like WebAuthn and you like Bitcoin you should like lnurl-auth much more.
-
What about BitID?
This is another one that is very similar to lnurl-auth, but without the anti-phishing prevention and extra privacy given by making one different key for each service.
-
What about LSAT?
It doesn't compete with lnurl-auth. LSAT, as far as I understand it, is for when you're buying individual resources from a server, not authenticating as a user. Of course, LSAT can be repurposed as a general authentication tool, but then it will lack features that lnurl-auth has, like the property of having keys generated independently by the user from a common seed and a standard way of passing authentication info from one medium to another (like signing in to a website at the desktop from the mobile phone, for example).
-
-
@ 46fcbe30:6bd8ce4d
2024-03-19 13:38:56Opinion about Trust: Crypto & Bitcoin Wallet (iphone)
"Trust" ironically needs a lot of trust as it's closed source. The provider does share some code but not all of it. Given they failed to adequately use crypto libraries (CVE-2024-23660), resulting in easy to guess backups, I would never trust them.
WalletScrutiny #nostrOpinion
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28A violência é uma forma de comunicação
A violência é uma forma de comunicação: um serial killer, um pai que bate no filho, uma briga de torcidas, uma sessão de tortura, uma guerra, um assassinato passional, uma briga de bar. Em todos esses se pode enxergar uma mensagem que está tentando ser transmitida, que não foi compreendida pelo outro lado, que não pôde ser expressa, e, quando o transmissor da mensagem sentiu que não podia ser totalmente compreendido em palavras, usou essa outra forma de comunicação.
Quando uma ofensa em um bar descamba para uma briga, por exemplo, o que há é claramente uma tentativa de uma ofensa maior ainda pelo lado do que iniciou a primeira, a briga não teria acontecido se ele a tivesse conseguido expressar em palavras tão claras que toda a audiência de bêbados compreendesse, o que estaria além dos limites da linguagem, naquele caso, o soco com o mão direita foi mais eficiente. Poderia ser também a defesa argumentativa: "eu não sou um covarde como você está dizendo" -- mas o bar não acreditaria nessa frase solta, a comunicação não teria obtido o sucesso desejado.
A explicação para o fato da redução da violência à medida em que houve progresso da civilização está na melhora da eficiência da comunicação humana: a escrita, o refinamento da expressão lingüística, o aumento do alcance da palavra falada com rádio, a televisão e a internet.
Se essa eficiência diminuir, porque não há mais acordo quanto ao significado das palavras, porque as pessoas não estão nem aí para se o que escrevem é bom ou não, ou porque são incapazes de compreender qualquer coisa, deve aumentar proporcionalmente a violência.
-
@ c11cf5f8:4928464d
2024-03-19 13:30:35Is callin'! Wrangle up your latest tech discoveries, reviews, and recommendations.
Found any gadgets or gizmos that blew your mind? Don't be shy—share the pros and cons and help your fellow stackers in the ~AGORA stay ahead of the tech curve!
-
@ 1e52c554:21771908
2024-03-19 13:58:41Posthumous work of the Colombian poet born in Don Matias on January 20, 1948.
Welcome to this blog dedicated to the Posthumous work of the Colombian poet Francisco Luis Arroyave Tabares (my father), born in Don Matias on January 20, 1948-2010. Where I will be publishing each of the 175 sonnets from his unpublished collection 'Sonnets For The Twenty-First Century And A Circadian Musical (1984-1987).' Analyzed with GPT4 artificial intelligence and illustrated with AI tools... I hope you enjoy this garden of words snatched from the solitude of a locked room.
Likewise, any enthusiast of the sonnet form is invited to conduct their personal studies of Arroyave Tabares' work, as it is a collection that, although registered since 1989, has not yet been published.
Frank Duna
Analysis of "A Mere Or Tenderness"
Introduction
Sonnet 131 by Francisco Luis Arroyave Tabares is a beautiful piece of poetry that explores themes of love, desire, and the transformative power of art. The sonnet is divided into three quatrains and a couplet, following the structure of a Shakespearean sonnet.
Thematic Analysis
Lines 1-4: The speaker expresses a longing for the subject of the poem, symbolized by a “mere” or pond. This body of water is described as pure and full of tenderness. The speaker finds joy (“mirths”) in the reflection of the pond, which seems to offer a respite from darker days.
Lines 5-8: The speaker’s heart is described as “adamant,” suggesting a state of emotional hardness or unresponsiveness. However, the speaker hopes to revive their passion (“zeal”) through the influence of the subject’s art.
Lines 9-12: The speaker anticipates a closeness with the subject, whose virtues are compared to stars that light up the night. The subject’s love is portrayed as an altar where hidden pleasures are revealed.
Lines 13-14: The speaker intends to illuminate their soul with a special kind of light (“luminescence”) that emanates from the subject’s depths and “quintessence,” or purest essence.
Overall, this sonnet uses vivid and symbolic language to convey a deep sense of admiration and affection. The speaker’s desire for transformation and enlightenment through love is a central theme. The use of words like “mere,” “mirth,” “adamant,” “zeal,” “alight,” “luminescence,” and “quintessence” add layers of meaning and contribute to the poem’s rich imagery.
Structure and Rhyme Scheme
First Quatrain (Lines 1-4): The rhyme scheme is ABAB.
Line 1: mere (A) Line 2: tenderness (B) Line 3: are (A) Line 4: somberness (B)
Second Quatrain (Lines 5-8): The rhyme scheme is CDCD.
Line 5: heart (C) Line 6: adamant (D) Line 7: art (C) Line 8: dormant (D)
Third Quatrain (Lines 9-12): The rhyme scheme is EFEF.
Line 9: close (E) Line 10: alight (F) Line 11: disclose (E) Line 12: night (F)
Final Couplet (Lines 13-14): The rhyme scheme is GG.
Line 13: luminescence (G) Line 14: quintessence (G)
This structure allows for the development of three distinct but closely related ideas, each contained within its own quatrain. In the final couplet, the poet can present a summarizing or concluding thought. In this sonnet, the final couplet serves to highlight the speaker’s intention to be enlightened by the subject’s essence.
Analysis of Aspects
Sonnet 131 by Francisco Luis Arroyave Tabares is a rich tapestry of language, imagery, and themes. Here’s a detailed analysis:
Language: The sonnet uses a mix of simple and complex language. Words like “mere,” “mirth,” “adamant,” “zeal,” “alight,” “luminescence,” and “quintessence” are less commonly used, adding a layer of sophistication to the poem. The language is emotive and descriptive, helping to convey the speaker’s feelings and experiences.
Imagery: The poem is filled with vivid imagery. The “mere” or pond serves as a symbol of the subject’s purity and tenderness. The speaker’s heart is described as “adamant,” suggesting emotional resilience or hardness. The subject’s virtues are compared to stars that light up the night, creating a beautiful image of their admirable qualities.
Themes: The main themes of the poem are love, desire, and transformation. The speaker expresses a longing for the subject and hopes to undergo a personal transformation through their influence. The theme of enlightenment is also present, with the speaker seeking to illuminate their soul with the subject’s essence.
Meter: The sonnet follows the traditional iambic pentameter, which is a line of verse with five metrical feet, each consisting of one short (or unstressed) syllable followed by one long (or stressed) syllable. This gives the poem a rhythmic quality and makes it pleasing to the ear.
Overall, Sonnet 131 is a beautifully crafted poem that uses language, imagery, and themes to convey a deep sense of admiration and affection. The speaker’s desire for transformation and enlightenment through love is a central theme. The use of a traditional sonnet form and meter adds to the poem’s charm and appeal. The sonnet is a testament to the power of love and the transformative potential of art. It invites readers to reflect on their own experiences of love and desire, making it a relatable and thought-provoking piece of poetry.
(GPT4)
Syllable count for each line.
```
A Mere Or Tenderness
10 Trending a desire I came to your mere
10 That is clean and witholds all tenderness 10 And in its mirrors I found mirths we are
10 Always missing in days of somberness.10 This is why I want to unfold my heart 10 That has becone a piece of adamant
10 And come to life again under your art 10 Waking up my zeal that has been dorrmant .10 In short time I will get to be real close
10 To your virtues that are the stars alight 10 When in the altar of love you disclose
10 Hidden pleasures that lay amid dark night.10 I will light my soul with luminescence
10 That comes from your depths and quintiessence.
***```
Sonnets For The Twenty First Century And A Circadian Musical Written By Francisco Luis Arroyave Tabares (1984-1987)
Analyzed by GPT4; Image by leonardo.ai; First published on Nostr Protocol by franciscoarroyavet@nostrplebs.com
A Mere Or Tenderness
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28Problemas com Russell Kirk
A idéia central da “política da prudência[^1]” de Russell Kirk me parece muito correta, embora tenha sido melhor formulada pior no seu enorme livro do que em uma pequena frase do joanadarquista Lucas Souza: “o conservadorismo é importante, porque tem muita gente com idéia errada por aí, e nós podemos não saber distingüi-las”.
Porém, há alguns problemas que precisam ser esclarecidos, ou melhor explicados, e que me impedem de enxergar os seus argumentos como refutação final do meu já tão humilde (embora feroz) anarquismo. São eles:
I Percebo alguma coisa errada, não sei bem onde, entre a afirmação de que toda ideologia é ruim, ou “todas as ideologias causam confusão[^2]”, e a proposta conservadora de “conservar o mundo da ordem que herdamos, ainda que em estado imperfeito, de nossos ancestrais[^3]”. Ora, sem precisar cair em exemplos como o do partido conservador inglês -- que conservava a política inglesa sempre onde estava, e se alternava no governo com o partido trabalhista, que a levava cada vez mais um pouco à esquerda --, está embutida nessa frase, talvez, a idéia, que ao mesmo tempo é clara e ferrenhamente combatida pelos próprios conservadores, de que a história é da humanidade é uma história de progresso linear rumo a uma situação melhor.
Querer conservar o mundo da ordem que herdamos significa conservar também os vários erros que podem ter sido cometidos pelos nossos ancestrais mais recentes, e conservá-los mesmo assim, acusando toda e qualquer tentativa de propôr soluções a esses erros de ideologia? Ou será que conservar o mundo da ordem é escolher um período determinado que seja tido como o auge da história humana e tentar restaurá-lo em nosso próprio tempo? Não seria isto ideologia?
Ou, ainda, será que conservar o mundo da ordem é selecionar, entre vários períodos do passado, alguns pedaços que o conservador considerar ótimos em cada sociedade, fazer dali uma mistura de sociedade ideal baseada no passado e então tentar implementá-la? Quem saberia dizer quais são as partes certas?
II Sobre a questão do que mantém a sociedade civil coesa, Russell Kirk, opondo-a à posição libertária de que o nexo da sociedade é o autointeresse, declara que a posição conservadora é a de que “a sociedade é uma comunidade de almas, que une os mortos, os vivos e os ainda não nascidos, e que se harmoniza por aquilo que Aristóteles chamou de amizade e os cristãos chamam de caridade ou amor ao próximo”.
Esta é uma posição muito correta, mas me parece estar em contradição com a defesa do Estado que ele faz na mesma página e na seguinte. O que me parece errado é que a sociedade não pode ser, ao mesmo tempo, uma “comunidade baseada no amor ao próximo” e uma comunidade que “requer não somente que as paixões dos indivíduos sejam subjugadas, mas que, mesmo no povo e no corpo social, bem como nos indivíduos, as inclinações dos homens, amiúde, devam ser frustradas, a vontade controlada e as paixões subjugadas” e, pior, que “isso somente pode ser feito por um poder exterior”.
Disto aí podemos tirar que, da mesma forma que Kirk define a posição libertária como sendo a de que o autointeresse é que mantém a sociedade civil coesa, a posição conservadora seria então a de que essa coesão vem apenas do Estado, e não de qualquer ligação entre vivos e mortos, ou do amor ao próximo. Já que, sem o Estado, diz, ele, citando Thomas Hobbes, a condição do homem é “solitária, pobre, sórdida, embrutecida e curta”?
[^1]: este é o nome do livro e também um outro nome que ele dá para o próprio conservadorismo (p.99). [^2]: p. 101 [^3]: p. 102
-
@ 6871d8df:4a9396c1
2024-02-24 22:42:16In an era where data seems to be as valuable as currency, the prevailing trend in AI starkly contrasts with the concept of personal data ownership. The explosion of AI and the ensuing race have made it easy to overlook where the data is coming from. The current model, dominated by big tech players, involves collecting vast amounts of user data and selling it to AI companies for training LLMs. Reddit recently penned a 60 million dollar deal, Google guards and mines Youtube, and more are going this direction. But is that their data to sell? Yes, it's on their platforms, but without the users to generate it, what would they monetize? To me, this practice raises significant ethical questions, as it assumes that user data is a commodity that companies can exploit at will.
The heart of the issue lies in the ownership of data. Why, in today's digital age, do we not retain ownership of our data? Why can't our data follow us, under our control, to wherever we want to go? These questions echo the broader sentiment that while some in the tech industry — such as the blockchain-first crypto bros — recognize the importance of data ownership, their "blockchain for everything solutions," to me, fall significantly short in execution.
Reddit further complicates this with its current move to IPO, which, on the heels of the large data deal, might reinforce the mistaken belief that user-generated data is a corporate asset. Others, no doubt, will follow suit. This underscores the urgent need for a paradigm shift towards recognizing and respecting user data as personal property.
In my perfect world, the digital landscape would undergo a revolutionary transformation centered around the empowerment and sovereignty of individual data ownership. Platforms like Twitter, Reddit, Yelp, YouTube, and Stack Overflow, integral to our digital lives, would operate on a fundamentally different premise: user-owned data.
In this envisioned future, data ownership would not just be a concept but a practice, with public and private keys ensuring the authenticity and privacy of individual identities. This model would eliminate the private data silos that currently dominate, where companies profit from selling user data without consent. Instead, data would traverse a decentralized protocol akin to the internet, prioritizing user control and transparency.
The cornerstone of this world would be a meritocratic digital ecosystem. Success for companies would hinge on their ability to leverage user-owned data to deliver unparalleled value rather than their capacity to gatekeep and monetize information. If a company breaks my trust, I can move to a competitor, and my data, connections, and followers will come with me. This shift would herald an era where consent, privacy, and utility define the digital experience, ensuring that the benefits of technology are equitably distributed and aligned with the users' interests and rights.
The conversation needs to shift fundamentally. We must challenge this trajectory and advocate for a future where data ownership and privacy are not just ideals but realities. If we continue on our current path without prioritizing individual data rights, the future of digital privacy and autonomy is bleak. Big tech's dominance allows them to treat user data as a commodity, potentially selling and exploiting it without consent. This imbalance has already led to users being cut off from their digital identities and connections when platforms terminate accounts, underscoring the need for a digital ecosystem that empowers user control over data. Without changing direction, we risk a future where our content — and our freedoms by consequence — are controlled by a few powerful entities, threatening our rights and the democratic essence of the digital realm. We must advocate for a shift towards data ownership by individuals to preserve our digital freedoms and democracy.
-
@ 599f67f7:21fb3ea9
2024-03-04 14:25:25¿Qué es Cashu?
Cashu es un protocolo de ecash de código abierto para Bitcoin que ofrece transacciones instantáneas sin comisiones con una privacidad casi perfecta. Consulta nostr:naddr1qqxnzd3e8y6rvdpe8qur2v3cqgs9n8m87l0hd9xxqwndqcmwzh4uvyxmwlw0637kuhg98pkcy8ana2grqsqqqa28f238dz para obtener más detalles.
Nutstash
Nutstash es una increíble billetera web de Cashu desarrollada por nostr:npub1cj6ndx5akfazux7f0vjl4fyx9k0ulf682p437fe03a9ndwqjm0tqj886t6 que implementa la mayoría de los NUTs, así como el envío y recepción a través de Nostr. También puedes instalarla como una Progressive Web App (PWA) en tu teléfono.
⚠️ Tanto Nutstash como Cashu todavía están en fase beta. Existe la posibilidad de perder fondos. Lee sobre los riesgos antes de usar la aplicación. Haz pruebas con pequeñas cantidades con las que te sientas cómodo perdiendo.
Pruébalo
Vamos a explicar cómo interactuar con una mint, recibir y enviar ecash, hacer copias de seguridad, convertir a Lightning y hacer intercambios entre mints, y al final probaremos la funcionalidad de los contactos de Nostr.
Añadir un mint
Para interactuar con ecash, primero necesitas tener acceso a una mint, donde se crean y canjean tus tokens de ecash.
- Ve a Txoko Mint.
- Abre la mint en Nutstash.
💡 Puedes añadir mints adicionales en Nutstash yendo a
Mint
, pegando la URL de la mint y presionandoAdd Mint
("Añadir Mint"). Algunas mints públicas se pueden encontrar en MintIndex. Ten en cuenta que algunas mints reservarán una cierta cantidad de sats para pagar las tarifas de enrutamiento, lo que significa que no podrás retirar todos tus sats.
Crear tokens
Puedes financiar tu billetera de ecash tanto recibiendo ecash directamente como creando nuevos tokens de ecash pagando una factura de Lightning.
- En la pestaña
Mint
, elige la mint en la que quieres crear nuevos tokens y presionaMint
. - Elige una cantidad. Prueba con una cantidad pequeña, como 100 sats.
- Crea la factura y págala desde una billetera de Lightning. Una vez que se haya pagado la factura, deberías tener tokens de ecash.
Realizar transacciones con ecash
Realizar transacciones con ecash implica básicamente enviar y recibir bloques de datos. Por lo tanto, puedes probar estas funcionalidades enviando y recibiendo a ti mismo. 1. Para enviar ecash, ve a
Wallet
>Send
. 2. Selecciona la mint desde la que quieres enviar. 3. Elige una cantidad. Opcionalmente, utiliza la selección de monedas. 4. Haz clic en enviar tokens. 5. Copia el token. En este punto, puedes enviar el token a otra persona o canjearlo en tu propia billetera. Dado que solo estamos probando las cosas, haremos lo último.- Para recibir ecash, haz clic en
Wallet
>Receive
. - Pega el token de cashu.
- Haz clic en
Receive
.
💡 Puedes verificar los tokens de ecash pendientes y reclamarlos si el destinatario aún no los ha canjeado. Para hacer esto, ve a la pestaña
Wallets
y buscaTokens
. Asegúrate de que la columnaPending
esté marcada. Debería haber una lista de tokens pendientes, haz clic en el botón de actualización para verificar su estado. Si no han sido reclamados, puedes copiar y canjear el token.Intercambio de múltiples mints
Es posible que te hayas preguntado si diferentes mints pueden enviar y recibir entre sí. La respuesta es sí. Bueno, más o menos. En lugar de enviar tokens de cashu entre sí, las transacciones entre mints se realizan a través de Lightning. Para probar esto, puedes agregar otra mint si aún no lo has hecho, por ejemplo, la mint de LNbits.
💡 Ten en cuenta que algunas mints reservarán una cierta cantidad de sats para pagar las tarifas de enrutamiento, lo que significa que no podrás retirar todos tus sats. Para evitar esto, también puedes crear tu propia mint con tu billetera Bitcoin Txoko LNbits activando la extensión de Cashu. Bitcoin Txoko no requiere reservas, por lo que puedes retirar todos tus sats.
- Ve a la pestaña
Mint
y agrega una nueva mint si aún no lo has hecho. - Una vez que tengas varias mints, tendrás la opción de
Inter-Mint Swap
. Abre la opción y lee la advertencia. - Si deseas continuar, elige una mint de la que quieres hacer el intercambio y una mint a la que quieres hacer el intercambio.
- Elige una cantidad.
- Confirma la cantidad (
Confirm amount
), verifica las tarifas estimadas de enrutamiento y procede con el intercambio (Swap
). En segundo plano, la mint que envía está pagando una factura de Lightning a la mint que recibe. Una vez que se haya liquidado la factura, el token intercambiado debería aparecer en el saldo de tu billetera en la mint que recibe.
Convertir a lightning
Cuando quieras convertir tus sats de cashu de nuevo a sats de Lightning, puedes convertir o "derretir" tus tokens de cashu.
- Haz clic en
Pay
o toca el ícono de la cámara para escanear un código QR. - Ingresa o escanea una factura.
- Opcionalmente, utiliza la selección de monedas.
- Presiona
Pay
. La mint funde los tokens de cashu y paga la factura de Lightning.
Copias de seguridad
Hacer copias de seguridad de los tokens de Cashu es probablemente diferente al proceso que estás acostumbrado a hacer para respaldar las billeteras de Bitcoin y Lightning. Dado que los fondos están representados por tokens que son simplemente bloques de datos, solo estás respaldando estos datos cuando haces una copia de seguridad de los tokens de Cashu. Esto también significa que tus copias de seguridad cambiarán cada vez que realices una transacción y necesitarás hacer una nueva copia de seguridad después de cada transacción.
Los diferentes clientes de billeteras han implementado las copias de seguridad de manera diferente y solo funcionarán con la misma billetera que ha creado la copia de seguridad. Nutstash utiliza un archivo JSON como copia de seguridad, que también incluye tu historial de transacciones junto con los tokens que has agregado.
- Para descargar la copia de seguridad en formato JSON, ve a
Settings
("Configuración") >Backup Tokens
("Copia de seguridad de tokens"), descarga el archivo JSON y guárdalo en un lugar seguro. - Para restaurar la copia de seguridad, ve a
Settings
("Configuración") >Restore
("Restaurar"). Lee la advertencia. Los datos actuales de tu billetera se sobrescribirán.
Nostr
Dado que puedes enviar tokens de Cashu a través de cualquier protocolo basado en texto, Nostr es una excelente opción para Cashu. Nutstash facilita el envío de tokens de Cashu a través de Nostr.
Primero, necesitas conectar un firmante externo de Nostr a Nutstash para que Nutstash pueda cifrar y firmar mensajes directos utilizados para enviar tokens de ecash. Para hacer esto,
- Ve a la pestaña
Settings
("Configuración") y encuentra la secciónNostr
. - Activa
Nostr
. - Puedes configurar (
Configure
) los retransmisores manualmente o permitir que Nutstash lea tu lista de retransmisores después de completar el siguiente paso. - Activa
Use external key
("Usar clave externa"). Debes tener instalada una extensión de firmante de Nostr en tu navegador. Algunas buenas opciones son nos2x, Alby y Nostore (para Safari en iOS). - Una vez que Nutstash detecte tu extensión de firmante, permítele leer tu lista de retransmisores y clave pública.
- Si permites que Nutstash descifre los mensajes, buscará tokens de Cashu en tus mensajes directos. Una vez encontrados, aparecerán en la pestaña
Wallet
en la bandeja de entrada (Inbox
). Allí podrás canjearlos en tu billetera.
Para enviar Cashu a través de Nostr,
- Ve a
Send
("Enviar"). - Elige un mint.
- Elige una cantidad. Opcionalmente, utiliza la selección de monedas.
- Presiona
Send
("Enviar"). - En
Send via Nostr
("Enviar a través de Nostr"), ingresa una dirección de Nostr en formato npub, hexadecimal o NIP-05. Alternativamente, escanea el código QR del perfil de alguien. - Presiona
Send via Nostr
("Enviar a través de Nostr") y firma el mensaje tipo 4 con tu firmante externo. - Informa al destinatario que revise su bandeja de entrada, ¡deberían tener algunos Cashu esperándolos allí!
Conclusión
¿Encontraste útil esta guía? ¡Intenta enviarnos algunos tokens de Cashu a través de Nostr!
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28A Causa
o Princípios de Economia Política de Menger é o único livro que enfatiza a CAUSA o tempo todo. os cientistas todos parecem não saber, ou se esquecer sempre, que as coisas têm causa, e que o conhecimento verdadeiro é o conhecimento da causa das coisas.
a causa é uma categoria metafísica muito superior a qualquer correlação ou resultado de teste de hipótese, ela não pode ser descoberta por nenhum artifício econométrico ou reduzida à simples antecedência temporal estatística. a causa dos fenômenos não pode ser provada cientificamente, mas pode ser conhecida.
o livro de Menger conta para o leitor as causas de vários fenômenos econômicos e as interliga de forma que o mundo caótico da economia parece adquirir uma ordem no momento em que você lê. é uma sensação mágica e indescritível.
quando eu te o recomendei, queria é te imbuir com o espírito da busca pela causa das coisas. depois de ler aquilo, você está apto a perceber continuidade causal nos fenômenos mais complexos da economia atual, enxergar as causas entre toda a ação governamental e as suas várias consequências na vida humana. eu faço isso todos os dias e é a melhor sensação do mundo quando o caos das notícias do caderno de Economia do jornal -- que para o próprio jornalista que as escreveu não têm nenhum sentido (tanto é que ele escreve tudo errado) -- se incluem num sistema ordenado de causas e consequências.
provavelmente eu sempre erro em alguns ou vários pontos, mas ainda assim é maravilhoso. ou então é mais maravilhoso ainda quando eu descubro o erro e reinsiro o acerto naquela racionalização bela da ordem do mundo econômico que é a ordem de Deus.
em scrap para T.P.
-
@ e9905f7e:e31bfdf9
2024-02-27 02:33:31Chef's notes
The recipe is very flexible, so you can treat the ingredients as guidelines. It is easy to scale as well, depending on your needs.
To save time, you can just buy a rotisserie chicken and shred it yourself. Although preparing your own chicken is hard to beat in my experience. The prep time will vary depending on which chicken you choose: rotisserie vs cooked-at-home. Furthermore, the cooked-at-home chicken doesn't need to be complicated. Just some butterflied chicken breast, salt and pepper on all sides, baked for 25 minutes at 425F.
This dip pairs well with pita chips or bagel chips.
Details
- ⏲️ Prep time: 10 min - 35 min
- 🍳 Cook time: 1 hour
- 🍽️ Servings: 6
Ingredients
- 16 oz of shredded cheddar
- 8oz of cream cheese
- 1/2 cup of ranch dressing
- 1/2 bottle for Frank's RedHot Buffalo Sauce
- 3/4 lbs of shredded chicken
Directions
- Combine ingredients in crock pot.
- Turn heat on high.
- Stir occasionally.
- Once it just begins to bubble turn heat to low.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28Who will build the roads?
Who will build the roads? Em Lagoa Santa, as mais novas e melhores ruas -- que na verdade acabam por formar enormes teias de bairros que se interligam -- são construídas pelos loteadores que querem as ruas para que seus lotes valham mais -- e querem que outras pessoas usem as ruas também. Também são esses mesmos loteadores que colocam os postes de luz e os encanamentos de água, não sem antes terem que se submeter a extorsões de praxe praticadas por COPASA e CEMIG.
Se ao abrir um loteamento, condomínio, prédio um indivíduo ou uma empresa consegue sem muito problema passar rua, eletricidade, água e esgoto, por que não seria possível existir livre-concorrência nesses mercados? Mesmo aquela velha estória de que é ineficiente passar cabos de luz duplicados para que companhias elétricas possam competir já me parece bobagem.
-
@ 341db5a7:4c4fc2ef
2024-02-18 20:44:00Chef's notes
This recipe focuses on the chicken and sauce, not the buns. So make sure to get quality buns, or make your own. I like a brioche bun from my local bakery but choose whatever buns you like. Toppings are optional but I like to use blue cheese crumbles and fresh kosher dill pickle slices. You may prefer ranch dressing and lettuce, you're the Earl of this sandwich!
Details
- ⏲️ Prep time: 1 hour 30 minutes
- 🍳 Cook time: 30 mins
Ingredients
- SAUCE:
- 1 cup Franks Red Hot or Louisiana style hot sauce
- 1 cup butter
- CHICKEN BREADING:
- 2 eggs
- 1/4 cup milk
- 2 cups flour
- 2 heaping tablespoons Tony's or other Cajun style seasoning
- CHICKEN BRINE:
- 4 cups pickle juice
- THE MAIN EVENT:
- 4 large chicken breasts
- Pan of frying oil of choice
- Sliced Kosher dills
- Blue cheese crumbles
Directions
- The day before you make your chicken sandwiches, brine the 4 chicken breasts in the 4 cups of pickle juice. It'll be perfectly seasoned after an overnight soak.
- Make your sauce by combining the butter and hot sauce over medium low heat until it just starts to simmer, then remove from heat and cover. Traditionally, Frank's Red Hot is used, but you can use literally any sauce you like to combine with the butter.
- Start heating your pan of oil on medium high heat until it is a good frying temperature.
- While the oil is heating up, prep your breading station. We will be doing wet-dry-wet-dry battering. Remove the chicken breasts from the brine, and allow to briefly drip dry before tossing them in the flour and cajun seasoning mix. Then dip them in the beaten egg and milk solution. Toss in flour again, and set them on a rack until the breading is mostly dry.
- When the oil comes to temp, lower the chicken breasts into it and cook roughly 7 minutes, or until the outside is a golden brown. Use a food thermometer to make sure the internal temp is 165°F (74°C) if you're a sissy.
- Allow the chicken breasts briefly while you toast the buns on a pan.
- After the breasts have rested for a couple minutes, toss them in the still hot Buffalo sauce mixture.
- Now you are ready to plate, serve the chicken breasts with crumbled blue cheese and pickle slices on an open faced bun. You may prefer other dressings, but blue cheese and pickles is the way.
-
@ 57d1a264:69f1fee1
2024-03-19 08:17:56What's your favorite paraphernalia, and how has it improved your life? What it has helped you design or accomplish lately?
-
@ 1e52c554:21771908
2024-03-19 13:36:06Posthumous work of the Colombian poet born in Don Matias on January 20, 1948.
Welcome to this blog dedicated to the Posthumous work of the Colombian poet Francisco Luis Arroyave Tabares (my father), born in Don Matias on January 20, 1948-2010. Where I will be publishing each of the 175 sonnets from his unpublished collection 'Sonnets For The Twenty-First Century And A Circadian Musical (1984-1987).' Analyzed with GPT4 artificial intelligence and illustrated with AI tools... I hope you enjoy this garden of words snatched from the solitude of a locked room.
Likewise, any enthusiast of the sonnet form is invited to conduct their personal studies of Arroyave Tabares' work, as it is a collection that, although registered since 1989, has not yet been published.
Frank Duna
Analysis of "Looking For You"
Introduction
“Looking For You” is a beautiful sonnet by Francisco Luis Arroyave Tabares. It’s a poem that explores the theme of searching for a loved one through various elements of nature and life.
Thematic Analysis
First Quatrain (Lines 1-4): The speaker begins by expressing their search for their beloved through the intrinsic love that things possess and the inherent beauty of nature. The speaker also mentions the unbiased freedom of a flower’s face that the Sun withholds, suggesting a sense of longing and desire.
Second Quatrain (Lines 5-8): The speaker continues their search with the strength and longings that never end, and the reach of light that outlives the star. This could symbolize the enduring and timeless nature of their love. The speaker also mentions the selflessness of a true friend, indicating the depth of their feelings.
Third Quatrain (Lines 9-12): The speaker’s search takes them to the easy motion that rides on waves and the gladness of a tree that truly gives. This could represent the ebb and flow of emotions and the joy derived from giving. The speaker also mentions the passion of a beloved one who forgives past absences, showing the importance of forgiveness in love.
Couplet (Lines 13-14): The speaker concludes their search with the faith of water to become sea and blue, symbolizing transformation and depth. The speaker has been all over looking for their beloved, indicating a relentless and enduring search.
Overall, this sonnet beautifully captures the speaker’s journey of love and longing, using vivid imagery and metaphors drawn from nature and life. It’s a testament to the enduring power of love and the lengths one can go to find their beloved.
Structure and Rhyme Scheme
The sonnet “Looking For You” by Francisco Luis Arroyave Tabares follows a consistent rhyme scheme that is typical of a sonnet. Here’s a detailed analysis:
Quartets:
The first quartet (lines 1-4) follows an ABAB rhyme scheme:
Line 1 (A): Through the intrinsic love that things possess Line 2 (B): And beauty by itself that Nature holds Line 3 (A): Through freedom without bias or recess Line 4 (B): Of a flower’s face that the Sun witholds.
The second quartet (lines 5-8) follows a CDCD rhyme scheme:
Line 5 (C): With a strength and longings that never end Line 6 (D): And the reach of light that outlives the star Line 7 (C): With the unselfiness of a true friend Line 8 (D): So hard to find even if we go far.
The third quartet (lines 9-12) follows an EFEF rhyme scheme:
Line 9 (E): With the easy motion that rides on waves Line 10 (F): And gladness of a tree that truly gives Line 11 (E): With passion of a beloved one who says Line 12 (F): That each absence of the past he forgives.
Couplet: The final couplet (lines 13-14) follows a GG rhyme scheme:
Line 13 (G): With water’s faith to become sea and blue Line 14 (G): I have been all over looking for you.
This rhyme scheme is a variation of the traditional English (Shakespearean) sonnet form, which typically follows an ABABCDCDEFEFGG rhyme scheme. The poet has chosen to vary the rhyme scheme in the quartets, while maintaining the GG rhyme in the final couplet, which is a defining feature of the sonnet form. This variation adds a unique rhythm and flow to the poem, while still adhering to the sonnet structure. The consistent rhyme scheme throughout the poem creates a sense of harmony and unity, enhancing the overall impact of the poem. The rhymes are mostly full rhymes, which add to the musicality of the poem. The use of rhyme in this sonnet serves to emphasize the poet’s message and emotions, making the poem more memorable and engaging for the reader.
Analysis of Aspects
“Looking For You” by Francisco Luis Arroyave Tabares is a beautifully crafted sonnet. Here’s a detailed analysis of its language, imagery, themes, meter, and overall impact:
Language: The language used in the sonnet is simple yet profound. The poet uses everyday words to express complex emotions and experiences. The language is direct and accessible, making the poem relatable to a wide range of readers.
Imagery: The sonnet is rich in imagery. The poet uses vivid descriptions of nature, such as “the intrinsic love that things possess”, “a flower’s face that the Sun witholds”, and “the easy motion that rides on waves”, to evoke strong sensory experiences in the reader. These images serve to enhance the themes of the poem and create a vivid picture in the reader’s mind.
Themes: The sonnet explores several themes, including love, nature, friendship, forgiveness, and the search for a loved one. These themes are universal and timeless, making the poem relevant to readers of all ages and backgrounds.
Meter: The sonnet follows the traditional iambic pentameter, which is typical of sonnets. This means that each line consists of five pairs of unstressed and stressed syllables, creating a rhythmic pattern that enhances the musicality of the poem.
Overall, “Looking For You” is a beautifully written sonnet that skillfully combines language, imagery, themes, and meter to create a powerful and moving expression of love and longing. The poet’s use of vivid imagery and simple language makes the poem accessible and relatable, while the consistent meter adds a rhythmic quality that enhances the overall impact of the poem. The sonnet invites the reader to reflect on their own experiences of love and longing, making it a memorable and engaging read.
(GPT4)
Count the syllables of each line of the poem
```
Looking For You
10 Through the intrinsic love that things possess 10 And beauty by itself that Nature holds 10 Through freedom without bias or recess 10 Of a flower's face that the Sun witholds.
10 With a strength and longings that never end 10 And the reach of light that outlives the star 10 With the unselfiness of a true friend 10 So hard to find even if we go far.
10 With the easy motion that rides on waves 10 And gladness of a tree that truly gives 10 With passion of a beloved one who says 10 That each absence of the past he forgives.
10 With water's faith to become sea and blue 10 I have been all over looking for you. ***
```
Sonnets For The Twenty First Century And A Circadian Musical Written By Francisco Luis Arroyave Tabares (1984-1987)
Analyzed by GPT4; Image by leonardo.ai; First published on Nostr Protocol by franciscoarroyavet@nostrplebs.com
Looking For You
-
@ 8fb140b4:f948000c
2023-08-22 12:14:34As the title states, scratch behind my ear and you get it. 🐶🐾🫡
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28A command line utility to create and manage personal graphs, then write them to dot and make images with graphviz.
It manages a bunch of YAML files, one for each entity in the graph. Each file lists the incoming and outgoing links it has (could have listen only the outgoing, now that I'm tihnking about it).
Each run of the tool lets you select from existing nodes or add new ones to generate a single link type from one to one, one to many, many to one or many to many -- then updates the YAML files accordingly.
It also includes a command that generates graphs with graphviz, and it can accept a template file that lets you customize the
dot
that is generated and thus the graphviz graph.rel
-
@ 46fcbe30:6bd8ce4d
2024-03-12 16:45:41Opinion about Mycelium Bitcoin Wallet (android)
As its former maintainer, my opinion might be biased but ... here we go:
Some background
History
Mycelium is one of the oldest Android wallets and started as "Bitcoin Spinner". Its code repository started in June of 2013 giving "all code credit to Jan Møller", who left this project to found probably the most controversial company in the space: Chainalysis". Legends say that Alexander Kuzmin bought the rights to the project and subsequently renamed it to "Mycelium" involving a barrel of neft vodka which is produced in Austria, where the second round of lead developers were located. Austrian Daniel Weigl led the project development when I joined basically cold-calling them as I was using the project since the Bitcoin Spinner days and needed something fixed. So they hired me and when Daniel left, I took over as the maintainer and lead developer.
My role
As the maintainer, I was responsible to coordinate the development and above all, keep the product secure while the upper management wanted to see features being added. So my work transitioned from being the lead developer, contributing code to being only the maintainer, almost exclusively reviewing other developer's work for security issues.
WalletScrutiny
In my job interview at Mycelium, I already suggested to improve the transparency of the product by making sure it was reproducible. The team had worked on that already but never got time to actually finish it and with me on the team it took another year before Mycelium switched to committing to only release fully auditable versions.
I founded WalletScrutiny while at Mycelium because I saw the lack of this transparency as a systemic issue and not only an issue at my own work place.
Security
Mycelium has a very old code base and maintains its own crypto library which did attract some attention around external experts but certainly not as much as others. I did spend a lot of time reviewing it until three years ago but I never had formal training as a cryptographer.
Mycelium has many features and tends to only add more:
- Shamir Shared Secret
- Login with Bitcoin
- Colored Coins
- Sign messages
- Import Xpubs or Xprivs
- Spend from a QR-Code
- FIO protocol
- Some shitcoins (Bitcoin Vault, ETH, ETH tokens)
- ...
That means it has a huge code base and uses dependencies of questionable provenance. Especially the FIO and BTCV dependencies are probably poorly audited and could contain backdoors affecting users that don't even use these features. That said, while I was the maintainer I had to add these two features and those were stressful weeks of me pushing back a quick release. While my push-backs were always well received at the time, I worry about today's maintainer maybe being less insisting when it comes to security. Sadly Mycelium is very quiet about such internals, so I don't even know who this maintainer would be now or what Mycelium was up to recently.
Features
A very much missing feature is lightning. Without lightning, this product will be obsolete with on-chain fees rising.
Privacy
When I joined the company, privacy was a top priority. The product had its custom servers that did not log IP addresses and the client did support TOR.
The TOR button is still in the app but it essentially does nothing.
Management often requested to keep logs of wallet balances to have some metrics of success beyond the downloads that Google reports and it was engineers who pushed back successfully. I cannot know to which degree this is still kept up and especially the ignorance regarding the TOR feature makes me not very confident about them not tracking wallets by now.
Openness
Mycelium and especially its owner always was very low profile with officially no official social media activity.
The public issue tracker is getting attention on a yearly basis - maybe.
But ... the source code is 100% public and reproducible.
Summary
The Mycelium wallet for Android was my main driver while I worked as its security guy but my lack of insight into their current security practices and their openness to adding questionable ads and features leads me to not trust this product with any significant amount.
It is a good tool to spend with a Trezor on the go though.
WalletScrutiny #nostrOpinion
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28GraphQL vs REST
Today I saw this: https://github.com/stickfigure/blog/wiki/How-to-(and-how-not-to)-design-REST-APIs
And it reminded me why GraphQL is so much better.
It has also reminded me why HTTP is so confusing and awful as a protocol, especially as a protocol for structured data APIs, with all its status codes and headers and bodies and querystrings and content-types -- but let's not talk about that for now.
People complain about GraphQL being great for frontend developers and bad for backend developers, but I don't know who are these people that apparently love reading guides like the one above of how to properly construct ad-hoc path routers, decide how to properly build the JSON, what to include and in which circumstance, what status codes and headers to use, all without having any idea of what the frontend or the API consumer will want to do with their data.
It is a much less stressful environment that one in which we can just actually perform the task and fit the data in a preexistent schema with types and a structure that we don't have to decide again and again while anticipating with very incomplete knowledge the usage of an extraneous person -- i.e., an environment with GraphQL, or something like GraphQL.
By the way, I know there are some people that say that these HTTP JSON APIs are not the real REST, but that is irrelevant for now.
-
@ fa0165a0:03397073
2023-10-12 16:40:43Probability theory is the study of random phenomena. This post is a pilot post for potentially further posting in this series. Feedback appreciated. Introduction
Probability theory is the study of random phenomena. It is used in many fields, such as statistics, machine learning, and finance. It is also used in everyday life, for example when playing games of chance, or when estimating the risk of an event. The most classic example is the coin toss, closely followed by the dice roll.
When we toss a coin, the result is either heads or tails. In the case of an ideal coin, the “random trail” of tossing the coin has an equal probability for both outcomes. Similarly, for a die roll of a fair dice, we know that the probability for each outcome is 1/6. In the study of probability we dive deep into the mathematics of these random phenomena, how to model them, and how to calculate the probability of different events. To do this in precise terms, we define words and concepts as tools for discussing and communicating about the subject.
This is the first of what I expect to be a 15 part series of my lecture & study notes from my university course in probability theory MT3001 at Stockholm University. References to definitions and theorems will use their numeration in the course literature, even if I may rephrase them myself. The book I’ve had as a companion through this course is a Swedish book called Stokastik by Sven Erick Alm and Tom Britton; ISBN:978–91–47–05351–3. This first module concerns basic concepts and definitions, needed for the rest of the course. The language of Probability theory
An experiment is a process that produces a randomized result. If our experiment is throwing a die, we then have the following: The result of throwing the die is called an outcome, the set of all possible outcomes is called the sample space and a subset of the sample space is called an event. We will use the following notation:
outcome is the result of an experiment, denoted with a small letter, ex. 𝑢₁, 𝑢₂, 𝑢₃, … event is the subset of the sample space, denoted with a capital letter, ex. 𝐴, 𝐵, 𝐶, … sample space is the set of all possible outcomes of an experiment, denoted Ω.
Adding numbers to our dice example, we have the sample space Ω = {𝟏,𝟐,𝟑,𝟒,𝟓,𝟔} containing all the possible events 𝑢₁=𝟏, 𝑢₂=𝟐, 𝑢₃=𝟑, 𝑢₄=𝟒, 𝑢₅=𝟓 and 𝑢₆=𝟔. And we could study some specific sub events like the chance of getting an even number, 𝐴={𝟐,𝟒,𝟔}, or the chance of getting a prime number, 𝐵={𝟐,𝟑,𝟓}. As it happens, the probability of both 𝐴 and 𝐵 is 50%. Sample space
The sample space is the set of all possible outcomes of an experiment. It is denoted Ω. And there are two types of sample spaces, discrete and continuous. A discrete sample space is a finite or countably infinite set, and all other kind of sample spaces are called continuous.
The coin toss and the dice roll are both examples of discrete sample spaces. Studying a problem, like the temperature outside, would in reality require a continuous sample space. But in practice, we can often approximate a continuous sample space with a discrete one. For example, we could divide the temperature into 10 degree intervals, and then we would have a discrete sample space.
Remember that continuous sample spaces exist, and expect more information about them in later modules. For starters, we focus on discrete sample spaces. Set Theory notation and operations
When talking about probabilities we will arm ourselves with the language of “set theory”, it is a crucial tool for the study of probability. Feeling comfortable with the subject of set theory since before is useful, but not necessary. I will try to explain the concepts as we go along.
Even tough the events from the dice rolls are represented by numbers, it is important to note that they aren’t numbers, but rather elements. This might become more clear if we alter our example to be a deck of cards. This deck of cards have four suits Ω = {♥, ♠, ♦, ♣ } and in our experiments we draw a card from the deck and look at the suit. It’s here very obvious that we can’t add or subtract the different events with each other. But we do have the operations of set theory at our disposal. For example, if 𝐴 is the event of drawing a red card and 𝐵 is the event of drawing spades ♠, we can use the following notation: Set theory operations
Union: 𝐴 ∪ 𝐵 = {♥, ♦, ♠}, the union of 𝐴 and 𝐵. The empty set: ∅ = {}, the empty set. A set with no elements. Intersection: 𝐴 ∩ 𝐵 = ∅, the intersection of 𝐴 and 𝐵. This means that 𝐴 and 𝐵 have no elements in common. And we say that 𝐴 and 𝐵 are disjoint. Complement: 𝐴ᶜ = {♠, ♣}, the complement of 𝐴. Difference: 𝐴 ∖ 𝐵 = {♥, ♦}, the difference of 𝐴 and 𝐵. Equivalent to 𝐴 ∩ 𝐵ᶜ. The symbol ∈ denotes that an element is in a set. For example, 𝑢₁ ∈ Ω means that the outcome 𝑢₁ is in the sample space Ω. For our example: ♥ ∈ 𝐴 means that the suit ♥ is in the event 𝐴.
Venn diagram
A very useful visualization of set theory is the Venn diagram. Here is an example of a Venn diagram in the picture below:
In the above illustration we have: Ω = {𝟏,𝟐,𝟑,𝟒} and the two events 𝐴={𝟐,𝟑} and 𝐵={𝟑,𝟒}. Notice how the two sets 𝐴 and 𝐵 share the element 𝟑, and that all sets are subsets of the sample space Ω. The notation for the shared element 𝟑 is 𝐴 ∩ 𝐵 = {𝟑}. Useful phrasing
The different set notations may seem a bit abstract at first, at least before you are comfortable with them. Something that might be useful to do is to read them with the context of probabilities in mind. Doing this, we can read some of the different set notations as follows:
𝐴ᶜ, “when 𝐴 doesn’t happen”. 𝐴 ∪ 𝐵, “when at least one of 𝐴 or 𝐵 happens”. 𝐴 ∩ 𝐵, “when both 𝐴 and 𝐵 happens”. 𝐴 ∩ 𝐵ᶜ, “when 𝐴 happens but 𝐵 doesn’t happen”.
The Probability function
Functions map elements from one set to another. In probability theory, we are interested in mapping events to their corresponding probabilities. We do this using what we call a probability function. This function is usually denoted 𝑃 and have some requirements that we will go through in the definition below.
This function take events as input and outputs the probability of that event. For the example of a die throw, if we have the event 𝐴={𝟐,𝟒,𝟔}, then 𝑃(𝐴) is the probability of getting an even number when throwing a fair six sided dice. In this case 𝑃(𝐴)=1/2=𝑃(“even number from a dice throw”), you’ll notice that variations of descriptions of the same event can be used interchangeably.
The Russian mathematician Andrey Kolmogorov (1903–1987) is considered the father of modern probability theory. He formulated the following three axioms for probability theory: Definition 2.2, Kolmogorov’s axioms
A real-valued function 𝑃 defined on a sample space Ω is called a probability function if it satisfies the following three axioms: 𝑃(𝐴) ≥ 𝟎 for all events 𝐴. 𝑃(Ω) = 𝟏. If 𝐴₁, 𝐴₂, 𝐴₃, … are disjoint events, then 𝑃(𝐴₁ ∪ 𝐴₂ ∪ 𝐴₃ ∪ …) = 𝑃(𝐴₁) + 𝑃(𝐴₂) + 𝑃(𝐴₃) + …. This is called the countable additivity axiom.
From these axioms it’s implied that 𝑃(𝐴) ∈ [𝟎,𝟏], which makes sense since things aren’t less than impossible or more than certain. As a rule of thumb, when talking about probabilities, we move within the range of 0 and 1. This lets us formulate the following theorem: Theorem 2.1, The Complement and Addition Theorem of probability
Let 𝐴 and 𝐵 be two events in a sample space Ω. Then the following statements are true: 1. 𝑃(𝐴ᶜ) = 𝟏 — 𝑃(𝐴) 2. 𝑃(∅) = 𝟎 3. 𝑃(𝐴 ∪ 𝐵) = 𝑃(𝐴) + 𝑃(𝐵) — 𝑃(𝐴 ∩ 𝐵)
Proof of Theorem 2.1
𝑃(𝐴 ∪ 𝐴ᶜ) = 𝑃(Ω) = 𝟏 = 𝑃(𝐴) + 𝑃(𝐴ᶜ) ⇒ 𝑃(𝐴ᶜ) = 𝟏 — 𝑃(𝐴)
This simply proves that the probability of 𝐴 not happening is the same as the probability of 𝐴 happening subtracted from 1.
𝑃(∅) = 𝑃(Ωᶜ) = 𝟏 — 𝑃(Ω) = 𝟏 — 𝟏 = 𝟎
Even though our formal proof required (1) to be proven, it’s also very intuitive that the probability of the empty set is 0. Since the empty set is the set of all elements that are not in the sample space, and the probability of an event outside the sample space is 0.
𝑃(𝐴 ∪ 𝐵) = 𝑃(𝐴 ∪ (𝐵 ∩ 𝐴ᶜ)) = 𝑃(𝐴) + 𝑃(𝐵 ∩ 𝐴ᶜ) = 𝑃(𝐴) + 𝑃(𝐵) — 𝑃(𝐴 ∩ 𝐵)
This can be understood visually by revisiting our Venn diagram. We see that the union of 𝐴 and 𝐵 has an overlapping element 𝟑 shared between them. This means that purely adding the elements of 𝐴={𝟐,𝟑} together with 𝐵={𝟑,𝟒} would double count that shared element, like this {𝟐,𝟑,𝟑,𝟒}, since we have two “copies” of the mutual elements we make sure to remove one “copy” bur removing 𝑃(𝐴 ∩ 𝐵)={𝟑} and we get 𝑃(𝐴 ∪ 𝐵)={𝟐,𝟑,𝟒}. We may refer to this process as dealing with double counting, something that is very important to have in mind when dealing with sets.
Two interpretations of probability that are useful and often used are the frequentist and the subjectivist interpretations. The frequentist interpretation is that the probability of an event is the relative frequency of that event in the long run. The subjectivist interpretation is that the probability of an event is the degree of belief that the event will occur, this is very common in the field of statistics and gambling. For the purposes of study it’s also useful to sometimes consider probabilities as areas and or masses, this is called the measure theoretic interpretation. Don’t let that word scare you off, in our context it’s just a fancy way of drawing a parallel between areas and probabilities. Think area under curves, and you’ll be fine.
-
@ 3bf0c63f:aefa459d
2024-01-14 13:55:28nostr - Notes and Other Stuff Transmitted by Relays
The simplest open protocol that is able to create a censorship-resistant global "social" network once and for all.
It doesn't rely on any trusted central server, hence it is resilient; it is based on cryptographic keys and signatures, so it is tamperproof; it does not rely on P2P techniques, therefore it works.
Very short summary of how it works, if you don't plan to read anything else:
Everybody runs a client. It can be a native client, a web client, etc. To publish something, you write a post, sign it with your key and send it to multiple relays (servers hosted by someone else, or yourself). To get updates from other people, you ask multiple relays if they know anything about these other people. Anyone can run a relay. A relay is very simple and dumb. It does nothing besides accepting posts from some people and forwarding to others. Relays don't have to be trusted. Signatures are verified on the client side.
This is needed because other solutions are broken:
The problem with Twitter
- Twitter has ads;
- Twitter uses bizarre techniques to keep you addicted;
- Twitter doesn't show an actual historical feed from people you follow;
- Twitter bans people;
- Twitter shadowbans people.
- Twitter has a lot of spam.
The problem with Mastodon and similar programs
- User identities are attached to domain names controlled by third-parties;
- Server owners can ban you, just like Twitter; Server owners can also block other servers;
- Migration between servers is an afterthought and can only be accomplished if servers cooperate. It doesn't work in an adversarial environment (all followers are lost);
- There are no clear incentives to run servers, therefore they tend to be run by enthusiasts and people who want to have their name attached to a cool domain. Then, users are subject to the despotism of a single person, which is often worse than that of a big company like Twitter, and they can't migrate out;
- Since servers tend to be run amateurishly, they are often abandoned after a while — which is effectively the same as banning everybody;
- It doesn't make sense to have a ton of servers if updates from every server will have to be painfully pushed (and saved!) to a ton of other servers. This point is exacerbated by the fact that servers tend to exist in huge numbers, therefore more data has to be passed to more places more often;
- For the specific example of video sharing, ActivityPub enthusiasts realized it would be completely impossible to transmit video from server to server the way text notes are, so they decided to keep the video hosted only from the single instance where it was posted to, which is similar to the Nostr approach.
The problem with SSB (Secure Scuttlebutt)
- It doesn't have many problems. I think it's great. In fact, I was going to use it as a basis for this, but
- its protocol is too complicated because it wasn't thought about being an open protocol at all. It was just written in JavaScript in probably a quick way to solve a specific problem and grew from that, therefore it has weird and unnecessary quirks like signing a JSON string which must strictly follow the rules of ECMA-262 6th Edition;
- It insists on having a chain of updates from a single user, which feels unnecessary to me and something that adds bloat and rigidity to the thing — each server/user needs to store all the chain of posts to be sure the new one is valid. Why? (Maybe they have a good reason);
- It is not as simple as Nostr, as it was primarily made for P2P syncing, with "pubs" being an afterthought;
- Still, it may be worth considering using SSB instead of this custom protocol and just adapting it to the client-relay server model, because reusing a standard is always better than trying to get people in a new one.
The problem with other solutions that require everybody to run their own server
- They require everybody to run their own server;
- Sometimes people can still be censored in these because domain names can be censored.
How does Nostr work?
- There are two components: clients and relays. Each user runs a client. Anyone can run a relay.
- Every user is identified by a public key. Every post is signed. Every client validates these signatures.
- Clients fetch data from relays of their choice and publish data to other relays of their choice. A relay doesn't talk to another relay, only directly to users.
- For example, to "follow" someone a user just instructs their client to query the relays it knows for posts from that public key.
- On startup, a client queries data from all relays it knows for all users it follows (for example, all updates from the last day), then displays that data to the user chronologically.
- A "post" can contain any kind of structured data, but the most used ones are going to find their way into the standard so all clients and relays can handle them seamlessly.
How does it solve the problems the networks above can't?
- Users getting banned and servers being closed
- A relay can block a user from publishing anything there, but that has no effect on them as they can still publish to other relays. Since users are identified by a public key, they don't lose their identities and their follower base when they get banned.
- Instead of requiring users to manually type new relay addresses (although this should also be supported), whenever someone you're following posts a server recommendation, the client should automatically add that to the list of relays it will query.
- If someone is using a relay to publish their data but wants to migrate to another one, they can publish a server recommendation to that previous relay and go;
- If someone gets banned from many relays such that they can't get their server recommendations broadcasted, they may still let some close friends know through other means with which relay they are publishing now. Then, these close friends can publish server recommendations to that new server, and slowly, the old follower base of the banned user will begin finding their posts again from the new relay.
-
All of the above is valid too for when a relay ceases its operations.
-
Censorship-resistance
- Each user can publish their updates to any number of relays.
-
A relay can charge a fee (the negotiation of that fee is outside of the protocol for now) from users to publish there, which ensures censorship-resistance (there will always be some Russian server willing to take your money in exchange for serving your posts).
-
Spam
-
If spam is a concern for a relay, it can require payment for publication or some other form of authentication, such as an email address or phone, and associate these internally with a pubkey that then gets to publish to that relay — or other anti-spam techniques, like hashcash or captchas. If a relay is being used as a spam vector, it can easily be unlisted by clients, which can continue to fetch updates from other relays.
-
Data storage
- For the network to stay healthy, there is no need for hundreds of active relays. In fact, it can work just fine with just a handful, given the fact that new relays can be created and spread through the network easily in case the existing relays start misbehaving. Therefore, the amount of data storage required, in general, is relatively less than Mastodon or similar software.
-
Or considering a different outcome: one in which there exist hundreds of niche relays run by amateurs, each relaying updates from a small group of users. The architecture scales just as well: data is sent from users to a single server, and from that server directly to the users who will consume that. It doesn't have to be stored by anyone else. In this situation, it is not a big burden for any single server to process updates from others, and having amateur servers is not a problem.
-
Video and other heavy content
-
It's easy for a relay to reject large content, or to charge for accepting and hosting large content. When information and incentives are clear, it's easy for the market forces to solve the problem.
-
Techniques to trick the user
- Each client can decide how to best show posts to users, so there is always the option of just consuming what you want in the manner you want — from using an AI to decide the order of the updates you'll see to just reading them in chronological order.
FAQ
- This is very simple. Why hasn't anyone done it before?
I don't know, but I imagine it has to do with the fact that people making social networks are either companies wanting to make money or P2P activists who want to make a thing completely without servers. They both fail to see the specific mix of both worlds that Nostr uses.
- How do I find people to follow?
First, you must know them and get their public key somehow, either by asking or by seeing it referenced somewhere. Once you're inside a Nostr social network you'll be able to see them interacting with other people and then you can also start following and interacting with these others.
- How do I find relays? What happens if I'm not connected to the same relays someone else is?
You won't be able to communicate with that person. But there are hints on events that can be used so that your client software (or you, manually) knows how to connect to the other person's relay and interact with them. There are other ideas on how to solve this too in the future but we can't ever promise perfect reachability, no protocol can.
- Can I know how many people are following me?
No, but you can get some estimates if relays cooperate in an extra-protocol way.
- What incentive is there for people to run relays?
The question is misleading. It assumes that relays are free dumb pipes that exist such that people can move data around through them. In this case yes, the incentives would not exist. This in fact could be said of DHT nodes in all other p2p network stacks: what incentive is there for people to run DHT nodes?
- Nostr enables you to move between server relays or use multiple relays but if these relays are just on AWS or Azure what’s the difference?
There are literally thousands of VPS providers scattered all around the globe today, there is not only AWS or Azure. AWS or Azure are exactly the providers used by single centralized service providers that need a lot of scale, and even then not just these two. For smaller relay servers any VPS will do the job very well.
-
@ d96e0407:8a0da63d
2024-03-19 13:32:42The arrival of these formidable beings sent shockwaves through the battlefield. Eris, the once-mighty goddess of Chaos and Strife, hesitated for a moment, her malevolent aura momentarily wavering. But Eris was not one to back down from a challenge. She steeled herself and decided to confront this newfound threat head-on.
Amun Ra, the radiant Egyptian sun god, led the charge. With a graceful sweep of his hand, he shot a barrage of dazzling energy beams at Eris, forcing her to stumble backward. Bast and Sekhmet, fierce lioness goddesses, joined Ra, releasing their own powerful energy blasts. The combined assault pushed Eris to the ground, where she struggled to maintain her footing.
"Such amazing teamwork," Horus, the falcon-headed god, remarked as he helped Ares, the god of war, to his feet. The battlefield was alive with energy, divine powers colliding in a dazzling display of light and force.
Odin, the venerable All-Father of Norse mythology, was not to be outdone. He unleashed a mighty punch at Eris, but she managed to dodge it with a graceful maneuver, her agility matching her power. Undeterred, Odin summoned flocks of ravens, his loyal companions, to descend upon Eris and harry her.
"Get them off me!" Eris screamed in fear, a rare moment of vulnerability. The powerful goddess found herself in an astonishing predicament as the ravens swarmed around her, their relentless attacks causing her to recoil. She released a blast of chaotic energy, causing the ravens to decay and disperse.
However, she had no respite, for she narrowly evaded a colossal water blast from Oceanus, the ancient Titan of the oceans. The remaining Titans, emboldened by Oceanus's attack, united their powers, unleashing a magnifying energy blast that sent Eris hurtling through the air.
Anansi, Maui, Brunhilde, Horus, Thor, Ares, and Artemis watched in awe as these divine beings demonstrated their immense strength. Despite their advantage, Eris displayed remarkable resilience. Anansi couldn't help but voice their concerns, "How are we going to beat her?"
Odin, his one eye gleaming with wisdom, replied, "We are going to seal her again." The mere mention of being sealed filled Eris with terror, and in a flash, she seemingly teleported away, retreating from the overwhelming power arrayed against her.
Meanwhile, on another part of the battlefield, Alexander and Aremo were locked in a fierce hand-to-hand combat. Alexander, despite his waning power, held the upper hand, and a blast from his palm sent Aremo crashing to the ground.
Kelani, swift and determined, entered the fray with a sudden kick aimed at Alexander. However, Alexander effortlessly blocked her strike, and the two began to duel fiercely. Alexander's palm strikes clashed with Kelani's precise pressure point hits, creating a flurry of attacks.
Eris reappeared seemingly out of thin air, catching Apollo and Triton off guard. She effortlessly repelled their combined light and water attacks, rendering the two gods unconscious with a powerful gust of wind.
Tentacles, eerie extensions of Eris's malevolent power, emerged from her form, wrapping around Alexander and dragging him toward her. Kelani desperately tried to cut the tentacles, but they were too numerous and resilient. In a horrifying twist, Eris absorbed Alexander into herself, merging their powers.
Ixquitecatl, Kini'je, Hephaestus, Nemty, and Amaterasu regrouped, surveying the chaotic scene. Hecate, now a wooden totem, and Loki, trapped in a coffin-like prison, had been neutralized. Isis and Helios, triumphant in their small victory, stood beside them.
Eris, seemingly unstoppable, teleported to their location. Her dark tentacles stretched menacingly as she absorbed Hecate and Loki into her being, growing even more powerful.
A portal opened as Apollo, Aremo, Kelani, and Triton emerged from it. Kelani's voice trembled as she spoke, "Eris merged with Alexander." They weren't shocked as the very same thing happened before their eyes.
The rest of the divine team arrived, their expressions a mix of awe and trepidation. Odin, Amun Ra, Bast, Sekhmet, and the Titans surged forward to attack Eris. Their combined might had forced her into a retreat earlier, but this time, something unexpected happened.
Utilizing Hecate's magic powers, Eris absorbed these formidable beings into herself. The divine team watched in disbelief as these once-mighty entities vanished into the very being they had sought to defeat.The goddess of Chaos fired a energy ball at them which was blocked by Sun Wukong and Buddha. The two had recovered from their duel against each other.
"The end is near," Artemis said in desperation, her bow dropping to the ground, her spirit crushed by the overwhelming power of Eris. " We failed " Anansi said with tears in his eyes . Thor ,Horus, Ares , Brunhilde, Maui were filled with disappointment in themselves.
Ixquitecatl, Isis, Buddha, and Sun Wukong chanted a spell, forming a protective barrier around the team , shielding against the destructive blast of energy that Eris released.As the world crumbled around them, reduced to chaos and ruin, they stood as the last survivors.
-
@ a10260a2:caa23e3e
2023-08-14 21:36:14It seems like blogstack is meant to replace Substack if not already apparent by the name. If that's the case, it's already better in a few ways.
1. Hit the ground running
I'm already getting started out of the gate with more readers than I would have if I just started a Substack. This, of course, is due to the fact that I'm creating on top of a protocol where I'm able to have the same audience across all clients of that protocol. This is in stark contrast to the legacy apps from centralized entities where you have to corral your audience from one platform to the next.
2. Readers need not subscribe
Technically, if you're following me, you're subscribed. But you don't have to subscribe for a set price and amount of time (e.g. $5/month or $50/year). I believe this is a win for both of us as I can write my best notes and you can choose to reward me as you see fit. Value 4 value.
3. More conducive to conversation
Writing on Substack felt like writing into a void, with little to no feedback. A post shows up in my readers' inbox and I'll see some stats on whether it was opened or not. That's it. Based on what I've seen so far, blog posts created on Nostr appear in the client apps (e.g Damus, Primal, and Plebstr) as just another note, but with nice formatting and such. From there, I can receive zaps, shakas, comments, and even be reposted.
This is just the beginning. Right now, I'm using blogstack. But what's to stop me from using another tool down the line? I'll have the ability to do so by simply connecting my private key. Can't wait to see what new tools are created down the line.
So ₿ULLISH on #Nostr
-
@ 57d1a264:69f1fee1
2024-03-19 07:56:25Prompt: Reviews, Testimonials & Contributors
Create a design with some kind of testimonial. It could be a book or product review testimonial, a contributors page or a review section for a product or service. Who is the customer? What did they buy and why did they enjoy it? Is there a star rating or a 1-10 style?
Feedback help build trust with an audience so these can be especially important elements for a website.
Flex your design muscles and join in. Most of all, keep this exercise loose and keep it stress-free. The FUC is about growing our design skills, together, as a community. We can't wait to see what you create!
Happy designing, Stackers!
Share Your Results When you finish the challenge, post your work on this thread! If you also share it on
nostr
, be sure to use the hashtag #FUCdesiger and tag Design_r@iris.to or @Design__r on X! We'll keep an eye out and repost good examples on a regular basis.
Curious to know WTF is a FUC? Read the ⚡️Flash Ui Challenges welcoming post.
Looking for more FUCs? Check the archive here!