All streams
Search
Write a publication
Pull to refresh
193
0
Алексей Гришин @GRaAL

Разработчик широкого профиля

Send message

В Алматы перестали летать... И мои билеты от аэрофлота превратились в тыкву.

Ну, российские граждане это лишь повод, когда нет иного подходящего. У Казахстана есть уже Байконур в качестве потенциального повода.

Спасибо! А что можете сказать про качество медицины и загруженность системы здравоохранения?

Здравствуйте. Тема интересная, но ответов на все интересующие меня вопросы я, увы, не нашёл.

Так получилось, что я планировал (и планирую) поехать в Алматы в отпуск, а сейчас стало интересно рассмотреть Алматы как место возможной релокации. Но тут возникают вопросы, надеюсь, вы сможете подсказать:

  • банки и финансы, текущее состояние. Применены ли санкции к каким-либо банкам Казахстана? Можно ли совершать переводы в/из стран Европы/США/Канады?

  • есть ли русскоязычные школы (мб частные)?

  • как обстоят дела с медициной? есть ли аналог ОМС?

Пока всё, что придумал.

Спасибо.

Съестся. Толщина рамки может быть произвольной, я не стал ограничивать художников. Придётся "экранировать" с помощью белой рамки, увы.

В основном шутки ради.

НО.

Сделать фотографируемую БД - это уже следующий этап развития задачи.

Там может быть и то, и другое. Однако сейчас я уже подумал, что маркеры типов надо было не снаружи голубых квадратов вставлять, а внутрь.

Если соблюдать несложные правила, то должно быть сложно перепутать незначимый арт и линии связей. Можно конечно комментарии тоже во что-то заворачивать, или линии связей рисовать особыми цветами. Но мне хотелось снизить "порог вхождения", чтобы можно было быстро сориентироваться, а не зубрить кучу правил по рисованию базы.

Не, нормально!

Единственный баг - он распарсил и то, что внутри, тоже. Забыл добавить проверку на вхождение точки в уже найденный блок в одном месте.

Пофикшено: https://github.com/AlexeyGrishin/badbee/commit/7b01805d73ffef3ba2823c05e7883d81e6e54b93

Спасибо за ваш вклад!

Я видел много репозиториев, где были только README о том что будет сделано и как. Уж лучше без README, но с кодом )

А, я неправильно понял ваш вопрос.

Вы имеете ввиду "можно ли накидать в базу данных, чтобы она их нарисовала". Т.е. чтобы не я их рисовал, а сама БД.

С некоторыми ограничениями - можно. Например, та большая база с собаками создана почти автоматически. В базе изначально была только 1 запись - пустой шаблон для инфы о собаках.

Дальше у меня был скрипт, который брал публичную информацию о собаках со страницы сайта http://ingrus.net/husky/photo . И посылал в базу через api следующие команда:

  1. Склонировать самую первую запись. Движок искал свободное место в файле картинки, копировал запись туда и возвращал id новой записи

  2. Дальше уже заполнялись поля этой записи.

Можно ли научить БД создавать записи с нуля - рисовать квадратики и связи между ними? Да, можно, хоть я до этого и не дошёл. Найти свободное место движок уже умеет. Нарисовать квадратик несложно. Соединить его с другим - какой-нибудь вариант A* в помощь.

Основная проблема - что делать, если "место" закончится. Надо увеличить размер картинки. И даже в bmp это не тривиально, т.к. там почему-то задом наперёд данные записаны, и если дописывать в конец файла - они дорисуются в начале (и все id поедут). Скорее всего пришлось бы делать что-то вроде "создать картинку на диске в 2 раза больше, сохраниться туда, старую удалить, новую переименовать".

Вот код который я использовал для импорта, чисто для демонстрации.

let avatarCanvas = document.createElement("canvas");
avatarCanvas.width = 97
avatarCanvas.height = 106

let flagCanvas = document.createElement("canvas");
flagCanvas.width = 37
flagCanvas.height = 27


function img2dataUrl(img, canvas) {
  canvas.getContext("2d").drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, canvas.width, canvas.height)
  return canvas.toDataURL()
}

async function importCellToDB(td) {
  let avatarImg = td.querySelector(".myBlock img")
  if (!avatarImg) return null
  let newRecord = (await(await fetch("https://e80e-185-97-201-39.ngrok.io/husky_big.png/records/53/30/clone", { method: "POST" } )).json())[0];

  async function putValue(fi, value) {
	  await fetch(`https://e80e-185-97-201-39.ngrok.io/husky_big.png/records/${newRecord.id}/${fi}`, {
		headers: {"Content-Type": "application/json"},
		method: "PUT",
		body: JSON.stringify(value)
	  });
  
  }
  
  //field 1 - avatar
  await putValue(0, {value: {data_url: img2dataUrl(avatarImg, avatarCanvas), width: 97, height: 106}});
  //field 2 - gender
  await putValue(1, {value: td.querySelector("img[src*=female]") != null ? "#CE82C7" : "#00A2E8"})
  //field 3 - count of kuboks, skip
  
  //field 4/5 - parents, skip
  
  //field 6 - name
  await putValue(5, {value: td.querySelector("b").innerText})
  
  //field 7 - colors (random)
  let r = Math.random()
  await putValue(6, {value: { "#000000": r, "#ffffff": 1-r }});
  
  //field 8 - country
  await putValue(7, {value: {data_url: img2dataUrl(td.querySelector("img[src*=flag]"), flagCanvas), width: 37, height: 27}});

}

Спасибо!

Репозиторий посмотрю, а то я не видел ещё как другие на расте пишут.

Да, я посмотрел вакансии, и там куча криптостартапов и прочего финтеха, который я не очень люблю ( Даже обидно как-то. Мне понравился rust. Я видел высоконагруженные проекты на C/C++, связанные с перформанс-тестированием, которые запускались на отдельных железках. Мб rust как раз пригодился бы на подобных проектах.

Ого. Не знал! Рад, что экосистема C++ не стоит на месте.

Смотря какой базы. Если BADBEE - то есть. Если postgresql/mysql - то пока нет. Но если мне опять будет скучно, я подумаю над этой задачей.

Попытка ответа на теоретический вопрос "Как сделать базу данных, чтобы а) файл с данными был одновременно визуализацией этих данных б) файл с даннными можно было бы редактировать в пейнте в) с данными можно было бы работать извне по api". То есть такая визуализация данных, которую и человек, и машина могут прочитать.

Почему бы и нет. Я вон вообще тему для статьи из МЕМА взял.

Признаюсь, я так и не сумел придумать достойную ответную шутку.

Information

Rating
Does not participate
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
From 5,000 $