• Какой граббер товаров для Яндекс.Маркета работает и не блокируется?

    @Lexans
    Банят не скрипт, а твой ip. Для обхода испольщуй прокси или запускай на другом сервере
    Ответ написан
  • Есть ли хороший и простой инструмент для составления документации для нового продукта?

    @Lexans
    Для хелпа для людей отличным решением будет DrExplain
    Ответ написан
    Комментировать
  • Для чего программисту нужно знать физику?

    @Lexans
    Давайте разберемся что значит знать и что значит физика.
    Конкретно помнить наизусть все формулы-законы из всех разделов физики не значит знать с практической точки зрения. Главное ориентироваться в них.
    Физика имеет много разделов. Не узко-специализированному программисту (сидящему в особом НИИ) потребуется механика, ну максимум геометрическая оптика.
    Занятия по физике (именно занятия, а не "знания") важны тем, что они являются прикладной математикой. Очень важно уметь проходить этапы исследование реального мира -> составление математической модели -> нахождение способов вычисления -> применение в реальном мире, а не ограничиваться на третьем этапе бесконечно вычисляя интеграл на листочке. Математика != вычисления, Математика > чем вычисления.
    Таким образом программисту не стоит брать Nтомник по физике и начинать постигать "устройство вселенной" в мельчайших подробностях микромира с корки до корки, заучивать наизусть все формулки. Изучение физики для программиста должно происходить примерно таким образом: постановка задачи (из любого задачника или реального мира) -> составление математической модели на основе знания по физике, наденных в справочнике/учебнике -> вычисления: тут пригодится навыки решения систем уравнений, хотя бы в мат. пакете
    Ответ написан
    Комментировать
  • Как вести разработку вдвоем с Github?

    @Lexans Автор вопроса
    Для всех интересующихся подписчиков выкладываю. Я сделал файл с картинками после просмотра которого любые новички смогут начать использовать Git с удаленным репозиторием на GitHub
    Работа через GitHub вдвоем без консоли и специальн...
    Ответ написан
    5 комментариев
  • Как научиться писать масштабируемый и понятный для другого человека код на си-подобных языках?

    @Lexans
    1. Перед тем как писать код нужно разработать архитектуру приложения.
    Продумать варианты использования и оформить в виде диаграммы вариантов использования UML
    И самое главное сделать uml диаграмму классов программы. В которой указать компоненты классов и связи.
    2. Для проектирования uml диаграммы классов могут быть использованы паттерны
    citforum.ru/SE/project/pattern
    Однако не стоит использовать паттерны ради паттернов: прибегай к ним, когда возникает необходимость: паттерн решает проблему, а не создает
    Ответ написан
    Комментировать
  • Как реализовать программу работы с многочленом, представленным в виде списка (на базе указателей)?

    @Lexans
    Делал такую лабу) Вот код класса многчлена. Так же есть готовые формочки и тп, а также реализация на двузвязном циклическом списке
    192514de5e6e444c8545404ac9d7446b.png
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    
    namespace WindowsFormsApplication1
    {
        public class Polinom
        {
            private Node head;
    
            //элементарное кольцо
            public Polinom()
            {
                head = new Node();
                head.Next = head;
                head.Prev = head;
            }
    
            //инициализируем строкой
            public Polinom(string PolynomString)
            {
                head = new Node();
                head.Next = head;
                head.Prev = head;
                Parse(PolynomString);
            }
    
            //создание мночлена из строки
            public void Parse(string PolynomString)
            {
                head.Next = head;
                head.Prev = head;
    
                Regex polynomRegExp = new Regex("^[+-]?\\d*(?:x(?:\\^\\d+)?)?(?:[+-]\\d*(?:x(?:\\^\\d+)?)?)*$");
                Regex termRegExp = new Regex("[+-]?\\d*(?:x(?:\\^\\d+)?)?");
    
                if (polynomRegExp.IsMatch(PolynomString))
                {
                    MatchCollection terms = termRegExp.Matches(PolynomString);
                    foreach (Match term in terms)
                        Insert(term.ToString());
                }
                else
                    throw new FormatException();
            }
    
            //вставка члена
            public void Insert(int degree, int coef)
            {
                if (coef != 0)
                {
                    Node term = head.Next;
                    while ((term != head) && (term.Degree < degree))
                        term = term.Next; //ищем место вставки
    
                    if (degree != term.Degree || term == head) //вставка слева от найденного
                    {
                        Node newTerm = new Node(degree, coef);
                        newTerm.Next = term;
                        newTerm.Prev = term.Prev;
                        term.Prev.Next = newTerm;
                        term.Prev = newTerm;
                    }
                    else //если степень уже существует - складываем коэфициенты
                    {
                        term.Coef += coef;
                        if (term.Coef == 0) //поглощение членов
                            Delete(term.Degree);
                    }
                }
            }
    
            //вставка члена из строки
            public void Insert(string termString)
            {
                int degree, coef;
                Node.Parse(termString, out degree, out coef);
                if (coef != 0)
                    Insert(degree, coef);
            }
    
    
            //удаление члена заданной степени
            public void Delete(int degree)
            {
                Node term = head.Next;
                while ((term != head) && (term.Degree != degree))
                    term = term.Next;
    
                if (term != head)
                {
                    term.Prev.Next = term.Next;
                    term.Next.Prev = term.Prev;
                }
                else
                    throw new IndexOutOfRangeException(); //если не нашли
            }
    
    
            //возвращает строковое представление многочлена
            override public string ToString()
            {
                StringBuilder Expr = new StringBuilder();
                Node term = head.Next;
                while (term != head)
                {
                    if ((Expr.Length != 0) && (Expr[0] != '-'))
                        Expr.Insert(0, '+'); //знак плюса перед членом
                    Expr.Insert(0, term.ToString());
    
                    term = term.Next;
                }
    
                return Expr.ToString();
            }
    
            //сложение
            public Polinom Addition(Polinom polinom)
            {
                Polinom result = new Polinom(polinom.ToString());
    
                Node term = head.Next;
                while (term != head)
                {
                    result.Insert(term.Degree, term.Coef);
                    term = term.Next;
                }
    
                return result;
            }
    
            public static Polinom operator +(Polinom p1, Polinom p2)
            {
                return p1.Addition(p2);
            }
    
        }
    }
    
     //класс члена
        public class Node
        {
            private int stepen; //степень члена
            private int a; //коэффициент члена
            private Node link; // поле связи
    
            //свойства
            public int stepen
            {
                get { return stepen; }
                set { stepen = value; }
            }
    
            public int A
            {
                get { return a; }
                set { a = value; }
            }
    
            public Node Link
            {
                get { return link; }
                set { link = value; }
            }
    
            //конструкторы
            public Node()
            {
            }
    
            public Node(int degree, int coef)
            {
                stepen = degree;
                a = coef;
                Link = null;
            }
    
            public Node(int stepen, int a, Node link)
            {
                Stepen = stepen;
                A = a;
                Link = link;
            }
    
            //строковое представление члена
            public override string ToString()
            {
                StringBuilder Expr = new StringBuilder();
    
                if (stepen == 0)
                    Expr.Insert(0, a);
                else if (stepen == 1)
                    Expr.Insert(0, String.Format("{0}x", a));
                else
                    Expr.Insert(0, String.Format("{0}x^{1}", a, stepen));
    
                return Expr.ToString();
            }
    
            //парсит строку члена в параметры stepen и a
            public static void Parse(string termString, out int degree, out int coef)
            {
                if (termString != "")
                {
                    Regex termRegExp = new Regex("^([+-]?\\d*)(?:(x)(?:\\^(\\d+))?)?$");
    
                    if (termRegExp.IsMatch(termString))
                    {
                        Match match = termRegExp.Match(termString);
                        string coefMatch = match.Groups[1].ToString();
                        string xMatch = match.Groups[2].ToString();
                        string degreeMatch = match.Groups[3].ToString();
    
                        if (coefMatch == "+" || coefMatch == "")
                            coef = 1;
                        else if (coefMatch == "-")
                            coef = -1;
                        else
                            coef = Int32.Parse(coefMatch);
    
    
                        if (degreeMatch != "")
                            degree = Int32.Parse(degreeMatch);
                        else if (xMatch == "x")
                            degree = 1;
                        else
                            degree = 0;
                    }
                    else
                        throw new FormatException();
                }
                else
                {
                    coef = 0;
                    degree = 0;
                }
            }
        }
    Ответ написан
    2 комментария
  • Как и где произвести анализ в том что нужно ли создавать отдельный сервис (Клон Инстарграма)?

    @Lexans
    Целесообразность сайта определяется наличием аудитории. Много ли существует (будет существовать) людей (астрономов) владеющих телескопом и твоим устройством. Далее нужно решить главную проблему раскрутки соцсететей: почему пользователи должны идти на твой сайт, если там нет его друзей: для этого нужно сформированное сообщество, дополнительные функции от сайта (например звездное небо с отмеченными фото). Если потенциальных посетителей все же далеко не тысячи, нужно оценить возможности монетизации такой аудитории.
    Ответ написан
    1 комментарий
  • Есть ли аналог "шарпного" readonly в Java?

    @Lexans
    Модийикатор final аналог readonly.
    константы в java обычно обьявляются как
    Public static final ИМЯ = значение;
    Ответ написан
    1 комментарий
  • Как отлично запоминать прочитанный материал?

    @Lexans
    Чтобы запомнить термин нужно сформулировать свое понимание этого термина и записать (именно своё понимание - т.е. нужно перевести термин из мыслеформы (которая у каждого своя уникальная) в текст)

    чтобы запомнить формулу нужно опять таки осмыслить ее, выделить в ней основные части, некоторые буквы(переменные) в ней заменить на свои к которым привык или которые лучше запоминаются и являются сокращением английских слов. Очень важно вообще чтоб все переменные в формуле были не буквами с потолка а сокращениями реальных английских слов отражающих из смысл: F - force, v - velocity и тд.
    Осмысление формулы означает как миниммум выделение видов зависимостей.
    К примеру A=(b^2/(c+e))*log(d)*exp(a)
    тут видим А ~ (читать "пропроциональная") b^2, обратно пропорциональна c и е, логарифмически зависит от d, экпоненцильно от a. На самом деле видов зависимости немного и изучив эти виды зависимостей и их смысл, результаты подобного анализа будут тебе нести полезную информацию и в большинстве случаев будут очевидны. Кроме облегчения запоминания это позволит тебе решать задачи осмысленно а не тупо подставлять в формулы, а так же научит составлять математические модели (формулы) процессов реального мира, в чем и есть главное предназначение математики
    Ответ написан
    1 комментарий
  • Как залогиниться в инстаграм со своей формы?

    @Lexans
    Какие запросы отправляются можно посмотреть в инструменте разработчика хрома по f12
    4ce551c4baf74603aead4003986c24fe.png
    видим что запрос отправляется на https://instagram.com/accounts/login/ajax/ однако ответ получаем в виде как я поняимаю json, а не той страничке куда нужно перекинуть пользователя. Нужно сделать форму которая сначала посылает запрос (именно от ip пользователя а не сервера - т.е. заставить сам браузер в фоне отправить пост запрос на авторизацию, получить куки а потом его отослать на главную инстаграмма). Могу сделать такую форму к четвергу-пятнице
    Ответ написан
    Комментировать
  • Как включить новый Bookmark Manager в Chrome?

    @Lexans
    У меня стоит это расширение, но в менеджере расширений не отображается. Пробывал скопировать папку с расширением и вручную установить на другой машине. Не получилось
    d44e13b9d79942488c3b396a02b589ac.png
    Ответ написан
  • Как вы управляете своей базой знаний? Какие инструменты для этого используете?

    @Lexans
    Не надеюсь что среднестатистический участник тостера подскажет вам что-то, кроме мейнстрима, о котором вы наверняка знаете, но все же попытаюсь

    Archivarius 3000: полнотекстовый локальный поиск по свалка книг

    OneNote: упорядочивание в иерархию всего и вся, удобнейший поиск, теги (например "todo", "вопрос", "важно" - всё настраивается), формулы, синхронизация с мобильным. Использую для ведения базы знаний несколько лет, evernote не конкурент. Не подходит для свалки материалов, но идеален для конспектов и организации рабочей информации.

    Anki: колоды карт вопрос -ответ вместе с умным алгоритмом запоминания методом периодического повторения
    Ответ написан
    2 комментария
  • Знаете хорошую книгу по информатике?

    @Lexans
    в своё время эффективно подготовился к егэ по информатике по материалам Полякова
    kpolyakov.narod.ru/school/ege.htm
    не знаю какой экзамен, но от пустого чтения книги явно будет мало толку. Чтобы научиться нужно решать конкретные проблемы (читай задачи)
    Ответ написан
    Комментировать
  • Как управлять android-смарфоном с неработающим тач-экраном?

    @Lexans
    здесь есть опыт работы с android смартфоном с разбитым экраном
    habrahabr.ru/post/220869
    Ответ написан
    Комментировать
  • Математика и программирование

    @Lexans
    в математике ничего страшного нет. Математика - это сборник моделей, которые используется в прикладных целях. Смотри на них как на инструменты. Не надо верить словам преподавателей/учителей, что мол если ты даже интеграл не можешь взять/"доказать теорему", то ты не математик. Это не так, тут главное умение применять нужные инструменты в нужном месте, а для этого знать что они из себя представляют. Так же как в программировании: понимать что на входе, на выходе, и понятия о принципах внутри происходящего.
    Если у тебя действительно программисткий склад ума, то очень поможет преодолеть страх поиграться с математическим пакетам. Несмотря на всю мощь mathemetica, всё же посоветую mathcad. Не надо бездумно копировать какие-то куски и еще больше нагнетать страх: "какой умный человек написал всю эту непонятицу из буков, мне никогда не стать таким математиком как он". Разберись в основах, а потом экперементируй, основываясь на приципах (решение задач, подбирая модели, основываясь на документации), а не на аналогиях (тренировка на примерах), вспомни детское любопытство "интересно, а что будет если сделать так..."

    @Gandi_indi вот здесь отличная речь о том, какая реальная математика, а какая в универах/школах
    https://www.youtube.com/watch?v=60OVlfAUPJg
    кратко суть видео можно передать в трех слайдах презентации
    www.dropmocks.com/mFo-yQ
    Ответ написан
    2 комментария
  • Какой выбрать планировщик персональных задач (личный ToDo-менеджер)?

    @Lexans
    Попробуй MLO (MyLifeOrganized)
    1-2 Можно настраивать виды-вкладки, где производится гибко настраиваемый срез из общей схемы задач. Есть проекты и цели (год, месяц, неделя)
    3. Есть система контекстов (по времени, месту) и флагов
    4-5 Есть умная сортировка с учетом важности/срочности, фокус. Интерфейс относительно минималистичный, лишнее легко убирается

    1. синхронизация с мобильным клиентом по wifi или собственным облаком ($1/мес)
    2. Есть быстрый ввод задач с парсингом введенного текста
    3. легкий, быстрый клиент для ПК и мобильных, но платный (есть акции для русских и студентов)
    4. очень гибкий, хороший мануал. Древовидная структура задач. Возможность экспорта в mindmanager, обещают добавить календарный вид
    5. Заметки к задачам имеются, но без картинок.
    Ответ написан
    2 комментария