All streams
Search
Write a publication
Pull to refresh
18
0
Юрий Ярош @voidnugget

Rapid Unscheduled Disassembly Expert

Send message
Ещё, кстати, нужно использовать callback'и
var plato = require('plato');

gulp.task('plato', function(done) {
    plato.inspect(config.projectFiles.js, 'reports', config.plato, done);
});
Посмотрел на это
gulp.task('js',function(){
    gulp.src('./assets/js/*.js')
        .pipe(dosomestuff());
});
и дальше перестал читать…

Постоянно наблюдаю ситуацию когда юзвари забывают возвращать потоки с тасков в gulp'e или не знают про merge-stream.

Надо делать вот так
gulp.task('js',function(){
    return gulp.src('./assets/js/*.js')
        .pipe(doSomeStuff());
});

и вот так
var merge = require('merge-stream');

gulp.task('js',function(){
    merged = merge();
    [
      'mdpi', 'hdpi', 'xhdpi'
    ].forEach(function(density) {
    merged.add(gulp.src('app/images/**/*.@(png|gif|jpeg)')
        .pipe(doSomeMagicStuff()))
        .pipe(gulp.dest('dist/images/' + density)));
    });

    return merged;
});

Это нужно что бы время выполнения задачи нормально логировалось, и синхронизация происходила без побочных эффектов.

А то большая часть gulp адептов меня расстраивают :|

Мне, обычно, browserify watchify debowerify deamdify babelify с головою хватает — 2-3 секунды на сборку бандла погоды не делают, а WebPack просто не обеспечивает должной гибкости, да и больших преимуществ по скорости работы, как многие голосят, я раньше не замечал…
Я, как человек с опытом разработки DMP решений для RTB бирж, могу с уверенностью сказать что большая часть существующих Data-mining решений либо реализована через одно место, потому что оперирует сугубо статистическими методами, либо реализована довольно неплохо, но имеет недостаточный объём информации для обучения нечётких классификаторов.

В общем ничего не работает так как в книжках пишут, или так как это представляет большинство обывателей. Перешли по ссылке — будте готовы получать тонну рекламы просто потому что вы её посетили…
А я то думал тут расскажут конкретно о структурах данных которые можно использовать для индексации: ну там R-tree X-tree Quad-tree MVP-tree B*-tree, хэш-таблицах, различных cache oblivious и sync oblivious решениях, ну и как это всё вяжется в контексте упомянутых «глобалов». О тех вещах, которые действительно влияют на производительность.
О безопасности история умалчивает.
rwasa повеселее для подобных задач будет.
Ключевая фраза в русскоязычной.
Как показывает практика, люди компенсируются как могут, а за бугром, обычно, это не свойственно — меньше проблем, меньше протестов, и соответственно внутреннего напряжения которое нужно как-то высвободить. Эт я вообще о психологии, если кто не понял…
Психологи с таким не помогают, хотя в этой стране, за деньги, — как всегда найдут «универсальную пилюлю» от всех проблем.
Можно использовать с UE4, в принципе вполне съедобно. Постили про ржавый в OpenGL'е.
В принципе можно использовать так же как и С++ и совместно с ним, ток безопаснее и без побочки.
Нестабильных плюшек сейчас хватает и очень много проектов их использует по не совсем понятным мне причинам.

Ну вот rustfmt хрен на 1.1 соберёшь — нужна nightly сборка.
Там используется авторская strings.rs, не знаю что он там тянет и почему автор решил пилить свой велосипед.
С java go вызывается довольно просто — генерится байндинг gobind'ом.
Мороки с вытеснением памяти кучи сейчас нет, а раньше была.
Бывают проблемы когда два сборщика мусора одновременно срабатывают, но это при оч загруженном приложении — обещали пофиксить в ближайшем будущем. А вообще сейчас можно собрать shared либу и вызывать с неё всё как с сишки, afaik runtime обычно сам поднимается с libgo, хотя я сильно не разбирался как и что там. У меня больших проблем с вызовом go функций с под NDK ведроида и со swift'a на iOS пока не возникало. С С# / Python / Lua будет вызываться как и любая сишная функция, предварительно инициализирующая рантайм.
Сейчас можно и dll'ку go'шную линкануть, и метод откуда-угодно вызвать, другое дело что go runtime себя будет довольно странно вести, так что это немного неудачный пример.
Конкретно, в С++ есть следующие недостатки, которых нет в Golan'e
  • Много разношерстных стандартов
  • Хватает побочных эффектов
  • Много решений поощряют возникновение ошибок
  • Ужасный порог вхождения, глянуть хотя бы костыли с boost'a
  • Надо хотя бы пару лет для того что бы было понятно что и как и куда ...
И где там bind'инги под Foundation?
C gobind'ом и Java под андроёд ещё понятно.
Но вот с iOS ситуация сейчас вроде как сложнее.

Я вообще думал брать, парсить существующие swiftmodule swiftdoc и генерить соответствующие биндинги под rust и golang.
Правда до этого ещё не скоро дойдёт — не так много свободного времени.
У него на много выше порог вхождения, менее стабильная стандартная библиотека и более плюс-плюсоподобный «размороженный» синтаксис.
Из-за этого он не годится для разработки «долгоиграющих» решений с lts'ом. Вот Golang проще и он вполне годен для lts'a.
Rust корректнее сравнивать со swift'ом — уже есть кривые objc биндинги к foundation'у, и можно даже собрать iOS таргет с правильной травой.

p.s. я и сам сижу сча рефакторю hyper :3
Как показала практика, с rust'a больше толку в геймдеве.
В журналах IEEE проскакивало, эта структура сейчас точно используется в броадкомовских свитчах типа томагавка.
Про вендорное Juniper/Cisco ничего не могу сказать. А вообще такие вещи принято реализовывать на ПЛИСках / ASIC'ах.
Недавно набрёл на такую весёлую структуру данных как AF-heap — можно MST за линейное время выполнить.
Это будет пошустрее Борувки и, вполне так, можно приспособить к GPGPU.
Да не обиделся я — просто требования у нас ниже плинтуса, и это чуток поднадоело, и на грусть местами тянет.
Вот это собственно и печалит, что в каком-нить MIT / Berkeley это скорее лабораторная нежели кандидатская…
Если не заканчивал ВО — не значит что не было научных работ, и не знаю что значит бакалаврская.

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity