juan_gandhi: (Default)
Search in this blog:

По этому блогу По всему интернету
juan_gandhi: (Default)
 Idiology is that perfect balance between idiocy and ideology for which people will blindly vote for. 
juan_gandhi: (Default)
We programmers need a short temper. We should not be patient. Any repeatable activity can be automated, or else. Patient people are not good programmers. 
juan_gandhi: (Default)
Astrophysics and biology kind of give us, not so humble programmers, a hint, how primitive is our profession.

We know that too, actually: the majority of our colleagues are pretty dumb, are not they?

stuxnet

Apr. 17th, 2019 08:14 am
juan_gandhi: (Default)
I would not believe it existed.
But well.
Here's the link
juan_gandhi: (Default)
В рыбном магазине

Серебристого хека струя по прилавку текла
Так тягуче и долго, что молвить кассирша успела:
«Здесь, в печальной ставриде, которую я принесла,
Попадается мойвы мороженной дряблое тело».

Всюду — мерзкие хари, как будто на свете одни
Продавцы и продукты, и мяса холодного стружки.
Словно головы рыбьи, безмолвные падают дни,
Оставляя на память свои серебристые тушки.

Я сказал: «Магазин — как старинная драка течет,
Где лохматые женщины бьются в косматом порядке!»
Серебристая тушка положена в сетку — и вот
Золотистый бульон заплескался в эмалевой латке...

Золотистый бульон! Где же ты, золотистый бульон?
До рассвета еще эту очередь заняли мойры.
И, обруганный грязно, обсчитанный гнусным жульем,
Тимофей воротился с авоськой мороженой мойвы...
 
1989 

кошка

Apr. 13th, 2019 09:27 pm
juan_gandhi: (Default)

Сидит тут на кухне. Говорю ей, "кошка, пойдем в душ?" Она так поднимает резко голову и смотрит на меня удивленно, как тот кот на фотке.

Дык. Зверушка какая умная.

дыбр

Apr. 13th, 2019 08:57 pm
juan_gandhi: (Default)

 Ну на самом деле нашлась бага в генерации подобъектов предпучков. Фокус в том, что я их строил из P(x), беря точки - но у точек значения - множества, а не элементы, так что они хоть и находятся в 1-1 соответствии с подобъектами, но не равны. Ну и вот. 

Пока дошло, пока нарисовал правильный код - уже 9 вечера. Все, тесты прошли, код закомичен.

Еще что, еще подруга начала разносить стенку под лестницей. Тут у нас вопросы, как перила ставить, как лестницу присобачивать. С одной стороны, не хотелось бы перебарщивать, с другой надо же чтоб красиво.

Съездили в Лоуз, потом в Хоум дипо, посмотрели, как там и чо.

Обедали в Cha Cha Sushi - это одно из самых лучших мест. Народу толпа в очереди, конечно. Ну хоть очередь электронная - на айпаде записываешь свое имя, сколько, и годится ли суши бар, и телефон - потом выходит пацан из двери и орет "Влад!" (Я почему-то не Хуаном записался, хз. Там вокруг много Хуанов было; наверно, поэтому. Прекрасная там еда.

Ну и все; завтра выходной, наверно; прокачусь на велике, да сдую листья у дома. Траву во вторник постригу.

Пока что не дорешали до конца, как перила ставить. Но не на ступеньки. Подруга уже мебель выбирает под лестницу, а я блин думаю, эх... перила ставить. Это сложно. Но интересно.

Но сначала предпучки. Следующий по плану - классификатор подобъектов. Ну чо, лемма Йонеды рулит.

Французский еще не доделан, ой.

И еще; досмотрев прессконференцию астрофизиков, как-то слишком иронически отношусь к этой киношке, American Gods. Примитивно слишком. Досмотрю, конечно - но астрофизики как бы показали истинную меру вещей.

ха

Apr. 12th, 2019 08:41 am
juan_gandhi: (Default)
Пока ехал, запрограммировал перечисление подобъектов предпучка! И это без кофе. Приехали в Пало Альто.

  def subobjects: Iterable[SetDiagram] = {
    def asSet(x: Any): set = asSet(d1.obj(x)) // will crash if it's not a good set
    val allPowers: Map[d0.Obj, Set[Set[Any]]] = 
      d0.objects map (o => o -> Sets.powerset(asSet(objectsMapping(o)))) toMap
    def am(a: d0.Arrow): SetFunction = {
      val dom: Set[set] = allPowers(d0.d0(a))
      val codom: Set[set] = allPowers(d0.d1(a))
      def f(s: Set[set]): Set[set] = s map { x => asSet(arrowsMapping(a)(x)) }
      SetFunction("", asSet(dom), asSet(codom), x => f(x.asInstanceOf[Set[set]])) // casting... shame...
    }
    val power =
      SetDiagram.build("?", d0)(x => asSet(allPowers(d0.obj(x))), a => am(d0.arrow(a))) iHope
    
    power.points
  }
}

juan_gandhi: (Default)
Here's the long video: https://www.youtube.com/watch?v=XlrfBiuMzfE&fbclid=IwAR0Sh7ngrrd0ozd3bKqFYyMwdppjz7vmvN90lkjUrBNnsmznQCdoqA9Ayao

In short, for more than 10 years, a large group of scientists, currently 200 of them was working on using submil telescope arrays to produce a global telescope, taking into account Earth rotation and many other factors, focused on that Messier 87 galaxy, and got the image.

The media found one member of the team, designated here as an eye candy, and spread the pictures around the world. As if she did it.

It's a shame. And we bought it. It's a shame. 
juan_gandhi: (Default)
Девопес думает, что программисты - это такие наземные службы, а он такой пилот. Ночной полеооот...
Программист же думает, что девопсы - это такие наземные службы, а он такой пилот. Ночной полеооот...

Я не знаю, кто пилот. И инженер ли программист. Но я уверен, что девопес точно должен быть инженером.

Читал тут байку. Как В линктине все было тип-топ, потом добавили маленькую функциональность, а программист (ох уж эти программисты! от них одни неприятности!) закешировал данные; данные же в кеше лежали слишком долго (тут должен выскочить из жопы Руслан Белкин, линктиновский гуру кеша), и т.к. джава, то попали в долгую память, и памяти процессам не хватило, и все стали падать с OutOfMemoryException.

Ну и типа вот это жизнь тяжелая.

В Гугле когда-то оркут падал ровно каждую пятницу как раз в обед, потому что в Бразилии это уже три часа дня, и все назначают свиданки (потому что чем заняты в Бразилии? вы знаете, они все трахаются, особенно по пятницам), а у нас пропускная способность не расчитана на бразильцев по пятницам. Я не знаю, сколько раз я приставал ко всяким, ребята, ну вы же видите кривые, вы знаете, что вот сейчас через 15 минут бразильцы начнут назначать свиданки, ну нельзя что ли ресурсов добавить? Быть погибче? Нет, нельзя, говорили мне, мы ресурсы экономим! С этим строго у нас, с ресурсами! И тут начинал пищать пейджер.

Ну это гугл, там ебанаты известные; я год не мог найти, где задеплоить 70 к моих скриптов с клавиатурами, потому что ни у кого не было места. 70 килобайт. Семьдесят. Прописью. Это не знаю, лечится ли? Нет, наверно.

Так вот, а теперь вспомним, что есть на свете инженеры. Троекратный запас прочности, например. Когда буровую проектируют, например. Прочнисты, они на стреме. Они все посчитают, и буровая не падает при сильном ветре или дожде, или снеге, или морозе, или жаре, или при повышенном весе на крюке (100 тонн, например, колонна весит). Потому что инженеры проектировали, ну.

При чем тут функциональное программирование? Да совершенно ни при чем. Просто девопсы изображают из себя сторожевых псов, а должны быть инженеры. Но где ж их взять.

Кстати, давным давно, еще когда девопсы не назывались девопсами, а назывались "электронщиками" (а то и "мальчиками-электрониками") один у нас такой. главный девопес, пошел Заму По Науке жаловаться, что программисты неправильно запрограммировали, что у них многопоточный режим, и не успевает на процессоре выполниться одна команда, как не успевает выполниться другая команда, и из-за этого машина сбоит. Я смеялся, но Зам По Науке уговорил меня поставить эксперимент и гонять программы не в параллель, а последовательно. Убей не помню, чем кончилось, но девопес вскоре свалил. Потом были другие девопсы, но я им уже просто говорил, ребята, у вас квалификации нет рассуждать о программах, так что давайте не будем. Они были люди мирные, не знали, что ответить. Молчали. 

гол!

Apr. 11th, 2019 07:12 am
juan_gandhi: (Default)
По ящику показывают - хоккей, шайба попадает в лицо хоккеисту и отлетает в ворота. Гол засчитан, и автор - этот хоккеист, Джо Палески. Ненуачо.

https://ftw.usatoday.com/2019/04/nhl-playoffs-san-jose-sharks-joe-pavelski-scores-with-face
juan_gandhi: (Default)

Вчера я чистил код (выкинул кучу ненужной фигни, в 50 файлах), но почему-то один интегрейшен тест рухнул. Стал изучать вопрос. Оказалось, s3 uri вдруг плохой; этот uri приходит с сервера. Спросил на слаке, шо это. А коллега говорит - о, это я вчера деплойнул тот сервер, я там поменял uri. А вот проверить этот твой uri, да и вообще передавать не синтетические строки, а S3URL, это западло типа, что ли? Учиться, учиться, и еще раз учиться.

А я у себя вставлю проверку получаемых данных, чтобы сразу обламывать и жаловаться, а не гадать потом.

Вот.

Вообще, мы, программисты, большие лохи. Вечно надеемся, что данные что мы принимаем, и данные, что мы возвращаем, идеально хороши. А ЗРЯ.

О, апдейт. Откатил он свою вчерашнюю бранчь.

О, еще хуже. Обнаружился большой дефект дизайна в работе с этими uri. Они не всегда на s3 показывают. Мило! Будет над чем поработать.

juan_gandhi: (Default)
В Москве каких-то мордоворотов, пенсионеров ОМОНА (им типа по 45, дедушкам омона), выгоняют из их служебных квартир; они протестуют, и граждане, те самые, которых эти мордовороты совсем недавно калечили, сочувствуют мерзавцам! Сочувствуют!

Боре Стомахину не сочувствуют, Боря пусть страдает за свои речи и убеждения; масса народу в тюрьмах за репосты - а они сочувствуют бандитам. Квартиры типа надо отдать этой сволочи.

Давайте они со Стомахиным поменяются? Стомахину квартиру в Москве, бандитов в тюрьму.

Нет, Россия безнадежна... прав Стомахин, прав.
juan_gandhi: (Default)
Наша местная водоснабжающая контора годами уговаривала население экономить воду, а теперь у них денег нет, и они хотят брать больше за галлон, а то кушать очень хочется. И наша PUC, in bed with these crooks, decides to decide. Бля, меньше услуг, больше денег за единицу, остроумно! Давайте то же самое и со сладкими напитками! Меньше пить, больше платить! Да и с другими вещами, чо там.

Желающих-то работать меньше получать больше много (сам такой), но что наши добрые граждане на такое клюют, это поражает. 
juan_gandhi: (Default)
Вчерась в Лоузе одна кассирша другой впаривает базовый французский. Я там сдаю какую-то хрень, и говорю, мол. oh, tout le monde parle français aquí - потому что которой я говорю, она хиспаник, ну и вот. Сложно с языкам. 

hobophobia

Apr. 9th, 2019 07:37 pm
juan_gandhi: (Default)
TIL a new word. Fear of bums. Hobophobia. 
juan_gandhi: (Default)
I feel like I'm getting devonnegutized. Seriously, suddenly, reviewing all this in my mind, and feel like I'm not there anymore. I'm not a boconist, I don't care about tralfamadoreans, I don't care about Malachi Constant and I'm not interesting in renting a tent or fix a chronosynclastic infandibula. And not interested in the iguanas of Galapagos or Ice 9.

Can't explain. Seems like that age is gone now. 
juan_gandhi: (Default)
Reminds me what we did in Forth, with Leo, present here:

      applyTo | "a" | "b"  | "c" | "d"  | "e" |
      at("a") | "a" | "ab" | ""  | ""   | ""  |
      at("b") | ""  | "b"  | ""  | ""   | ""  |
      at("c") | ""  | "cb" | "c" | "cd" | ""  |
      at("d") | ""  | ""   | ""  | "d"  | ""  |
      at("e") | ""  | ""   | ""  | "ed" | "e" 


This is a test case. Rather, 25 test cases.
We scan through at("a") to at("e"), where at(x) is a representable diagram (presheaf, functor, whatever) for object x:
      val at = (obj: topos.site.Obj) => topos.representable(obj)


and then, in each row, apply this representable to objects "a",..., "e", and check that the result is a set (hom(x, y)) consisting of the values in the cells of the table. The values in the table are split by comma and converted to sets - because we deal with Grothendieck toposes.

But toposes are not essential here. I just decided to be lazy, and write code as tables, as Leo suggested eons ago, probably in 1989. It's not even my idea.

Implementation:
      val at = (obj: topos.site.Obj) => topos.representable(obj)
      
      case class table(data: List[String] = Nil) {
        def |(x: String): table = table(x::data)
        def |(d: Diagrams.Diagram) = check(d, data, data)
      }

      case class check(d: Diagram, data: List[String], fullList: List[String]) {
        def |(x: String): check = {
            d(data.head) === x.split(",").toSet
            check(d, data.tail, fullList)
        }
        def |(d: Diagram): check = check(d, fullList, fullList)
      }

      val applyTo = new table

Profile

juan_gandhi: (Default)
juan_gandhi

April 2019

S M T W T F S
  1 2 3 4 5 6
78 9 10 11 12 13
14 1516 17 181920
21222324252627
282930    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 22nd, 2019 12:33 am
Powered by Dreamwidth Studios