Задать вопрос
  • В чем разница между Ассемблером и Компилятором?

    Adamos
    @Adamos
    Ассемблер - переводчик "один в один": есть команда - есть соответствующий ей машинный код.
    Компилятор - сложная мясорубка: он не только приводит все, что было написано на языке высокого уровня, к низкоуровневым инструкциям, но и оптимизирует код - разворачивая короткие функции, например, чтобы избежать затрат на их вызов.
    А заодно он проверяет код на соответствие синтаксису и базовую логичность, выдавая соответствующие ошибки и предупреждения...
    Ответ написан
  • PHP. Как грамотно создать дополнительный класс (ООП) для "конкретных" select'ов для работы с БД?

    Adamos
    @Adamos
    Вариант 4. Торжественно похоронить свой велосипед и использовать SafeMySQL, который легко превращается в синглтон и не требует никакого наследования для использования каким угодно образом.
    Ответ написан
  • Какие шрифты чаще всего используете в дизайне сайта?

    Adamos
    @Adamos
    Главный шрифт, который должен быть у любого дизайнера - это sans-serif.
    Пока не прогрузится внешний шрифт, сайт все равно будет отрисован на нем.
    Ответ написан
    4 комментария
  • Чем может быть полезен C++ веб разработчику?

    Adamos
    @Adamos
    Я бы посоветовал, если уж хочется общего развития, действительно познакомиться с С или Ассемблером (неглубоко - ровно настолько, чтобы понять, как программистские конструкции доходят до реального "железа").
    А для работы - не нахватываться языков, да побольше, а погрузиться в один из них всерьез. Написать свою библиотеку на js. Или высоконагруженный проект на go. Так, чтобы прочувствовать язык и получить от него удовольствие, делая сложные вещи просто и естественно.
    То есть - побольше руками и головой. А за статьи, хабр и прочее хвататься только тогда, когда не будет хватать информации. Читать - легко...
    Ответ написан
    2 комментария
  • Бэкап Linux-сервера с windows-машины. Чем можно организовать?

    Adamos
    @Adamos
    Думаю, задача изначально поставлена неверно.
    Здесь уместнее поставить вторую машину на той же Убунте, синхронизировать их rsync-ом и держать диски на этой машине так же открытыми, но только на чтение.
    Получите спасение не только от смерти винта, но и от "мышка махнула, папочка удалилась" и даже от "взял и записал документ поверх нужного". Причем пользователи сами смогут по простой инструкции спасать свои головы.
    Ответ написан
  • Как зарезать права учётной записи гостя, чтобы он мог запускать только браузер?

    Adamos
    @Adamos
    Зря тут речь идет про Windows 7. Под такое дело хорошо работает Debian, проверено.
    Более того, буквально парой строчек в конфиге можно ограничить браузер одним сайтом.
    А в винде дыры так или иначе все равно найдутся...

    Конфиг киоска на Debian:
    /etc/rc.local :
    !/bin/sh -e
    iptables -t filter -A INPUT -p tcp -s YOUR_SITE.ru --dport http -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp -d YOUR_SITE.ru --dport http -j ACCEPT
    iptables -t filter -A INPUT -p tcp --dport http -j DROP
    iptables -t filter -A OUTPUT -p tcp --dport http -j DROP
    iptables -t filter -A INPUT -p tcp --dport https -j DROP
    iptables -t filter -A OUTPUT -p tcp --dport https -j DROP
    su -- user -c "startx" &
    exit 0

    /home/user/.xinitrc :
    xset -dpms &
    xset s off &
    exec chromium -kiosk --start-maximized --disable-restore-background-contents --window-size=1280,1024 --disable-translate "http://YOUR_SITE.ru/PATH_TO_PAGE/"

    Запускается Хром прямо под иксами, без оболочек, и открывает нужную страницу. Ни на какие другие сайты доступа нет. Возможности вызвать какие-то другие программы, не имея пароля администратора - тоже ;)
    Ответ написан
    3 комментария
  • Как увеличить размер массива в C++?

    Adamos
    @Adamos
    1. Вы сами себя путаете, используя *(array + i) вместо array[i]
    2. Вы создаете новый массив, не удаляя старый. Понятно, что в лабораторной это не критично. Но если вы собрались жить с С++, то либо вам будут резать глаз такие вещи, либо учите другой язык.
    3. У вас есть функция, в которую передается массив и элемент. Функция возвращает либо новый массив, либо nullptr. Это противоестественно. Функция должна возвращать ссылку на массив - а новый он или старый, можно решать вне функции. Это кажется неважным, но хороший код базируется именно на таких мелочах, а говнокод растет именно из-за того, что "здесь же и так все понятно".
    4. Наконец, в программе трэш. Запрашиваются значения для массива, но они не вводятся в сам массив. В массив добавляется не введенное значение, а 4 (?). lineArray сразу же теряется, поскольку ему присваивается nullptr...
    Ответ написан
    9 комментариев
  • Как организовать правильные запросы?

    Adamos
    @Adamos
    Даже без JOIN (мало ли, какие-то данные могут быть многострочными) совершенно необязательно городить циклы.
    Вы запросили статьи. Получили данные. Зачем сразу выводить? Соберите их пока в массив, попутно создавая массив id статей, авторов, чего там еще понадобится.
    Следующим номером сделайте один (!) запрос - SELECT author_name FROM authors WHERE author_id IN (у нас уже есть этот массив). Аналогичный запрос или два к таблице с комментариями - и все, больше вам базу дергать не требуется, и все данные для вывода получены.

    Глядишь, понемногу придет осознание, какую пользу приносит разделение логики и вывода...
    Ответ написан
    Комментировать
  • Как написать алгоритм перебора всех возможных комбинаций символов?

    Adamos
    @Adamos
    Элементарная комбинаторика хорошо разобрана на algolist.ru - там, правда, все больше Паскаль, но это неважно, ибо вся логика разбирается до кода.
    Ответ написан
    Комментировать
  • Рекомендуется ли выделять под форматирование и подготовку MySQL запроса целый метод/функцию?

    Adamos
    @Adamos
    Та часть кода, которая работает с БД, должна быть связана со всем остальным кодом только тем набором данных, которые ей надо сохранить или прочесть.
    Логика приложения не должна ничего знать о таблицах, запросах и прочем. Она должна только знать, как обратиться к обертке над БД, чтобы получить или сохранить данные.
    Любые смешения этих двух уровней приводят к говнокоду - это проверено уже несколькими поколениями пыхеров.
    Ответ написан
    2 комментария
  • Как можно "эмулировать" Win. драйвер для принтера в OC Linux?

    Adamos
    @Adamos
    Чудовищный костыль от безысходности: поднять в виртуалке Винду, пробросить в нее этот принтер, поставить драйвера и расшарить как сетевой. Бр-р-р, но может сработать ;)
    Ответ написан
    3 комментария
  • Как записать файл на диск в обход файловой системы(для ускорения)?

    Adamos
    @Adamos
    Все, что можно реализовать для ускорения записи файлов, обычно уже реализовано в драйвере файловой системы.
    Все проблемы, которые были решены разработчиками этого драйвера, станут вашими, если вы собрались без него обойтись.
    Кроме того, вы теряете сразу два слоя абстракции: записывая файл средствами ОС, вы можете не интересоваться, в какой файловой системе он будет записан и будет ли она вообще локальной - с этим разберутся ОС и драйверы.
    Ну, и не забываем, что в ОС с нормальными настройками безопасности пользовательская программа не может просто так вот взять и обратиться напрямую к "железу".

    В общем, не занимайтесь ерундой. Даже те знания, которые вы можете обрести, изучая сейчас этот вопрос, вам в обозримом будущем не пригодятся.
    Ответ написан
    Комментировать
  • Как сделать чтобы при обращении через ajax был доступ к файлу?

    Adamos
    @Adamos
    Или по ссылке сможет зайти кто угодно, или никто.
    Если обработчик доступен по ajax, в нем должна быть проверка авторизации. Других вариантов нет.
    Ответ написан
  • Как сделать SEO оптимизацию динамического сайта современными методами?

    Adamos
    @Adamos
    Дело в том, что поисковики индексируют не запросы, а страницы. Если у вас ajax-запрос получает данные для товара в формате json, а потом строит из них представление прямо на той же странице, не меняя ее адреса - как вы себе представляете эту страницу в выдаче поисковика?
    Как бы поисковик ни понимал скрипты, логика "по этому адресу я видел этот текст", которой руководствуются поисковики, в таких случаях не работает.

    Нужно, чтобы у каждого товара была своя четкая ссылка. Возможно, наполовину состоящая из GET-параметров, но уникальная. Для уверенного индексирования можно подсунуть роботу такие ссылки внутри тега noscript.
    Ну, и sitemap построить и скормить Яндексу с Гуглем - они это любят.
    Ответ написан
  • Как сравнить 2 файла grep?

    Adamos
    @Adamos
    Строки с несовпадающим $6 вы уже выкинули.
    Перегоняем оба файла в формат $1,$3, отбрасывая прочую информацию и убирая дубли.
    Сортируем, находим пересечение этих файлов.
    Перегоняем второй в формат $1,$3,$2,$4,$5,$6,$7 и сортируем.
    На своем любимом языке программирования открываем этот файл (1) и файл пересечений (2), сравнивая текущую строку в файле (2) с началом текущей строки в файле (1).
    Если они совпадают - выводим, переставив столбцы.
    Если нет - читаем следующую строку из файла, строка в котором оказалась меньше другого (данные-то отсортированы).
    В один проход получаем результат, никаких недель.
    Ответ написан
    Комментировать
  • Как в js отправить свои данные в форме без аякса?

    Adamos
    @Adamos
    Собственно, данным не дает уйти на сайт эта строчка:
    e.preventDefault();
    Уберите ее - и submit, который выполняется по умолчанию, произойдет после выполнения вашей функции.

    А если вам нужно отправить не те данные, которые были введены в форму - создайте новую форму, влепите в нее input с новыми данными и сделайте ей submit.
    Ответ написан
    Комментировать
  • Как вернуть из функции переменную, переопределяющую предыдущее значение переменной?

    Adamos
    @Adamos
    var set внутри функции - это определение локальной переменной, которая к глобальной не имеет никакого отношения. Упоминание set далее в функции обращается к локальной переменной, упоминание в другом месте - к глобальной.
    Пока не освоились с областями видимости, пишите глобальные переменные как window.set - это то же самое, но ошибиться будет куда труднее.
    Ответ написан
  • Как создать редактор HTML на JavaScript?

    Adamos
    @Adamos
    А если пользователь напишет эту же команду в консоли и она у него в браузере выполнится? Ужас-ужас!
    Ответ написан
  • Из-за чего не выполняется SQL запрос в базу данных?

    Adamos
    @Adamos
    REAL описывается не одним размером, а двумя - сколько цифр всего и цифр после точки.
    REAL(10,2) - например.
    Собственно, для цен логичнее использовать специально для них созданный DECIMAL. С аналогичным описанием.
    Ответ написан
    Комментировать
  • Как вернуться к началу функции jquery?

    Adamos
    @Adamos
    Вам нужно повесить реакцию на click на вновь созданный элемент?
    Создайте функцию, которая принимает jQuery-объект (или его id, если вам так удобнее) и вешает на него обработчик. Используйте ее везде, где вам нужно.
    Ответ написан
    Комментировать