У НВидеа есть похожая коробочка, там 8 Гигов: nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/nano-super-developer-kit/ Со специальными CUDA ядрами. Как у нас достать не знаю.
Класс! Буду следить. Тоже нужен такой девайс. Точнее несколько, в разных комнатах, как-то прикрутить все в один HA, хочу чтобы команда "выключи свет" работала в той комнате, где её произнес
"фича-инфраструктура" - временное окружение со своими временными репозиторями пакетов, бд и т.п., и "фича-стенд" - стенд для тестировщика/аналитика, развернутых на базе "ФИ". на нём происходит функциональная приема и тестирование, устранение выявленных багов. Когда всё проверено и готово - тогда код попадает в мастер затронутых пакетов.
Вопрос про "Способы реализации общей функциональности" вариант "первый", добавление общего кода в выдачу генератора. Как-то можно проверить, что в контексте уже присутствует атрибут IncludeIntoList (который подтянулся через нугет пакет, тоже использующий этот генератор) и не добавлять его в общую выдачу?
Я не до конца понимаю в чем гениальность этих экспериментов… Если взять магнитофонную пленку и пропускать её через магниты, на ней тоже всё сотрется… Пленка теперь квантовая? Или вы просто магнитами своими всё там испортили? Или спин частицы, по теории, не должен поддаваться переориентированию в магнитном поле? Че-то тут не так… :-)
Моё мнение такое.
Про загрузку из Excel как раз хороший пример. Пример того, что в первый раз сразу надо было делать «универсальный» загрузчик, который предусматривает, по возможности, самые распространенные косяки в исходных данных. В Вашем же примере — берете решение, написанное для первого заказчика, и дорабатываете его до «универсального», предусматривающего все нюансы второго. Третьему заказчику, с большой долей вероятности, уже можно будет продать загрузчик почти без изменений.
Программисты 1С общаются с клиентами не по своей воле, а из-за того что так «криво» устроен этот бизнес. Никто не мешает нанять «аналитиков», которые будут общаться с клиентами и выдавать задания программистам. Но мало кто это делает потому что это доп.затраты, «а нам они нужны? вон пусть программист сам выясняет у клиента чего там надо сделать». Т.к. правильно в статье написано — надо урвать здесь и сейчас.
В мире .NET есть хороший образец нарушения принципа Interface Segregation.
Всем известный System.IO.Stream, он и Read и Write и Seek… хотя потоки бывают разные.
Они конечно добавили костыли в виде CanRead, CanSeek, CanWrite…
Я один раз такое только применил для заглушки против двойных кликов. Вот в таком случае очень удобно получилось ( у нас договоренность, что все кнопки только тэг a class=«btn»)
@Directive({
selector: 'a.btn'
})
export class NoDblClick {
constructor() { }
@HostListener('click', ['$event'])
clickEvent(event: MouseEvent) {
let element: any = event.target;
if (!element) {
return;
}
element.classList.add('btn-freeze');
setTimeout(function () {
element.classList.remove('btn-freeze');
}, 500);
}
}
Тоже натыкался на такое поведение. Решил довольно просто: OrderBy — должен быть последним в дереве IQueryable. Точнее даже не так — запрос собирается до первого встреченного OrderBy, остальное выполняется на клиенте.
Я имею ввиду вот такие случаи: var list = dbContext.Persons.where(predicate).orderby(order);
if(filter.value.hasvalue)
{
list = list.where(f=>f.someField == filter.value);
}
Пришлось от такого избавиться и переставить сортировку в конце. var list = dbContext.Persons.where(predicate);
if(filter.value.hasvalue)
{
list = list.where(f=>f.someField == filter.value);
}
list = list.orderby(order);
Для своего приложения на Angular 4 использую схожую библиотеку ts-helpers. В tsconfig только noEmitHelpers, а в polyfills.ts: import 'ts-helpers';
Сравнил объемы после компиляции, с tslib получается на 50 Кб больше. Оставил у себя ts-helpers
На самом деле можно.
Надо правильно прописать в systemjs.config.js вот примерно таким образом:
(function(global) {
var ngVer = '@2.0.0-rc.4'; // lock in the angular package version; do not let it float to current!
var routerVer = '@3.0.0-beta.1'; // lock router version
var formsVer = '@0.2.0'; // lock form version
//map tells the System loader where to look for things
var map = {
'app': 'app',
'@angular': 'https://npmcdn.com/@angular', // sufficient if we didn't pin the version
'@angular/router': 'https://npmcdn.com/@angular/router' + routerVer,
'@angular/forms': 'https://npmcdn.com/@angular/forms' + formsVer,
'angular2-in-memory-web-api': 'https://npmcdn.com/angular2-in-memory-web-api', // get latest
'rxjs': 'https://npmcdn.com/rxjs@5.0.0-beta.6',
'ts': 'https://npmcdn.com/plugin-typescript@4.0.10/lib/plugin.js',
'typescript': 'https://npmcdn.com/typescript@1.9.0-dev.20160409/lib/typescript.js',
};
//packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' },
'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
};
var ngPackageNames = [
'common',
'compiler',
'core',
'http',
'platform-browser',
'platform-browser-dynamic',
'router-deprecated',
'upgrade',
];
// Add map entries for each angular package
// only because we're pinning the version with `ngVer`.
ngPackageNames.forEach(function(pkgName) {
map['@angular/'+pkgName] = 'https://npmcdn.com/@angular/' + pkgName + ngVer;
});
// Add package entries for angular packages
ngPackageNames.forEach(function(pkgName) {
// Bundled (~40 requests):
packages['@angular/'+pkgName] = { main: 'bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
// Individual files (~300 requests):
//packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' };
});
// No umd for router yet
packages['@angular/router'] = { main: 'index.js', defaultExtension: 'js' };
var config = {
map: map,
packages: packages
}
System.config(config);
})(this);
Мы потихоньку начинаем внедрять… Основная грабля — это IE. Корпоративная политика велит использовать IE, приходится использовать.
Пришел к выводу, что для меня лучше, когда транспиляция идет на клиенте, гораздо удобней отлаживать. Первоначальное отлаживание делаю в хроме, потом перепроверяю всё в IE (в режиме 10 версии, потом в 11 версии).
например вот так не работает в IE10, но работает в 11:
<div [hidden]="!showThisBlock">
содержимое
</div>
Пришлось переделать на *ngIf и покрутить стили, чтобы при показе блок был «правильной» ширины…
UPD: памяти GPU не хватает. 12B нормально работает, 27 уже нет.
Что-то у меня не получается заставить обрабатывать картинки в OpenWebUI. Ничего не отвечает. Вы как-то дополнительно настраивали?
У НВидеа есть похожая коробочка, там 8 Гигов: nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/nano-super-developer-kit/
Со специальными CUDA ядрами. Как у нас достать не знаю.
Меня начинают волновать запросы, выполняющиеся больше 100 миллисекунд. Минуты, часы... Я б умер от инфаркта
Так дело в трансляторе в sql, а не в спецификациях.
Класс! Буду следить. Тоже нужен такой девайс. Точнее несколько, в разных комнатах, как-то прикрутить все в один HA, хочу чтобы команда "выключи свет" работала в той комнате, где её произнес
У нас это называется:
"фича-инфраструктура" - временное окружение со своими временными репозиторями пакетов, бд и т.п., и "фича-стенд" - стенд для тестировщика/аналитика, развернутых на базе "ФИ". на нём происходит функциональная приема и тестирование, устранение выявленных багов. Когда всё проверено и готово - тогда код попадает в мастер затронутых пакетов.
Спасибо за статьи. Жду продолжения.
Вопрос про "Способы реализации общей функциональности" вариант "первый", добавление общего кода в выдачу генератора. Как-то можно проверить, что в контексте уже присутствует атрибут IncludeIntoList (который подтянулся через нугет пакет, тоже использующий этот генератор) и не добавлять его в общую выдачу?
Про загрузку из Excel как раз хороший пример. Пример того, что в первый раз сразу надо было делать «универсальный» загрузчик, который предусматривает, по возможности, самые распространенные косяки в исходных данных. В Вашем же примере — берете решение, написанное для первого заказчика, и дорабатываете его до «универсального», предусматривающего все нюансы второго. Третьему заказчику, с большой долей вероятности, уже можно будет продать загрузчик почти без изменений.
Программисты 1С общаются с клиентами не по своей воле, а из-за того что так «криво» устроен этот бизнес. Никто не мешает нанять «аналитиков», которые будут общаться с клиентами и выдавать задания программистам. Но мало кто это делает потому что это доп.затраты, «а нам они нужны? вон пусть программист сам выясняет у клиента чего там надо сделать». Т.к. правильно в статье написано — надо урвать здесь и сейчас.
Всем известный System.IO.Stream, он и Read и Write и Seek… хотя потоки бывают разные.
Они конечно добавили костыли в виде CanRead, CanSeek, CanWrite…
"@angular/common": «4.4.6»,
"@angular/compiler": «4.4.6»,
"@angular/core": «4.4.6»,
"@angular/forms": «4.4.6»,
"@angular/http": «4.4.6»,
"@angular/platform-browser": «4.4.6»,
"@angular/platform-browser-dynamic": «4.4.6»,
"@angular/animations": «4.4.6»,
"@angular/router": «4.4.6»,
"@angular/compiler-cli": «4.4.6»,
«angular-in-memory-web-api»: «0.5.1»,
«bootstrap»: «3.3.7»,
«core-js»: «2.5.1»,
«eonasdan-bootstrap-datetimepicker»: «4.17.47»,
«font-awesome»: «4.7.0»,
«ie-shim»: «0.1.0»,
«moment»: «2.15.1»,
«reflect-metadata»: "^0.1.10",
«rxjs»: «5.5.2»,
«zone.js»: «0.8.18»,
«aspnet-prerendering»: «2.0.3»,
«aspnet-webpack»: «2.0.1»,
«file-saver»: «1.3.3»,
«d3»: «4.7.4»
},
Мы вот до сих пор на 4.4 сидим и вроде всё устраивает…
Я имею ввиду вот такие случаи:
var list = dbContext.Persons.where(predicate).orderby(order);
if(filter.value.hasvalue)
{
list = list.where(f=>f.someField == filter.value);
}
Пришлось от такого избавиться и переставить сортировку в конце.
var list = dbContext.Persons.where(predicate);
if(filter.value.hasvalue)
{
list = list.where(f=>f.someField == filter.value);
}
list = list.orderby(order);
Сравнил объемы после компиляции, с tslib получается на 50 Кб больше. Оставил у себя ts-helpers
Надо правильно прописать в systemjs.config.js вот примерно таким образом:
Пришел к выводу, что для меня лучше, когда транспиляция идет на клиенте, гораздо удобней отлаживать. Первоначальное отлаживание делаю в хроме, потом перепроверяю всё в IE (в режиме 10 версии, потом в 11 версии).
например вот так не работает в IE10, но работает в 11:
Пришлось переделать на *ngIf и покрутить стили, чтобы при показе блок был «правильной» ширины…