LINUX.ORG.RU

Сообщения djnoob

 

Вопров по Promise

 , ,

Всем привет.

Хочу запилить корректную обработку ошибок.

С сервера приходит ответ в виде:

1) В случае успеха:

success: true, result: my_data

2) В случае какй-либо ошибки:

success: false, error: {code: ..., message: ...

Вопрос корректно ли проверять success и, в случае неуспеха, реджектить обещание:

if (resp.success) {	resolve(resp.result); }
else { reject(resp.error); }

Или в reject попадают исключения на уровне зпроса (http-ошибки и прочее)?

djnoob
()

werkzeug - Cannot assign requested address

 , ,

Запускаю wsgi-приложение в докер-контейнере. При попытке запуска контейнера приложение падает с ошибкой:

socket.error: [Errno 99] Cannot assign requested address


В настройках host = '0.0.0.0', port = 8080.

Запуск контейнера:
docker run -p 8080:8080 -i -t my_container_img

djnoob
()

Node.js помогите справиться с модулями!

 , , , ,

Всем привет. Я в ноде новичек и еще не вкурил в модули. А именно как передавать инстанс app внутрь того или иного модуля. Вот есть такой код:

app.js

'use strict';
var express    = require('express'),
        my_module = require('my_module'),
	app        = express();
	
...

// расширяю своим модулем app
my_module.extend(app, {
	key: 'value'
...
});

require('./routes')(app);

module.exports = app;

routes/index.js:

module.exports = function(app){
	...
	
	app.use('/some_parent_url', require('./route1'));

routes/route1.js:

var express   = require('express'),
	router    = express.Router();

router.get('/child_url',(req,res,next) => {	
     app.my_module.my_func();
     res.send('hello');

Так вот. Как сделать так, чтобы app был доступен из route1.js?

Заранее спасибо.

djnoob
()

Посичтать средний процент

 

Всем привет.

Что-то я туплю, ребята. Статистику я порядочно запамятовал. Может кто подсказать, как посчитать средний процент?

Известен только процент некоторой величины относительно некоторого эталона (принятого за 100%).

Например есть следующие данные: 35%, 18%, 48%. Как посчитать средний процент. Яcень пень, что сред.арифметическое в данном случае не есть решение. Средневзвешенное значение тоже не годится, так как не известны веса данных чисел).

Вот, собственно, как-то так.

djnoob
()

Werkzeug. Помогите написать клиент.

 , ,

Всем привет!

Кто делал клиентские запросы с помощью сабжа. Помогите, пожлуйста, ткните, что нужно сделать чтобы создать простой GET-запрос на некоторый url с помощью Werkzeug.

Заранее спасибо.

djnoob
()

Помогите с регуляркой

 

Всем привет!

Есть многострочный текст:

«lorem ipsum ....

tro-lolo

tra-la-la»

Нужна регулярка, которая вырезает весь текст до конца.

Пока я пришел к такому виду (но он работает некорректно):

'(.*?)$'

Но это работает только для первой строки. А как ля всего тества сделать?

djnoob
()

Node.js отправить json в POST

 , , ,

Всем ривет.

Я в node'e новичек. Подскажите, пожалуйста, как оформить POST-запрос по отправке json на некоторый url. Имеется в виду на стороне сервера.

Вот мой код:

request.post({url:'http://my_host/my_url', form: {'items': [item1, item2, ..., itemN], 'some_param': some_value}}, function(error, response, body){
		return res.json(body);
	});

Но приходит не json. Почему?

djnoob
()

Bottle не распознает ajax-запрос

 , ,

Всем привет. Столкнулся с тривиальной на первый взгляд проблемой - попотыкой принять асинхронный запрос с клиента.

Клиентский код:

$.ajax({
		type: "POST",
		url: 'http://localhost:8080/test',
		data: JSON.stringify({'test': 'hello_world'}),
		success: function(data) {
			var r = JSON.parse(data);
			console.log(r);
		},
		dataType: 'json'
});

серверный код:

@route('/test', method=["POST"])
def test():
    print(request.is_ajax) # Always return False
    r = json.load(request.body)
    print("DATA: ", r['test']) # hello_world
    data = {'success': True}
    response.headers['Content-type'] = 'application/json'
    return json.dumps(data)

Так как, почему-то, bottle не распознает запрос как асинхронный, то некорректно возвращает данные (до клиента ответ не доходит).

Заранее спасибо.

djnoob
()

Знатокам Bootstrap 3

 , , , ,

Всем привет!

Требуется реализвать в navabr подменю для выбора локали (RUS/ENG). Я хочу сделать это раздвигающимся списком (collapse). Все меню (в развернутом виде) должно выглядеть так:

| Имя пользователя  |
|------------------|
| Профиль          |
| Язык↓            |
|------------------|
| Русский           |
| Английский        |
|------------------|
| Выход            |

Т.е. по нажатию на «Язык» блок с меню должен растягиваться и оголять вложенный список с языками. Думаю, понятно.

Наваял следующий код (покажу только часть с локалью):

<li>
	<a href="#" data-toggle="collapse" data-target="#languages" aria-expanded="false" aria-controls="languages">
	        Язык&nbsp;<b class="caret"></b>
	</a>
	<ul id="#langiages" class="collapse">
		<li><a href="">Русский</a></li>
		<li><a href="">Английский</a></li>
	</ul>
</li>

Но это нифига не работает. Подменю языков скрыто (как и должно быть, собственно), но при нажатии на «Язык» просто закрывается все родительское dropdown меню.

Есть ли нативные, бутстраповские примеры для реализации сей задумки, поделитесь пруфами, пожалуйста).

djnoob
()

Вопрос по GIT

 , ,

Всем привет!

Удалил нечаянно ветку из локального репозитория командой:

git branch -D myBranch

Как мне теперь восстановить ее?

djnoob
()

Backbobe.js - установка значений атрибута

 , ,

Всем привет!

Есть модель

	var MyModel = Backbone.Model.extend({

		initialize: function() {
			this.on("invalid", function(model, error){
				console.log(error);
			});
		},

		defaults: {
			'title': 'unnamed',
			'description': '',
			'date_begin': '',
			'date_end': '',
		},

		validate: function(attrs) {
			if (!attrs.date_begin) {
				console.log("D1");
				var d = new Date();
				var dd = d.getDate();
				var mm = d.getMonth() + 1;
				var yyyy = d.getFullYear();
				this.set({'date_begin': dd + '.' + mm + '.' + yyyy});
			}

			if (!attrs.date_end) {
				console.log("D2");
				var d = new Date();
				var dd = d.getDate();
				var mm = d.getMonth() + 1;
				var yyyy = d.getFullYear();
				this.set({'date_end': dd + '.' + mm + '.' + yyyy});
			}
		},
		
...
	});

Почему не получается установить значение атрибутов из функции valdate. Тут, наверное, возникает кака-то путаница, так как метод set, на сколько мне известно, тоже выполняет метод validate. Получается какая-то рекурсия. Как кто валидирует модели? Устанавливаете ли вы валидные значения для атрибутов модели из validate()?

djnoob
()

Чем плохи версионные миграции для SQL-like БД?

 ,

Собственно сабж.

Я часто меняю структуру таблиц в своей бд. Для каждого изменения накопилось уже пара десятков файлов с миграциями. Чем это грозит?

djnoob
()

Mongo. Удалить группу документов.

 ,

Всем привет.

Есть массив _id-шников документов, которые подлежать удалению из БД.

Как построить запрос, используя mongo agregation framework, чтобы добиться желаемого. А то все примеры, которыя я находил, либо цепочка аля «выборка + хитрая сортировка», а как вот удалить - хз.

djnoob
()

Perl. Найти элемент массива и заменить его значение.

 ,

Всем привет!

Я новичок в перле. Встала задача найти первый найденных элемент в массиве, соответствующий некоторому значению и заменить значение этого элемента.

Для простоты задачи, взьмем массив:

my @my_arr = ("test1", "test2", "test3", "test2", "test5", "test2", "test6");

Нужно найти в массиве @ma_arr первый элемент со значением test2 и заменить его значение на «best2». Як лучше всего на ваш взгдя такое проделать? И если можно, то маленький пример в студию).

Заранее спасибо.

djnoob
()

Prerl. Помогите разобрать строку.

 , , ,

Всем доброго времени суток!

Есть строка: «param1=value&param2=value&param3=value&param1=value&param1=value»

Нужно, чтобы все значенеия param1 (их много) были занесены в массив - [value, value, ..., value], а из остальных параметров и их значений сформировать хеш вида { «param2»=>value, «param3»: value};

Как собственно такое провернуть?

djnoob
()

Perl. Mojolicious. Помогите распарсить json.

 , , ,

Всем привет.

Отправляю на сервер данные в json, в post'e:

$.post("/url"/, {"data": "qwerty"}, function(resp) {console.log(resp)});

Вопрос, как в контроллере mojo, получить этот json и распаосить его?

Код:

my $text = decode_json($s->req->body);

не работает.

djnoob
()

Sphinx + xmlpipe

 ,

Всем привет.

Генерирую индксы для sphinx, используя xmlpipe2. Для этого формирую xml-документ вида:

<?xml version="1.0" encoding="UTF-8"?>

<sphinx:docset>
  <sphinx:schema>
    <sphinx:field name="first_name"></sphinx:field>
    <sphinx:field name="last_name"></sphinx:field>
    <sphinx:attr name="first_name" type="string"></sphinx:attr>
    <sphinx:attr name="last_name" type="string"></sphinx:attr>
  </sphinx:schema>
  <sphinx:document id="1">
    <first_name>ggdgdg</first_name>
    <last_name>dsfdsfsdf</last_name>
  </sphinx:document>
  <sphinx:document id="2">
    <first_name>ngfngn</first_name>
    <last_name>nfgngfnfgn</last_name>
  </sphinx:document>
</sphinx:docset>

По роду заачи нужно создать более сложную структуру. Напрмер так: users -> first_name,lastname somestructure -> field1,field2.

Как такое сделать? МОжно ли для каждой семантически отдельной структуры формировать свой docset. Но в одном файле не может быть несколько docset'ов. Как быть?

djnoob
()

Perl. Объясните код.

 

Всем привет!

Я в perl новичек. Столкнулся с одним кодом, назначение которого точно не знаю. А в гугле забанили, да. Вопрос к достопочтенной публики: «Как работает следующий фрагмент кода»?

sub my_func {
    take {
        my $a = 1;
    } some {
        my $a = 2;
    } sub {
        my $a = 3;    
    };
    
    return $a;
};

main();

Я подозреваю, что это что-то вроде try/catch, но точно - хз. Что за take, что за some, что за анонимный sub? Что за паттрен? Где лучше использовать?

djnoob
()

Perl JSON::XS и кодирвка

 , ,

Всем привет.

Имеется хеш, который нужно сериализовать в json. Решил для этого заюзать хваленый модуль JSON::XS. В хеше все данные в выглядят норм, но после кодирования в json - русские слова пишутся крокозябрами. Вот код:

my %my_hash = ("test"=>"йцукен");
my $encode_json = JSON::XS->new->pretty(1)->utf8(1)->encode($my_hash);

ЧЯДНТ?

djnoob
()

Одноклассники api - что за нафиг?!

 , ,

Всем доброго времени суток!

Кто пользовался fapi5.js, подскажите.

При инициализации библиотеки fapi5.js:

<script type="text/javascript" src="//api.odnoklassniki.ru/js/fapi5.js"></script>
			<script type="text/javascript">
			var rParams = FAPI.Util.getRequestParameters();
			FAPI.init(rParams["api_server"], rParams["apiconnection"],
				/*
				 * Первый параметр:
				 * функция, которая будет вызвана после успешной инициализации.
				 */
				function() {
					alert("Инициализация прошла успешно");
					// здесь можно вызывать методы API
				},
				/*
				 * Второй параметр:
				 * функция, которая будет вызвана, если инициализация не удалась.
				 */
				function(error) {
					alert("Ошибка инициализации");
				}
			);
			</script>

Получаю ошибку в консоле браузера:

TypeError: this.webServerUrl is undefined fapi5.js:1:744

Написал в техподдержку ok - уже больше пяти часов никакого ответа. Что за нах у них вообще творится?!

А как вы делаете виджет приглашения друзей в ваше приложение через js? Есть какие-нибудь примеры, советы? Не api у них а одно мучение.

djnoob
()

RSS подписка на новые темы