Search
Write a publication
Pull to refresh
4
0
Kirill Levitskiy @KirillLevitskiy

Пользователь

Send message

Короткая шпаргалка по блокировкам при чтении и изменении данных в зависимости от уровня изоляции транзакции в MSSQL

Reading time3 min
Views39K
Read Uncommitted

  • если в одной транзакции поменять данные — селект этих данных (в другой транзакции или без транзакции) не будут ждать окончания первой транзакции и вернут записанные данные незакомиченных транзакций
  • если в одной транзакции считать данные — апдейты этих данных в другой транзакции не будут ждать окончания первой транзакции
  • шаред локи не используются. Что аналогично установке NOLOCK хинта во все селекты в Read Commited
  • эксклюзивные локировки устанавливаются в процессе выполнения стейтмента и снимаются по окончанию транзакции


Read Committed + read_committed_snapshot off

(alter database xxx set read_committed_snapshot off)

  • если в одной транзакции поменять данные — селект этих данных (в другой транзакции или без транзакции) будут ждать окончания первой транзакции. Селект с NOLOCK хинтом вернёт изменённые, но не закомиченные данные.
  • если в одной транзакции считать данные — апдейты этих данных в другой транзакции не будут ждать окончания первой транзакции
  • шаред локировки устанавливаются в процессе работы стейтмента и снимаются по окончанию стейтмента
  • эксклюзивные локировки устанавливаются в процессе выполнения стейтмента и снимаются по окончанию транзакции


Дальше

Что делать если Instagram не дал доступ к API?

Reading time3 min
Views103K
1 июня 2016 года Instagram отключит от своего API все приложения, которые не прошли модерацию. Что делать если вы в их числе?

Предыстория


Мы делаем сервис для постинга в Instagram по расписанию и используем API для получения информации об аккаунтах. Самим постингом занимаются телефоны в автоматическом режиме. Нам отказали в доступе к API после 1 июня (пробовали пройти модерацию два раза) поэтому было решено найти замену.

Сначала расскажу как мы использовали официальный API:
  1. При добавлении аккаунта забираем из Instagram информацию об аккаунте: имя, фото профайла, количество постов, подписчиков, подписок.
  2. Перед тем как опубликовать фото/видео мы запрашиваем количество постов, и тоже самое после публикации, если число постов увеличилось считаем публикацию успешной.
  3. Если публикация прошла успешно забираем ссылку на последнее фото в профайле.
  4. Если пользователь удаляет фото из нашего сервиса, то перед тем как выполнить задачу нужно проверить существует ли такой пост в Instagram (или его удалили).

Реализация


У Instagram есть веб-версия. С помощью нее в приватных аккаунтах можно получить информацию о количестве постов, подписок и подписчиков, а в публичных еще и сами посты, комментарии и лайки. Поэтому, в силу простоты получения, я подумал, что уже написаны подобные библиотеки. Пошел гуглить и нашел только для NodeJS. И для PHP нашелся какой-то код, но всем четырем пунктам не соответствовал. В итоге было решено писать свою библиотеку.
Читать дальше →

Возобновляемых источников не хватает. Чистый уголь — энергоноситель ближайшего будущего

Reading time23 min
Views127K
Source - Dan Winters
Сегодня уголь производит более 40% мировой электроэнергии, фактически являясь основой современной жизндеятельности.

В данной статье речь пойдет о современной ситуации с использованием угля в энергетике, о том, почему в настоящее время не представляется возможным от него отказаться и о новой технологии очищения продуктов горения угля и их перегонки для последующего использования.
Читать дальше →

Выразительный JavaScript: Величины, типы и операторы

Reading time10 min
Views157K

Содержание




Под поверхностью машины движется программа. Без усилий, она расширяется и сжимается. Находясь в великой гармонии, электроны рассеиваются и собираются. Формы на мониторе – лишь рябь на воде. Суть остаётся скрытой внутри…

Мастер Юан-Ма, Книга программирования

Читать дальше →

Яндекс.ТвояПогода

Reading time2 min
Views94K
Привет! Очень давно уже не писал никаких статей, да и вообще, долго уже раздумывал опубликовывать данную тему или нет, но всё же решился.

«Для чего»

Ради интереса, на своего «хомяка» (когда-то лет 5 назад эта фраза была немного популярной) появилось желание прикрутить погодный информер.
Причем, хотелось видеть в нем некий минимализм — текущая температура и миленькая пиктограммка (солнце, тучка или снег).

Решения, предлагаемые, многими сервисами погоды являются относительно громоздкими и, по моему мнению, не очень приятными глазу :) Хотелось бы сделать что-то своё)

Мне приятнее всего пользоваться сервисами Яндекса, поэтому поставил перед собой вопрос «как сделать свою Яндекс.Погоду?» :)
Читать дальше →

Собеседование на должность JavaScript разработчика

Reading time4 min
Views288K


Недавно прочитал неплохой пост на тему поиска работы QA и подумал, что похожий пост был бы полезен для JavaScript разработчиков. В конечном счёте, веб движется вперед семимильными шагами, и соискателей на позицию JavaScript программиста хоть отбавляй (разумеется, хороших всегда меньше).
Читать дальше →

Решебник по геймификации. Задача #1: интернет проект с UGC контентом

Reading time5 min
Views11K
image

Этой публикацией мы начинаем серию статей, посвященных решению задач в разных областях при помощи геймификации. Цель статьи – дать теоретическую информацию и общий алгоритм решения. Первая задача: как сделать работающий интернет проект с контентом, который должны генерировать пользователи при помощи геймификации. Приступим!

Постановка задачи


Дано:


Итак, есть интернет проект. Большая часть его контента, если не весь, должен генерироваться самими пользователями, он может быть разных типов.

Найти:


Сами участники должны публиковать контент, оценивать и модерировать контент, выложенный другими пользователями.
Читать дальше →

PKI (Public Key Infrastructure) с помощью JavaScript? Теперь это возможно с помощью библиотек PKIjs и ASN1js

Reading time5 min
Views13K
Представляю вашему вниманию две библиотеки, реализующие практически полный спектр требуемого функционала для организации инфраструктуры PKI: PKIjs и вспомогательную библиотеку ASN1js. Библиотеки свободны доступны и распространяются по лицензии, позволяющей использовать их код без особых ограничений, даже в коммерческих продуктах. Полный код данных библиотек доступен на GitHub: PKIjs + ASN1js.

Дабы привлечь читателей прямо во введении приведу краткий список особенностей вышеупомянутых библиотек:
  1. Объектно-ориентированный код;
  2. Работа с HTML5 (ArrayBuffer, Promises, WebCrypto (используется «dev nightly build» Google Chrome));
  3. Возможность создавать, проверять, получать внутренние данные, изменять данные для следующих объектов:
    1. Сертификаты X.509
    2. Списки отзыва (CRL) X.509
    3. Запросы на сертификат (PKCS#10)
    4. OCSP запросы;
    5. Ответы OCSP сервера
    6. Time-stamping (TSP) запросы
    7. Ответы TSP сервера
    8. CMS Signed Data
    9. CMS Enveloped Data

  4. Реализация собственной «certificate chain validation engine» на JavaScript;
  5. … И многое другое! Смотрите под катом!


Читать дальше →

ESA представило интерактивный 3D-симулятор миссии «Розетта» (изучение кометы Чурюмова-Герасименко)

Reading time1 min
Views10K


Межпланетная станция «Розетта» и посадочный модуль «Фила» на борту станции уже проснулись, и готовы к встрече с кометой Чурюмова Герасименко. Об этом уже писали на Хабре. Но встреча модуля и кометы произойдет только в ноябре этого года, так что ждать придется довольно долго.

Для того, чтобы не пришлось скучать в ожидании, Европейское космическое агентство (ESA) выпустило интерактивный 3D симулятор этой миссии. Если точнее, то симулятор готовился группой INOVE Space Models, которая не раз и не два создавала интереснейшие модели, например, Солнечной системы или кометы ISON.

Читать дальше →

Передача табличных данных из хранимой процедуры

Reading time11 min
Views83K
Речь пойдет о методах получения результатов работы процедуры в виде таблиц для последующей работы с ними в SQL. Думаю, большинство здесь изложенного может пригодиться только в приложениях со сложной SQL логикой и объемными процедурами. Не берусь утверждать, что данные методы самые эффективные. Это всего лишь то, что я использую в своей работе. Всё это работает под Microsoft SQL Server 2008.
Тем, кто знаком с темой предлагаю пролистать пост до пятого метода.
Читать дальше →

Банкомат. Некоторые особенности

Reading time5 min
Views356K


Никого из нас не удивить банкоматом (АТМ). Даже люди старшего поколения мало-помалу привыкли к этому устройству и свою пенсию в состоянии как-то снять. Однако кроме всего прочего — банкомат – это крайне занятная штука с технической и организационной точки зрения. Даже сотрудники банковских учреждений (в т.ч. и связанных с платежными картами) не всегда представляют себе тонкости его работы. В прошлой жизни я достаточно много лет был связан с платежными картами и обслуживанием банкоматов. Мне доводилось и отогревать его феном и выковыривать оттуда по кусочкам мышь кровь кишки, застрявшую в обнимку с купюрами. Даже спалил один из подконтрольных банкоматов. Дважды. Поэтому поделюсь некоторыми, на мой взгляд, интересными техническими нюансами в работе АТМ.

Подробности

Список оптимизаций рендеринга DOM, реализуемых на уровне Javascript фреймворка

Reading time13 min
Views26K
С октября 2009 года я занимаюсь разработкой приложения для поиска и прослушивания музыки. Я стремлюсь организовать возможность быстрого взаимодействия пользователя с интерфейсом, и в качестве одного из средств ускорения взаимодействия использую различные способы для быстрой отрисовки страниц.

Предлагаю ознакомиться со способами, реализованными мной в приложении на системном уровне:

  • Использование CSS и переключение классов вместо перестроения DOM дерева
  • Повсемнестное кеширование выборок элементов ($('div.active_part span.highlighter')), атомарные операции по изменению (вместо всеобщей перерисовки, вместо переделывания больших участков DOM дерева)
  • Минимизации чтений DOM во время записи изменений состояний
  • Кеширование размеров и расположения элементов (это спасает от излишнего вычисления при считывании этих значений при наличии других изменений: чтение во время изменения множества частей дерева крайне негативно сказывается на производительности)
  • Аккуратное, не затягивающееся накопление изменений, необходимых произвести в DOM
  • Прикрепление частей изменяющихся коллекций единовременно (когда, например, в середину списка вставляется 3 новых элемента; createDocumentFragment) в конкретное место (after, before) вместо открепления всей коллекции от DOM и повторного прикрепления (и вместо того, чтобы перерисовывать весь список)
  • Прогрессивный асинхронный рендеринг: картина прорисовывается сразу с небольшим количеством деталей, затем деталей появляется всё больше
  • Клонирование нодов (как часть шаблонизации)
  • Кеширование и использование кеша результатов парсинга DOM шаблонов


image image
изображения из части с заголовком «Прикрепление частей изменяющихся коллекций единовременно...»
Читать дальше →

Построение карьеры в большой организации. Tips&tricks

Reading time5 min
Views179K

Захотелось поделиться с сообществом собственными наблюдениями на тему карьерного роста технаря.


Информация основана на опыте в больших западных конторах, которые делают реальные продукты. Всё изложенное ниже не претендует на абсолютную истину.

Начнем сначала: вы свежий выпускник тех. вуза. Вам 22-23 года, вся жизнь впереди и она прекрасна. В этом прекрасном будущем есть, скорее всего, есть жена-модель, дом – полная чаша, несколько машин, и первый миллион к 30 годам.

Карьера представляется немного смутно, но в целом, понятно: начинаем активно и качественно работать, нас, несомненно, замечают и продвигают. Множество фильмов и книг именно так нам и обещают: много и хорошо работай –> и всё будет хорошо.

Вы устраиваетесь на работу, ваше звание — инженер или разработчик. У вас появляются коллеги. Почти все они старше вас. И тут вы, возможно, заметите, что на таком же уровне, как и вы, есть очень пожилые люди. Прямо 30-40 летние мужики, может даже 50ти летние “стариканы”. И многие из них тоже закончили похожие вузы, и многие совсем не дураки, но как-то не сложилось с карьерным ростом…

Получается хороший вуз, диплом, интеллект, работоспособность, хорошее первое рабочее место – далеко не гарантия того, что вы вырастете в иерархии.
Читать дальше →

Простое создание миниатюр и хранение их на Amazon S3

Reading time3 min
Views16K
Ни один сайт не может обойтись без генерации миниатюр изображений. В интернете можно найти миллион статей на эту тему. Возможно, кому-то пригодится и это решение.

Требования:
  • Изображения хранятся на удаленных серверах. У нас есть только ссылки на эти изображения
  • Миниатюра должна формироваться любого заданного размера в момент непосредственного обращения к ней
  • Должна быть предусмотрена защита от вредителей
  • Миниатюра должна храниться на Amazon S3 и быть доступна по поддомену основного сайта. Количество бакетов на S3 и соответственно поддоменов неограничено

Читать дальше →
2

Information

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