не смогу купить Windowsлицензионную копию? Не исключено. Зависит от пакета санкций и от их формулировок.
Вводят какие-то санкции, где России перестанут оказывать IT услуги, что это значит? Я не смогу зайти на иностранные сайты, например YouTube, не смогу купить Windows, не смогу скачивать иностранное ПО?
request('http://music.com/givegonnagiveyouup')
.pipe(fs.createWriteStream('givegonnagiveyouup.mp3'))
fetch('http://music.com/givegonnagiveyouup')
.then(res => res.buffer())
.then(buffer => fs.writeFileSync('givegonnagiveyouup.mp3', buffer))
function createTree({
arr,
idKey = 'id',
parentKey = 'parentId',
childrenKey = 'children',
}) {
const tree = Object.fromEntries(arr.map(n => [ n[idKey], { ...n, [childrenKey]: [] } ]));
return Object.values(tree).filter(n => !tree[n[parentKey]]?.[childrenKey].push(n));
}
v-tree
, выводящий древовидные данные:props: {
items: {
type: Array,
default: () => [],
},
maxdepth: {
type: Number,
default: Infinity,
},
},
<ul v-if="Array.isArray(items) && items.length && maxdepth">
<li v-for="n in items" :key="n.id">
{{ n.value }}
<v-tree :items="n.children" :maxdepth="maxdepth - 1" />
</li>
</ul>
using Microsoft.EntityFrameworkCore;
using System.Diagnostics;
namespace TestPerf
{
internal class Program
{
static int TOTALITEMS = 400000;
static int SELECTITEMS = 100;
static Stopwatch _swInt= new Stopwatch();
static Stopwatch _swGuid = new Stopwatch();
static void Main(string[] args)
{
try
{
ConfigureDb();
TestDb();
}
catch(DbUpdateException)
{
TestDb();
}
finally {
DropTables();
}
}
private static void DropTables()
{
using var db = new ApplicationContext();
db.IntTest.FromSql($"DROP TABLE IF EXISTS public.inttest;");
db.IntTest.FromSql($"DROP TABLE IF EXISTS public.guidtest;");
db.SaveChanges();
}
private static void TestDb()
{
var intId = new List<long>();
var rand = new Random();
for (int i = 0; i < SELECTITEMS; i++)
{
intId.Add(rand.Next(1,TOTALITEMS));
}
var guidId = new List<Guid>();
using var db = new ApplicationContext();
foreach (var id in intId)
{
guidId.Add(db.GuidTest.Where(x=>x.Idn == id).First().Id);
}
_swInt.Start();
var intRes = db
.IntTest
.Where(x => intId.Contains(x.Id)).ToList();
_swInt.Stop();
_swGuid.Start();
var guidRes = db
.GuidTest
.Where(x => guidId.Contains(x.Id)).ToList();
_swGuid.Stop();
Console.WriteLine("Int key time: " + _swInt.ElapsedMilliseconds);
Console.WriteLine("Guid key time: " + _swGuid.ElapsedMilliseconds);
}
private static void ConfigureDb()
{
using var db = new ApplicationContext();
for (int i = 1; i < TOTALITEMS; i++)
{
var it = new IntTest { Id = i };
var gt = new GuidTest { Id = Guid.NewGuid(), Idn = i };
db.Add(it);
db.Add(gt);
}
db.SaveChanges();
}
}
public class IntTest
{
public Int64 Id { get; set; }
}
public class GuidTest
{
public Guid Id { get; set; }
public Int64 Idn { get; set; }
}
public class ApplicationContext : DbContext
{
public DbSet<IntTest> IntTest => Set<IntTest>();
public DbSet<GuidTest> GuidTest => Set<GuidTest>();
public ApplicationContext() => Database.EnsureCreated();
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseNpgsql("Server=localhost;Port=5432;Database=test;Username=test;Password=test");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var builder = modelBuilder.Entity<GuidTest>();
builder.ToTable("guidtest");
builder.HasKey(x => x.Id);
builder.HasIndex(x => x.Id).IsUnique();
builder.Property(x => x.Id)
.HasColumnName("Id")
.HasColumnType("uuid")
.HasDefaultValueSql("uuid_generate_v4()")
.IsRequired();
builder.HasIndex(x => x.Idn).IsUnique();
var builderi = modelBuilder.Entity<IntTest>();
builderi.ToTable("inttest");
builderi.HasKey(x => x.Id);
builderi.HasIndex(x => x.Id).IsUnique();
}
}
}
oldArray.sort((a, b) => a.id - b.id);
newArray.sort((a, b) => a.id - b.id);
oldIdx = 0;
newIdx = 0;
while (oldIdx < oldArray.length || newIdx < newArray.length) {
if (oldIdx >= oldArray.length || oldArray[oldIdx].id > newArray[newIdx].id) {
console.log(`Added id newArray[newIdx].id`);
newIdx += 1;
continue;
}
if (newIdx >= newArray.length || oldArray[oldIdx].id < newArray[newIdx].id) {
console.log(`Deleted id oldArray[oldIdx].id`);
oldIdx += 1;
continue;
}
if (oldArray[oldIdx].x !== newArray[newIdx].x) {
console.log(`Changed id newArray[newIdx].id`);
oldIdx += 1;
newIdx += 1;
}
}