Qua

Reader

A list of all postings of all blogs on Qua where the author has configured the blog to publish on this page.

from Amassando ideas

Dentro de la comunidad de programación competitiva existen varias guías acerca de como mejorar y prepararse resolviendo problemas. Esta pequeña guía pretende hacer algo distinto, una lista de comprobación de cosas que hacer antes y durante una competencia de programación.

Antes del contest

  • No tener hambre ni sed
  • No tener ganas de ir al baño
  • Tener agua u otro bebestible a mano
  • Entrar a Codeforces (o el sitio donde se aloje la competencia) e iniciar sesión.
  • Abrir un archivo de texto para cada problema con la plantilla a usar para la competencia
  • Abrir esta lista de comprobación

Al resolver un problema

  • Leer el enunciado cuidadosamente
  • Determinar exactamente qué es lo que tiene que hacer el programa (matemáticamente si es posible)
  • Comprobar límites de la entrada, de tiempo y de memoria

Encontrar la solución

  • Buscar patrones
  • Reducir a casos sencillos
  • Aplicar técnicas conocidas

Implementar la solución

  • Escribir grandes pasos
  • Escribir el código
  • Probar con los casos de ejemplo
  • Probar con pequeños casos borde

Si da Wrong Answer

  • Probar con distintos casos de prueba en los que conozcamos la salida esperada. Si son grandes, generar los casos con números aleatorios y comparar nuestro programa con una solución de búsqueda exhaustiva
  • Inspeccionar el código en busca de errores
  • Intentar demostrar la solución
  • Si todo lo anterior falla, implementar la solución de una forma diferente

Si da TLE/MLE

  • Reducir constantes
  • Hacer pequeñas optimizaciones (arrays en vez de vectores, uso de variables globales, etc)

Si da RE

  • Fijarse en los subíndices de los arrays y vectores
  • Evitar divisiones por 0
  • Si todo lo anterior falla, implementar la solución de una forma diferente
 
Leer más...

from Lo spazio intermedio

(testo di Margherita Hack da Pietro Musilli)

La storia delle donne nella cultura e nella vita civile è stata una storia di emarginazione fino alla fine dell'Ottocento e in gran parte ancora fino alla metà del Novecento, almeno nei paesi industrializzati. In molti paesi in via di sviluppo, salvo rare eccezioni, le donne sono ben lontane non solo dall'aver raggiunto la parità con l'altro sesso, ma anche dal vedere loro riconosciuti i più elementari diritti di esseri umani. Quali possono essere le cause di questa situazione che risale indietro nei secoli? Forse già nelle epoche preistoriche, la forza fisica necessaria per sopravvivere, le numerose gravidanze e il lungo periodo di allattamento e di cura della prole hanno portato alla differenziazione dei compiti. Oggi, i progressi della scienza e della medicina, e le conseguenti applicazioni tecnologiche hanno annullato la condanna biblica – uomo lavorerai con fatica, donna partorirai con dolore – almeno nei paesi industrializzati. Per secoli le donne che potevano avere accesso all'istruzione erano quelle rinchiuse nei conventi. Forse per questo le donne che sono emerse nel passato erano soprattutto umaniste, pittrici, scrittrici, poetesse, ma molto più raramente scienziate. Infatti chi ha attitudini artistiche o letterarie può emergere anche senza una preparazione specifica, mentre le scienze, e in particolare le cosiddette scienze “dure” come matematica e fisica richiedono una preparazione di base, senza la quale è quasi impossibile progredire. Solo quelle poche favorite dall'avere un padre, un fratello o un marito scienziato disposto a condividere le proprie cognizioni, potevano farsi una cultura scientifica. Basta ricordare che ancora all'inizio del XX secolo in molti paesi europei alle ragazze era precluso l'accesso alle università ed anche ai licei. Perciò le donne, escluse dalle università, escluse dall'educazione scientifica, sono emerse là dove potevano emergere. Così è sorto il pregiudizio secondo cui le donne sarebbero più adatte alle materie letterarie e linguistiche che non a quelle scientifiche. Le stesse ragazze crescono in mezzo a questi pregiudizi e se ne lasciano influenzare, e scelgono le facoltà umanistiche anche contro le loro naturali inclinazioni, contribuendo così a rafforzare i pregiudizi stessi. Comunque oggi cresce sempre di più il numero di ragazze che scelgono materie ritenute tipicamente maschili come ingegneria. Malgrado le difficoltà incontrate, non sono poche le scienziate che hanno portato importanti contributi allo sviluppo della scienza. La storia ci tramanda i nomi di alcune famose scienziate. Ce ne furono una ventina nell'antichità, fra cui emerge il nome della matematica Ipazia; solo una decina nel medioevo, soprattutto nei conventi, quasi nessuna tra il 1400 e il 1500, 16 nel 1600, 24 nel 1700, 108 nel 1800. Oggi solo nel campo dell'astronomia sono più di 2000, ed in ogni campo dei sapere le ricercatrici universitarie superano il 50%, con punte dell'80% nelle facoltà umanistiche, del 60% in quelle di scienze biologiche, dal 30 al 40% nelle scienze abiologiche, più dei 50% nelle matematiche, mentre sono ancora al di sotto dei 20% in facoltà come ingegneria e agraria. Fra le matematiche va ricordata la già citata Ipazia (370-415 d.C.), figlia del matematico e filosofo Teone. Diventò capo di una scuola platonica di Alessandria d'Egitto frequentata da molti giovani. Fu uccisa barbaramente da un gruppo di fanatici cristiani, forse anche perché tanta genialità matematica in una donna poteva sembrare indice di empietà. Nel 1700 Maria Gaetana Agnesi (1718-1799) fu la prima donna ad essere chiamata a ricoprire una cattedra universitaria, all'Università di Bologna, e Sophie Germain (1776-1831) fu una riconosciuta esperta di teoria dei numeri e di fisica. Nel XIX secolo ci sono numerose grandi matematiche, fra le quali emergono soprattutto Sofia Kovaleskaja (1850-1891), professore all'Università di Stoccolma, e Emmy Noether (1882-1935), fondatrice dell'Algebra moderna. Fra le matematiche italiane di questo secolo ricordo Pia Nalli (1866-1964) professore ordinario di analisi matematica all'università di Cagliari e poi di Catania; Maria Pastori (1895-1975) ordinario di Meccanica Razionale all'università di Messina, Maria Cibrario Cinquini (1905-1992), ordinario di Analisi matematica a Cagliari e professore emerito dell'università di Pavia, Maria Biggiogero Masotti ordinario di geometria presso il Politecnico di Milano. Fra le fisiche e le astrofisiche vanno ricordate, naturalmente Marie Sklodwska Curie (1867-1934), premio Nobel per la fisica nel 1903 e per la chimica nel 1911, e prima donna professore alla Sorbona e la figlia Irene Curie (1897-1956) premio Nobel per la chimica nel 1935; Lise Meitner (1878-1856) premio Nobel per la chimica nel 1935 la quale scopre il fenomeno della fissione nucleare ed è la prima donna ad avere una cattedra universitaria di fisica in Germania; Marie Goeppert Mayer (1906-1968) premio Nobel per la fisica nel 1963 per la sua teoria sui “numeri magici” che determinano la stabilità degli atomi; Wu Chieng-Shiung (1913-1997), professore di fisica alla Columbia University, scopritrice della non conservazione della parità nelle interazioni deboli. Fra le astronome e astrofisiche va ricordata Caroline Herschel (1750-1848) che insieme al fratello William iniziò lo studio fisico del cielo, occupandosi di quello sfondo di stelle fino allora considerato poco più di uno scenario su cui si muovevano i pianeti. A loro si deve lo studio delle nubi interstellari, la scoperta di regioni apparentemente prive di stelle, che oggi sappiamo essere regioni ricche di polveri che ci nascondono le stelle retrostanti, e lo studio della distribuzione delle stelle sulla volta celeste. Maria Mitchell (1818-1889) è stata la prima famosa astronoma americana, docente di astronomia al Vassar College e direttrice dell'osservatorio, che ha preso il suo nome. Un terzetto di astronome americane che hanno legato il loro nome a scoperte e ricerche fondamentali per la moderna astrofisica sono Henrietta Swan Leavitt (1868-1921), Anne Cannon (1863-1941) e Antonia Maury (1866-1952). La prima scoprì la relazione che lega il periodo di variazione di luce di una classe di stelle variabili dette “Cefeidi” al loro splendore assoluto, facendo di questa classe di stelle uno dei migliori mezzi per la determinazione delle distanze delle galassie. Alla seconda si deve la classificazione degli spettri di più di 225.000 stelle; il risultato del suo lavoro è raccolto nel poderoso catalogo “Henry Draper” (dal nome dei finanziatone dell'opera) che è ancora oggi largamente consultato. La terza scoprì alcune caratteristiche degli spettri stellari, che permettevano di stabilire lo splendore assoluto di una stella, e quindi – misurato lo splendore apparente – risalire alla distanza. Essa ha anticipato di almeno due decenni il metodo di determinazione delle distanze dal semplice studio dello spettro. Una grande astrofisica, iniziatrice dei metodi di studio delle atmosfere stellari e della determinazione della loro composizione chimica è stata Cecilia Payne Gaposchkin (1890-1979). Iniziatrice dello studio dell'evoluzione chimica della Galassia è stata una giovane astrofisica, scomparsa prematuramente, Beatrice Tinsley (1941-1981). Oggi sono numerosissime le astrofisiche di fama internazionale che guidano gruppi di ricerca nei più svariati campi, dalla fisica stellare alla cosmologia, e delle più svariate nazionalità. Si può stimare che in tutto il mondo rappresentino dal 25 al 30% di tutti gli astronomi e astrofisici. Altrettanto numerose sono le scienziate nel campo della biologia e delle scienze mediche, molte insignite di premio Nobel. Per tutte ricordiamo Rita Levi-Montalcini (1909) premio Nobel per la medicina nel 1986. Sebbene oggi i contributi delle donne alla scienza vengano riconosciuti, resta il fatto che le scienziate per emergere devono generalmente lavorare di più dei loro colleghi e devono ancora superare numerosi pregiudizi, che, contrariamente a quanto si crede, sono maggiori nei paesi anglosassoni che non in quelli latini. Spesso mi viene chiesto se ho incontrato molte difficoltà nel corso della mia vita scientifica. Ritengo che molti degli ostacoli di cui si lamentano parecchie ricercatrici dipende anche dall'educazione ricevuta che, almeno fino a qualche decennio fa, tendeva a fare delle bambine persone arrendevoli e servizievoli, poco combattive e desiderose di protezione. Oggi mi sembra che le cose vadano cambiando, la vita e l'educazione comune a bambini e bambine li lascia più liberi di sviluppare le proprie attitudini naturali, senza imporre loro condizionamenti dovuti al sesso. Io ho avuto la fortuna di avere una famiglia in cui babbo e mamma erano perfettamente eguali, si dividevano i compiti in piena parità, e che non mi hanno mai imposto comportamenti o giocattoli legati a stereotipi sessuali. Anche lo sport che ho praticato per parecchi anni mi ha aiutato a sviluppare quella competitività che e necessaria per riuscire nell'atletica come nella scienza, per vincere sportivamente, allenandosi e studiando e avendo la costanza di perseguire lo scopo di battere un record o di ottenere un risultato scientifico, senza scoraggiarsi davanti agli insuccessi, perseverando con costanza. Credo perciò che l'ambiente familiare in cui ho avuto la fortuna di nascere sia stato estremamente importante per darmi fiducia nelle mie possibilità, e per non provare complessi di inferiorità che ho spesso notato in colleghe della mia generazione e anche più giovani. Malgrado i grandi progressi fatti dalle donne, ci sono ancora notevoli disparità nel mondo del lavoro, della politica e della ricerca. Nelle università per esempio le ricercatrici sono ormai più della metà di tutti i ricercatori, ma appena si passa al livello superiore, quello dei professori associati, le donne sono meno del 30% e al più alto livello dei professori ordinari sono appena il 10%. In politica è a tutti nota la scarsa rappresentanza femminile alla Camera dei deputati e al Senato. Al governo dei comuni sono ancora una minoranza le donne sindaco, mentre sono frequenti gli assessorati alla cultura assegnati a donne, il che mi fa malignamente pensare quanta poca importanza i politici tendono ancora a dare alla cultura, ritenuta un trascurabile centro di potere locale. Quasi sempre si attribuisce questa scarsa presenza femminile nei livelli più alti all'impegno familiare, alle cure dei marito e dei figli, e si chiede un maggiore impegno dello stato nel fornire asili nido, scuole materne, scuole a tempo pieno. Giustissimo! Però rarissimamente si afferma il diritto delle donne e il dovere degli uomini di dividersi al 50% le cure familiari, dalle più umili alle più importanti, anche se la legislazione familiare dà alle donne la possibilità di rivendicare questa reale parità. Sta alle giovani donne educare i propri compagni e ai giovani uomini di incitare le loro compagne ad affermarsi nella vita. Comunque ritengo che il crescente numero di donne affermate nella scienza, nella politica, nello sport e in tutti i campi dell'attività umana fornisca quei modelli che finora mancavano alle bambine, e che possono dar loro fiducia e stimoli ad eguagliarle.

 
Read more...

from 工人日记

工位骚话时间

J:来,吃。(分发零食) Z:你先给的B,这说明你的真爱是B。 J:不,实际上第一个分到的是P。 B:这顺序很重要吗? J:Z就是因为我没第一个给就吃醋了,Z心里有我。 办公室里顿时充满了快活的空气。

 
阅读更多

from 工人日记

论当代一些人“心中的辫子”未除:声称为超过10人的办公场所安装饮水机是奢侈行为,而自己坐在不足10人的办公场所使用着饮水机。

 
阅读更多

from نویساک

با همه اینها گاهی حس می‌کنم تنهایی برایش خطرناک است. گاهی حال و روز غم‌انگیزی دارد. حواسش خیلی پرت می‌شود. وارد اتاق یا آشپزخانه می‌شود اما نمی‌داند چرا. مجبور است همه چیز را جایی یادداشت کند که فراموش نکند، اما فراموش می‌کند کاغذهای یادداشت را نگاه بیندازد.

به محض اینکه کاری را تمام می‌کند روی تخت ولو می‌شود و به سقف خیره می‌شود. یا به دنبال یک شیوه تازه خودکشی می‌گردد یا درباره یک معشوق تازه خیال‌بافی می‌کند. همین که خورشید غروب می‌کند، اوضاع سخت‌تر می‌شود. تاریکی نفسش را می‌برد. از ترس اینکه دیر خوابش ببرد، خوابش نمی‌برد.

پرسیدم: چای می‌خوری؟ + نه! می‌دونی که بدخواب میشم! – لیلا تو بدخواب هستی! سیگاری روشن می‌کند. دوباره بغض دارد. برق اشکش در تاریکی هم پیداست. دلم گرفت. اندیشیدم که چرا با خودش چنین می‌کند؟ خواستم بگویم نفس عمیق بکش اما در مقابلِ پکی که به سیگارش می‌زد حرف خنده‌داری به نظر می‌رسید. همین میلش به نفس کشیدن هم برای سیگارهایش نگه داشته بود. کلافه بود. می‌ترسیدم سر صحبت را باز کنم. می‌دانستم دوست نداشت مرا نادیده بگیرد، اما گاهی حوصله مرا نیز نداشت. پرسید: چی می‌خوای؟ – خودت می‌دونی! + الان حوصله حرف زدن ندارم. حوصله هیچی ندارم. دوباره اشک به چشمانش جهید. روی تخت ولو شد. من هم کنارش دراز کشیدم. موهایش را نوازش کردم. منتظر بودم بگوید چه چیز اینطور بند دلش را پاره می‌کند. صدای تپش قلبش را می‌شنیدم. + خب؟ همین؟ فردا هم همینه؟ دم ظهر بیدار شم، قهوه بخورم. چند دور دور خودم بچرخم تا یادم بیاد باید چیکار کنم، یه کم کار کنم. آهنگ تکراری گوش بدم. کتاب می‌خونم ولی نمی‌دونم چرا، فقط قشنگه ولی به درد نمی‌خوره. بعد شب میشه و باز همین‌. قراره تا آخرش همین باشه؟ حرفی نداشتم. به پهلو کنارش دراز کشیدم. دیدم که قطره اشک از گوشه‌ی چشمش غلتید. خدا می‌داند چندبار این مکالمه را تکرار کردیم. اما انگار از آن سیر نمی‌شود. می‌گوید: می‌دونم همیشه همینا رو تکرار می‌کنم، ولی احساس می‌کنم همه مسئله همینه. احساس می‌کنم دقیقا جواب سوالام جلو چشممه ولی نمی‌تونم ببینمش. هربار که تکرار می‌کنم حرفامو، هنوز دنبال یه چیزی می‌گردم. با اینکه می‌دونم همه آدما اینو تجربه می‌کنن، اما حس می‌کنم کسی نمی‌تونه کمکم کنه. سرش را به سمت من چرخاند: می‌دونی چی میگم؟ می‌دانست که می‌فهمم. فینش را بالا کشید و نیم‌خیز سیگار را در زیرسیگاری خاموش کرد. زیرلب ادامه داد: من نمی‌تونم بفهمم چرا باید یه همچین تکراری رو ادامه بدم. مث دیدن یه سریال تکراری بدساخته. کلافه میشم. بعد سرجایش نشست. سرش را میان دستانش گرفت. چهارزانو جلویش نشستم. گفتم: خودتو با پارسال مقایسه کن‌. انقد زندگیت تغییرکرده که خودت هم باورت نمیشه! فکرشم نمی‌کردی انقد اتفاق تازه بیفته! + ها، چقدم که دلچسب بود. تو که می‌دونی همه چیز رو. نمی‌دونم از کی تا حالا انقد کلیشه حرف میزنی! – از وقتی مکالمه‌ها رو می‌نویسی... رویش را برگرداند: واقعا بی‌جنبه ای! این به کنار، میدونی مشکل من این نیست هر روز قهوه‌ها تقرییا یه مزه میده، همه آهنگا تکراریه، می‌دونم اینا واقعا تکراری نیسن. با این قسمتش دارم کنار میام. مشکل اینجاست چیزی برام تکرار میشه که حتا تصورشو نمی‌کردم! سرم را پایین انداختم. سکوت کرد. فهمید که تا ته خط رفتم. می‌خواست بگوید آدم‌ها! نه که تکراری شده باشند. آدم‌ها تکرار نمی‌شوند، حسش به آنها تکراری شد؛ حس ترس، بی‌اعتمادی، ناامنی، و سرخوردگی. هر یک قدم که به کسی نزدیک می‌شود، ده قدم بعدی رو به عقب است. بهانه‌اش این است که دارم از خودم مراقبت می‌کنم اما می‌داند که نمی‌تواند مرا دور بزند. به خوبی می‌دانیم تنهاییش کاملا خودخواسته نیست، بلکه نمی‌تواند. حتا دوست صمیمی و قدیمی‌ش هم در سیصد کیلومتری نگه داشته است. + بی‌تا میگه هیچ چیز تکرار نمیشه. همیشه یه چیزی فرق داره. و انقد این دور اتفاق میفته تا جواب رو بفهمیم. بفهمیم چرا توی دور گیر کردیم. – باهاش موافقی + کاملا! سر همین هی این حرفا رو تکرار می‌کنم، با اینکه دیگه داره چندشم میشه ازشون. – واقعا چندشت میشه؟ شاید همینه. حست داره عوض میشه. + کم و بیش. ولی فقط حسمه. منطقا هیچ جوره نمیتونم وصفش کنم. چندش خیلی مبهمه! مگه سوسکه؟ – شاید سوسکه... + شاید باعث شه از مسخ دربیام. به خودم بیام؟ – اینم میشه! + خودمم نمیفهمم چی میگم. – عجله نداریم...

دوباره به سقف خیره شد. داشت به سوسک می‌اندیشید، یک سوسک تنها.

 
بیشتر بخوانید...

from نویساک

درب فلاسک را با صدای قژقژی بست و زیر لب غر می‌زد: اصلا منو نمی‌بینه. نمی‌دونم از عمده یا مدلش اینجوریه!

بعد فلاسک را عقب‌تر گذاشت و یادش افتاد که در همه‌ی زندگی نامرئی بوده است. نه پدر و مادرش، نه دوستانش در مدرسه و نه حتا معلمانش، با اینکه همیشه در میان سه نفر اول کلاس بود، او را نمی‌دیدند.

حالا که برای خودش زن مستقلی شده و با همه‌ی چیزهایی که از سر گذراند، هنوز گمان می‌کند نامرئی است. یک بار به او گفتم: شاید تو از آدما قایم میشی. در چشمهایم خیره شد، انگار که می‌خواست ذهنم را بخواند. دنبال چیز بیشتری بود. پرسید: چجوری میشه فهمید دارم خودمو قایم می‌کنم؟! راستش، نمی‌دانستم. فقط می‌خواستم از زاویه دیگری به ماجرا نگاه کرده باشم. چیزی از من نشنید و بلافاصله بغض کرد. سرش را بالا گرفت و به گوشه‌ای نامعلوم خیره شد. منظورش این بود که: بیخود دلداری نده، خودم می‌دونم حق با منه. آدم لجبازی نیست. هرگز کاملا روی باورهایش خیلی پافشاری نمی‌کند. بخصوص اگر پای دلیلی منطقی و به قول خودش تروتمیز وسط باشد، راحت کنار می‌آید. حتا گاهی به این ویژگی خوبش شک می‌کنم. چطور ممکن است کسی چنین راحت باور خودش را کنار بگذارد و با چند استدلال حرف طرف مقابل را بپذیرد؟! ابدا آسان نیست. البته هرگز مستقیم نگفتم که رفتارش نامتعارف است، زیرا به طور کلی رفتار خوبی است. خیال ندارم ویژگی‌های خوبش را زیر سوال ببرم. برای این یک مورد می‌تواند سه روز کامل گریه کند! البته اگر به او بگویم که لجباز نبودنش عجیب است، پس از سه روز گریه حتما به آن حرف فکر می‌کند. و بی‌بروبرگرد با روانکاوش درمیان می‌گذارد و یک ساعت تمام درباره این نکته‌ی جدید وراجی می‌کند. گاهی گمان می‌کنم، تنها سرگرمی او گیر دادن به چیزهای بدش است و هنگامی که خودش را گوشه‌ی رینگ خلاص می‌کند، نگاه تحقیرآمیزی می‌اندازد و می‌گوید: پاشو جمع کن خودت رو، تنها خوبی‌ای که داری اینه که از رو نمیری. می‌دونی؟ کتک‌خورت ملسه! اما در نهایت به این نتیجه می‌رسید که لجباز نبودنش دو معنی دارد: یا به قول ح، باهوش و حق‌پذیر است، یا به قول خودش دنبال جلب توجه! خودش هم خیلی با دومی همسو نیست. حتا زمانی که عاشق کسی باشد، اگر حرفش اشتباه باشد، ناگهان حالتش عوض می‌شود و می‌گوید: ببین من تو رو خیلی دوست دارم ولی این حرفت درست نیست. و سپس به آرامی گفت‌وگو می‌کند. خودش خوب می‌داند فقط بازی‌ای را می‌کند که بلد باشد. گاهی از عمد گفت‌وگو را کش می‌دهد. خوشش می‌آید که طرفش مثل خیلی‌ها دقیقا گرفتار اشتباهات یکسان می‌شوند. شاید بیش از اینکه اطلاعات جدیدی بدهد، در حال اصلاح شیوه‌ی استدلال آنهاست.

او لجباز نیست، اما احمق هم نیست. می‌داند گاهی به عمد نشان میدهد که از چیزی لذت می‌برد که نمی‌برد، اما درباره‌ی درست و نادرست، سخت‌گیر است.

تصمیم گرفتم به لجبازنبودنش اشاره‌ای نکنم. پشت میز بود و می‌نوشت. یک صندلی خالی آنجا بود. روی آن نشستم. مرا ندیده گرفت، گفتم: شاید تو اونا رو نمیبینی! شاید اونا حس می‌کنن تو انکارشون می‌کنی! – کاپ احمقانه‌ترین نظریه‌ رو بهت تقدیم می‌کنم! + بیخیال. تو هم آدما رو ندیده میگیری! – آره! لازمه ولی نه کسی که عاشقش ام! + خودت هم به حرفت مطمئن نیسی... معلومه – من تلاشمو کردم. الان دارم از خودم مراقبت می‌کنم. اون مث کاکتوس می‌مونه، هر وقت بهش نزدیک می‌شم، زخمی میشم. + تو هم آزار میدی. شاید برعکسه. شاید تو کاکتوسی! – دفعه قبل هم دقیقا یه بحث اینجوری بی‌نتیجه موند. چون تو نمیدونستی چجوری کاکتوس نباشم یا نادیده نگیرم. چشمانم برقی زد. گفتم: تو خودتو انکار می‌کنی! همانطور که پا رو پا انداخته بود روی صندلی ولو شد. اخمش نشان میداد که مطمئن نیست کاملا منظورم را فهمیده باشد. سکوتش می‌گفت ادامه بده لطفا. اندیشیدم که تنها خودم از پسش برمی‌آیم. ادامه دادم: تو خودتو نمی‌بینی و حس بی‌ارزشی داری، خب بقیه هم همین حس رو بهت دارن.

هنوز چیزی نمی‌گفت. کمی مستاصل به نظر می‌رسید. انگار اینجا نبود. داشت در خاطراتش سیر می‌کرد. می‌کوشید یکی یکی موقعیت‌های مختلف را بررسی کند. دوباره چشمش را به من دوخت. باید ادامه میدادم. سعی کردم حرفی هوشمندانه و غیرتکراری بزنم که خودش گفت: من خودم رو بی‌ارزش می‌دونم. حتما لایق هیچ عشقی نیستم که این وضعیتمه! _ خودت هم میدونی که چندنفری هستن که دوستت دارن. توی عمل با همه توانشون نشونت دادن‌. + احساس می‌کنم اشتباه می‌کنن. _ برگشتیم سر خونه اول! شاید تو اشتباه می‌کنی! + آره منطقا من دارم اشتباه میکنم. ولی احساسم عوض نمیشه. من معمولا دوسداشتنی نیستم، و گاهی اقات نفرت‌انگیز ام. –دوس ندارم این بحث رو ادامه بدم. کلافه میشم. + میدونم. عادت دارم همه رو کلافه کنم. حتا خودمو... نگاه عاقل اند سفیهی به او انداختم. نمی‌فهمم چطور گاهی اوقات هیچکس را در قد و قواره‌ی خودش نمی‌داند و گاهی دقیقا برعکس. گویی هیچ حد وسطی ندارد. همیشه یا نفرت انگیز است یا متنفر‌. به نوشتن ادامه داد. نفهمیدم چه می‌نوشت. من هم به تماشایش نشستم. خودش نمی‌فهمد از بیرون چگونه است. حتا من نیز نمی‌توانم دقیقا او را توصیف کنم. ظاهرش اینگونه است که یک لحظه چشمانش از بغض قرمز است، و لحظه‌ای دیگر بی‌هوا لبخند می‌زند. اما اکثر اوقات زیر لب چیزی با خودش می‌گوید‌، زمانی که دیگر نمی‌تواند در سکوت نشخوار کند. گاهی نیز هیچکدام جواب نمی‌دهد و مثل الان می‌نویسد. چنان به سرعت می‌نویسد که انگار کسی چیزی به او دیکته می‌کند. خودش می‌گوید که لیلای نویسنده است، اما من یک لیلا بیشتر نمی‌بینم.

تنهاست. این پررنگ‌ترین ویژگی اوست. نمیداند که هرچه دارد از تنهایی است. اگر آدمهای پیرامونش کمی بیشتر باشند، گم می‌شود، تحلیل می‌رود.

 
بیشتر بخوانید...

from نویساک

حالم چطور است؟ باید بگویم عادی است. اما عادی نیست، کمی پایین‌تر از عادی است. غمگین نیستم. غم پایین نیست. در واقع هر تجربه‌ای از احساسات بالا است. عادی یعنی مرض بی‌حسی و کمی پایین‌تر یعنی خوگرفتن به آن.

نمی‌توانم بگویم حالم چطور است چون حال خاصی ندارم، نه حتا اضطراب. امروز نسیم بهاری را روی پوست تنم، لابه‌لای موها و صورتم حس می‌کردم و دنبال آن لذت خاص می‌گشتم، نبود. به نظر عجیب بود.

آن شب همه چیز تغییر کرد. البته شب‌های آن-چنانی بسیاری چیزها را درون من دگرگون کردند. حتا شمارشان از انگشتان دستم بیرون است. اما همه‌شان یک نقطه مشترک دارند: یک نفر می‌رود؛ آن یک نفر یا من ام یا دیگری. البته من معمولا همینطور بی‌جهت نمی‌روم، یا هیچکس بی‌جهت نمی‌رود. اما وقتی کسی به من می‌گوید برو، کمی سرم را به پهلو خم می‌کنم، خیره می‌شوم و راهم را می‌کشم. می‌توانم برای ماندن اصرار کنم، اما آن لحظه‌ی خاص فقط فرمان رفتن صادر می‌شود. همچنین هیچ تلاشی هم برای ماندن دیگری نمی‌کنم. مثل تلاش برای نگه‌داشتن کسی که مرده، بی‌فایده است. کسی که می‌خواهد برود، برای من مرده و خدا می‌داند چقدر غم‌انگیز است اما کاری از من ساخته نیست. به سوگ می‌نشینم.

پیشتر به خودم خرده می‌گرفتم که چرا در آن زمان خاص و در آن رفتنِ خاص گیر افتاده ام، بعد جایی خواندم که ویتگنشتاین گفته که فیلسوفان کند می‌اندیشند. وقتی آن جمله را خواندم، راست نشستم، گلویم را صاف کردم و ابرویی بالا انداختم و فکر کردم: خب پس من مانند یک فیلسوف رفتار می‌کنم.

کند بیاندیشید، جای دوری نمی‌رود.

من نمی‌توانم از تجربه‌هایم دست بکشم. دوست ندارم لحظاتم را از جادو پاک کنم و علت همه چیز را بیابم، اما آدم نمی‌تواند بیخیال کندن زخم‌های خشک‌شده بشود، هرقدر هم که گوشزد کنند که ممکن است جایش بماند. بگویید: خب بماند. اینها یادگارهای ارزشمندی هستند.

درباره‌ی آن رفتن خاص، دیگر همه عالم و آدم می‌دانند که مرگ مادرم را می‌گویم. مادرمرده‌شدن کوچک نیست. اگر کسی مادر دارد که او را بزرگ کرده و سالها با او بوده، حتا اگر صرفا برچسب مادر داشته باشد، رفتنش غریب است.

سرپرست، تنها آدمی است که با او خاطره بسیار داریم. مانند جعبه سیاه زندگی ماست. به تعبیر دیگری، وجودمان درهم تنیده است.چیزهای خوب و بدش را در ما کاشته است.

وقتی می‌میرد و او را دفن می‌کنیم، بخش بزرگی از وجودمان را دفن می‌کنیم. می‌توان گفت ما هم به سوگ دوری او، و هم به سوگ خودمان می‌نشینیم. آن حفره‌ی خالی که کوچک هم نیست، هرگز پر نمی‌شود یا بهتر است نشود! تنها یاد می‌گیرم که چگونه با این حفره بزیم.

پس از آن هرکس می‌رود، یا دقیق‌تر بگویم، می‌میرد، آن حفره‌ها چیز چندان نویی نیستند. دردش آشناست و آشنا خوب است یا در بدترین حالت، تحمل‌پذیر است.

 
بیشتر بخوانید...

from Amassando ideas

Directo al grano. Acabo de perder el reto. No pensé que sería tan pronto, sólo que no sabía que había perdido. Simplemente estaba muerto de hambre porque no había llevado suficiente comida a la universidad, y lo único razonable que podía comprar eran unas galletas de soda en el kioskito del DCC. Debo llevar más comida. Mañana llevaré frutas aparte de mi wrap diario. Es para darme una segunda oportunidad.

 
Leer más...

from Amassando ideas

Últimamente no he escrito artículos para el blog porque he estado ocupado estudiando para la universidad y practicando en Codeforces. Pero aún así vengo a comentar que lamentablemente he desarrollado una adicción a comer, sobretodo comida azucarada, y por eso he engordado bastante. He intentado dejar la adicción, pero se me hace demasiado difícil. En contra de mi voluntad termino comprando comida que sé que es insalubre y poco después termino arrepentido. Afortunadamente, se me ocurrió una idea que puede solucionar el problema.

En internet existe un desafío anual muy popular entre los hombres llamado “Septiembre sin FAP”, que consiste en evitar masturbarse durante todo el mes de septiembre. Se me ocurrió una idea parecida: desafiarme a no comer comida insalubre durante todo el mes de junio. ¿Pero por qué creo que esta idea puede funcionar si es que no he podido controlarme estos últimos meses? Bueno, creo que el símil entre “Septiembre sin FAP” y este reto auto-impuesto es más divertido y llamativo, además que el año pasado gané por primera vez el reto de no jalarse el ganso, lo que me hace creer que puedo lograr este nuevo desafío.

Las reglas del reto serán las siguientes:

  • Comer solamente si es que estoy muy hambriento. Debo evitar comer en exceso.

  • No consumir alimentos que vengan con sellos negros. Tampoco debo comer alimentos que no sepa que son saludables, es decir, comida como pasteles y papas fritas quedan fuera.

  • No comprar carne. No hay que apoyar el maltrato animal.

  • Si no cumplo con alguna de las reglas anteriores, perderé el reto inmediatamente y avisaré en un blog post que perdí contando los detalles.

Podría contar muchas mas cosas sobre mi estadía en Santiago, pero mañana tengo un test de física moderna y apenas he estudiado, así que lo dejaré para otra ocasión.

 
Leer más...

from manunkind

différance (the digital machine bursts on the scene)

the ubiquitous screen showsays: is GPT-3 aut.of(r)iction aut.onomous th e(e) possible of(f) the machine in vent i on

(in?vain)

it writes lies (from the imagined lives multiple,but,binary

and between a 0 and a 1 the critic lies, unwritten, in the shapeshade of a

?

 
En savoir plus...

from نویساک

از تاکسی پیاده شد. شلخته به نظر می‌رسید. شال سرش افتاده بود. دکمه‌های مانتوی بلندش باز بود و باد آن را به هوا می‌برد. یک کیسه‌ی بزرگ کتاب و کیف دستی قهوه‌ای در یک دست و باقی کرایه تاکسی و گوشی‌اش نیز در دست دیگرش بود.

سرش گیج می‌رفت. چند لحظه ایستاد و سپس با عجله از خیابان رد شد. به خودش نگاهی انداخت و فکر کرد که شلخته به نظر می‌رسد. به آن طرف خیابان که رسید بلافاصله دستش را درون کیف شلوغش کرد و دنبال پاکت سیگارش می‌گشت.

تند قدم برمی‌داشت. و همزمان سیگارش را در باد روشن می‌کرد. پک اول سیگار، کار خودش را می‌کند.

هنوز گیج و منگ بود. با خودش می‌گفت: وقتی قراره تنها بمیرم، خب بذار با سرطان ریه بمیرم. چه فرقی می‌کنه.

انگار به کسی جواب پس می‌داد: سیگار کشیدن من دلیلی نداره، علت چرا.

جمله‌ی بعدی چنان سهمگین بود که قدم‌هایش آرام شد. اطرافش را نگاه کرد. باد موهایش را می‌کاوید.

من به خودم آسیب می‌زنم و می‌دانم که چنین می‌کنم. من بابت چیزی خودم را تنبیه می‌کنم!

 
بیشتر بخوانید...

from Parole alate

Troppe ferite di parole sconnesse dagli atti E di atti divisi dal cuore Mi rinchiudono in un'armatura di doloroso silenzio

I trasporti, il calore, gli abbandoni Per chi scalerà i muri delle mie paure E attraverserà il fossato della mia solitudine

Vergine di ferro

 
Continua...

from veer66

(Posted on 2022-05-10)

I try to convert C-style for-loop in JS to Common Lisp's loop macro for a learning purpose.

for (i=0; i<10; i++) {
  console.log(i)
}

Above JS code can be converted to:

(loop with i = 0
      unless (< i 10) return nil
      do (print i)
      do (incf i))

And, of course, the version below is more appropriate.

(loop for i from 0 below 10 do
    (print i))

The first version looks more flexible in applying to another problem than the last one.

 
Read more...

from veer66

(Posted on 2022-05-09)

In static1.lisp:

(defpackage static1 
 (:use #:cl)) 
(in-package :static1) 

(declaim (ftype (function (string string) string) concat-strings)) 
(defun concat-strings (a b)
  (format nil "~A --- ~A" a b)) 

(declaim (ftype (function (fixnum fixnum) string) concat-nums)) 
(defun concat-nums (a b)
  (concat-strings a b))

Then I ran this command:

sbcl --noinform --eval '(compile-file "static1.lisp")' --quit

SBCL showed this warning:

; caught WARNING: 
;  Derived type of STATIC1::A is 
;    (VALUES FIXNUM &OPTIONAL), 
;  conflicting with its asserted type 
;    STRING. 
;  See also: 
;    The SBCL Manual, Node "Handling of Types"

So SBCL – a Common Lisp implementation, can check type in compile-time. Anyway, a programmer needs to read warnings.

 
Read more...

from veer66

(Posted on 2022-04-25)

Last week, I watched a video about coding and Docker configuration on a TV. I couldn't read any line of code. Then I thought about visually impaired people. How do they code? Every student in Thailand must learn to code. I presume the situation is similar in every country.

People widely use text-to-speech services these days. I cannot find any text-to-speech service for reading source code aloud. Let's assume we have a modified version of a text-to-speech service.

So I looked at source codes in different programming languages on the CodeRosetta website. I perceive Python code blocks by their visual structure purely. To read Python source code, I have to encode its visual structure, namely indents to sounds. Reading a nested code block won't be easy to understand. For example, reading twelve leading white spaces aloud will be very strange. In Lisp, reading open parenthesis and close parenthesis is more straightforward, but I will forget which parenthesis. So the best form of code blocks is in QuickBasic, which has different keywords between different kinds of blocks. For example, FOR with NEXT, and IF with END IF. Later I got a comment from Lemmy.ml, which told me that Ada also has different keywords between different kinds of blocks. Another idea from Lemmy.ml is the reader must convert the Python code block into a similar form as Ada or QuickBasic before reading.

MBasic refers to code by line numbers instead of code blocks. However, by listening to five lines, I forgot the line number. For example, when I heard gosub 70, I forgot what was at line 70.

In X86 Assembly, a programmer labels only the line that the program will jump to it. So X86 Assembly code looks much better than MBasic.

Still, coding in X86 Assembly can be exhaustive in many cases. For example, X86 Assembly doesn’t support recursion. Writing quick sort in X86 Assembly can be too difficult for learning to code.

Haskell doesn’t rely on code blocks. However, reading the symbols, for example, >>= is challenging. Prolog’s symbols are easy to read. For example, we can read :– as IF. Anyway, the Prolog programming paradigm is different from the mainstream one now. So Erlang, whose syntax is similar to Prolog, is a more practical alternative.

In brief, Erlang is a practical, less visual-centric program language. Because it mostly relies on names instead of code blocks, reading names aloud is much easier than reading code blocks aloud. Furthermore, the Erlang programming paradigm is more mainstream now.

 
Read more...

from veer66

(Posted on 2022-04-20)

According to this thread, I compared using only lazy sequences with transducers.

To add the I/O factor, I prepared a data file called “fake.txt” using the program below:

(with-open [w (io/writer "fake.txt")]
  (doseq [n (range 10000000)]
    (.write w (str n "\n"))))

F1 is the lazy-sequence-based version. It reads data from “fake.txt” and does a few steps of computations.

(defn f1
  []
  (with-open [r (io/reader "fake.txt")]
    (->> (line-seq r)
         (map parse-long)
         (map inc)
         (filter even?)
         (map inc)
         (reduce + 0))))

F2 is the transducer-based version of F1.

(defn f2
  []
  (with-open [r (io/reader "fake.txt")]
    (transduce (comp (map parse-long)
                     (map inc)
                     (filter even?)
                     (map inc))
               +
               (line-seq r))))

I evaluated them using Criterium.

(with-progress-reporting (quick-bench (f1) :verbose))
(with-progress-reporting (quick-bench (f2) :verbose))

Here is the result.

#################### F1 ###################
Evaluation count : 6 in 6 samples of 1 calls.
Execution time sample mean : 3.811858 sec
Execution time mean : 3.812064 sec

#################### F2 ###################
Evaluation count : 6 in 6 samples of 1 calls.
Execution time sample mean : 1.490624 sec
Execution time mean : 1.490777 sec

F1, which is the lazy sequence version, took 3.812064 seconds. F2, which is the transducer version, took 1.490777. So the transducer version is 155.71% faster than the lazy sequence version.

In brief, this biased experiment shows the transducer version is much faster than the pure lazy sequence version.

 
Read more...