Задать вопрос
  • Как подключить fstab/cifs (flexvolume) на microk8s?

    Deerenaros
    @Deerenaros Автор вопроса
    Программист, математик, задрот и даже чуть инженер
    По мотивам:

    Так как секрет определяется иммутабельным во время создания - он не может изменятся. Единственный способ - пересоздать.
    kubectl delete secret cifs-secret
    Существующие поды использующие секрет будут удалены и пересозданы.
    Ответ написан
    Комментировать
  • Хватит ли пк для программирования?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Откуда вы все беретесь? Requirements VS Code - 1GB RAM. Это минимум. Это же браузе!

    Итак. Для программирования этого компьютера более чем достаточно. Тут самая большая проблема - это браузер. Вся современная сеть под него прогибается. Чтобы было попроще могу рекомендовать разве что легковесный браузер под i686-ым линуксом. Например, arch или gentoo, но лучше arch, с сорсами будут траблы из-за небольшой памяти (свапаться на сборке это жестоко). Под окружением i3 или xfce. Самое главное как можно меньше рюшек. Можно openbox даже поставить, но без докера грустно на нем. Теперь что. Точно не веб. Ну то есть можно какой-нибудь бекенд попилить, или минималистичный фротенд. Но это будет грустно. Лучше пойти те же алгоритмы на acmp-подобные состязания)) Ну или тру геймдев - directx 9 по архивным туторам и/или opengl.

    А вот теперь на чем. Вообще вполне себе вариант - vs 2010, можно даже express. Но еще лучше поставить emacs/vim, обмазать плагинами на интеграцию с компиляторами/дебагерами и жить прекрасной жизнью. Причем по возможностям вряд ли vim будет оч сильно отставать. Ну и да, лучше вим - его чаще качают до IDE и он более unix-way как мне показалось (не говорите мне про Столмана!).

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

    А вот когда программирование начнет приносить доход - в первую очередь надо заменить компьютер. Включая монитор. Сапожник без сапог - забавная штука. Но это если.
    Ответ написан
    1 комментарий
  • Что даёт навык написания кода по памяти?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Неважно какое сравнение, хотя очевидно в нём музыкант это компьютер, а программист - скорее композитор.

    По большому счёту копипаста не является чем-то плохим самим по себе. Те же сниппеты по сути та же копипаста, только в профиль. Беда кроется не в копипасте как таковой, а в китайско-индусском коде. Современные языки программирования оперируют такой важной концепцией, как общий код с туевой хучей инструментов для этого: функции, классы, шаблоны/дженерики, интерфейсы, циклы, etc. Очевидно, что если вы используете копипасту, то код общий. Если он общий, то возможно стоит вынести этот код в общие функцию или класс. Другими словами, сам язык программирования предоставляет собственные инструменты переиспользования кода. А тупой и брутальный ctrl+c, ctrl+v приведёт лишь к тому, что со временем, при изменении интерфейса, потребуется перелопатить не пару функций/классов, а тысячи строк копипасты. Причём, если изменение ambiguous, то вполне возможно код даже соберётся (если речь идёт про компилируемый язык программирования) и будет работать. Просто не правильно. А в тысячах строках однотипного кода поди найди это изменение.

    По сути жёсткая копипаста в лучшем случае является чем-то очень быстрым, но непрактичным на длинной дистанции, причём это показывает программиста не с лучше стороны: ведь описать класс и реализовать интерфейс не то, чтобы намного дольше, поэтому отсутствие данных действий представляет его как недальновидного и некомпетентного.

    Хотя опять же. Ситуации разные бывают. Если всё горит и надо вот прямо сейчас быстро морфировать простой интерфейс, оставив прежний, то копипаста может быть оправданной мерой. Так же, не смотря на все возможности по обобщённому программирования, паттерны в принципе схожи друг с другом, да и сам код имеет далеко не самую высокую энтропию, посему хорошие программисты активно используют сниппеты, позволяющие быстро вставлять часто используемые фрагменты кода. Кроме сниппетов есть другие инструменты, вроде Resharper или IntelliSense: они добавляют собственные инструменты сниппенга и подобные, позволяя анфолдить некоторые "макросы" в целые блоки кода. Да и реализуют автодополнение, позволяющее освободить от необходимости точно знать интерфесы всего проекта и всех используемых библиотек (что в принципе не очень реально). Наконец, можно просто научится быстро печатать, что значительно ускорит ввод, а в некоторых случаях быстрее будет даже просто набрать похожий текст, чем копировать его.
    Ответ написан
    Комментировать
  • Как Сделать загрузочную флешку, если под рукой только Андроид, otg кабель и сама флешка?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Если есть рут, то можно и без флешки, в крайнем случае с рутом всегда можно и dd, впрочем, есть теоретическая возможность воспользоваться dd и без рута, а через developer mode (где-то возле `adbd и консоль`).
    Ответ написан
    3 комментария
  • Как (с помощью чего) определить четкость фото и "черные" фото?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Однотонные изображения элементарно отсеивается средне-квадратичным.

    Четкость зависит от множества факторов. Однако есть вариант с градиентами: они "должны" иметь распределение с пологими границами. Можете погуглить что-нибудь такое, вроде даже на хабре было. ЕМНИП, этот метод крайне эффективен, однако есть способ и попроще - банальное преобразование Фурье. В случае размытого изображения оно должно быть более плавным и иметь низкий сигнал на высоких частотах.
    Ответ написан
    Комментировать
  • С чего начать изучение математики если прогулял 11 лет школы но хочешь понимать сложные алгоритмы в программировании?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    А чё понимать то там? Это алгоритмическое расстояние, его формулой не посчитаешь, для него нет каких-то адекватных свойств или чего-то такого. Банальный алгоритм, созданный для быстрого нечёткого поиска по словарям. Это не рокет-сайнс и не криптография.

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

    Возможно потребуются разделы геометрии, особенно если хотим работать с 3D-объектами.

    Большинство можно получить из учебника по математики для 10-11 классов, из общей литературы мог бы рекомендовать "Конкретную математику" Кнута, Поташникова, а также "Алгоритмы. Построение и анализ" Кормена, Лейзерсона. Весьма полезным может стать "Искусство программирования" Кнута, но она на любителя.

    И да. Учим технический английский. Иначе будет больно.
    Ответ написан
    Комментировать
  • Как обеспечить избыточную целостность?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Эм, так вам избыточные коды. Рида-Соломона, например. Или каскадные, они более гибкие.
    Ответ написан
  • Как получить деньги с максимальной анонимностью?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Эм. Не хочу блокировать toster, но разве вы не слышали про криптовалюты? Ну а так, qiwi анонимна поскольку постольку. Только не забудьте double-vpn+tor. Ну и свои данные не вписывайте, офк. И карту ни в коем случае не выписывайте. Как эти деньги потратить - вопрос отнюдь не риторический.
    Ответ написан
  • Каким софтом можно автоматически перехватывать хендшейки?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Эм, а ничего, что unix-style и заключается в минимизации работы. Aircrack достаточно, чтобы потом простым скриптом выцепить необходимое. Если очень хочется морды, то можно посмотреть на скромный визуалайзер.
    Ответ написан
  • По критикуйте идею сервиса?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Во-первых, идея ничего не стоит. Как раз по этой причине.

    А во-вторых: причина. Неизвестно, насколько данный сервис был бы удобен.

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

    Так что для начала подумайте о чём: почему вашим сервисом стоит пользоваться. Полнотекстовый поиск? Эластиксич поднимается в несколько команд, да и банальный egrep творит чудеса. Удалённый доступ? Тьфу, это даже проще - ssh. Резервное копирование и/или агрегация? rsync.

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

    Базы данных тут немного не причём.
    Ответ написан
    3 комментария
  • Как рассчитать стоимость валюты?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Никак. В том смысле, что каждая пара живёт своей жизнью и зависит от спроса и предложения. Другими словами, вполне возможно такое, что купив один доллар, на который потом купить один евро, мы получим неравное кол-во валюты, если напрямую купим евро. Это связано с огромным количеством причин, начиная от огромной волатильности, заканчивая банальными комиссиями, мешающие спекулянтам выравнивать пропорции достаточно точно.
    Ответ написан
    Комментировать
  • Что такое Абстрактная математика, а что практическая?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Абстрактной математикой принято называть разделы, работающие с кольцами, полями и прочей дискретной ересью. Абстрактная она потому, что работает с объектами она довольно цинично, скупо на характеристики, но это не значит, что она простая, хотя может производить такое впечатление.

    Однако в целом вся математика чрезвычайно абстрактна. Логичная, стройная, по существу. Не в пример, экономике, которая сама не понимает, почему человек (или группа) поступает так или иначе.

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

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Есть jquery. Сто лет ему. Немного (сильно) сокращает код.
    this.onMouseMoveBinded = this.onMouseMove.bind(this);
    this.onMouseEndBinded = this.onMouseEnd.bind(this);


    Не прочитать.
    if( typeof (this.obj) === 'undefined' ) this.obj = opt.el;

    Лучше так.
    if(this.obj === undefined) {
    	this.obj = opt.el;
    }

    Вам срочно нужна векторная алгебра.
    // ***
    	this.shiftX = e.clientX - thumbCoords.left;
    	this.shiftY = e.clientY - thumbCoords.top;
    //***
    	this.coords = {
    		top: e.clientY - this.shiftY - this.parentShift.top,
    		left: e.clientX - this.shiftX - this.parentShift.left
    	};
    //***
    	this.coords.top = e.clientY - this.shiftY - this.parentShift.top;
    	this.coords.left = e.clientX - this.shiftX - this.parentShift.left;
    //***
    	this.rx = this.px - this.kx;
    	this.ry = this.py - this.ky;
    //***

    Ну jquery же.
    doc.documentElement.classList.remove('grabbing');
    doc.removeEventListener('mousemove', this.onMouseMoveBinded);
    doc.removeEventListener('mouseup', this.onMouseEndBinded);

    Вообще, подумайте над названиями. Может оно и адекватно, но мне - непонятно. Откуда тут напряжение взялось?
    function Tension(opt){
    	dragNdrop.apply(this, arguments);
    }

    Не помню как сейчас, но, ЕМНИП, в js объекты-классы определяются через var.
    Tension.prototype = Object.create(dragNdrop.prototype);
    Tension.prototype.constructor = Tension;

    То есть декларирование Tension должно быть каким-то таким:
    var Tension = function (opt){
    	dragNdrop.apply(this, arguments);
    }

    Снова не прочитать условия. Не жалейте строк! Алсо, всё в одну кучу - UI, логику, физику - это плохой знак.
    function Slider(opt){
    	if(typeof (this.obj) === 'undefined') this.obj = opt.thump;
    	if(typeof (this.slider) === 'undefined') this.slider = opt.slider;
    	dragNdrop.apply(this, arguments);
    }


    new dragNdrop({
    	el: doc.getElementById('ball1'),
    	physiq: true
    });
    
    new dragNdrop({
    	el: doc.getElementById('ball2')
    });
    
    new Tension({
    	el: doc.getElementById('square1')
    });
    
    new Slider({
    	slider: doc.getElementById('slider'),
    	thump:  doc.querySelector('.thumb'),
    	physiq: true
    });
    
    new StepSlider({
    	el: doc.getElementById('slider-step'),
    	from: 5,
    	to: 40
    });

    Плачу кровавыми слезами. Что это? Не боитесь сборщика мусора? Не надо так. Вообще global space - не есть хорошо.

    Итого мы имеем сложно читаемую математику, паршивый нейминг, неудобные условия и нежелание следовать каким-то best-practice. Это всё не фатально, более того - прототип рабочий. Меняться вам или нет - решайте сами. Из важного, я бы посоветовал сделать всё читаемым, а для этого потребуется адекватный нейминг, не сваливать всё в кучу и следовать неформальным правилам. В остальном, javascript не идеальный вариант, чтобы показывать задротство в области clear code. И с паттернами у него беда.
    Ответ написан
    4 комментария
  • Паттерн (алгоритм) генерации ключей?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ахах. Нет, не получится, выборка маленькая. Да и с большой вряд ли что получится, нужна последовательность. А её вы вряд ли получите, даже не пытайтесь.

    Единственное что, можете попробовать уменьшить энтропию. K9 в начале уже понятно, скорее всего какая-то часть - это контрольная сумма, то есть зависима от другой. Разгадать вы её вряд ли разгадаете, но некоторую зависимость можно попробовать поискать, с достаточно большой выборкой. Хотя опять же, насколько мне известно, сегодня мало кто-то генерирует ключи со встроенной зависимостью, и DES хватило, чтобы понять.

    Штука вот в чём. Хорошие криптостойкие ГПСЧ и с известным алгоритмом колят уже 20 лет, да всё недоколоть. А вы хотите сам алгоритм узнать. Ну. Удачи.
    Ответ написан
    Комментировать
  • Школьная программа математики?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Лучший ресурс, неустанно буду повторять я, khanacademy. Единственная проблема - английский, но его знать сегодня также важно, как и уметь считать. Ведь в приципе, считать можно и не уметь (как большинство), не говоря уже о способности брать интегралы, однако некоторым сложностям такое поспособствует. Где знать английский? lingualeo или skype. А вообще, математика на самом деле любит вопросы почему и ненавидит как. Всё просто, это скорее даже не наука, а ремесло, подстраивающееся под различные виды наук, однако ремесло с обширнейшей историей, высокой степенью интеллектуального труда, однако не без литературных негров. Короче, треубется определённая гибкость ума, а умение решать по алгоритму интегралы это, конечно, хорошо, но понимать физический смысл оного для того, чтобы называться математиком - более чем необходимо.
    Ответ написан
    2 комментария
  • Как запускать код на python из c#?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Если IronPython не интересует, то потенциально есть три способа.

    1. Можно вызывать python.dll и управлять состоянием интерпретатора дёргая определённые функции. Это не самый простой способ и почти наверняка потребует собственной сборки пайтона, однако имеет некоторые преимущества. Одно из них - наивысшая скорость, так как всё происходит в одном пространстве имён. И полноценный контроль интерпретатора, только разобраться в реализации. Однако есть множество проблем, которые придётся решить: GIL, контроль состояния, входные данные и сбор результатов вычислений.

    2. Можно вызывать python.exe и передавать состояние косвенно (stdout/stdin, socket, shared memory), перебрасывая объекты через примитивы, например, этим. Однако, из сложностей, придётся написать горстку кода на python и быть готовым к ограничениям. Здесь также и упомянутые longclaps микросервисы.

    Но если IronPython вызывает интерес, то можно на .NET реализовать всё необходимое, или же использовать готовое. На самом деле, здесь даже немного приветливее смотрится тот же F#, да и вообще платформа у мелкомягких во многом поразительна.
    Ответ написан
    2 комментария
  • Правильно ли я делаю?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ох и давно это было. Попробуй посмотреть здесь. Если что-то непонятно - спрашивай. Постараюсь расписать подробнее, сейчас поздно как-то.
    Ответ написан
    Комментировать
  • Можно ли изображение обратимо разложить на несколько, с изменением пространственной частоты?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Вопрос с подвохом, ибо не совсем понятно, что конкретно требуется. Вообще говоря, на машине Тьюринга такое сделать можно. Для этого потребуется сделать копию, размыть изображение, после чего каким-нибудь хитрым обратимым образом (тысячи их) размытое сложить с копией. Получим два размытых изображения, но путём уже нехитрых манипуляций получается их восстановить. Можно пользоваться спектральным пространством, чтобы с математической точки зрения всё было забавно. Однако смысл данной затеи от меня ускользает.
    Ответ написан
    7 комментариев
  • Какие плюсы и минусы у ЯП C#?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Да откуда вы только лезете? Да, у всего есть плюсы и минусы. Если пишут что-то положительное, значит наверняка так оно и есть. Если пишут что-то негативное, вполне вероятно это имеет место быть.

    Да откуда всё ползёте и ползёте? Да, это только инструмент, но если инструмент называется языком программирования общего назначения, то соответственно сравнение с узкоспециализированными штангенциркулями и газовыми ключами как минимум некорректно. Это не verilog или brainfuck. Это C#.

    C# имеет статическую типизацию. Очень приятную и удобную, одну из лучших, ИМХО. Лучше только haskell, но вопрос не об этом. Типизация с метаинформацией и отменной рефлексией, можно писать программу пока пишешь программу, xzibit одобряет. У него потрясающая экосистема, лучшего я пока не встречал, говорят у руби с гемами лучше, но как-то не уверен. Шикарнейшая реализация пространства имён, а также возможность размазать класс по файлам - бесценно, для остального есть Core i7. Что ещё нужно? Производительность? Мимо. Свободность? Промазали. Портативность? Как бы не так. Логичность, читай отсутствие костылей? Эх... Если бы. Лаконичность? Чёрт, не помешало бы!

    Короче. Это потрясающий инструмент со своими недостатками. Да, он лаконичнее, чем C++, но python и ruby поставят выскочку на место, да даже F# поинтереснее будет. Да, он побыстрее python, но даже Java иногда начинает опережать, что уж говорить про С++. В общем и целом, часто выбор обусловлен не собственным желанием, а окружающими условиями, но чисто с эстетической точки зрения C# очень приятный и удобный, есть классные generics, и удобные lambdas, и потрясные extensions, так тут ещё и dynamic для всяких наркоманов привезли, а если очень хочется, то можно и в игры или даже движки.
    Ответ написан
    Комментировать