Страницы

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

вторник, 25 июня 2019 г.

Очередь команд в консоли Linux

Предположим, что в данный момент в консоли уже выполняется какая-то команда. Она занимает продолжительное время. Я хотел бы выполнить одну или несколько команд после того, как завершится эта. Как это сделать?
Я знаю, что можно Ctrl + Z и bg, но это не совсем то. Нужно не в бэкграунд отправить команду, а именно дождаться ее завершения.


Ответ

используйте не bg (background), а fg (foreground), после которой добавьте нужную команду (команды):
$ date; sleep 10 Fri Oct 2 10:45:04 MSK 2015 ^Z [1]+ Stopped sleep 10 $ fg; date sleep 10 Fri Oct 2 10:45:14 MSK 2015
fg и последующую команду можно связать и условиями, например: && или ||

Как изменить размер div блока мышкой?

Как можно изменить высоту или ширину блока с помощью мышки, без библиотеки jquery-ui ?
Такой как здесь, только без jquery-ui, искал в интернете, но не смог найти.
Может есть какие-то другие библиотеки (размером 5-10 kb.) но не такие большие как jquery-ui


Ответ

Если тебе нужно изменять ширину блока мышкой, вот пример. Если немножко изменить скрипт, я думаю что и высоту можно менять, только css код нужно доделать.
$(document).ready(function() { var p = $(".pan1"); var d = $(".pan2"); var r = $("#resize"); var curr_width = p.width() var unlock = false; $(document).mousemove(function(e) { var change = curr_width + (e.clientX - curr_width); if(unlock) { if(change > 199) { $("#debug").text(e.clientX + " resize"); p.css("width", change); d.css("margin-left", change); } else { p.css("width", 200); d.css("margin-left", 200); } } }); r.mousedown(function(e) { curr_width = p.width(); unlock = true; r.css("background-color", "rgba(0, 0, 0, 0.2)"); }); $(document).mousedown(function(e) { if(unlock) { e.preventDefault(); } }); $(document).mouseup(function(e) { unlock = false; $("#debug").text(""); r.css("background-color", "rgba(0, 0, 0, 0.1)"); }); });

Архитектура клиентского приложения Android для интернет магазина [закрыт]

Есть интернет-магазин, нужно написать для него приложение, а точнее для работы с его админкой. Основными функциями должны быть:
добавление/изменение/удаление товаров просмотр списка заказов просмотр категорий/подкатегорий/товаров в виде дерева или каких-то выпадающих списков
В качестве обмена данными с сервером используются REST API. В ответ сервер отдает JSON.
Для выполнения запросов использую ApacheHttpClient (смотрю в сторону библиотеки Volley). Для этого у меня создан класс со статическими переменными и методами для каждого запроса.
На данном этапе интересует следующее: в главном Активити есть кнопка "получить древо категорий" —» вызывается класс со статическим методом для данного запроса —» в ответ получаю JSON-ом список категорий/ подкатегорий.

Коротко о работе приложения: В MainActivity пользователь нажимает на кнопку найти товар по id -->> вызывается асинхронный запрос который обращается к статическому методу класса API.getProductById(String id) -->> метод посылает нужный запрос на сервер и получает от него ответ -->> далее метод .getProductById(String id) отправляет ответ в MainActivity -->> в MainActivity формируется интент с получеными данными и отправляется в нужную активити где и отображаются данные для пользователя.
Вопросы:
1) правильный ли я использую подход для выполнения запросов?
2) как поступить с полученным ответом, где и как его лучше хранить, возможно использовать БД?
3) каким способом можно отобразить данное дерево в Активити, что бы при нажатии на товар я мог просмотреть о нем информацию?
КАТЕГОРИЯ
-подкатегория
-товар
-товар
-подкатегория
-товар
-товар
4) Какая иерархия классов должна присутствовать в подобном приложении.
5) Так же интересует: архитектура подобных приложений и какие средства используются для их реализации? Возможно какие-то примеры, литература...
P.S. Это первый опыт написания функционально приложения для Android с помощью Java, буду рад любой информации!


Ответ

Вы немного неверно строите архитектуру. Вам надо:
Вынести обращения к серваку в отдельный сервис, который крутится в своем потоке - см. в сторону IntentService Полученые от Rest API данные надо складывать в SQLite БД, иначе если не будет коннекта или коннект будет медленный у вас ничего не будет показываться. Показывать нужно всегда данные из БД, причем посредством ContentProvider над этим БД. ContentProvider должен давать вам Cursor, а от курсора вы должны рисовать уже свои деревья/списки.
В итоге получится так, что в фоне у вас будет крутиться сервис, который подсасывает данные из сервера и кладет в БД. Ну а поскольку над БД у вас будет развернут ContentProvider то все изменения которые будет вносить сервис в БД будет автоматом отображаться на UI.
Для рисования списков в последнее время модным стало использование RecyclerView, он лучше себя ведет в тяжелых списках с картинками, правда и кода он требует чуток больше чем ListView
Как то так.

Как вывести все выбранные файлы?

Есть поле . Когда я выбираю несколько файлов, хочу получить этот массив и вывести ниже списком пути файлов.
Есть такой код:
$('.add_photo_input').on('change', function() { var value = $('form input[type=file]').val(); alert(value); });
Я получаю значение только последнего выбранного файла, а мне надо всех выбранных: могу выбрать и три файла, и нужно получить пути всех трёх файлов.


Ответ

Имена всех выбранных файлов можно получить с помощью поля files (тип FileList) у , которое представляет собой список из File
$('form input[type=file]').on('change', function() { for (var i = 0; i < this.files.length; i++) { console.log(this.files[i].name); } });


Статья на MDN про работу с файлами

Стоит ли использовать спецсимволы в названиях таблиц/столбцов?

В мануале MySQL.Ru указано, что можно называть таблицы и столбцы с применением различных символов (в более ранних версиях _, $). Стоит ли пользоваться или ограничиваться _?


Ответ

Такие вещи должны оговариваться в "стандарте кодирования" конкретной команды разработчиков. Что для одних норма, то другим кошмар. Важно чтобы в одном проекте не было разнообразия в этом плане.
В тех местах, где мне приходилось работать, для имен MySQL было принято ограничиваться нижним регистром латиницы + цифры и подчеркивание, snake-синтаксис.
Вот примеры толковых соглашений об именах: http://anandarajpandey.com/2015/05/10/mysql-naming-coding-conventions-tips-on-mysql-database/ https://raw.githubusercontent.com/treffynnon/sqlstyle.guide/gh-pages/_includes/sqlstyle.guide.md

express.js не могу получить post данные из формы

Есть следующая форма:


и файл server.js:
var express = require("express");
var bodyParser = require('body-parser'); var multer = require('multer'); // v1.0.5 var upload = multer(); // for parsing multipart/form-data
var app = express();
app.use(bodyParser.json()); // for parsing application/json app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.set("view engine","ejs");
app.use(express.static(__dirname + "/public"));
app.get("/", function(req,res){ res.render("pages/index", { title: "Главная", msg: "Привет Мир!", data: q, info: "" }); });
app.post('/', upload.array(), function (req, res, next) { console.log(req.body); //{} console.log(req.body.title); //undefined console.log(req.body.data); //undefined
res.json(req.body); //{} });
app.get("/hello", function(req,res){ res.render("pages/other", { title: "Другая страница", msg: "hello world" }); });
app.use(function(req, res, next) { res.status(404).render("pages/error", { title: "ошибка 404", msg: "ошибка 404" });
res.status(500).render("pages/error", { title: "ошибка 500", msg: "ошибка 500" }); });
app.listen(8080); console.log("Сервер запущен!");
Делаю по туториалам, недавно начал с этим разбираться, столкнулся с тем, что создал форму, но получить на сервере данные никак я не могу. пробовал и req.query, и req.params('title') -- undefined.
Пакеты установил которые подключаю.
Собственно... много информации на английском языке -- может я что то упускаю?
Вопрос: Как получить данные из формы передаваемые методом post и обработать их на сервере используя технологии nodejs и express.js?


Ответ

Для отправки данных формы необходимо проименовать поля.


В name - с каким названием параметр прилетит серверу. id - ид инпута для браузера, с сервером не связан никак.

array.sort() не понимает украинские буквы Є и І

Имеется простой массив имен на украинском языке, в котором имена сортируются в алфавитном порядке например:

Все сортируется отлично за исключением имен которые начинаются с украинских букв Є и І — такие имена почему то ставит первыми. Как сделать чтобы они были на нужном месте?


Ответ

Нашел ответ на англоязычной версии StackOverflow: