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 подписка на новые темы