LINUX.ORG.RU

Избранные сообщения Artamudo

ASP.NET Core под Ubuntu 18.04 LTS или Windows Server 16

Форум — Web-development

Запустил полностью самописный контентный сайт anibi.ru на ASP.NET Core 2.1 MVC, выложил его на VPS под Ubuntu 18.04LTS ну поскольку кроссплатформенный фреймворк такое позволяет да и хостинг значительно дешевле чем тот же Windows Server. К знатокам вопрос, может кто-нибудь тестил перформанс веб-приложения или веб-сайта на Ubuntu 18.04LTS под NGinx и Windows Server 2016 под IIS10. Если да, то какие различия, может все таки по винду хостить?

 , , , ,

AndreyShel
()

Rust и типобезопасность

Форум — Development

Решил я тут немного изучить Rust, чтобы не состариться, так и не вкусив плодов современной цивилизации.

Rust рекламируется как типобезопасный ЯП, и я подумал, что нужно это как-то проверить, увидеть, как говорится, своими глазами. На примере всяких диких, но вполне встречающихся конверсий типа из вещественного в целое. Тема важная, из-за подобных штук иногда ракеты падают, так что если ЯП заведомо типобезопасный, он должен такие ситуации корректно обрабатывать или бить по рукам, хотя бы в рантайме.

Почитав документацию:

The as keyword does safe casting

Набросал такой примерчик:

fn main() {
        let a: f64 = std::f64::MAX;  // данное значение просто пример "большого числа"
        let b = a as i64;
        println!("{}", b);
}

Вопросы:

1) С какой стати это вообще компилируется?

2) Да, f64 и i64 нужно одно и то же количество битов для хранения значения, ну и что?

3) Почему результат меняет знак?

Представьте, что какой-то тех. процесс идет, и определенный параметр нельзя изменять скачкообразно, иначе физически система (по крайней мере, один из компонентов) выйдет из строя (встанет в раскоряку, взорвется, выпустит токсичный газ, убивающий 100тыс. населения; нужное подчеркнуть). И вот значение в f64 положительное и увеличивается постепенно, с i64 все вроде в порядке (и тестирование проходит на тестовых значениях), и вдруг хренак! и уже -9223372036854775808

Как так?

 ,

seiken
()

Макросы + история успеха

Форум — Development

Комрады. Сабж собственно - чем макросы racket лучше/хуже макросов cl и наоборот?

Второе - где, какой диалект и для чего (лиспа) вы применяете?

Всем спасибо.

З.Ы.: интерес к этому так как начали писать с коллегами большую система на racket. Стало интересно. Делаем just for fun

 , , ,

silver-bullet-bfg
()

Эпические треды

Форум — Talks

Сюда я буду добавлять треды без купюр и IP (UA оставим).

Номер 1 - РФВС: http://linuxhacker.ru/~shaman/rfvs.html

Номер 2 - Однострочник на Perl: http://linuxhacker.ru/~shaman/perl-one.html

Номер 3 - Реестр в Линуксе: http://linuxhacker.ru/~shaman/linux-registry.html

Номер 4 - Экстрасенсы: http://linuxhacker.ru/~shaman/extra-sence.html

Номер 5 - Польский священник и Господ Бог: http://linuxhacker.ru/~shaman/poland-god.html

Номер 6 - Gentoo для девочек: http://linuxhacker.ru/~shaman/gentoo4girls.html

Номер 7 - Одна фраза о Lisp'е: http://linuxhacker.ru/~shaman/lisp1.html

Номер 8 - Microsoft ищет линуксоида: http://linuxhacker.ru/~shaman/MSLinux.html

Номер 9 - Материалистам LOR: http://linuxhacker.ru/~shaman/Material-LOR.html

Номер 10 - GTK3: http://linuxhacker.ru/~shaman/GTK3.html

Номер 11 - Линус начал использовать Gnome: http://linuxhacker.ru/~shaman/Torvalds-Gnome.html

Номер 12 - Правила Talks: http://linuxhacker.ru/~shaman/Talks-Talks.html

Номер 13 - Явление Болгенос: http://linuxhacker.ru/~shaman/Bolgenos.html

Номер 14 - Arch Linux 2010.05: http://linuxhacker.ru/~shaman/arch-2005.html

Номер 15 - Wayland готов для десктопа: http://linuxhacker.ru/~shaman/wayland.html

Номер 16 - Аят, собственно, аля: http://linuxhacker.ru/~shaman/ayat.html

Номер 17 - Лифчик с Убунтой: http://linuxhacker.ru/~shaman/gentoo-bra.html

Важное замечание: «страницы» внизу фиктивные, ведут вникуда. Все, что происходило в треде видно в указанных выше файлах.

Если вы считаете, что список нужно пополнить чем-то интересным или смешным, напишите мне на abondarenko@gmail.com. Однако, я не буду заносить сюда топики-травли или то, что сочту унылым.

Shaman007
()

Что должен знать начинающий питонист?

Форум — Talks

Чтобы его вообще взяли хоть куда, код писать на Python? Если вообще в програмировании ноль знаний и опыта, что надо знать по минимуму. Есть же такие люди, которые не имея ни какого отношения к программированию, становятся Python-программистами.

Понятно, что все базовые вещи типа ветвлений, циклов, подпрограмм. А что ещё? Как хорошо надо знать ООП? Нужно ли уметь реализовать сортировку (ведь для тех же list есть уже метод sort)? Оценка сложности алгоритма (в терминах O-нотации) уже оверкилл для начинающего, да? Что ещё?

 ,

seiken
()

Для тех, кто думает перейти на NixOS

Форум — General

Собственно по мотивам ТЫЦ но про NixOS и на основе моего опыта эксплуатации сабжа в течение как минимум одного года восьми месяцев и двух дней или шестьсот двенадцати дней кому как угодно. Ибо именно столько у меня стоит NixOS основной системой тыц.

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

Так вот детки. Гента местами хороша… хотел бы я так написать но увы нет. Есть кардинальные проблемы с которыми она не справиться. Основная это toolchain. У вас попросту не может быть консистентной системы с самым распоследним toolchain-ом и довольно старыми выдержанными проверкой временем программами (Либо наоборот). Это не значит что такую проблему нельзя решить костылями chroot-а или некими иными методами… Это значит лишь то что такая проблема у дистрибутива как минимум есть в наличие.

Ты сейчас задвинул некую чушь. {У меня нет}/{Мне не нужны} старые программы.“ - Да дело ведь не только в этом. Те кто прожил с гентой достаточно припомнят не один случай неудачного обновления glibc в результате которого всему приходил северный полярный лис. „Бэкап спасёт“ да не без этого. Однако бэкап не исправляет саму изначальную проблему.

Так вот последние два абзаца написаны собственно только ради того что… Да детки в NixOS таких проблем нет. И быть не может by design. И я скромно умалчиваю про другие архитектуры, контейнера, FHS environment и прочие побочные плюшки.

Дальше меня ждала «ломка» поскольку во всех дистрибутивах корень системы это важная штука которую можно пощупать своими загребущими ручёнками… Да а в то время как в NixOS из всего корня так сказать материальны только /etc/nixos, /root и /nix а остальное симлинки… Тудумс! Занавес.

Немного про установку. Генту можно собрать за время от пары часов до нескольких дней. Развернуть из бинпакетов можно минут за сорок ну плюс минус около того. NixOS бинарный дистрибутив поэтому кампелять тут ничего не нужно.

Канпельять нинада. nixos ацтой. Моя отсельда мухожук.“ Однако стоит лишь переопределить дефолт и если это столь необходимо пакетный манагер сам пересоберёт то что нужно пересобрать. Вкуснятина!

Дальше сам процесс разработки. Про генту я скромно умолчу. А вот NixOS разрабатывают на гитхабе открыто, свободно и без бюрократии и 1770 запросов на слияние и 3753 проблемы тому доказательство.

Я скажу так в генте для меня всегда была головной болью настроить gnome/kde/plasma. Полные метапакеты натащат столько что ппц а минимальные как правило просто обрезаны по самое немогу и для комфортного существования приходилось искать ту самую золотую середину самостоятельно. В NixOS просто дефолтный выбор мне что называется зашел на ура. Одной проблемой меньше.

Итак вот мы прожили в системе определённое время накопились критические изменения и настало то самое время обновлять. У NixOS считай весь корень тупо набор симлинков поэтому, как не трудно додумать, он чудесно версионируется. Да у вас всегда есть не просто единственное текущее состояние системы но и всё неудалённые прошлые её состояния.

В NixOS пакетный менеджер заведует не просто версией хромиума но и всеми его настройками и да даже его расширениями.

Любые нативные игрушки steam-run спасает и делает не просто хорошо а прям прекрасно.

Да ладно… Вот прям взял и описал идеал. Не верю.“ Есть и баги. Дальше о них.

Ну не то чтобы это было проблемой но как с самой первой инсталлиции так и до сих пор - Only english language available in plasma regional settings #33987, Missing a lot of translation in plasma5-based system. #37741 Да все преведенные решения перепробовал но баг как был так и есть.

Из того что заметил в последнее время HDD not mounted, system don't boot #32588 это про btrfs на luks. Но оно тоже странное то есть то нет… В общем закономерности я не заметил но у себя наблюдал.

Ну и покамест на этом всё. Надеюсь мои многобукав помогут кому нибудь сделать свой выбор.

 

init_6
()

Модный, молодежный язык

Форум — Development

Какой есть новый, крутой язык с возможностью создания GUI приложений? С растом ничего не получилось, так как ни один Gui контейнер на нем не заработал.

 , ,

LancerRevX
()

Пропаганда и манипулирование в IT

Форум — Talks

Еще давно заметил такую тенденцию, что в мире IT пропаганда и манипулирование сознанием айтишников, не чуть не меньше, чем в политоте.

Основные методики манипулирования такие же, как и везде

1. выпускается продукт\технология
2. принимается комплекс мер, по его продвижению

При этом это касается в основном тех продуктов\технологий, которые выпускаются корпорациями. Все продукты, которые имеют лицензию BSD, MIT, - подвергаются жесткой критике. Критика льется со всех мест, где сидят\читают айтишники.

Пример: freeBSD - мертва, сакс, тухлая. Подновости касающиеся freeBSD так же активно эксплуатируются. Отказались от GCC? Ну фсёёёёёёё, я наблюдал\а \ хотел\а посмотреть\что-то там у нее, а теперь уж точно ФСЁ. Хотя, лицензия BSD по настоящему открытая и позволяет как хочешь использовать всё это, в отличие от GPL.

bryak
()

Посмотрел я этот ваш Rust

Форум — Development

Вобщем, дошли руки потыкать палочкой.

Я вот что не пойму - зачем и кому он нужен, ну правда?

Это же новый C++. То есть, чрезмерно переусложненный язык, в котором, как говорил Луговский, разобраться может разве что хорошая зубрилка, а не хороший программист, но при этом не дающий никаких бонусов к продуктивности, и никакими киллер-фичами не обладающий.

Close to metal? Нет, извините, мне когда надо будет close to metal - я пойду сишку возьму. Которая реально, и Close To Metal, и со стабильным ABI, так важным для низкоуровневого программирования, и так далее. А если просто производительности не будет хватать, в том числе там из-за GC, так ведь - что в Java, что в Common Lisp, есть огромное количество возможностей затюнить производительность до нужного уровня, при этом не стреляя себе в ногу.

Продуктивность разработчика? Я сильно в этом сомневаюсь. Потому что вот есть языки программирования, предлагающие наибольшую продуктивность, не ограничивающие пользователя практически никак, и, конечно, вместе с тем, довольно сильно нагружающие межушной нервный узел, довольно нетривиальные для изучения. Как пример, лиспы всевозможные. Но Rust в их число не входит. Там на каждом углу костыли, подпорки, железные двери с замками, и чуть что так обухом по голове можно получить.

Наконец, ну безопасность чтоли, хваленая? Ну, опять нет. Взять тот же unsafe. Если вам нужна прямо таки безопасность-безопасность - берите что-нибудь вроде хаскеля(или какого-нибудь Coq, или что-нибудь подобное, с зависимыми типами, если совсем упоролись), ну или на худой конец, что-нибудь вроде Java, где все безопасно прямо как в дурдоме с мягкими стенами.

Вобщем, не вижу зачем этот язык нужен, нам и C++ хватает, если надо не ехать, а шашечки(т.е. тупо позадротствовать, да).

 ,

lovesan
()

Какой путь необходимо проделать к теории категорий?

Форум — Talks

Привет, ЛОР!
Предположим, понравился мне Haskell. Предположим, более-менее я его понял. Начинал я его учить с надеждой, что пойму математику. Ан нет, язык как язык, просто подход необычный.
Поспрашивав людей, я получил ответ, что просто так теорию категорий не выучить. Кто-то сказал, что нужно знать топологию. Кто-то упомянул другие области. А что скажете вы?
Исходные данные: студент второго курса какого-то шаражного вуза, непонятно как ещё не вылетевший. Практически полностью не понимаю матан, чуть лучше дела обстоят с линейной алгеброй и дискреткой, хотя тоже весьма плохо. Да, я тупой. Или ленивый. Или всё сразу. Но хочется исправиться.
Цель: понять теорию категорий и, желательно, применение оной. Ещё желательно было бы изучить как можно больше сфер математики, но это так, мечты.
Что скажете? Какую шикарную литературу по математике вы в своей жизни встречали? Нет ли какой-то волшебной книги по математике, которая охватывала бы все сферы?

 

Deleted
()

Там опять Go ругают

Форум — Development

сабж

Статья вызвала бурю эмоций на HN.

Сама статья мне очень понравилась. Очень красочно описывает моё отношение к Go.

This fake “simplicity” runs deep in the Go ecosystem. Rust has the opposite problem - things look scary at first, but it’s for a good reason. The problems tackled have inherent complexity, and it takes some effort to model them appropriately.

Ну или как я люблю говорить: Go примитивный, а не простой.

PS: Работа со строками в Go напомнила недавний холивар (C рулит и педалит.). @grem’у понравится. Путь к файлу содержит недопустимые символы? Та забей!

@WitcherGeralt

 , ,

RazrFalcon
()

А как вы программируете на маргинальных языках?

Форум — Talks

Я не о тех, которые объективно плохие, а о тех, в которых мало пользователей, следовательно проблемы с инфраструктурой. Взять, например, go. Язык хороший, а опенсорсных IDE нет, да и вообще с IDE туго (только разве что джетбраинсу денежку заплатить). Остаются всякие текстовые редакторы по типу вима с плагинами, но это же довольно больно...

Расскажите, как начинали, к чему пришли или послали всю маргинальщину подальше и сидите пишите на Java/C++/Python и JavaScript?

 ,

peregrine
()

Я подебил?

Форум — Talks

Привет.

Использую вим давно, но больше для редактирования конфигов, поэтому в таком легком режиме. В последнее время возникло желание углубиться и писать в нем и обычные тексты, в т.ч. на русском языке. Ну и столкнулся я с извечной линуксовой проблемой – переключалкой :) Насколько я понял существует несколько методов решения разной степени кривости:

  1. langmap;
  2. встроенная переключалка, отличная от системной Ctrl-^ ;
  3. vim-xkbswitch.

Может что-то еще. langmap у меня работал не для всех символов; встроенная переключалка неудобна; vim-xkbswitch в принципе работал как надо, но почему-то сыпал ошибками, если открыть пустой вим. После чего, впрочем, работал нормально.

Я думаю многим приходила такая идея в голову, но почему-то в статьях по настройке переключалки это нигде не встречается: просто запоминать раскладку в Insert, переключать на английскую, если выходим с Insert и возвращать назад если входим в Insert снова. Некоторое время изучение ужасного vimscript и вот что у меня появилось в конфиге (в vimscript вообще не разбираюсь, если что не так скажите):

let g:imodeKeyboardLayout = 0

function KLInsertLeave()
    let g:imodeKeyboardLayout = system('xkblayout-state print "%c"')
    call system('xkblayout-state set 0')
    call system('pkill -SIGRTMIN+11 i3blocks') "нужен только для i3blocks, можно не писать
endfunction

function KLInsertEnter()
    if g:imodeKeyboardLayout == 0
        call system('xkblayout-state set 0')
    elseif g:imodeKeyboardLayout == 1
        call system('xkblayout-state set 1')
    endif 
    " еще один elseif, если раскладок больше двух
    call system('pkill -SIGRTMIN+11 i3blocks')
endfunction

autocmd! InsertLeave * call KLInsertLeave()
autocmd! InsertEnter * call KLInsertEnter()

Невероятно просто, гибко.. я не пойму в чем проблема? Вроде все работает. Почему подобное не рекомендуют во всех рецептах?

 ,

Im_not_a_robot
()

Идеальная среда для работы. Моя версия

Галерея — Скриншоты

В продолжение экстерьера идеального рабочего места, выкладываю интерьер оного.

На экране виден процесс работы над моим проектом, который вот-вот должен зарелизиться. Если кто использует ерланг и хочет использовать golang для добавления новых фич в кластер — велкам. Буду признателен любой обратной связи.

Если есть вопросы, задавайте в комментариях

>>> Просмотр (3840x1080, 946 Kb)

 ,

Deleted
()

Дождливый XMonad

Галерея — Скриншоты

Терминал — urxvt, бар — polybar

Конфиги: https://github.com/malyutinegor/rainy

Видео с обоями: https://i.imgur.com/CTiwPki.mp4 (они обычно всегда отключены, включаю чисто чтобы помедитировать)

>>> Просмотр (1366x768, 752 Kb)

 , , , ,

rk-d
()

А вы наливаете в чайник холодную или горячую воду?

Форум — Talks

В РФ (не знаю, как в других странах) как-то принято холодную воду наливать в чайник. Но ведь очевидно, что если налить горячую, чайник вскипит быстрее. Есть мнение, что традиция связана с тем, что горячая вода быстрее «ушатывает» трубы и т.о. загрязнённее. Однако, многие считают, что это миф. А что вы думаете по этому поводу? Может быть, даже кто-то проводил экспериментальное сравнение?

 

next_time
()

Симуляция формирования галактик без темной материи

Форум — Science & Engineering

Исследователи Боннского и Страсбургского университетов выполнили симуляцию формирования галактик с использованием модифицированной ньютоновской динамики (альтернативная теория гравитации) без темной материи и полученный результат несмотря на массу различий с реальностью, в конечном счете продемонстрировал успешное формирование галактик, большинство из которых оказались дисковыми. Расхождения с параметрами галактик в реальности можно объяснить значительной неточностью, грубой приближенностью параметров симуляции. Исследователи выразили надежду, что в будущем смогут улучшить точность симуляции.

Ссылка на статью: https://arxiv.org/abs/2002.01941

Интересно, насколько сильно нужно будет менять используемые в астрономии и физике общепринятые теории, если вдруг окажется, что темной материи все же не существует?

 ,

Leupold_cat
()

[Физики|химики]-пионеры остались?

Форум — Talks

Пробовал кто нибудь дома собирать вундервафли которые раньше в советских научпопах печатали? Генераторы темноты, левитаторы ну или хотябы кирлиан-фотоаппарат, проверить, может духи существуют а власти скрывают. ЯМыШурикТимофеев

 , ,

TooPar
()

Discord переходит с Go на Rust

Форум — Talks

TL;DR проблема с GC в Go 3-x летней давности

https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f

 , ,

kookoo
()

Просто домашний пк 9 (cinnamon)

Галерея — Скриншоты

Относительно давно переехал на cinnamon из gnome. Попробовал, понравилось, остался. Почти всегда использовал очень тёмные темы, но сегодня захотелось вдруг светлой, причём тотально. Странно, но мне понравилось ::)

Отдельные иконки раскрасил вручную, но не все.

Тема браузера — опять же пару кликов и готово.

dron@gnu:~$ screenfetch 
         _,met$$$$$gg.           dron@gnu
      ,g$$$$$$$$$$$$$$$P.        OS: Debian testing bullseye
    ,g$$P""       """Y$$.".      Kernel: x86_64 Linux 5.4.0-3-amd64
   ,$$P'              `$$$.      Uptime: 6d 14h 50m
  ',$$P       ,ggs.     `$$b:    Packages: 4573
  `d$$'     ,$P"'   .    $$$     Shell: bash
   $$P      d$'     ,    $$P     Resolution: 1920x1080
   $$:      $$.   -    ,d$$'     DE: Cinnamon 4.2.4
   $$\;      Y$b._   _,d$P'      WM: Muffin
   Y$$.    `.`"Y$$$$P"'          WM Theme: Adapta-Nokto-White (BlueMenta)
   `$$b      "-.__               GTK Theme: BlueMenta [GTK2/3]
    `Y$$                         Icon Theme: malys-uniblack
     `Y$$.                       Font: Sans 9
       `$$b.                     Disk: 1,1T / 1,5T (72%)
         `Y$$b.                  CPU: AMD Phenom II X6 1055T @ 6x 2.8GHz
            `"Y$b._              GPU: AMD BARTS (DRM 2.50.0 / 5.4.0-3-amd64, LLVM 9.0.1)
                `""""            RAM: 5092MiB / 14001MiB
                                
dron@gnu:~$ 

Для снимка подобного типа набросал (уже давно) скриптик, может кому будет надо

#!/bin/bash
SCREENALL_WM_IMAGE_DIR="/tmp/`uuidgen`/";
SCREENALL_WM_NUMBERS=`wmctrl -d | wc -l`;
SCREENALL_WM_CURENT_NAME=`wmctrl -d | grep "*"`;
SCREENALL_WM_CURENT_NUMBER=${SCREENALL_WM_CURENT_NAME:0:1};

mkdir $SCREENALL_WM_IMAGE_DIR;


for ((i=0; i < $SCREENALL_WM_NUMBERS; i++ ))
do
    wmctrl -s $i;
    scrot  -q 100 -d 1  $SCREENALL_WM_IMAGE_DIR$i.png
done

wmctrl -s $SCREENALL_WM_CURENT_NUMBER;
convert -append $SCREENALL_WM_IMAGE_DIR*.png "/home/$USER/vertical`date`.png"
convert +append $SCREENALL_WM_IMAGE_DIR*.png "/home/$USER/horizontal`date`.png"

rm -rd $SCREENALL_WM_IMAGE_DIR;
xdg-open ~/;
echo "Done";

Осталось подрихтовать мелочи и можно пользоваться, всем добра :)

>>> Просмотр (1919x3242, 3908 Kb)

 ,

LINUX-ORG-RU
()