Страницы

Поиск по вопросам

среда, 17 октября 2018 г.

Как посмотреть список процессов из терминала в Ubuntu?

Как посмотреть список процессов из терминала в Ubuntu?


Ответ

С помощью команды ps. alpha@beta:~$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 2808 1644 ? Ss 14:06 0:00 /sbin/init root 2 0.0 0.0 0 0 ? S 14:06 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 14:06 0:00 [migration/0] root 4 0.0 0.0 0 0 ? S 14:06 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S 14:06 0:00 [watchdog/0]

Что нужно знать для создания сайтов [закрыт]

Посоветуйте, а то глаза расходятся. Я новичок и есть желание научиться что-то толковое создавать в этой сфере. Вот что необходимо знать? Весь перечень, который я знаю, можете дополнять): База: HTML + CSS JavaScript библиотеки,технологии: Atom. Js, jQuery.js, node.js, ajax, База данных: MySQL. Серверный язык: Ruby, php, c #, java, python,jsp ,perl,go,asp.net IDE: Phpdesigner,PHPStorm,WebStorm,SublimeText2, NetBeans html редакторы: Dreamweaver, фреймворки: ruby / rails, python / django,Kohana,Zend Framework,Cake PHP,YII Так что я выбрал для изучения: База: HTML + CSS JavaScript библиотеки,технологии: jQuery.js, ajax, База данных: MySQL. Серверный язык: Ruby IDE: Вакансия Фреймворки: Ruby on Rails Я Выбрал ruby вместо php, это правильно? Не понимаю для чего фреймворки. И стоит ли html редакторы использовать, или в "блокноте"? Прошу посоветовать. Готов слушать какой я плохой) Я думаю, что база данных - это потом. Не думайте, что я выбрал ruby, потому что на php много быдлокодеров и школоты и тому подобное. Я и на ruby смогу написать говнокод, пока каша не пройдет). А html редактор нужен? Мне кажется что лучше будет без него. canvas. Какую библиотеку лучше использовать? Атом?


Ответ

Всё смешали в кашу. По порядку, что вам нужно для создания динамического сайта: HTML CSS Javascript PHP MYSQL Для начала вам этого хватит. Пока не будет базового понимания javascript - библиотеки вам особо не помогут, как и фреймворки. Редактор я использую PHPStorm и WebStorm. C Ruby советую подождать (хотя бы потому что не на каждом хостинге он есть и проще поднять свой VDS, но там еще дополнительный стек знаний нужен), но если вам понравился этот язык - то замените четвертый пункт на Ruby + RoR.

Зачем нужно обнуление переменных?

Для чего нужно обнулить массивы после объявления и константы. #include
main() { int c, i, nwhite, nother; int ndigit[10];
nwhite = nother = 0; for (i = 0; i < 10; ++i) ndigit[i] = 0;
while ((c = getchar()) != EOF) if (c >= '0' && c <= '9') ++ndigit[c - '0']; else if (c == ' ' || c == 'n' || c == 't') ++nwhite; else ++nother;
printf("digits="); for (i = 0; i < 10; ++i) printf(" %d", ndigit[i]); printf("white space = %d, other =%dn", nwhite, nother); } Дело в том, что не могу никак для себя пояснить вот этот момент for (i = 0; i < 10; ++i) ndigit[i] = 0; Для чего мы пересчитываем ячейчки массива от 1 до 10, а затем еще их обнуляем? И разве не надо было объявить массив на 11 переменных, так как одна ячейка зарезервирована под ноль? Сама программа взята из Кернигана и Ричи и занимается подсчетом цифр.


Ответ

gecube верно говорит в комментарии, С это не C# и Java, никто кроме вас не будет обнулять значения в массиве. Когда вы выделяете память под массив, то вы выделяете просто диапазон адресов, а что было(что находится) в этих ячейках памяти никто не знает, никто не знает, что за программа использовала этот участок памяти до этого. В этом коде обнуление проводится для того, чтобы вести подсчет повторений каждой цифры в веденной строке, т.е. на выходе в ndigit[3] будет количество троек в ndigit[6] количество шестерок. Обнулять нужно из-за этой конструкции ++ndigit[c - '0']; чтобы не было какого-нибудь -3267.

Code golf - сортировка символов строки по алфавиту

Задание: написать функцию (метод) который будет принимать строку и возвращать ее рассортированную по алфавиту, игнорируя регистр.
К примеру если передать сТрока то она должна вернуть акорсТ Строка, передаваемая в вашу функцию может быть как на английском, так и русском языке, но не комбинированной обоими. Причем строки с буквой Ё тоже должны правильно сортироваться.
апХчиЕмаЁ -> ааЕЁимпХч Предполагается что будет передаваться лишь строка из букв и ничего более (ни цифр, ни знаков препинания, ничего, кроме букв)
Условия: участники могут отвечать на разных языках, публикуя такие решения в разных ответах. Победителем станет тот, кто напишет ее за меньшее количество символов, структура ответа - язык, в скобках количество символов, сам код, ссылка на проверку.
Победитель получит 500 репутации, поехали! Итоги проведутся через 3 дня (статус конкурса откроется, ответ победителя отмечу верным)

Пожалуйста, указывайте в ответе количество символов, чтобы проще было выявить победителя.
function getAnswers(questionId, answer_filter, page) { return jQuery.ajax({ url: '//api.stackexchange.com/2.2/questions/' + questionId + '/answers?page=' + page + '&pagesize=100&order=desc&sort=activity&site=ru.stackoverflow&filter=' + answer_filter, method: "get", dataType: "jsonp", crossDomain: true }).then(function(data) { if (data.has_more) { return getAnswers(questionId, answer_filter, page + 1).then(function(d) { return data.items.concat(d.items); }) } return data.items; }); } function getAuthorName(e) { return e.owner.display_name } function process(items) { return items.map(function(item) { var matched = item.body.match(/(\d+)[^\d]*?<\/h/); if (matched) { return { count: +matched[1], link: item.share_link, author: getAuthorName(item) }; } else { return { count: 'N/A', link: item.share_link, author: getAuthorName(item) } } }); } function sort(items) { return items.sort(function(a, b) { if (a.count == 'N/A') return 1; if (b.count == 'N/A') return -1; return a.count - b.count; }) } function fillTemplate(sortedItems) { $('#leadership').append(sortedItems.map(function(item, index) { return $('').append($('').html(index + 1)) .append($('').html(item.author)) .append($('').html(item.count)) .append($('').append($('').attr('href', item.link).text('Link'))); })); return sortedItems; } var QUESTION_ID = 671346, ANSWER_FILTER = "!4*SyY(4Kifo3Mz*lT", startPage = 1; getAnswers(QUESTION_ID, ANSWER_FILTER, startPage) .then(process) .then(sort) .then(fillTemplate); #leadership { border-collapse: collapse; } #leadership td, #leadership th { padding: 5px; } #leadership th, td:nth-child(3) { text-align: center; }

Таблица лидеров

Автор Количество символов


Ответ

Pyth (17 16)
DhZRo:rN0\ё"ее"Z
Проверка
Расшифровка. pyth стековый язык, поэтому параметры немного не там, где вы возможно привыкли их видеть...
DhZ Объявить функцию h(Z) R возвращающая (return) o сортировка с помощью лямбда-функции "labda N:" : строковая замена (из стека) rN0 переводим букву параметр лямбды(N) в нижний регистр, кладем в стек "ё" кладем в стек второй параметр замены - "что меняем" "ее" и третий - "На что меняем" Z помещаем в стек входную строку для "o"

Звук при входящем сообщении на сайте

Здравствуйте. Нужно, чтобы при входящем сообщении на сайте проигрывался звук, по типу, как у контакта! Как это реализовать? Скрипт проверки на наличие сообщений имеется, как в него вставить воспроизведение звукового файла? Решил проблему так: function soundClick() { var audio = new Audio(); // Создаём новый элемент Audio audio.src = 'n.mp3'; // Указываем путь к звуку "клика" audio.autoplay = true; // Автоматически запускаем }


Ответ

Предлагаю не создавать объект Audio каждый раз, ведь вы можете создать его однажды и использовать повторно
Ниже накиданный на скорую руку симулятор чата
function MessageClass(userName, text, avatarSrc, sendTime){ var self = this; this.UserName = userName; this.Text = text; this.SendTime = sendTime.toLocaleTimeString(); this.AvatarSrc = avatarSrc; } var chat = new function (){ var audio = document.createElement('audio'), source = document.createElement('source'), tid = 0; source.type = 'audio/mpeg'; source.src = 'http://dl.dropbox.com/u/1538714/article_resources/song.m4a'; audio.appendChild(source); this.Messages = ko.observableArray([]); this.Messages.subscribe(function (){ clearInterval(tid); audio.pause(); audio.currentTime = 0; audio.play(); // только потому что трек длинный tid = setTimeout(function(){ audio.pause(); }, 400); }); } ko.applyBindings(chat, document.getElementById("chat")); (function onMessage(){ chat.Messages.push( new MessageClass( faker.name.firstName() + ' ' + faker.name.lastName(), faker.hacker.phrase(), faker.image.avatar(), new Date() ) ); scrollTo(0, document.body.offsetHeight); setTimeout(onMessage, faker.random.number(1500) + 500); })(chat, faker); fieldset{ position: relative; } fieldset:nth-child(2n){ margin-left:24px; } legend{ color:#0a0; } time{ position:absolute; right:12px; top:0px; background:#FFF; color: #a00; display:inline-block; padding: 0px 6px; font-size: 12px; } img{ float:left; width: 60px; margin-right: 12px; border-radius:30px; height:60px; }


А вот здесь вы и сами можете писать сообщения:
function MessageClass(userName, text, avatarSrc, sendTime){ var self = this; this.UserName = userName; this.Text = text; this.SendTime = sendTime.toLocaleTimeString(); this.AvatarSrc = avatarSrc; } var chat = new function (){ var self = this, tid = 0, audio = document.createElement('audio'), source = document.createElement('source'), generateFakeMessage = function (){ self.Messages.push( new MessageClass( faker.name.firstName() + ' ' + faker.name.lastName(), faker.hacker.phrase(), faker.image.avatar(), new Date() ) ); scrollTo(0, document.body.offsetHeight); }; source.type = 'audio/mpeg'; source.src = 'http://dl.dropbox.com/u/1538714/article_resources/song.m4a'; audio.appendChild(source); self.Messages = ko.observableArray([]); self.UserMessage = ko.observable(''); self.sendMessage = function(){ if (self.UserMessage()){ chat.Messages.push(new MessageClass( 'My account', self.UserMessage(), '//s3.amazonaws.com/uifaces/faces/twitter/psdesignuk/128.jpg', new Date() )); self.UserMessage(''); } setTimeout(generateFakeMessage, 1000); return false; }; self.Messages.subscribe(function (){ clearInterval(tid); audio.pause(); audio.currentTime = 1; audio.play(); // только потому что трек длинный tid = setTimeout(function(){ audio.pause(); }, 400); }); generateFakeMessage(); } ko.applyBindings(chat, document.getElementById("chat")); fieldset{ position: relative; } fieldset:nth-child(2n){ margin-left:24px; } legend{ color:#0a0; } time{ position:absolute; right:12px; top:0px; background:#FFF; color: #a00; display:inline-block; padding: 0px 6px; font-size: 12px; } img{ float:left; width: 60px; margin-right: 12px; border-radius:30px; height:60px; } input, button{ margin-top:6px; width:100%; }

Грамотное оформление документации в Python

Правильно оформлена документация данного примера класса? class Example: def __init__(self, label="", icon=None, menu=None, quit=True): """ :param label: подпись трея
:type icon: str :param icon: путь к иконке
:type menu: list :param menu: [("Подпись кнопки", пользовательская функция))]
:param quit: если True - будет создан пункт "Quit" с функцией выхода
""" Если нет, подскажите, как это сделать грамотно, чтобы не было стыдно за свой код.


Ответ

Раз уж Вы задались подобным вопросом, советую вам почитать перевод статей про оформление кода на языке Python отсюда. Хоть определенного (единого) стандарта на этот счет и нет, однако, окружать аргумент с 2-х сторон - это, по-моему, лишнее. Достаточно ставить один знак , например, так: param label: Подпись трея Подробенее см. ссылку.

Сортировка в sqlite и буква “Ё”

Имею БД с русскими словами, они должны выводиться по порядку. В БД есть слова которые начинаются на буквы "ё" и "е". Проблема в том, что видимо sqlite считает, что это одна и та же буква и сортировка работает некорректно, например:
дамба дистанция егерь еда ёжик ездок енот жабры
Для запроса слов использую такой код:
Cursor cursor = mDatabase.rawQuery("SELECT word FROM words ORDER BY word COLLATE LOCALIZED", null);
В DBHelper-е указываю локаль:
@Override public void onConfigure(SQLiteDatabase db) { super.onConfigure(db); db.setLocale(new Locale("ru", "RU")); }
Мне нужно, чтобы сортировка происходила согласно русскому алфавиту, т.е, слова начинающиеся с буквы "ё" должны быть после слов на букву "е", а не вперемешку. Как можно исправить сортировку?


Ответ

существует два варианта:
тащить за собой sqlite: http://habrahabr.ru/post/122408/ делать еще колонку с одинаковым регистром и искать/сортировать по ней.
ответ взят из комментария пользователя itvdonsk