• Как обеспечить отказоустойчивость сервиса независимо от провайдера?

    @andreysam
    В DNS прописать одновременно несколько айпишников - самый дешёвый вариант. Есть минус в виде неоднородности поведения в http клиентах, но для браузеров работает отлично. В хроме, например, оно берёт рандом адрес, если он даёт ошибку (в худшем случае минутный тайм-аут), то переключается и пробует следующий из DNS. У меня так настроено уже чуть больше года. Когда один из адресов падает, клиенты больше думают, что на их стороне интернет провис, а не с нами проблема))
    Создание as, аренда адресов и всё с этим связанное - это вариант вообще отличный, но требует гораздо больших затрат.
    Ответ написан
    Комментировать
  • Как развиваться начинающему web-разработчику?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я в начале 2000-х писал приложение для учета некоммунальных услуг ЖКХ для местного МУПа. Начинался этот проект как тестовое задание для приема на работу.

    Писать можно было на чем угодно, но на тот момент для меня лучшим инструментом казался Clipper 5.x, которым я, как мне тогда казалось, более-менее владел.

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

    Забегая вперед скажу, что автоматизация, в конце концов, удалась, из режима работы 3 человека по 8 часов в день 6 дней в неделю, за 6 месяцев после начала внедрения, вышли в режим 1 человек 2 часа в день 5 дней в неделю... Т.е. 3*8*6*4 = 576 человеко-часов превратилось в 2*5*4 = 40 ч/ч, КПД был увеличен в 14.4 раза.

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

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

    Далее я реализовывал эти пути как разумел и предоставлял тётушкам.

    И о чудо, обычно на этом этапе прорезался дар речи (тётушки, как все нормальные люди, обожают критиковать то, что по их мнению "не так"), и на меня начинал сыпаться поток весьма конкретных и ёмких ЦУ (ценных указаний), которые я подробно документировал и впоследствии претворял в жизнь.

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

    Первые месяцы они вели двойной учет, по старинке в своей огромной бухгалтерской книге, и в программе, и программу проверяли по книге. Через 2-3 месяца они убедились, что в программе "цифры" точнее, ошибки отлавливаются быстрее, меньшими усилиями, и стали уже свою книгу проверять по программе. Через 5-6 месяцев я написал им модуль расчета и распечатки месячного отчета, и они перестали вести свою книгу, просто печатали ее каждый месяц на огромном матричном принтере.

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

    Условно можно разделить основной функционал приложения на 2 фазы - ввод/редактирование/просмотр данных и построение отчетов/выборок. С отчетами и выборками тёмный лес, т.к. требования меняются непредсказуемым образом любое количество раз в году (по началу), а вот с вводом и редактированием данных в целом ситуация стабильная, тем более за предыдущие 3 версии я достаточно хорошо исследовал этот процесс.

    Ввод/редактирование данных осуществляется посредством форм, которые, в общем случае, повторяют структуру таблицы БД, за исключением случаев, когда присоединяются поля из справочников.

    Я вообще по натуре человек ленивый, и вместо того чтобы 100 раз метнуться и что-то по мелочи исправить, я предпочитаю долго запрягать, а потом быстро и беззаботно ехать.

    Первейшая проблема программ на Clipper 5.x это банальное отсутствие таблиц БД, либо слетевшие индексы. Это первое, чем я озаботился. программа при запуске проверяет наличие или отсутствие таблиц и индексов, и чего не хватает - достраивает на лету. Таким образом можно потерять данные, но программа, все равно, работать будет. Чтобы это стало возможным, потребовалось в программе прописать структуры таблиц БД и индексов.

    Вторым этапом, дико устав копипастить на 95% совпадающий код для построения форм, а, потом, когда надо что-то поменять, добавить или исправить, шариться по тоннам на 95% идентичного кода в сотне мест, я решил прибиться к стану метапрограммирования.

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

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

    Причем генератор грамотно отрабатывал множественную вложенность, и каждый вызываемый справочник имел полный функционал CRU (Create, Read, Update), включая фильтрацию по столбцам и сортировку.

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

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

    Для реализации этого функционала пришлось пропатчить стандартный грид TBrowse (он применяется для просмотра таблиц).

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

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

    P.S.: когда я мигрировал в веб, через некоторое время я снова вынужден был пройти аналогичный путь, в результате которого родился простенький AJAX-фреймворк на стеке PHP+Smarty+DBSimple+jQuery. Сегодня я всеми силами стараюсь от него уйти, хотя для своих задач он достаточно хорош. Был опыт, когда на шареном хостинге за 5 баксов проект на этом фреймворке со скрипом но держал 30-40 тысяч уников в сутки (после ряда оптимизаций) и достаточно хорошо был защищен от топорного взлома через SQL-инъекции благодаря DBSimple...
    Ответ написан
    1 комментарий
  • Какую научно-популярную книгу лучше выбрать для программиста?

    ptitca_zu
    @ptitca_zu
    Programmer. Reader. Introvert
    Можно другие книги Перельмана. Его сравнительно недавно переиздавали в отличнейшем издательстве.
    Из научпопа можно покопаться в сериях, которые фонд Династия издавал.
    Вот еще две замечательные книги по физике - раз, два Маст рид, однозначно.

    Насчет фантастики - тут еще больше нарекомендовать можно :) Поэтому, кроме классики (Лем, Азимов, Хайнлайн, Саймак, Желязны, Шекли и иже с ними) могу порекомендовать вот такую серию. Составитель - Гарднер Дозуа, очень известный товарищ в НФ мире. У нас несколько книг Эксмо, по-моему перевело. У меня одна есть - издана очень хорошо, вполне себе подарочное издание. Есть еще всякие серии "Весь <имя автора>" тоже очень прилично выглядят.
    Вот этот список еще посмотрите.
    Пожалуй все, а то я долго так могу.
    Ответ написан
    5 комментариев
  • Как называть точную цену заказчику при большом объёме работ?

    AntonKravchenko
    @AntonKravchenko
    Считаете свои часы +/-, домножаете на обычный "коэффициент ошибки", и называет точную цену. Коэффициент ошибки берите хотя бы по 5 выполненным проектам, это отношение начальной оценки своих часов и фактических трудозатрат. Для ИТ-проектов обычно 1.25 - 2.0 этот коэффициент.
    Ответ написан
    Комментировать
  • Как людям удается столько зарабатывать на фрилансе?

    xPomaHx
    @xPomaHx
    1vs9
    Основная стратегия это чтобы у вас было предложений больше чем вы можете сделать, и когда вам придется выбирать вы уже будете очень уверено себя вести и не боятся ставить цену выше.
    Чтобы не 2-3 дня искать заказ, нужно просто это делать все параллельно, например делаете чей нибудь заказ освободитесь только в пт. Так и отвечаете всем на бирже, что готовы взяться за проект но начнете только в пт, даже такая фраза делает вас серьезнее в глазах заказчика.
    Ответ написан
    Комментировать
  • Аналог Хэдхантера (hh.ru) в США и Канаде (или глобальный)?

    Antonoff
    @Antonoff
    Разработчик
    Я живу в Англии и пользуюсь indeed.com / indeed.co.uk, часто проскакивают интернациональные вакансии, но я выбираю в округе 15 миль пробуйте его.

    Следующее это LinkedIn, там куча рекрутеров, которые пристроят вас куда угодно, лишь бы вы только по своему профессиональному уровню проходили.

    Ну и для конечно же Angel.co - стартапы без работы, не оставят.
    Ответ написан
    Комментировать
  • Аналог Хэдхантера (hh.ru) в США и Канаде (или глобальный)?

    opium
    @opium
    Просто люблю качественно работать
    старый добрый linkedin
    Ответ написан
    Комментировать
  • Как вернуть мотивацию к обучению?

    При повторной потере мотивации алгоритм следующий:
    1) Идем высыпаемся. По-нормальному так, без будильников. Чтоб глаза вообще больше не закрывались.
    2) Если мотивация не вернулась (возвращается в 70% случаев) - берем велик (хотя можно и пешком) - и на улицу. Если есть приличный парк в городе - находим пару нестандартных физ. упражнений (можно боевых), пытаемся выполнить. Работа с телом и физические нагрузки - это совершенно другая часть вашего сознания, про нее нужно не забывать.
    3) Если мотивация не вернулась (уже где-то 85% случаев) - берем случайную книгу (не техническую), в идеале - из жанра который вам нравится. Читаем. Спокойно, страницы не считаем.
    4) Если не вернулась, повторить с п. 1 до пяти раз, не думая о времени и выполняя только самые важные дела (срочные задачи по учебе, работа, если есть), можно даже попросить родных/знакомых помочь по дому и бытовым делам, чтобы себя разгрузить.
    5) Если не помогло после 5 раз, задаем новый вопрос на тостере, подробно описываем что делали).

    Хотя бы один из п. 1-3 выполняем для профилактики каждый выходной.
    P.S. в принципе плохо сравнивать себя с кем-то - для "сравнения" на свете есть всякие соревнования и состязания, где есть правила и контекст. В жизни правил нет, один учится в MIT, другой учится в колледже в России - какие могут быть сравнения? Вы думаете тут большинство людей за один год все узнало и всего добилось? Вы глубоко заблуждаетесь) PHP-шники-выскочки не в счет, у них искаженное представление о реальности.
    Ответ написан
    11 комментариев
  • Чем почистить дублированные контакты?

    @lopatoid
    Можно вручную:
    Заходим на https://contacts.google.com/, ставим галочки напротив разных карточек одного человека, и нажимаем кнопку "Merge"
    Ответ написан
    Комментировать
  • Почему скрипт с sudo работает отлично, но не работает от рута? Как это возможно?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    sudo - выполнить команду от имени другого пользователя
    но при этом переменные окружения рута накладываются на текущие.
    Если же залогиниться под рутом, возможно у вас не хватает чего-то в PATH или еще в какой-то нужной переменной.
    Ответ написан
    2 комментария
  • Как устроиться работать помощником системного администратора?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    Походите по ближайшим провайдерам, устройтесь эникейщиком на полгодика в любую удобную для вас контору, где можно будет подучиться на практике.
    Ответ написан
    1 комментарий
  • Sharepoint 2010. Создание списка из XML

    @jamesmalvi
    Один из лучших инструментов для XML является codebeautify.org/xmlviewer XML форматирования, валидатор XML, XML уменьшать, XML для JSON, XML, чтобы CSV
    Ответ написан
    Комментировать
  • Какой выбрать дистрибутив линукса "чтоб ездить", а не курить форумы и "допиливать"?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    > экран по win-L лочится через раз, кликаешь на другое окно, ура - залочилось
    Потому что раскладка в другом окне английская. А по русской не лочится, ога. Второй хоткей навесь.

    > намертво и неожиданно виснет, иногда позволяя в течение нескольких секунд поводить липнущим курсором мыши, замена видюшных драйверов не помогла
    Дай ка угадаю - intel hd sandy bridge?

    > прописываем команду в автозапуск, но почему-то она не запускается
    Жму на газ а машина не едет. (то ли не завел, то ли заправить забыл, то ли машины нет, то ли жму на тормоз). Где у вас там автостарт-то? Правильный - /etc/rc.local, еси чо. И там $PATH отличается от того, который у вас в .bashrc прописан. Ну это не говоря о том, что можно написать правильный init-скрипт.

    > тачпадный курсор мыши скачет по экрану как ненормальный
    Чувствительность на скорость движения и длительность касания не снизил? Или помыть забыл?

    > поднять VNC- сервер - проблема, а клиент так и не научился просовывать русские буковки через клипбоард и отваливается каждые пять минут
    apt-get install vino remmina
    Дальше гуетыканием всё заводится.
    Впрочем, если vnc сервер нужен независимый от запущенных иксов (винда и макось без иксов аще так не умеют) - то да, придется написать скрипт в 10 строчек, 1 из которых шабанг, а 7 - запуск нужных приложений.

    > Mint не hibernate-ит систему если батарея пуста, при том даже не пищит: проморгал - грузись с нуля
    всё больше и больше убеждаюсь в том, что у вас толи sandy bridge, то ли ivy bridge

    > Дебиан в упор отказывается видеть мой WiFi, остальные дистрибутивы видят
    Вы наверное в курсе, что в Дебиан из коробки не допускаются несвободные программы и фирмварь (драйвера), подключили репы с несвободным фирмварем и поставили нужный?

    > SL минут пять свопится после пробуждения, после firefox приходится прибивать и запускать заново, скайп на него так и не встал, курение форумов не помогло
    яннп

    Но да, в целом вы правы - проблем в пингвинах полно и сравнение с жигулями правильное. Правда, я бы сравнивал с Subaru impreza wrx или мустангами, которые ездит как говно с завода, но если в них покопаться - то потом на других машинах ездить не станешь.
    Что, впрочем, не отменяет того, что все ваши "проблемы" навскидку решаются примерно за одну минуту, кроме аппаратных проблем с неудачной серией бриджей у Intel, для которых они года два как не могут написать нормальные драйвера под acpi/видео.

    На какие-то странные форумы ходите, господа. В IRC мы в своё время такие проблемы сотнями за день щелкали.
    Ну а самым подходящим дистрибутивом для вас должен стать Ubuntu 12.04 без мерзкого Unity, с православным Gnome Classic + compiz режиме.
    Ответ написан
    7 комментариев
  • Что можете посоветовать для новичка в области android-development?

    @NumLK
    Здесь уже не один вопрос на эту тему был, можно и поискать было, но так уж и быть, напишу.

    Самый главный сайт в этом деле
    developer.android.com/index.html без него никак.

    Также есть
    startandroid.ru/ru/uroki/vse-uroki-spiskom и developer.alexanderklimov.ru/android
    можно много интересного найти.

    Недавно наткнулся на это
    https://play.google.com/store/apps/details?id=com....
    Тут есть есть не все, но уроки своевременно добавляются, так что можете попробовать

    Если у вас неплохо с английским, советую искать ответы на все вопросы вот здесь
    stackoverflow.com

    Ну как-то так. Удачи!
    Ответ написан
    Комментировать
  • Литература по созданию требований к ПО

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Европейско-международный стандарт SPICE/ISO-15504, а по-русски - ИСО 15504 ГОСТ Р
    Для корпорейт-зомби есть еще CMM/CMMI-DEV. В этой есть еще и набор практик по каждому уровню - сильно рекомендую!
    Ответ написан
    1 комментарий
  • Вы в браузере набрали адрес сайта, нажали Enter. Расскажите максимально подробно о технических процессах происходящих далее?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Действительно, уважаемый. Это слишком. Вряд ли я затрону все тонкости, но попробую наметить примерный путь:

    0) Пользователь вбивает в адресную строку браузера адрес сайта (нажимая клавиши на клавиатуре, которые замыкают определённую дорожку в матрице, по которой происходит определение нажатой клавиши, что через шину USB в какой-то момент передастся OS, где это поймает HID-драйвер и вызовет определённое прерывание, что OS передаст как событие/или_ещё_как в программу, которая вызовет соотвествующую функцию из API менеджера окон, которая изменит содержимое строки и в результате когда-то будет перерисован UI-элемент, а если нажат был Enter, то начнётся следующее).
    1) Браузер вытащит из input'а строку с запросом и посмотрит, похоже ли это на адрес. Если да, то добавит недостающие уточнения (например, http или file протокол, порт и подобные довольно стандартные вещи). Если нет - то скорее всего создаст запрос в поисковую систему, установленную по умолчанию (я более не буду опускаться до таких бессмысленных деталей, как вызовы API-функций, иначе я буду набирать это сообщение ОЧЕНЬ долго). В любом случае на выходе мы по сути получим URL, который надо загрузить. Протокол file:// мы рассматривать не будем, ftp далеко не везде есть, https:// на не хватит вечности, так что остановимся на http, который по сути есть tcp/ip по умолчанию на 80 порту с определённым форматом общения.
    2) Окей, url есть. Теперь нам нужен адрес, к которому обращаться. Так как http это tcp/ip - нам нужен ip адрес. Здесь нам помогают dns-сервера. Обычно, нормальный провайдер устанавливает у себя кэш-сервера dns, которые не обращаются по стопицот раз за vk.com к ответственному серверу com-зоны. Давайте не будем отвлекаться на то, как происходит там общение, если что - вот (вики тем хороша, что часто содержит внизу релевантные ссылки). Скажу лишь то, что на выходе мы получаем ip адрес(а).
    3) Имея адрес мы можем запросить страницу. Собственно, всё что после первого слэша - это как-бы параметры для http-сервера: какую именно страницу запрашивать, он всё же не телепат. Конечно, можно было бы немного схитрить и отправить читать про tcp/ip, но ведь существует и shared-hosting. Ограничемся лишь его упоминанием. Собственно, по полученному адресу отправляется GET запрос, который и обрабатывает сервер, находящийся по полученному IP-адресу.
    4) Сервер же, получив адрес, начинает распарсивать строку, медленно вытягивая нужные данные из баз-данных и настроек, выполняются сотни скриптов, иногда делается ещё не одна сотня различных запросов на другие сервера (здесь и разного вида метрики и разного вида HADOOP и т.д.). Пройдя сквозь скрипты и темплейторы в самом конце мы получаем html-страницу, готовую к употреблению. Её-то сервер и отправит в ответе (после заголовков, конечно).
    5) Вот и началось самое интересное. Получив html страницу браузер начинает жутко надругаться над CPU, HDD и GPU, попутно сжирая тонны RAM и мусоря в swap. Виной всему нереальные для полного соблюдения стандарты от небезызвестной w3c.org. Для облегчения многие делают костыли, вроде webkit, а некоторые и вовсе забивают на него и пилят свой стандарт с преферансом и картёжницами (впрочем, в последнее время становиться лучше). Здесь снова начинаются сотни вызовов API ОС, windows manager'а и прочих библиотек, вроде boost, qt или libpng. В ходе работы в RAM строится макет, по которому потом строится нечто вроде PDF (тоже сильно векторный), что, потом, обрабатываясь быстрыми шейдерами на GPU, выдаётся на экран. Опять же, многое пропущено, но вряд ли кому-либо, кроме парня в свитере с оленями, действительно интересно, как работает GDI, DirectX или OpenGL.
    6) Ах да, мы же забыли про тысячи js-скриптов, миллионы картинок и анимации с котиками, а также о таких дополнительных плюшках, как flash-player или java-weblets. В кратце, что js, то и flash и java - это виртуалка, со специальной архитектурой. Они, виртуалки, конечно разные (хотя flash и js довольно похожи, ещё бы - ECMAScript один и тот же). JS - самый интегрированный внутрь браузера, он же и самый медленный чисто визуально (ибо последние два имеют доступ к быстрому GPU), хотя самый быстрый в попугаях. Второй постепенно вымирает и представляет из себя, так же как и третий специальную shared-библиотеку, о которой браузер как-нибудь узнал и которой скармливает специальное содержимое помечанное специальным тегом html. Третий уже почти умер и встречается лишь изредка или в каком-нибудь энтерпрайзед со страшным legacy-базой. Ну здесь из сылок разве только гугл. Ибо сколько всего - даже не сообразишь. Да и вообще, эта тема ещё скучнее GDI, DirectX и OpenGL и к свитеру с оленями требуются ещё очки с толстенными стёклами, дающие стопицот к терпению и задроству над матаном. Если в кратце, то в случае JS, всё что было загружено в память и не думает выгружаться и формирует этакое дерево - DOM, над которым с помощью специального API и происходят модификации. При этом, перед тем как исполниться, весь JS-код компилируется, в нативный для VM байт-код. То же самое в общем-то и со вторым и третьим, разве только они не имеют доступа к DOM и организовать его - дело тех ещё костылей. Ах да, забыл ещё про Silverlight (или как оно там пишется), который сдох, не успев родиться. Так же как и Java, жив в серьёзном энтерпрайзе, не поскупившийся не "дешёвую" поддержку MS.
    7) Ну... А дальше пользователь нажимает на нужную гиперссылку и всё по новой.

    За кадром остались такие костыли, как ajax, websockets и прочая асинхронная ересь. С ней всё в миллионы раз сложнее. И к очкам со свитером потребуется ещё и... а чёрт их знает, что они там ещё носят. Ну да ладно, я искренне завидую тем парням (и девушкам), которые разбираются во всей этой машине. Целиком. Ибо это лишь верхушка айсберга. Разбавленная не лучшей памятью и ужасным гуглом.

    P.S. Не бейте сильно за грамматические и синтаксические ошибки. Спеллчекер приказал долго жить, да и 5 утра как никак.

    UPDATE
    На хабр выложили неплохой перевод дающий некоторое представление, как браузер ругается над памятью и процессором. Хотя и весьма поверхностное,
    Ответ написан
    26 комментариев
  • Почитал про различные компиляторы и остановился на gcc, но не понимаю, как им пользоваться?

    makol
    @makol
    Здесь качаем www.microsoft.com/ru-ru/download/details.aspx?id=40787 IDE Microsoft VS.Express 2013
    Здесь смотрим www.youtube.com/watch?v=vR9AWd8N17s Видео как работать с IDE VS
    Здесь качаем rutracker.org/forum/viewtopic.php?t=3527301 Учебник по C++
    Ответ написан
    Комментировать
  • Не то. Удаляйте. Где тут кнопка "в /tmp"?

    madmages
    @madmages
    Человек прямоходящий
    Держи план (опустив простые вещи типа циклы, переменные, ифы свитчи):

    1. Изучи немного html и css. Не копай глубоко. Очень поможет в реализации идей (формы - твое все).
    2. POST\GET запросы изучи, как сделать тот или иной запрос (рекомендую побаловаться с каким нить API. Я баловался с вконтакте апи, он там простой и за неделю с нуля освоить можно).
    3. Полистать что такое ООП.
    4. Попробовать сделать мини сайт с одной пхп страницы в зависимости от ого куда кликнет пользователь и какие данные из пост или гет запроса получишь. познавательно.
    5. Попробуй реализовать эту страницу по соображениям MVC.
    6. Ту же страницу по соображениям MVC с применением ООП.
    7. Кровь пот и слезы.
    8. Хэппи энд.
    Ответ написан
    Комментировать
  • Помогите найти ошибку в программе C#, массивы

    P_Zeger
    @P_Zeger
    В IDE у каждой строки кода можно нажать F9 и пошагово посмотреть где именно закралась ошибка.Плюс Error List при нажатии на ошибку направит на нужную строку.

    В строке if (min_j != 0) ; нужно убрать точку с запятой, если не ошибаюсь.
    Ответ написан
    Комментировать