• Как сформировать SQL запрос?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    concat('<a target="_new" href="%%WWWROOT%%/course/view.php?id=

    ААААААААААААААааааааааааааааааа
    Kill it with fire!!!!!
    SQL запрос должен возвращать данные. Данные, а не html верстку.

    Что касается самого вопроса - что бы посчитать сумму вам нужны агрегирующие функции: group by, sum.
    dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
    Что то более полезное без структуры базы сказать нельзя.
    Ответ написан
    Комментировать
  • Простая графическая 2d библиотека для Си под Linux?

    @bromzh
    Drugs-driven development
    SDL
    Ответ написан
    Комментировать
  • Взломан skype. Как это случилось?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Как то в 2003г. я жил с девушкой. Мы оба были геймерами. Ну я естественно тогда начинал свой путь программирования.
    Был у меня сайтик на обычном хостинге. По тем временам, код был сильно защищен. В один из прекрасных дней я увидел в логах необычное поведение. Прошерстил код, нашел спамбота.
    Конечно все почистил и т.д.

    Но мне стало интересно как и вам, кто и как меня взломал. Своими скромными силами я не смог определить.
    В итоге создал в корне сайта файлик forHacker.txt
    В нем задал вопрос - собственно как вы меня хакнули?
    на следующий день в аську стучится человек, я спрашиваю
    - Мол чего вам надобно? - в ответ
    - Товарищ Иван, вы же сами просили меня вам рассказать как я вас хакнул
    - Спасибо что откликнулись, просветите плз
    - Ваша девушка Света была не аккуратна, скачала мой файлик. В связи с чем я смог получить доступ к ее компу. Далее по локальной сети обнаружил доступ к вашему. Подсадил кейлогер и просто подождал ввода пароля.
    ....
    Всего вам хорошего и удачи. Ваш сайт оставляю в покое =)

    Это примерный наш разговор.
    Так что способов получения ваших данных велик )
    Ответ написан
    Комментировать
  • Где вы храните важные файлы в интернете?

    maaGames
    @maaGames
    Погроммирую программы
    "не должны храниться в интернете" - излишне категоричный совет. Не должны храниться в открытом виде - так точнее. Утечки с iCloud продемонстрировали, что всякие авторизации не помогают от программных ошибок.
    Решение: шифруйте файлы перед помещением в сеть. Хотя бы архиватором с большим ключом запаковать можно, если настоящую шифрующую программу ставить не хоцца. Даже если кто-то файл из сети стащит, его ещё расшифровать нужно суметь. А уж дропбокс или гуглдрайв - дело вкуса и потребностей. Можно использовать несколько слабонадёжных облачных хранилищ, маловероятно, что они сразу все перестанут работать.
    Ответ написан
    Комментировать
  • Как восстановить знания по C++ на сегодняшний день?

    mmatrosov
    @mmatrosov
    C++ jedi
    По поводу книг добавлю "A tour of C++" от Страуструпа. Подкупает своей компактностью - этакий ликбез для С++-программистов. Из минусов то, что там в кучу С++98 и С++11. Ещё "Overview of the New C++ (C++11/14)" от Мейерса. Это презентационные материалы с его тренинга именно по С++11/14, я там был, отличный тренинг. Из минусов - это всё же слайды презентации, какие-то моменты могут быть не понятны без докладчика. Далее, поскольку у Вас уже есть опыт, вполне подойдёт выделить список тем и разботать каждую в отдельности по статьям, записям с конференций, вопросам на SO (или Тостере :) ).

    Что именно читать - не так важно, найдёте сами. Чем мне действительно хотелось бы поделиться, так это мыслями по поводу С++11/14 (будем для краткости называть его С++14, т.к. стандарт уже одобрен). Это не просто "новые фишки в С++". Это качественно новый язык. Разница в стилях кодирования между С++14 и С++98 можно сравнить с разницей между С++98 и С. Не такая радикальная, но сравнимая. Возможности С++14 коснулись практически всех аспектов кода. Я позволю себе выделить наиболее значимые, на мой взгляд, изменения, значимые именно для "рядового" программиста, который не пишет буст и не оптимизирует компиляторы:
    • Семантика перемещения*. Контейнеры STL теперь можно возвращать из функции по значению. Строки можно эффективно конкатенировать оператором сложения. Это прекрасно читается.
    • Лямбда-функции. Алгоритмами STL можно, наконец, спокойно пользоваться и не бояться вызвать демонов описанием очередного внешнего шаблонного класса-функтора. Логика работы алгоритма теперь указывается ровно там, где он используется.
    • auto. Казалось бы, это мелочь. Но теперь имя типов итераторов STL не занимает кучу места в программе (ещё очко в пользу STL). Многие конструкции стали более компактными и ушло ненужное дублирование имени типа (принцип DRY!)
    • STL + стандартная библиотека. В С++ чудовищная скудная стандартная библиотека, особенно по сравнению с C#. Но STL, как одна из основных её частей, шагнула вперёд, и не только за счёт других фишек, благодаря которым стало удобно пользоваться тем, что уже было. В ней появились std::unordered_map (хэш-таблицы), std::array и std::tuple - очень полезные в определённых случаях контейнеры. Также добавился ряд полезных алгоритмов (см. доки к заголовочному файлу <algorithm>). А вы знали, что в С++11 есть класс std::Hash, который позволяет считать хэш от произвольных стандартных типов, включая std::string?
    • std::function. Мало того, что класс предоставляет механизм универсальных колбэков, он позволяет элегантно написать и легко использовать классы типа ScopeGuard (Страуструп называет его finally). Это даёт новый виток развития парадигме RAII, ключевой и уникальной для С++. Ранее для этих целей использовался кривоватый BOOST_SCOPE_EXIT.
    • std::unique_ptr. Благодаря семантике перемещения оказалось возможным создать эффективный умный указатель с монопольным владением объектом. У нас уже был boost::shared_ptr, так что std::shared_ptr не стал таким прорывом.

    * Не путать семантику перемещения с r-value references. Последние взрывают мозг. Но это не более чем механизм для реализации семантики перемещения и точной передачи (perfect forwarding). И тем и другим можно прекрасно пользоваться, не заглядывая под капот и не убиваясь в попытках понять, как именно работает эта магия.

    По поводу выбора версии Visual Studio. Если есть возможность, лучше использовать VS2013. В ней добавлены такие замечательные и очень полезные возможности С++14, как списки инициализации и инициализация членов класса прямо в месте объявления. В VS2012 этого нет, а по сравнению с VS2010 из интересного в ней появились только range-based циклы, но они не настолько круты. Полный список отличий в MSDN.

    В С++14 ещё много, реально МНОГО нового, по сравнению с С++98. Но большая часть либо просто заимствована из boost, так что так или иначе народ этим уже пользовался, либо достаточна специфична. Я постарался выделить именно принципиально новые моменты, которые меняют стиль написания кода. И код на С++14 смотрится гораздо компактнее и понятнее, чем на С++98. Да пребудет с вами С++14. Я кончил. Спасибо.
    Ответ написан
    Комментировать
  • Как восстановить знания по C++ на сегодняшний день?

    @Koss1024
    0. Прочитайте Страуструпа последнее издание (англ). Если язык вы знали то это лучшая книга чтобы обновить знания

    1. C++11 C++14, в производстве чаще пока еще С++03
    2. Лучший компилятор clang++ (поддерживает любой стандарт и любую платформу)
    3. boost это набор библиотек на все случаи жизни самый хорошо сынжинереный. Стоит писать не под него а с использованием
    4. пункт 3
    5. C++ для задач требующих точного понимания стоимости каждой операции, это embedded DSP Server computing
    Math много чего еще

    Учтите, С++ это инструмент который нужно учить постоянно

    Дополню
    -----------
    С++ мультипарадигменный
    А так же много уровней абстракции поддерживает

    На нем можно писать как на чистом С - это самый низкий уровень
    Можно ООП и абстракции
    Можно паттерны
    А можно функциональный стиль

    С С++ в этом и проблема что знать нужно очень много.

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

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

    Потом Страуструп (тогда это было издание по стандарту 03). Здесь я дополнил свои знания деталями которые пропустил при самостоятельном изучении. Тут стоит отметить что Страуструп весьма странная книга и написана тяжело. Секцию же ООП вообще там лучше не читать (самая последняя).

    Где-то рядом я прочитал Гради Буч - ООА и ООП с примерами применения. Очень хорошая кика чтобы понять к чему все это придумали вообще. Сильно выправляла мозги

    Потом был Керниган и Ричи Язык программирования С. Эту я прочитал просто от безделья, но теперь считаю что это было необходимо. Здесь можно понять зачем придумали именно С. И насколько там все просто, задумано.

    Следом пошли техники: Герб Саттер Решение сложных задач на С++ и Новые сложные задачи С++
    читать обязательно, разобрано много костылей и проблем языка. Дано очень много дельных советов

    С Мейерс - Эффективное использование С++ туда же. Прекрасный разбор.

    Макконнел - Совершенный код. Очень крутая книга. Она отшлифует уже почти бриллиант.

    Помимо всего прочего я работал над проектами и постоянно читал всяческие форумы, блоги, дискутировал с коллегами. Решал задачки разных собеседований.

    Отдельного внимания заслуживает книга Банды четырех (Паттерны).
    Я ее с трудом дочитал, читал ее я уже аж после всего перечисленного и после примерно 7-8 лет опыта С++.
    Я уже давно был Senior dev. и наконец нашел таки время и для нее. Она мне показалась до ужаса скучной и очевидной, поскольку почти все предложенные решения я придумывал и сам неоднократно. Кроме того, большинство этих решений неоправданно тяжелы, и очень запутывают код. Тема холиварная и спать надо много, но я пожалуй остановлюсь только на том что в моей практике, худшими с точки зрения цены ошибок были разработчики которые учились начиная с этой книги. Их код недодерживаем запутан и очень плохо поддается рефакторингу. Такой код имеет самые долго отлеживаемые ошибки.

    Где-то рядом я прочитал Фаулера - Рефакторинг. Вполне себе неплохо. Рекомендую. Но тут стоит к опытному коллеге обратиться. Идея то проста Тесты - Маленькие комиты - YAGNI KISS и SRP но детали лучше познавать на практике.
    У меня был хороший лид, который меня в конце концов научил :)

    Совсем забыл! Александреску же! Скажем так - не так страшен Александреску как тот кто его начитался :)
    Фана доставил много, а так же дал возможность на эти игрища потерять около 3-х месяцев работы. Даже не знаю
    стоит ли читать. Наверное стоит, но нужно помнить что на практике лучше не использовать если вы уже не эксперт.

    Остальное С++ не касается, но чтобы стать профессионалом Вам потребуются алгоритмы и структуры данных (Кормен, Кнут), многопоточность (Энтони Уильямс), другие языки(питон, JS, java), оптимизация и профилирование.
    и много много разных специфических знаний

    Удачи Вам в этом нелегком но, безусловно, интереснейшем пути :)
    Ответ написан
    7 комментариев
  • Какие Вы используете текстовые редакторы для С под Линукс ?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    qt creator.
    Ответ написан
    Комментировать
  • Какую тему диплома выбрать (Программирование)?

    Вопросы такого рода весьма умилительны. Позволю себе высказаться и прошу заранее меня извинить за резкость.

    - Если вы осознанно ищете себе тему диплома, значит, вариант накарябать абы как вам не нравится.
    - Следовательно, вы хотите сделать хороший, интересный диплом.

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

    Итого, вы хотите, чтобы вам подсказали тему в программировании, которая лично вам интересна, притом, что вы сами не сумели её найти в течение периода обучения. Кроме того, вы не указали, как вы себя оцениваете как программиста и какие проекты вам вообще по плечу. Вы даже близко не описали, что вам вообще в жизни интересно. Какого ответа вы ждёте?

    Ну вот навскидку несколько тем, касающихся веб-программирования.
    - Сделайте красивый и удобный в использовании ORM для какой-нибудь экспериментальной СУБД (мне вот нравится OrientDB), напишите веб-приложение с его использованием и обоснуйте, чем оная СУБД лучше, а чем хуже традиционных реляционных, для использования в веб-разработке.
    - Напишите веб-приложение, которое будет аккумулировать какой-нибудь вид открытых данных (статистика выборов; бюджетов; доходов-расходов; миграции; и т.п.) по муниципальным образованиям, субъектам, странам, по этим данным прогонять какие-нибудь алгоритмы и чего-то на их основании анализировать.
    - Займитесь Semantic Web - тема широкая, можно много чего сделать. Большая часть сделанного в этой области - страшно до безобразия и к практическому использованию непригодно. Человекопонятного редактора онтологий нет.

    Пока больше ничего в голову не пришло. Но знаете, идей вокруг очень много, они просто валяются кругом, куда ни взгляни. Древнеиндийские математики имели обыкновение в качестве доказательства теорем рисовать чертежи и писать в качестве пояснения одно лишь слово: "Смотри". Вот и вы попробуйте.
    Ответ написан
    2 комментария
  • Как тестировать приватные методы у классов со сложным поведением?

    SHVV
    @SHVV
    Мы по этому поводу не паримся - тестовые классы у нас просто в друзьях у тестируемого. Так что для них все внутренности доступны.
    Ответ написан
    3 комментария
  • Что выведется на экран после выполнения этого фрагмента программы?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    Не согласен с предыдущим оратором.
    Потому как вывод зависит от "ввода" :) Т.е от того, в какой кодировке слово "слово" записано в исходнике. Потому что, если это двухбайтная кодировка (юникод), то будет скопировано (следовательно, и выведено) только три БАЙТА (но не символа). Таким образом, это будет "с" и половинка от "л" (которая превратится в replacement символ) :)
    Ответ написан
    2 комментария
  • Что выведется на экран после выполнения этого фрагмента программы?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Выведутся три символа "сло", и, возможно, что-нибудь после них, что именно -- непредсказуемо.
    Потому что strncpy копирует не более n (3) символов из исходной строки (s1) в конечную (s2), и если исходная строка длиннее 3 символов, strncpy не добавляет закрывающий символ с кодом 0. Поэтому в s2 попадёт "сло", а дальше останется мусор, который был в памяти, и puts выведет весь этот мусор до первого символа с кодом 0.
    Ответ написан
    1 комментарий
  • Как создать GUI на чистом C?

    deadbyelpy
    @deadbyelpy
    веб-шмеб
    Интересно что значит с "качественным", полагаю что "хорошесть" интерфейса - его удобство, а если вы про удобную разработку, так хм, ну как придется.
    есть iUP,GTK+, и еще другие, вам нужна кроссплатформенность?, а рисовать вы желаете системные контролы - доки по этому есть, или собственные? - копайте Qt например, там свои контролы рисуются.
    Ответ написан
    Комментировать
  • Как принято понимать параметр size в функциях C/C++?

    @DancingOnWater
    Позволю дополнить ответ @jcmvbkbc

    Начну с того, что когда вы программируете на C\C++, то код стоит воспринимать в терминах выделение\освобождения памяти и операций с оной.

    Теперь к нашим баранам. Исторически сложилось, что базовые типы в C++ не имеют фиксированный длины, кроме char. Одновременно в голом Си нет никаких безопасных контейнеров и итерация возможна только с помощью голой арифметике указателей. А в стандарте сказано, что прибавлению к указателю числа n означает его смещение на n*sizeof(T) байт.

    Отсюда вывод, параметр size = length/sizeof(T), где length - это размера куска памяти в байтах.

    Замечу, что ответ является первым приближением к правильному, т.к. не рассмотрен случай не выровненного буфера, битовые поля и некоторые экзотические случаи, но в целом логика сохраняется.
    Ответ написан
    3 комментария
  • Существует ли вариант знать 5 языков программирования?

    Эм...учить, практиковать, не? Хотя цель "знать 5 языков программирования" мне абсолютно непонятна, но это вполне возможно.
    Ответ написан
    Комментировать
  • Какой ОС лучше учить бабушку?

    imho проще линукс поставить туда vnc открыть ssh , да днс от яндекса
    Ответ написан
    Комментировать
  • Какой ОС лучше учить бабушку?

    С линуксом вам будет очень просто собрать ОС, где есть всего 2-3 кнопки, и домашняя папка.
    Дистрибутив любой, оболочка - по вашим навыкам кастомизации. На вашем месте я бы оставлял меньше лишних элементов.
    Ответ написан
    Комментировать
  • Где хостить приложение на Go?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Любой vps.
    Ответ написан
    Комментировать
  • Как далеким от программирования основателям найти ведущего разработчика в стартап?

    syschel
    @syschel
    freelance/python/django/backend
    1. Наличие успешно реализованных проектов.
    А что есть успешно реализованные? Вот мои примеры, только крупные, за последние 10 лет.
    1.1. На этапе альфы умер из-за смены руководства и закрытия финансирования.
    1.2. Умер на этапе разработки из-за смены направления
    1.3. Запущен, но не поддерживался, не развивался. Умер через несколько лет тупого висения в интернете. Из-за руководства, которое считало, что достаточно только создать, а дальше само пойдёт.
    1.4. Запущен, развивался, умер из-за ошибок менеджмента (не правильная оценка целевой аудитории, не учёт занятости рынков, игнорирование конкурентов). Умер через 2 года жизни, разрабатывался до запуска 1 год.
    1.5. Живёт и здравствует, но там работал в команде, команда частично сменилась, развивается.
    1.6. Умер на этапе разработки (неправильное распределение финансов, быстрое истощение фондов, банкротство владельца).
    1.7. Разрабатывается почти год, из-за вечных "хотелок" заказчика, всё время откладывается запуск альфа-версии.
    1.8. Система для внутреннего пользования. Живёт года 4, заказчики довольны. Но посмотреть извне, не удастся.

    И что остаётся? Кучка мелких проектов, делавшихся за неделю-две? Один проект, где был участником команды?

    2. если человек видит себя через 5 лет на той же должности и с тем же кругом задач
    Встречал очень хороших специалистов, одарённых и фанатичных программистов. Но своё движение они видят в развитии в области программирования (языки, технологии, сервера etc), но не в области руководства. Ибо как не крути, хороший программист и хороший управленец, это разные вещи. А гибрид по определению не может быть равен "узкому" специалисту. Вот и выбираем, кто важнее, управленец с слабыми знаниями программиста или программист плавающий в управлении.

    Про партнёрство.
    Меня если честно, корёжит, когда слышу про партнёрство. Ибо сколько раз я слышал: "Гениальная идея, срубим бабла, захватим мир! Нужно только создать второй клон фб, гугла, ютуба, ебая, амазона, но другого цвета и добавив пару кнопок!".
    Ищите исполнителя в первую очередь, предлагайте только возможность стать ведущим разрабом. Но не партнёрство. В партнёры можно потом взять, спустя год-два. А на начальном этапе, в партнёры врятли пойдут слишком большие разработчики. Тем более когда проекта ещё нет и не понятно, что хочет "партнёр"/заказчик.

    Оценка прошлого опыта
    А как неквалифицированный заказчик, может оценить работу программиста в прошлых проектах? По статистике, 95% заказчиков смотрит на дизайн(программист не рисует дизайн) и даже не понимают, что под одной "кнопочкой" может быть не одна тысяча строк кода.
    Ответ написан
    Комментировать
  • Как далеким от программирования основателям найти ведущего разработчика в стартап?

    begemot_sun
    @begemot_sun
    Программист в душе.
    > к сожалению большинство не соответствовали даже основным требованиям (Наличие успешно реализованных проектов, амбиции и ответственность), хотя они были опубликованы в объявлениях

    Простите, а какой линейкой вы измеряли амбиции ? а ответственность ?
    Как можно измерить ответственность не работая с человеком ? Не понимаю.

    И что такое работающий проект ?
    Нормальные проекты делают команды. А если проект сделан одним человеком и он уже приносит прибыль, то это не ваш клиент. А если прибыль не приносит, то это не работающий проект ?
    Ответ написан
    2 комментария