Задать вопрос
  • Как устранить коллизии?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Как правило, хэши такого типа используются для сокращения пространства прямого поиска, то есть взяв, скажем, восьмибитный хэш (256 значений) можно уже искать не по всему списку значений, а по одному из 256 подсписков, содержащих только значения с одинаковым хэшем.
    То есть каждая ячейка таблицы HashTable должна содержать вектор значений с одинаковым хэшем. Сначала вычисляется хэш от искомой строки, затем идёт перебор соответствующего вектора и прямое сравнение каждого его элемента с искомой строкой.
    Ответ написан
    Комментировать
  • Как навесить событие на элемент если он выводиться динамически?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Если элемент #listClients у вас является родителем, в который вставляются новые элементы, то нужно делать так:

    $('#listClients').on(
        'click',
        'button',
        function(){
            event.preventDefault();
            console.log('1');
        }
    );


    Это называется делегированием событий - вы вешаете обработчик на #listClients, который со страницы не исчезает и при каждом клике внутри себя он проверяет не был ли клик в действительности на button и если так - выполняет обработчик в нужном контексте.

    Пример.
    Ответ написан
    Комментировать
  • Как понять что hdd работающий?

    Jump
    @Jump
    Системный администратор со стажем.
    Как понять что hdd работающий?
    Подключить к компьютеру и прочитать SMART.
    вот сейчас появилась возможность купить б/у
    Покупать HDD Б/У не самая умная идея, разве что за 3-5% от реальной стоимости.
    мне отправят его по почте
    Даже если он до этого был исправен, то после отправки по почте он с очень большой вероятностью станет неисправным.
    Ответ написан
    Комментировать
  • Хронология познания программирования, или как вы учили C++?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    С++ невозможно выучить, даже не пытайтесь.

    Я уже 12 лет учу.
    1. Начинал с книги "Borland C++ 5.02" для чайников (моя первая книжка по программированию).
    Благодаря ней я написал два класса Foo и Bar. Там еще было описание GUI библиотеки OWL.
    2. Много читал rsdn.ru (ныне полумертвый), borland.xportal.ru, впитывал.
    Практически никогда сам не задавал вопросов, потому что умел пользоваться поиском, да и с английским проблем не было. Отвечал на вопросы других на разных форумах, помогая другим, набирал знания.
    3. Начал изучать разработку GUI приложений в C++ Builder.
    5. Прочитал множество книжек. Уже точно названий не помню, мне понравилась книжка, где давались практические советы и примеры правильного/неправильного использования C++, кажется "Эффективное использование С/C++".
    6. Писал в школе на уроках информатики реализацию всяких линейных списков/деревьев/вычислений интегралов/производных/простых уравнений/минимумы функции, правда, на паскале (нас заставляли)
    7. Научился работать с потоками (thread). Написал кучу небольших проектов для себя, в основном Winapi + WTL.
    Пробовал писать на С++ "игры" на OpenGL/DirectX.
    Писал программы для себя и для других на С++ Builder, Delphi, Visual C++, C#, Java.
    8. Еще в школе начал писать open-source проект на C++ (сейчас там около 70 тыс. строчек, частично кроссплатформенный, познакомился с особенностями разных компиляторов). https://github.com/zenden2k/image-uploader . Написал много других проектов поменьше.
    9. Писал в универе лабы/курсовые/диплом на С++, C#, Java, Fortran, ASM, Bash, VHDL, Wolfram Mathematica, mssql.
    У нас был курс С++ длящийся 2 семестра. Нас заставляли реализовывать самостоятельно стандартный контейнер (кажется std::vector). Еще писали какую-то базу данных на текстовых файлов с gui интерфейсом.
    Изучил дискретку/теорию графов/матлогику/теорию компиляторов и формальных языков. Написал простой компилятор рекурсивного спуска на С++. Написал модель RTOS на C++. Написал какую-то непонятную систему массового обслуживания (СМО) сначала на паскале, потом на C++. Изучил межпоточную синронизацию на примере Winapi/Posix threads/java threads.
    10. Изучил веб-программирование, PHP, Javascript, mysql/postgres. Написал кучу сайтов/веб-приложений.
    Любимым сайтом стал stackoverflow.com
    11. Прочитал книжку "Совершенный код." - та еще водичка.
    Изучил книгу "Thinking in Java" и C# Дж. Рихтер. Хорошее знание других языков не помешает.
    Открыл для себя Google C++ Style Guide. Начал частично следовать ему.

    Но до сих пор я не могу сказать, что знаю C++ достаточно хорошо. Наверно, я просто тупой, никчемный программист.

    Ошибки при компиляции шаблонов, и особенно ошибки линковки могут заставить меня зависнуть на некоторое время. Эти ошибки ну "очень информативные". Но благодаря опыту и интуиции я с ними справляюсь, а вот начинающему будет нелегко.
    Ответ написан
    2 комментария
  • Хронология познания программирования, или как вы учили C++?

    @Coderast
    1) Пытался изучить C++.
    2) Не смог
    3) Забил
    4) Выучил паскаль, понял что такое программирование
    5) Пытался выучить C
    6) Смог
    7) Пытался выучить C++
    8) Не понял ООП, тогда казалось, что C++ - это лишь ООП, хотя он возможен и в Си ( по прежнему так считаю, не вижу преимуществ C++ над Си, хотел бы услышать преимущества, спасибо )
    9) Узнал про ассемблер
    10) Выучил ассемблер
    11) Задолбался писать сложные проекты в RadAsm
    12) Вернулся к C++
    13) Все понял и выучил

    Какие материалы брал, не вспомню, извиняюсь.
    Ответ написан
    8 комментариев
  • Как снять ограничение скорости?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Здравствуйте, я бывший сотрудник компании мобильной связи, так как меня уволили, я хочу чтобы все знали об одной вещи, она действует на всех операторов России. Просто отправьте SMS сообщение с текстом БЕЗЛИМИТНЫЙ ИНТЕРНЕТ на короткий номер 1234
    Ответ написан
    6 комментариев
  • Какой язык учить первым С++ или Java?

    Denormalization
    @Denormalization
    >Ориентир на Android dev
    >С++ или Python

    Не забивать себе голову глупостями, и продолжать учить Java.
    Ответ написан
    Комментировать
  • Как в ubuntu на C++ найти в директории исполняемые файлы?

    HiNeX
    @HiNeX
    Web Developer
    stackoverflow.com/questions/5719694/having-a-path-...

    #include <sys/stat.h>
    
    bool can_exec(const char *file)
    {
        struct stat  st;
    
        if (stat(file, &st) < 0)
            return false;
        if ((st.st_mode & S_IEXEC) != 0)
            return true;
        return false;
    }
    Ответ написан
    Комментировать
  • Кто нибудь пробовал работать во фрилансе после работы?

    andykov
    @andykov
    Shit happens
    Работаю параллельно. Согласен с Денисом, это тяжело, а если нет самоорганизации то вдвойне тяжело. Фрилансу уделяю 4 часа с 7 вечера до 11 и один день из выходных. Стараюсь брать небольшие проекты, чтобы не подводить заказчика со сроками.
    Я к сожалению пока не могу отказаться от фриланса после работы, ибо ситуация вынуждает. Жена относится с пониманием, хоть это радует.
    Ответ написан
    Комментировать
  • С какого языка изучать программирования (с нуля)?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Если вы только начинаете, то забудьте все ООПшные языки. Начните с С, два-три месяца упорных занятий по нему, и у вас будет хорошее представление об устройстве памяти и работе компьютера вообще.
    И уже после того, как потратите плотный год на С, можете переходить на какой угодно другой язык, если вообще захотите.
    Ответ написан
    1 комментарий
  • Почему jetBrains не русифицирует свои продукты?

    GavriKos
    @GavriKos
    Потому что джетБрейнсам это ненужно - программистам удобнее и привычнее на английском. Да и вообще - русифицировать IDE не нужно. Можете ради интереса посмотреть русскую VisualStuido - тот еще кошмар. То кодировка в Output забавная, то "Верхний колонтитул" вместо "Header file".
    Ответ написан
    4 комментария
  • Как заставить терминал понимать кириллицу?

    bobrovskyserg
    @bobrovskyserg
    Вступи на путь хакера - учись читать непонятные символы.
    Ответ написан
    Комментировать
  • Как правильно пользоваться 'ON DUPLICATE KEY UPDATE'?

    mgyk
    @mgyk
    Уберите
    tmdb_id = values(tmdb_id),
    type = values(type)


    из запроса, они и так уже совпали
    Ответ написан
    3 комментария
  • Чем можно проверить компы, на паленый софт?

    service_man
    @service_man
    Работаю над ServiceSpeedUP.com
    Вопрос с какой целью вы хотите это делать? Если хотите навести порядок с лицензиями, то для каждой купленной программы должно быть подтверждение о покупке.
    Ответ написан
    1 комментарий
  • Как решить проблему с ООП?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Да вы, батенька, король контента!

    Эт шутка. Хоть и не смешная для самоделкиных из области геймдева. :)
    Так, а кроме шуток. Не надо вообще так делать. Тип наносимого урона/снаряда/юнита/орудия никогда не должен описываться его собственным классом. Все юниты должны быть одного класса, все пули - тоже, все здания - тоже.
    У тебя должен быть только набор общих классов для сущностей. Конкретные параметры (что откуда вылетает, как дамажит и как это все визуально выглядит) должны лежать в ресурсах.
    Рекомендую почитать: habrahabr.ru/post/255561 Изложенное куда более важно для области любимых самокатов на С++.

    Хотя... Если тебе так надо реализовать на классах, а не на ресурсах, то тебе надо просто организовать фактическую связь между сущностями. Давай предложу один страшный вариант... Дебажить это все чур самому.
    class TowerParent
    {
    public:
    	// Это тип для той штуки, которая будет создавать нам нужную боеголовку.
    	typedef FireParent* (*FireConstructor)( float, float, int, float, float, float );
    	
    	TowerParent(int _col, int _row, float _posX, float _posY, float _attackRange, float _angle);
    
    	//...
    	
    	FireParent* towerFire;
    protected:
    	FireConstructor	fire_constructor; // инстанция конструктора боеголовок.
    	
    	// Вот так мы будем определять тип конструируемой боеголовки.
    	template< class fire_t >
    	inline void DefineFireType(){
    		fire_constructor = TowerParent::template MakeFire<fire_t>;
    	};
    	
    private:
    	// А вот так мы будем конструировать боеголовку.
    	template< class fire_t >
    	static FireParent* MakeFire( float _x, float _y, int _speed, float _angle, float _targetX, float _targetY ){
    		return new fire_t( _x, _y, _speed, _angle, _targetX, _targetY );
    	};
    };
    
    
    SimpleTower( int _col, int _row, float _posX, float _posY, float _attackRange, float _angle ){
    	DefineFireType<Bullet>();
    };
    
    RocketTower(int _col, int _row, float _posX, float _posY, float _attackRange, float _angle){
    	DefineFireType<Rocket>();
    };


    Конструирование делается через:
    towerFire = fire_constructor( .... );

    Еще одна поправка. Не Rocket, а Missile. Потому что ... :)

    UPD:
    Еще один вариант, уже менее страшный - это шаблонизация базового класса:
    template< class fire_t >
    class TowerParent
    {
    public:
    	TowerParent(int _col, int _row, float _posX, float _posY, float _attackRange, float _angle);
    
    	//...
    
    	fire_t* towerFire;
    
    protected:
    	inline fire_t* MkeFire( float _x, float _y, int _speed, float _angle, float _targetX, float _targetY ){
    		return new fire_t( _x, _y, _speed, _angle, _targetX, _targetY );
    	};
    };
    
    class Bullet : public FireParent<Bullet>
    {
    public:
    	Bullet(float _x, float _y, int _speed, float _angle, float _targetX, float _targetY);
    private:
    };
    
    class Rocket : public FireParent<Rocket>
    {
    public:
    	Rocket(float _x, float _y, int _speed, float _angle, float _targetX, float _targetY);
    private:
    };
    Ответ написан
    1 комментарий
  • За счет чего Тостер может составить конкуренцию русскоязычному Stackoverflow?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Воспользуюсь случаем передать привет своей семье написать пару замечаний.

    1. Убрать отметку ответа решением
    а) Не с руки бегать за пользователями, задающим вопросы, с требованием «анугад цени время других». Ни модераторам, ни отвечающим. В конце концов, расчёт на поисковую выдачу и долгую жизнь тем.

    б) Зачастую знания и умения спрашивающего не дают ему возможность оценить верность ответа. Если учесть, что нередко правильные ответы даются с примесью WTF, то неумеренное эго автора вопроса бывает сильно уязвлено, и верный ответ остаётся за бортом. Не менее редко решением выбираются глупые ответы.
    Думаю, FanatPHP может рассказать куда больше:)

    Пример: Как работает свойство display с его разными значениями?
    Хоть кол на голове теши — что проще, то и верно.

    2. Ввести минусование ответов
    Не всем, а как на стеке — только с рейтингом не менее ... (скажем, >20 по тэгу). Чтобы тупые ответы опускались вниз. Может, и скрывать ответы при наборе ... (скажем, -5) отрицательных отметок.

    3. Рейтинг
    Нередко встречаю умных и грамотных людей, не имеющих времени на надрачивание рейтинга. Как вариант, просто недавно зарегистрировавшиеся участники. Нужен механизм оценки «авторитетов» (в хорошем смысле этого слова) для повышения рейтинга.

    4. Оценка комментариев
    Достаточно часто комментарии дополняют ответ, делают его более объёмным, и заслуживают своей оценки. Почему нет возможности оценить такой вклад?

    5. Ввести тэги по вопросам
    Зачастую вопросы называют так, что найти их или очень трудно, или просто невозможно.
    Пример: Как отследить появление новых элементов в DOM?
    В итоге люди тратят время, в то время как ответы уже есть на Тостере Как отловить создание нового IFrame на странице?

    Можно предлагать при публикации вопроса список тэгов и это (возможно) даст возможность найти ответ на вопрос до его опубликования. После публикации тэги могут выбрать остальные.
    Другая польза от тэгов — поиск для повторных вопросов (см. ниже).

    6. Аналогичный вопрос
    Если ответ на подобный вопрос уже есть на Тостере, пользователи могут указать их. Такой блок должен находиться непосредственно рядом с вопросом.

    7. Плюсы для отвечающих
    Почему бы не использовать связь с хабром для раздачи плюшек отвечающим? Например, членство, карму etc.

    8. Библиотека решений
    Иногда кажется, что грамотный и хорошо оформленный ответ просто тонет в куче мусора и нет никакого смысла ни в расписывании хода мыслей, ни в оформлении.
    Пример #1: CSS: Почему происходит смещение изображения при line-height идентичной высоте блока?
    Пример #2: Почему при добавлении тега appendChild'oм, контент не отображается?
    Пример #3: Разница между background: url('...') и background: url(...)?
    И много-много других, к которым я не имею никакого отношения.

    Почему не сделать по тем же тэгам (см. п. «Ввести тэги по вопросам») ссылки на основные решения. Которые можно обсуждать, комментировать, модифицировать без принадлежности к авторам (просто список участников с вкладом в решение).

    9. Технические доработки
    Поиск — нет введённого запроса в поле поиска.
    Ответ — нет горячих клавиш для форматирования.
    Комментарий — нет возможности форматировать текст.
    Комментарий — как быстро получить ссылку (тема + якорь)?
    Текстовое поле для комментария — делаешь такие примеры codepen.io/cleric/pen/oBwqn и не понимаешь, почему его подстройка по высоте поля на Тостере не слишком-то корректно работает.
    Поле с кодом — вроде несложно добавить white-space: pre-wrap; Для элемента pre, чтобы не было горизонтальной прокрутки для непереносимых строк.

    Пы.Сы. Отдельное спасибо Сергею Протько за веру в этот ресурс.
    Ответ написан
    34 комментария
  • Как правильно пользоваться include в PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Проблемы тут две.
    Во-первых, у тебя выключено отображение ошибок.
    Из-за этого ты не видишь ни саму проблему, ни подсказок в виде путей к файлам.

    Во-вторых, и самое главное - ты не понимаешь принципа, по которому строятся относительные пути. А по большому счету - вообще используешь их. Надо всегда использовать абсолютные.
    После прочтения phpfaq.ru/paths у тебя все встанет на свои места.
    Ответ написан
    3 комментария
  • Как в функции получить указатель на поток, который её вызвал?

    @DISaccount
    Вы хотите внутри MyClass иметь указатель std::thread*?
    -Сделайте этот указатель глобальным.
    -Передайте указатель через метод класса MyClass.
    -Сделайте глобальную функцию для доступа к этому указателю.
    -Сделайте глобальный синглтон класс для доступа к этому указателю.
    -Сделайте метод класса, который порождает этот самый поток, являющийся членом класса.
    - etc.
    Ответ написан
    2 комментария
  • Почему в данном случае не инклюдятся файлы?

    Ну вам же чёрным по белому - "нет такого файла".
    В относительных путях, наверное, запутались.
    Ответ написан
    4 комментария