Задать вопрос
  • Как сделан этот сайт http://flooringstudio.esignserver2.com?

    AMar4enko
    @AMar4enko
    Бэкенд на джаве, о чем говорит jsessionid в параметрах.
    Смена матерала пола и стен - с сервера приходит новая картинка с примененными материалами.
    Сделать это можно с помощью заранее подготовленного PNG с прозрачными областями и подкладывать под него заранее подготовленные куски пола и стен.
    Типа
    - положили на картинку готовое изображение пола
    - положили на картинку готовое изображение стены
    - положили сверху обстановку с маской пола и стены.

    С помощью частичной прозрачности делаются тени от предметов.
    Ответ написан
    2 комментария
  • Обязателен ли C/C++ при изучении java?

    @koronabora
    Человек
    На данном этапе - нет. Когда столкнетесь с задачей, решение которой на Java будет работать плохо - тогда стоит изучить плюсы. У Java хороший компилятор, а в сети полно руководств по ускорению кода.
    Ответ написан
    Комментировать
  • Как защитить код от воровства в крупной компании?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Полную (или почти) защиту вы можете реализовать по принципу банковских "теневых" серверов.
    Похожую систему безопасности описал Сергей

    Когда я работал в Х банке, мы спускались на лифте в офис разработки, там проходишь рамки, отдаешь мобильники и др. электронику. Выдают офисную рацию для связи.
    Каждый комп находится в таком положении, что при желании др. человек не увидит чем вы занимаетесь.
    В системниках есть только один usb (и то не везде), который имеет физическую защиту. Служит для банковских ключей. Периферия подключена ps/2.
    Вся локальная сеть не имеет доступа во внешний мир.
    Код выкладывается на боевую систему через сервер-шлюз. Т.е. данные из рабочей сети выкладываются на шлюз, локальная сеть отрубается а далее уже на продакшен.
    Шлюз защищен вероятно хорошо, но этого я уже не знаю.

    Так же на столе стоит камера- блок. Когда вы отходите от нее (от компа), система блокируется и просит ввести логин/пароль.

    Вот такая система безопасности была на старой работе. Может там и еще что то было, но я этого не знаю.
    Ответ написан
    6 комментариев
  • Как использовать динамические объекты в программе C#?

    kochura_official
    @kochura_official Автор вопроса
    Учусь писать самостоятельно программы.
    Я сломал весь мозг и нашел решение

    Кому интересно смотрите код
    using System;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Windows.Forms;
    using System.Xml;
    using System.Xml.Linq;
    
    namespace newprogram
    {
        public partial class Form1 : Form
        {
            // Надо было дописать вот этот код
            private Panel panel_profile;
            private TextBox textbox_username;
            private TextBox textbox_userpass;
            private Label label_namepage;
            private Label label_username;
            private Label label_userpass;
            private Button button_login;
            private Button button_register;
            private Button button_close;
    
            public Form1()
            {
                InitializeComponent();
                profile();
            }
    
            private void profile()
            {
                panel_profile = new Panel();
                textbox_username = new TextBox();
                textbox_userpass = new TextBox();
                label_namepage = new Label();
                label_username = new Label();
                label_userpass = new Label();
                button_login = new Button();
                button_register = new Button();
                button_close = new Button();
                //
                // Параметы - panel_profile
                //
                panel_profile.Size = new Size(400, 400);
                panel_profile.Location = new Point(200, 80);
                panel_profile.BackColor = Color.FromArgb(238, 238, 238);
                panel_profile.TabIndex = 2;
                panel_profile.Visible = true;
                panel_profile.Name = "panel_profile";
                //
                // Параметы - label_namepage
                //
                label_namepage.Size = new Size(400, 40);
                label_namepage.Location = new Point(200, 20);
                label_namepage.TextAlign = ContentAlignment.MiddleCenter;
                label_namepage.ForeColor = Color.Gold;
                label_namepage.Font = new Font("Verdana", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204);
                label_namepage.Text = "ФОРМА АВТОРИЗАЦИИ";
                label_namepage.Name = "label_namepage";
                //
                // Параметы - label_username
                //
                label_username.Location = new Point(50, 40);
                label_username.Size = new Size(300, 30);
                label_username.TextAlign = ContentAlignment.MiddleLeft;
                label_username.Text = "ЛОГИН";
                label_username.Name = "label_username";
                //
                // Параметы - label_userpass
                //
                label_userpass.Location = new Point(50, 140);
                label_userpass.Size = new Size(300, 30);
                label_userpass.TextAlign = ContentAlignment.MiddleLeft;
                label_userpass.Text = "ПАРОЛЬ";
                label_userpass.Name = "label_userpass";
                //
                // Параметы - textbox_userpass
                //
                textbox_username.Size = new Size(300, 30);
                textbox_username.Location = new Point(50, 70);
                textbox_username.Multiline = true;
                textbox_username.MaxLength = 20;
                textbox_username.Name = "textbox_username";
                textbox_username.Font = new Font("Verdana", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204);
                //
                // Параметы - textbox_userpass
                //
                textbox_userpass.Size = new Size(300, 30);
                textbox_userpass.Location = new Point(50, 170);
                textbox_userpass.Multiline = true;
                textbox_userpass.MaxLength = 20;
                textbox_userpass.Name = "textbox_userpass";
                //
                // Параметы - button_login
                //
                button_login.Size = new Size(140, 30);
                button_login.Location = new Point(210, 240);
                button_login.Text = "ВОЙТИ";
                button_login.Name = "button_login";
                button_login.FlatAppearance.BorderSize = 0;
                button_login.FlatAppearance.MouseOverBackColor = Color.FromArgb(50, 50, 50);
                button_login.FlatStyle = FlatStyle.Flat;
                button_login.BackColor = Color.FromArgb(40, 40, 40);
                button_login.Font = new Font("Verdana", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204);
                button_login.ForeColor = Color.Gainsboro;
                //
                // Параметы - button_login
                //
                button_register.Size = new Size(140, 30);
                button_register.Location = new Point(50, 240);
                button_register.Text = "РЕГИСТРАЦИЯ";
                button_register.Name = "button_register";
                button_register.FlatAppearance.BorderSize = 0;
                button_register.FlatAppearance.MouseOverBackColor = Color.FromArgb(50, 50, 50);
                button_register.FlatStyle = FlatStyle.Flat;
                button_register.BackColor = Color.FromArgb(40, 40, 40);
                button_register.Font = new Font("Verdana", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204);
                button_register.ForeColor = Color.Gainsboro;
                //
                // Параметы - button_close
                //
                button_close.Size = new Size(30, 30);
                button_close.Location = new Point(370, 0);
                button_close.Text = "X";
                button_close.Name = "button_close";
                button_close.FlatAppearance.BorderSize = 0;
                button_close.FlatStyle = FlatStyle.Flat;
                button_close.Font = new Font("Verdana", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204);
                button_close.ForeColor = Color.FromArgb(40, 40, 40);
                button_close.Click += new EventHandler(button_close_Click);
                //
                // Контроль элементов
                //
                Controls.Add(label_namepage);
                Controls.Add(panel_profile);
                panel_profile.Controls.Add(label_username);
                panel_profile.Controls.Add(label_userpass);
                panel_profile.Controls.Add(textbox_username);
                panel_profile.Controls.Add(textbox_userpass);
                panel_profile.Controls.Add(button_login);
                panel_profile.Controls.Add(button_register);
                panel_profile.Controls.Add(button_close);
            }
            private void button_profile_Click(object sender, EventArgs e)
            {
                profile();
            }
            private void button_close_Click(object sender, EventArgs e)
            {
                panel_profile.Visible = false;
            }
        }
    }
    Ответ написан
    3 комментария
  • Как быстро сайт будет доступен по доменному имени?

    @miksir
    IT
    Меняли NS у регистратора домена? Несколько часов (в срднем от часа до 8 часов, там фиксированное расписание). По информации с ру-центра:
    Изменения вступят в силу после обновления информации в зоне верхнего уровня. Зона RU обновляется 4 раза в сутки: в 02:00, 10:00, 14:00, 19:00 (по московскому времени). Зоны SU и РФ обновляются каждый нечетный час. Обновления зон занимают от нескольких минут до получаса.

    И после того, как NS-ы появятся, еще нужно время на протухание кеша DNS серверов. Ели у вас свой ресолвер (DNS сервер, который вы используете на своей рабочей машине для ресолва доменов), то просто сбросить на нем кеш.
    Ответ написан
    1 комментарий
  • C# - метод принимает в виде параметра другой метод, как понимать?

    Rou1997
    @Rou1997
    Setup - это обычный метод.
    На Returns не обращайте внимания, он тоже обычный метод, он сам по себе, это просто Fluid, делегаты и лямбды здесь ни при чем.
    А вот то, что записано в виде лямбда-выражения - это делегат.
    Я тут написал пример с четырьмя подобными синтаксисами, отличающимися внешне, но по сути равнозначными, если вы его воспроизведете (создадите приложение WinForms, форму и кнопку с обработчиком) то поймете, что это и примерно зачем оно может применяться:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
    
            public delegate void EventHandler2(
                int i
            );
    
            public Form1()
            {
                InitializeComponent();
            }
    
            void setEventHandler(EventHandler2 eh)
            {
                eh.Invoke(123);
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //Example 1
                setEventHandler(x => MessageBox.Show(x.ToString()));
    
                //Example 2 (equalent)
                setEventHandler((x) => { MessageBox.Show(x.ToString()); });
    
                //Example 3 (equalent)
                setEventHandler(delegate(int x) { MessageBox.Show(x.ToString()); });
    
                //Example 4 (equalent)
                setEventHandler(goodbyeDelegatesAndLambdas);
            }
    
            void goodbyeDelegatesAndLambdas(int x)
            {
                MessageBox.Show(x.ToString());
            }
        }
    }
    Ответ написан
    Комментировать
  • Насколько этично ходить на собеседования, если нет цели найти работу?

    Rou1997
    @Rou1997
    человек впустую тратит время (что суть деньги) компании, которая реально ищет себе сотрудника

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

    занесут в некий blacklist неблагонадежных соискателей

    Обычно, если сторона не получает деньги от другой стороны, то и ничем не обязуется, это исходит еще от закона "О защите прав потребителей" и т.п.
    Конечно, кто-то нарушает этот принцип, для этого не стоит раньше времени рассекречивать свои данные, а если уже собираются нарушить, то объяснить им всю ситуацию, можно и прямо сказать - может я и не прав, но я-то считаю так, а значит, если вы напишете плохой отзыв, то я вот возьму и напишу десяток хороших, получится что вы еще хуже сделаете, так как в итоге лжи станет еще больше, и перевес будет даже в мою пользу."
    Ответ написан
    Комментировать
  • Какова судьба MFC и C++?

    @sitev_ru
    sitev.ru - мой блог ...
    Лучше посмотреть индексы языков программирования:

    www.tiobe.com/tiobe-index
    githut.info
    Ответ написан
    Комментировать
  • Как расчитать вес основания торшера?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для расчёта можно взять только одну ось, по второй торшер зеркально-симметричен и устойчив. За 0 примем центр основания.
    1. Основание - радиус Rосн, масса Mосн
    2. Вертикальная труба - расстояние от центра основания Xвт, масса Mвт
    3. Дуга, самая сложная часть, примем за сектор в 90°, радиус Rд, масса Mд
    4. Вынос - длина Lв, масса Mв
    5. Светильник - масса Mсвacbb3f86d8c64ba1ae8c2edd104d77be.png

    Для начала посчитаем расположение всех центров масс.
    Rцмд = Rд*sin(π/4)/(π/4) = 0.9*Rд
    Xцмд = Rд - Rцмд*cos(π/4) - Xвт
    Xцмв = Rд - Xвт + Lв / 2
    Xсв = Rд - Xвт + Lв

    Теперь возьмём формулу центра масс сложного объекта
    Xцм = SUM(Xi * Mi) / SUM(Mi)
    Наложим ограничение Xцм < Rосн
    (-Xвт*Mвт + Xцмд*Mд + Xцмв*Mв + Xсв*Mсв) / (Mосн + Mвт + Mд + Mв + Mсв) < Rосн
    (Mосн + Mвт + Mд + Mв + Mсв) > (-Xвт*Mвт + Xцмд*Mд + Xцмв*Mв + Xсв*Mсв) / Rосн
    Mосн > (-Xвт*Mвт + Xцмд*Mд + Xцмв*Mв + Xсв*Mсв) / Rосн - Mвт - Mд - Mв - Mсв
    Ответ написан
    1 комментарий
  • На чем лучше делать одностраничник?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ну, давайте по-порядку разберём!
    1. Одностраничник - делается под конкретный продукт или услугу.
    2. Шаблон - создаётся также уникальным, исходя направления продукта/услуги и ЦА.
    3. Форма сбора контактных данных на одностраничнике - прошлый век! Никто не будет оставлять данные. Для этого есть форма: "Отправить запрос" и в ней поле, НЕОБЯЗАТЕЛЬНОЕ К ЗАПОЛНЕНИЮ: "Прошу ответить мне на e-mail:".
    4. Цель одностраничника - должна быть явно задана: реклама товара, продажа, выявление интереса к продукту, приоритетная первичная регистрация на сервис в альфа/бета-тесте и т.д. Если, что-то из перечисленного будет идти вместе, - ТОЛКУ НЕ БУДЕТ!
    5. Конверсия - самая интересная тема, а уж тем более, на лендинге. Здесь многое зависит от того, кто создаёт Вам шаблон и корректно ли он располагает визуальные смысловые блоки и элементы пользовательского интерфейса страницы. Т.е., нужно, чтобы это делал именно UX-дизайнер, а не простой дизайнер! Т.к. он учитывает время просмотра страницы до десятых долей секунды, направление взгляда, движение мышки, скорость понимания информации, простоту изложения информации для понимания (пункты списка, схемы, таблицы, анимацию, видео-ролики и прочее).
    6. Удобство управления лендингом и структурой страницы, скорость загрузки: однозначно SPA + AJAX. Вёрстка - делается так: общий дизайн и блоки наполнения В ОТДЕЛЬНЫХ HTML-файлах, затем берём includeHTML и ставим все нужные блоки друг за другом в едином HTML, которые нам понадобятся. Затем, комментируя/переставляя строки в головном HTML-файле мы легко можем менять расположение блоков (секций лендинга).
    7. Все popup-формы, разметки секций и прочее (т.е., доп. разметку для доп.блоков) - грузим через тот же includeHTML из рядом лежащих файлов, например, "vote-form.html" или "feedback-form.html", где будет нужный функционал. Т.е. Вы сможете легко менять эти файлы, чтобы получать нужную (модифицированную/новую) форму.
    8. Основной список секций по лендингу можно получить здесь (Создать сайт с "нуля" -> выбрав в списке типов сайта: лендинг).
    9. SEO и индексация - JSON-LD, META-тэги (включая данные для соц. сетей, fb:* и т.д.), разметка всей вёрстки - строго HTML5!
    Ответ написан
    4 комментария
  • Что лучше выводить 404 или 301, если текущего уже номера страницы не существует?

    @purplesky
    Не соглашусь с mletov dmitry_chekalin .
    На всех проектах открываем пагинацию. Если всё правильно сделать, то дает небольшой но ощутимый прирост трафика. Естественно, не всем проектам подходит. Например, если пагинацию колбасит, и её то 10 страниц, то 100, тогда лучше закрывать.

    В данном случае ставьте 404.
    Ответ написан
    Комментировать
  • Как изменить тип параметра в унаследованном методе C#?

    Nipheris
    @Nipheris Куратор тега C#
    То, что вы просите, невозможно сделать по одной простой причине. Наследование в .NET бывает только "настоящее", т.е. когда устанавливается отношение is-a. Ваш MyTCPStream не может быть Stream-ом, если не реализует метод Read (Byte[], Int32, Int32). Спросите себя - что произойдёт, если я скастю объект MyTCPStream к Stream, и попытаюсь вызвать Read(Byte[]...)?

    Вы конечно можете в теле метода бросить InvalidOperationException, но это однозначно признак неверно выбранной абстракции. Лично я не понимаю, зачем вам мог понадобиться TCPStream, из которого вы читаете не байты, а символы.

    Для реализации процесса чтения более сложных объектов (а символ это более сложная штука, т.к. его представление в потоке зависит от кодировки) в дотнете есть TextReader и его наследники. Было бы хорошо, если б вы описали изначальную задачу - возможно мы посоветуем вам что-то полезное, а не странные хаки.
    Ответ написан
    3 комментария
  • CentOS 7 и Raid B140i от HPE, где проблема?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Вам в инструкции написали
    Use dd to write the appropriate driver (u0 or u1) on a separate USB drive;

    Это не значит скинуть файл с расширением DD на флешку, это значит что файл является образом и его нужно на флешку накатать с помощью "dd"

    dd if=./file.dd of=/dev/sd*

    Даже на офф. сайте вам написали
    dd if=hpdsa-<version>.<OSupdate>.x86_64.dd of=/dev/sdc1)
    Ответ написан
    7 комментариев
  • Подписан ли человек на такую группу и оставлял ли он там фотографии?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    узнать подписан ли человек на такие же группы что и я

    https://vk.com/dev/users.search

    и оставлял ли он там фотографии?

    если посты анонимны - не узнаешь. если нет - через https://vk.com/dev/wall.get парсишь посты на наличие этого юзера
    если по альбомам группы искать - https://vk.com/dev/photos.getAlbums

    Как это можно реализовать на JS?

    https://vk.com/dev/Javascript_SDK
    Ответ написан
    Комментировать
  • Чем делать в этой ситуации?

    sabramovskikh
    @sabramovskikh
    Учиться конечно. Или бухать.
    Ответ написан
    Комментировать
  • Как писать в файл без буфферизации в Delphi?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы не отмечающим решения…
    Сбрасывать буфера процедурой Flush.
    Ответ написан
    Комментировать
  • Как мягко переубедить клиента в том что он не прав?

    sim3x
    @sim3x
    Сайт делается только для него?
    - Если да, то делать, как он хочет
    - Если нет, то понимает ли он как на его сайт будут смотреть его возможные клиенты?
    Например, спросить, как про него подумают, если он прийдет на переговоры в клоунском (нелепом) костюме.
    Если будет настаивать, сделать и попросить его - пусть он спросит у своих клиентов отзывы о сайте.
    Ответ написан
    Комментировать
  • Как мягко переубедить клиента в том что он не прав?

    LenovoId
    @LenovoId
    svg, css,js
    ну как бы - сайт то не ваш.
    а в своём огороде хочу помидоры рощу а хочу кактусы
    Ответ написан
    2 комментария
  • Как узнать алгоритм обработки онлайн-теста?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    какой алгоритм программист написал - так и будет выводить. если не найдешь исходный код нужного теста - никак не узнаешь.
    Ответ написан
    Комментировать
  • Как побороть warnings?

    @Mercury13
    Программист на «си с крестами» и не только
    19/20. Полю int* argkeys::shortName вы присваиваете строковый литерал, то есть const char*.
    26/27. 4-му полю int option::val вы присваиваете argkeys::shortName то есть int*.
    25. Переменная не задействована.
    30. Функция ничего не возвращает.

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

    Что могу предположить? В структуре int* shortName заменил бы на int id или char id, и присвоил бы ему символьный литерал (то есть 'h'). Это автоматически решит и второе предупреждение (как только заменим там shortName на id).
    А 25 и 30 — сначала допишите программу до конца.
    Ответ написан
    Комментировать