Задать вопрос
  • Почему появляется ошибка invalid conversion from 'char' to 'char*'?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    val - массив строк = массив массивов символов
    a - строка = массив символов
    b - символ
    char b = a[0];
    Ответ написан
    3 комментария
  • Segfault, не могу найти ошибку, что надо исправить(C++)?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    @#$%^#$%^$%^&@#$%^

    Вы сайтом ошиблись, это надо на говнокод постить.

    #define вместо констант - лажа, но допустимая.

    Rainberd углядел, что в самопальной сортировке классическая "ошибка копипаста". Посмотрите внимательно на вложенный цикл, там условие должно быть j<n, а у вас - i < n Это сегфолт номер раз.

    А вот это - причина сегфолта номер два:
    char *str_pr = &str[0u];
    char *quality=&str2[0u]   ;

    В версиях до C++11 нет никаких гарантий, что это дело указывает на массив всех символов строки.
    В любых версиях нет никаких гарантий, что этот адрес будет неизменным в течении жизни строки.

    Кто надоумил вас использовать функционал библиотеки C для работы со строками, да еще и смешивать его с STL?

    Самопальная сортировка - тоже ужас. Этот код проще переписать, чем рефакторить.
    int i;
    for(i=....

    Откройте для себя объявление индекса внутри цикла:
    for(size_t i=0...

    Откройте для себя, что массивы должны индексироваться при помощи size_t, а не int.

    Тут в большинстве своем код на C, с операторами C++ в некоторых местах. Печать структур просится, например, в виде дообъявления оператора << у ofstream.

    Если это студенческая работа, преподавателя, который "подготовил" такого студента нужно лишить конфет и поставить в угол.
    Ответ написан
    8 комментариев
  • Зачем нужны аксессоры для членов класса если эти члены можно делать публичными?

    @bromzh
    Drugs-driven development
    Используются они не совсем для инкапсуляции, ведь аксессоры её как бы нарушают.

    Используют их, чтобы была возможность запихнуть в аксессоры дополнительную логику (например, логгирование, валидация и прочие штуки), не переписывая весь код. Для доступа к полям везде пишешь setField/getField, и при необходимости, логику добавляешь в эти методы. Классы, использующие поля не меняются, а вот поведение может меняться.
    Если же поля константные/статические, то нет особого смысла делать их private, пиши public/protected и не парься.
    Ответ написан
    1 комментарий
  • Что нужно знать, чтобы устроиться c++ программистом?

    KorsaR-ZN
    @KorsaR-ZN
    По мимо языка нужно еще иметь представление о базовых алгоритмах и структурах данных.
    Понимать, как устроена работа с память да и вообще, как проходит исполнение самой программы.

    А что касаемо самого языка, раз есть такие вопросы, значит ты его знаешь не достаточно хорошо, а отсюда и не уверенность в своим силах. Учи ООП С++, что такое виртуальные функции, френдли классы и методы, множественное наследование, перегрузки всякие и т.д.

    Так лучше бери проекты на фрилансе, наберешься опыта, знаний и сразу все твои вопросы отпадут, а работать ты всегда успеешь устроится (может junior'ом, а может к тому времени уже и middle)
    Ответ написан
    5 комментариев
  • Зачем нужны аксессоры для членов класса если эти члены можно делать публичными?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Это подрывает инкапсуляцию, превращая класс в проходной двор. Подробности у Голуба, в "Веревке достаточной длины..."

    Кратко - разработчики класса теряют контроль над его консистентностью.
    Ответ написан
    Комментировать
  • Какую книгу по assembler посоветуете?

    frosty7777777
    @frosty7777777
    Для начала посмотри этот сайт. Там очень коротко и доходчиво изложены основные концепции.

    Затем, если тебя интересует теория и ты готов потратить время на её изучение, то самая лучшая книжка - это
    Юров В.И. - Assembler 2-е издание
    Кстати, к этой книге есть замечательный практикум:
    Юров В.И. - Assembler. Практикум.

    Если ты мечтаешь сразу начать писать программы и предпочитаешь практические навыки, то немедленно приступай к чтению
    Калашников О. А. - Ассемблер — это просто.

    Так же, как программист программисту, настоятельно рекомендую ознакомиться c двумя замечательными книгами:
    Пильщиков В.Н. - Программирование на языке ассембл...
    Марек. Р. - Ассемблер на примерах

    Если затянет и захочется стать гуру ассемблера, то, пожалуй, самые серьезные и глобальные книги, которые я могу тебе посоветовать:
    Ирвин К.Р. - Язык ассемблера для процессоров Intel
    Абель П. - Язык Ассемблера для IMP PC

    Дорогу осилит идущий. Удачи!
    Ответ написан
    2 комментария
  • Какой язык программирования наиболее востребованнный сегодня?

    kumaxim
    @kumaxim
    Web-программист
    Востребованы прямые руки, растущие из плеч, и светлая голова.
    На чем они уже пишут особого значения не имеет.
    Ответ написан
    Комментировать
  • Какой язык программирования наиболее востребованнный сегодня?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    У каждого языка своя востребованность. Надо уточнять ГДЕ именно.
    Например в районе Бейкер Стрит (Лондон), весьма востребован C++.
    А в mountain view может быть востребован java и андроид.

    Почему? потому что там находятся конкретные офисы конкретных контор. Вы себе подумайте куда именно собираетесь устраиваться и что делать.
    Ответ написан
    Комментировать
  • Какой язык программирования наиболее востребованнный сегодня?

    @mamkaololosha
    Прямые руки востребованное. Вон у фейсбука львиная доля бекенда вообще на пхп написана.
    Ответ написан
    2 комментария
  • Какой язык программирования наиболее востребованнный сегодня?

    @AlexLIn
    C/C++, python. lua. Java. C#. Cobol PHP. Sql
    Смотря где Вы работать будете и сколько хотите получать.
    Ответ написан
    Комментировать
  • Низкоуровневое программирование. Как быть? С чего начать?

    @cthulhudx
    exelab.ru - хороший ресурс по риверсингу
    wasm.ru - архив статей по низкоуровневому программированию
    Ответ написан
    Комментировать
  • Существуют ли заочные курсы или стажировка по анализу данных на русском языке?

    @lPolar
    data scientist
    ИМХО, тут есть несколько аспектов:
    1. Как написал brainick , математический бэкграунд и английский в data science практически обязателен.
    Причин этому несколько: отсутствие хорошей литературы на русском языке (как по теории, так и по программированию), обилие английских терминов (lift/top/cross-validation и прочие), значение которых в переводной литературе порой объяснятся весьма туманно.
    2. Если говорить о конкретной литературе, которую стоит почитать, я бы выделил несколько уровней:
    Уровень 0
    1. Бизнес-аналитика - Паклин, Орешков (самое базовое и обзорное введение)
    2. Статистика/Тервер ( по мне, хороши книги Айвазяна/Мхитаряна)
    3. SQL - в обязательном порядке. Мне в свое время помогла книга "SQL для простых смертных"
    4. Изучаем Python - М. Лутц (наиболее полная книга по языку, все что нужно для data science здесь точно есть)
    5. Программируем коллективный разум (к слову сказать, вот в этой книге отличный перевод)
    Уровень 1
    1. Математические основы машинного обучения и прогнозирования - Вьюгин (книга сложная, без подготовки по учебникам НМУ на тему анализа и линейной алгебры лучше не подходить)
    2. Python for Data Analysis (pandas во всей красе, тут нечего добавить)
    3. Примеры и статьи по построению моделей в sklearn - на хабре в последнее время часто мелькают статьи на эту тему, там все достаточно хорошо расписано.
    Уровень 2
    1. Hadoop и иже с ним ("Hadoop в действии", "Programming Pig")
    2. Apache Spark - достаточно почитать описание Python API.
    Тут есть еще один момент - не стоит слишком привязываться к одному языку и фреймворку.
    Одна из неприятных проблем python+pandas+sklearn заключается в том, что эта связка слабо масштабируется - при 2-3-4 гб данных становится сложно разместить их в оперативной памяти. Я знаю про chunk-reading+partial_fit, но точность таких моделей оставляет желать лучшего.
    С другой стороны, если обрабатывать эти данные в pyspark, то теряется все удобство pandas.DataFrame и так далее. Отрасль data science быстро развивается и обрастает новыми технологиями, так что нужно все время держать руку на пульсе.
    UPD: в spark 1.3 появились DataFrame.
    Ответ написан
    4 комментария
  • Заказчик вместо обещаных 3 часов моего времени делает правки уже 4й день, что делать?

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

    Так же, на oDesk есть правило, по которому заказчик не может быть агентством, если он зарегистрировался как заказчик. Если он «проксирует» работу, то он — агенство, а агенство не может публиковать заказы. Он нарушает правила. Это ещё один момент, который вам может помочь, если вы вступите с клиентом в какой-то диспут. Опять же, важно, чтобы он упоминал в личной переписке на сайте биржи, что он, дескать, посредник, а не заказчик — если он этого не упоминал, то нужно его как-то на это развести.

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

    Главное, и не только в подобных ситуациях, не тянуть резину. Чем вы будете мягче и податливее, чем дольше вы будете откладывать «неприятные» для клиента вопросы, тем чаще этим будут пользоваться окружающие, продавливая вас насколько это возможно. Это не значит, что нужно всем направо и налево грубить и посылать, это значит, что нужно сразу же сообщать окружающим, что вас что-то не устраивает — вежливо, но твёрдо.

    Я могу только посочувствовать вашей ситуации, но рано или поздно каждый человек с таким сталкивается. Со временем просто развивается чуйка, которая позволяет сразу видеть что конкретный проект публикует неадекватный клиент. Как говорил alexgilev (полчаса назад :) ), всякие фразы, вроде: «срочно», «мне мой знакомый программист сказал, что тут дел — на пять минут», «час-два для тех, кто в теме», «быстрые деньги» и т.п. — это один из признаков неадекватности.
    Ответ написан
    1 комментарий
  • Заказчик вместо обещаных 3 часов моего времени делает правки уже 4й день, что делать?

    opium
    @opium
    Просто люблю качественно работать
    Следует поговорить с заказчиком и объяснить ему что задачи вышли за рамки оговоренного и он может например доплатить.
    Ответ написан
    Комментировать
  • Заказчик вместо обещаных 3 часов моего времени делает правки уже 4й день, что делать?

    eapeap
    @eapeap
    Сисадмин, Беларусь
    Встретил где-то в Инете заметку под названием, если не путаю, "Последнюю работу мы делаем бесплатно".
    Автор не приступает к выполнению новой работы до полного расчета за уже выполненную.
    Я примерно так же поступаю.
    3 часа отработали? Деньги на бочку, и работаем дальше.
    Первая работа может оказаться последней и, возможно, бесплатной... И так бывает.
    Ответ написан
    5 комментариев
  • Куда лучше выводить деньги с elance/odesk?

    Arturische
    @Arturische
    Прошу прощения за столь длинный пост, совсем ~нет времени, сделать его короче~.
    P-PS. чтобы опус было легче прочитать, переписал, называя счёта PayPal "кошельками" (в отличие от банковского "счёта").
    --
    Не знаю как с ELance (полагаю, что не сильно отличается), но с oDesk вот так:

    PayPal не берёт никакой комиссии.
    Может принимать на корпоративный кошелёк (хотя были страшилки что не будет; тьфу-тьфу-тьфу) и выводить с него на банковский счёт (в моём случае расчётный счёт ИП). Не проверял, но "судя по кнопкам" должен так же переводить и на счёт физ. лица.
    С PayPal кошелька физ.лица можно (проверено) выводить на банковский счёт физ. лица (и только).
    Между корпоративным кошельком (ИП) и кошельком физ. лица можно переводить туда сюда (рубли) без комиссии(!).
    ! Есть нюанс ! Выводить с кошелька можно только рубли. Но! Вывод на расчётный счёт (банковский) ИП, происходит по курсу выше, чем если переводить на свой кошелёк физ лица! То есть, любое движение - перевод в рубли, но этот курс (по крайней мере, в период с ноября по январь (2015)) был выше, чем курс конвертации у любого из наблюдаемых мною банков. При том, что в банках, я наблюдал, за курсом конвертации при зачислении на расчётные счета, который обычно заведомо выше, чем при переводе на счета физ.лиц. То есть PayPal предлагал (что для меня было большим и приятным сюрпризом) самый выгодный возможный для меня курс!
    Через PayPal переводить было выгоднее, чем банковским переводом! Хотя следует учесть, что на PayPal есть несколько уровней "персонализации": без предоставления некоторых сканов (документов) будут установлены лимиты на суммы переводов и остатков - да-да, сейчас PayPal в России (в связи с попыткой соответствовать всем законам РФ) весьма изощрённый.

    Если переводить в долларах на банковский счёт, то
    - на счёт физ лица - точных цифр не скажу, но есть нормативы, в соответствии с которыми, банк некоторые сведения (читай "начиная с некоторых сумм") обязан передавать "дальше".
    - на расчётный счёт ИП (в ин. валюте) - Ох... мне оказалось проще забить на объяснения девушке из валютного контроля, что у oDesk нет печати, а каждый перевод денег не связан с конкретным контрактом. И это уже не вопрос "докладывания" дальше - пока банк не получит документы по каждому переводу - деньги просто не пройдут дальше транзитного счёта - вы их не получите! Банк не имеет право их пропустить и обычно сотрудники банка перестраховываются как могут, по всякому поводу и без повода. Есть, конечно, и другие банки (на досуге попробую), где-то даже можно присылать (?якобы!) сканы актов о выполненных работах. Степень "готовности пропускать платежи" очень хорошо коррелирует с компетентностью девушки из отдела фин.мониторинга (валютного контроля) и уровнем её грамотности в этом вопросе, что, к сожалению, редкость. Даже при самой обычной внешнеэкономической деятельности рекомендуется вначале "глаза-в-глаза" пообщаться с валютным контролем (фин.мониторингом) банка. А уж если речь идёт об oDesk/ELance/Apple/Google, нужно либо иметь заведомо неограниченный запас времени и нервов (по крайней мере, в большинстве случаев), либо ответственный сотрудник банка должен быть доктором Хаусом от фин.мониторинга, чтобы уметь отбиваться от (забивать на) вышестоящих. Часто они включают роботов (читай "дурачков"), просто чтобы отвадить клиентов, которые планируют делать переводы, где они не защищены на сто процентов.
    Это, конечно, для случая, если всё в соответствии с законами РФ (перевод выручки от предпринимательской деятельности на расчётный счёт), перевод на счёт физ.лица - это другой случай.

    Поскольку я плачу налоги, я не пользуюсь картой Payoneer, которой можно иногда пользоваться, если нужно получить деньги быстрее (PayPal на банковский счёт официально переводит 5-7 рабочих(!) дней - на практике чуть быстрее). И при пользовании которой, (если бы я ею пользовался) курс в банкоматах, как ни странно, на снятие наличных выше (по крайней мере был в декабре), чем при покупках. И даже с учётом комиссий это было на уровне банковского перевода.
    Иногда в Интерне можно найти адреса банкоматов "без лимита", и с высоким лимитов на снятие наличных за одну операции. Но дело в том, что эти лимиты очень часто меняются (даже мизерные: с одного мизерного на другой). На практике, в крупном городе можно легко найти банкомат с лимитом 10 т.р. недалеко от дома. Жаба по поводу комиссий придушивает, но если посчитать, получается совсем не так плохо, как может показаться.

    PS.
    Учтите, что привязки счётов к кошелькам PayPal, изготовление карт и прочее может сильно затянуться из-за разного рода защитных периодов, требований и проверок - я (с учётом возни с корпоративным кошельком PayPal и прочего) первые деньги получил только через 1.5 месяца (была вероятность, что будет и дольше)!
    Это я к тому, что, возможно, имеет смысл начать регистрироваться "по всем фронтам", а уж там разберётесь где выгоднее.

    PPS. Резюме. Если не горит по срокам, то PayPal с корпоративным кошельком "рвал всех". Мне было проще - у меня расчётный счёт ИП был давно. Комиссий от PayPal ни в одном из моих вариантов использования я не видел ни одной (но подозреваю, что сейчас условия обслуживая в России сильно отличаются от тех же за рубежом). А даже, если бы и были, курс решает(л)! При переводе на кошелёк физ.лица курс меньше (боюсь ошибиться, но где-то на 1.1-1.3 рубля). На кошелёк физ.лица напрямую с oDesk не переводил.

    Отвечая на вопрос , как поступаю я. Я поступаю следующим образом: oDesk -> корпоративный кошелёк PayPal -> расчётный счёт ИП -> счёт физ лица (она же карточка). Пару раз для общего развития было: oDesk -> корпоративный кошелёк PayPal -> кошелёк PayPal физ.лица -> счёт физ.лица (она же карточка)
    Если бы был готов уклоняться от налогов, то, если бы мне нужно было получить деньги на неделю пораньше, я бы пользовался картой Payoneer. Порядок потерь, если все комиссии пересчитать в курс, примерно такой: ~61руб/$ Paypal к ~~~(очень примерно) 59.5руб/$ Payoneer.
    Я надеюсь, что никто не будет брать эти цифры в качестве практического руководства без проверки, учитывать как часто и сильно сейчас меняется курс.

    PPPS. В PayPal видно, по какому курсу будет продажа, до нажатия решающей кнопки OK. Мне это давало возможность пару раз на +/-5% сумму подкорректировать, когда курс сильно скакал.

    "Получилось слишком много, но у меня не времени сделать это сообщение короче" ~(C)
    Всем хорошего дня и манны небесной!

    =========
    !!! UPDATE 27.01.2015 20:48:
    Сегодня уже на корпоративный кошелёк PayPal вывести с oDesk не удалось (тех. поддержка в это время у них не работает, поэтому подробностей нет).
    На кошелёк PayPal физ.лица перевести получилось без проблем.
    Вывод банковский счёт не делал, поэтому не ясно имеет ли практический смысл следующее число или нет, но в рублях он отображает сумму по курсу 64,369375р/$
    ------
    UPDATE
    MasterCard поменял комиссию за операции, и в след за этим, банки начали отменять лимиты. Знаю, что в Альфа-банке, по проверенной информации, лимит на снятие рублей теперь 200 т.р. за операцию.
    Ответ написан
  • Стоит ли изучать Erlang ?

    @mamkaololosha
    hh.ru/vacancy/7504320 старший
    hh.ru/vacancy/7477757 средний
    Эрланг, как Хаскел. Если вы его знаете, то хорошо. Если вы его знаете в отрыве от предметной области, то плохо. Эрланг обычно дополняет какой-то основной язык.
    Ответ написан
    Комментировать
  • Почему на тостере не правильное время?

    StrangeAttractor
    @StrangeAttractor
    Есть только одно правильное время - UTC.
    Ответ написан
    Комментировать
  • Какие дисциплины изучать программисту чтобы меньше зависеть от языков и технологий?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. Вопрос терминалогии - Вы все таки решили перейти на уровень выше. Чем выше - тем абстрактнее, чем ниже - тем ближе к железу.
    2. Понимание общих алгоритмов всегда полезно. Литературы море - Кнут, Седжвик www.ozon.ru/context/detail/id/128304/, www.ozon.ru/context/detail/id/1317133 итд.
    3. Самое главное: если вы хотите работать в IT - вам придется всю свою трудовую жизнь гнаться за технологиями и саморазвиваться. Это нормально. Постоянно будут выходить новые версии языков и надо будет уметь с ними работать. Язык это всего лишь инструмент для реализации задачи. Разные задачи оптимально реализовывать на разных языках. Знание общих алгоритмов (как кстати и паттернов ) полезно, разминает мозг - но без опыта реализации на конкретном языке нафиг не нужно.
    Ответ написан
    1 комментарий
  • Что делать, если твои коллеги(и ты сам) только что освоили git, и каммитят все подряд?

    @exvion
    Предпочитаю писать коммиты на английском языке. Для себя принял за правило начинать коммиты с глагола Add, Fix, Update, Remove, Move, Clean. Иногда в начало можно добавить название модуля, к которому относится коммит.

    - RenderModule: Add support new feature (добавили новую фичу)
    - Fix bug (исправили баг)
    - Fix typo (исправили опечатку)
    - Update script (оптимизировали алгоритм, ускорили работу функции)
    - Move function to another class (рефакторинг)
    - Remove (удалили неиспользуемую часть кода)
    - Cosmetic changes (навели красоту в коде)

    Можете придумать русские аналоги.

    На Хабре появилась статья, дающая исчерпывающий ответ на этот вопрос.
    Как следует писать комментарии к коммитам
    Ответ написан
    Комментировать