Pull to refresh
8
0
Петров Сергей @PetrovSerega

User

Send message

Структурируем вложения к элементам списка в Sharepoint 2010

Reading time19 min
Views12K
Доброго всем дня!

В Sharepoint 2010 присутствует множество стандартных типов столбцов сайта, но как минимум два важных, на мой взгляд, отсутствуют. Возможно, разработчики оставили «поле» для расширений от сторонних компаний. Но мы «сами с усами» =)

Отсутствующими «из коробки» являются столбцы типа время и типа файл. Для столбца типа дата можно выбрать либо дату со временем, либо одну дату. А вот только время в столбце хранить нельзя. Реализация элемента управления для редактирования двух выпадающих списков с возможными значениями для часов и минут не представляется сильно интересной задачей. Поэтому под катом реализация поля типа файл — SPFileField, которую можно использовать и как краткую инструкцию по созданию собственных типов столбцов для Sharepoint 2010. Решение позволяет добавлять к спискам Sharepoint столбцы нового типа и загружать в них файлы через автоматически генерируемые формы. При этом файлы и информация о них «раскладываются» по разным полям:

Подробности здесь
Total votes 2: ↑2 and ↓0+2
Comments2

Каково оно учить JavaScript в 2016

Reading time10 min
Views348K


— Эй, я получил новый веб-проект, но, если честно, я не занимался веб-кодингом в течение нескольких лет, и я слышал, все немного поменялось. Ты же самый современный веб-разработчик, правда?

— Это теперь называется Front-End инженер, но да, я — именно он. Я работаю с вебом в 2016. Визуализации, музыкальные плееры, летающие дроны, которые играют в футбол, все что угодно. Я только что вернулся из JsConf и ReactConf, так что я знаю новейшие технологии для создания веб-приложений.

— Круто. Мне нужно создать страницу, которая отображает последние действия со стороны пользователей, так что мне просто нужно получить данные от REST и отобразить их в какой-то фильтруемой таблице, ну и обновлять её, если что-то изменится на сервере. Я думал, может быть, использовать JQuery для извлечения и отображения данных?

— О, Мой Бог! Нет! Никто больше не использует JQuery. Ты должен попробовать React: это — 2016!
Читать дальше →
Total votes 260: ↑238 and ↓22+216
Comments298

Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели

Reading time14 min
Views1.3M
Всем привет. На днях возникла идея написать статьи про основы компьютерных сетей, разобрать работу самых важных протоколов и как строятся сети простым языком. Заинтересовавшихся приглашаю под кат.


Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments61

Гарвардский курс по основам программирования CS50 теперь на русском

Reading time4 min
Views177K
image

Предыстория: кто мы и как дошли до жизни такой

Мы — команда проекта JavaRush. А JavaRush, кто еще не в курсе, — это полностью автоматизированный обучающий онлайн-курс по Java. Когда-то давно, именно благодаря поддержке хаброюзеров и статьям на хабре, JavaRush и появился. В то время мы собирались переучить на программистов миллион человек.
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments38

Евангелие информационной архитектуры сайта

Reading time3 min
Views6.1K
Цель данной статьи — создать повод для обсуждения и формирования по итогам споров общепринятого всеми гайда для оформления схемы информационной архитектуры сайта или иной информационной системы.

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

Читать дальше →
Total votes 19: ↑4 and ↓15-11
Comments6

Вызываем обработчики событий потокобезопасно без лишнего присваивания в C# 6

Reading time8 min
Views12K

От переводчика


Часто начинающие разработчики спрашивают, зачем при вызове обработчика нужно копировать его в локальную переменную, а как показывает код ревью, даже опытные разработчики забывают об этом. В C# 6 разработчики языка добавили много синтаксического сахара, в том числе null-conditional operator (null-условный оператор или Элвис-оператор — ?.), который позволяет нам избавиться от ненужного (на первый взгляд) присваивания. Под катом объяснения от Джона Скита — одного из самых известных дот нет гуру.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments27

Как устроены дыры в безопасности: переполнение буфера

Reading time29 min
Views130K
Прим. переводчика: Это перевод статьи Питера Брайта (Peter Bright) «How security flaws work: The buffer overflow» о том, как работает переполнение буфера и как развивались уязвимости и методы защиты.

Беря своё начало с Червя Морриса (Morris Worm) 1988 года, эта проблема поразила всех, и Linux, и Windows.



Переполнение буфера (buffer overflow) давно известно в области компьютерной безопасности. Даже первый само-распространяющийся Интернет-червь — Червь Морриса 1988 года — использовал переполнение буфера в Unix-демоне finger для распространения между машинами. Двадцать семь лет спустя, переполнение буфера остаётся источником проблем. Разработчики Windows изменили свой подход к безопасности после двух основанных на переполнении буфера эксплойтов в начале двухтысячных. А обнаруженное в мае сего года переполнение буфера в Linux драйвере (потенциально) подставляет под удар миллионы домашних и SMB маршрутизаторов.

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

На поверхности, это выглядит как весьма глупая ошибка. В конце концов, программа знает размер буфера, а значит, должно быть несложно удостоверится, что программа никогда не попытается положить в буфер больше, чем известный размер. И вы были бы правы, рассуждая таким образом. Однако переполнения буфера продолжают происходить, а результаты часто представляют собой катастрофу для безопасности.
Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments29

iOs Debug Master

Reading time6 min
Views21K
Однажды я почти полностью отказался от мышки для навигации по Xcode и вполне этому рад. Следующий шаг — это отказ от визуальных средств управления отладчиком. Зачем? — Увеличиваем возможности, уменьшаем время дебага, тратим меньше калорий для перемещения тяжеленькой ручишки (нам калории нужны, чтобы головой работать) и тем самым провоцируем меньше туннельного синдрома.


Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments13

Игра со списком условий

Reading time4 min
Views6.2K
В этой статье я покажу, что и как можно сделать со списком условий. Я сформулирую небольшую тестовую задачу на основе базы AdventureWorks2008R2 и один из вариантов ее решения.

Пример задачи:

Рассчитать стоимость доставки по факту по следующим условиям (обычная задача для логистических компаний).

Список условий:

  • Доставка в Берлин и Бонн байков
  • Доставка в Берлин и Бонн других товаров
  • Доставка в другие города
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments0

Подготовка приложения для iOS 9

Reading time3 min
Views30K
9 сентября выйдет новый релиз iOS и OS X. Времени остается все меньше, и многие разработчики уже оптимизировали свои приложения для работы на новых ОС. Тем, кто этого ещё не сделал, предлагаю коротко рассмотреть, что необходимо для поддержки iOS 9.


Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments20

Автоматизация настройки резервного копирования MS SQL с помощью .NET приложения

Reading time13 min
Views91K
Я долго созревал, чтобы написать данную статью и выложить свое приложение. Надеюсь вам будет интересно.

О чем данная статья


В ней описан тот способ, как с помощью разработанного мною .NET приложения можно распространять план резервного копирования и проводить все необходимые настройки над БД средствами СУБД с уведомлением администратора о выполнении задач.

По максимум постараюсь описать те нюансы, с которыми мне пришлось столкнуться в ходе разработки приложения и настройки БД.
Для описанных ниже задач можно использовать мастер планов обслуживания, но мне больше понравился такой подход. Основное преимущество описанного мною метода, что данный способ можно применять ко всем версиям MS SQL (кроме Express, там немного другой подход). План обслуживания можно переносить, но у вас должна быть соответствующая в версия MS SQL и все равно будет создан Job для запуска плана обслуживания.

Сравнить редакции MS SQL и их функционал вы можете вот здесь.
Осторожно: перфекционисты могут испытать жжение и боль при просмотре кода моего приложения, т.к. оно было написано на скорую руку и заточено под решение конкретной задачи.

Кому подойдет данная статья:
  • Тем, у кого MS SQL Express и нет возможности запускать с помощью Job задачи
  • Тем, кто в ближайшем будущем планирует перейти с MS SQL 2008 на более новую версию и не хочет настраивать зеркалирование БД, а сразу на новой версии настроить AlwaysOn
  • Тем, у кого нет средств для поднятия еще резервных серверов и приходится обходиться тем, что есть.
  • У кого нет сжатых сроков на время восстановления БД. Главное – это результат
  • Кому лень что-то делать
  • Просто любопытным людям.


Оглавление:

Теория о резервном копирование
  1. Журнал транзакций
  2. Разностная копия БД
  3. Системные базы данных
  4. План бекапирования
  5. Общие рекомендации по резервному копированию

Используем приложение
  1. Настройка уведомления администратора
  2. Дополнительные уведомления для администратора
  3. Решение проблем при настройке DatabaseMail
  4. Настраиваем резервное копирование с помощью приложения для SQL Standart
  5. Настраиваем резервное копирование с помощью приложения для SQL Express
  6. Удаление задач из БД
  7. Удаление копий БД

Как восстанавливать резервные копии

Если вас заинтересовало, добро пожаловать под кат.
Total votes 16: ↑11 and ↓5+6
Comments10

В чём истинное предназначение «Косынки» и «Сапёра»

Reading time2 min
Views51K


Пасьянс «Косынка», «Свободная ячейка» и «Сапёр» — популярные игры, которые входят в базовый комплект Windows. Это довольно простые, но увлекательные игры: некоторые люди готовы часами играть, не отрываясь.

Хотя игры увлекательные, но мало кто знает, с какой целью их разработали.
Читать дальше →
Total votes 72: ↑65 and ↓7+58
Comments22

Шкворень: школьники переводят книгу про хакеров

Reading time9 min
Views87K
Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «одного своего знакомого».

Пролог
Глава 1. «The Key»
Глава 3. «The Hungry Programmers»
Глава 4. «The White Hat»
Глава 5. «Cyberwar!»
Глава 6. «I miss crime»
Глава 8. «Welcome to America»
Глава 34. «DarkMarket»



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

Когда я рассказал ребятам в лагере про подвиг Кевина, который выиграл Porsche 944, взломав дозвонившись на радиостанцию KIIS-FM, и как он разоблачил несколько сотен педофилов, школьники окрестили его «американским хакером-тесаком».

Несколько добровольцев вызвались перевести пролог и прикоснуться к миру писательства на Хабре и компьютерной безопасности.
Ведь будущие blackhat/whitehat хакеры должны знать своего друга/врага.

«Поэтому сказано, что тот, кто знает врага и знает себя, не окажется в опасности и в ста сражениях. Тот, кто не знает врага, но знает себя, будет то побеждать, то проигрывать. Тот, кто не знает ни врага, ни себя, неизбежно будет разбит в каждом сражении.» Сунь Цзы

Предлагаю хабрсообществу присоединиться и перевести по одной главе (они по 2-3 страницы). Пишите в личку или в комментах кто что взял, буду оперативно обновлять раздел «Оглавление».

Начало истории о том, как крышевать миллиардный подпольный хакерский бизнес
Читать дальше →
Total votes 23: ↑16 and ↓7+9
Comments21

Как вырастить айтишника

Reading time4 min
Views27K


Как недавно признался Цукерберг, «я никогда не стал бы программистом, если бы не играл ребёнком в компьютерные игры». Не станем утверждать, что путь к успеху в IT лежит через геймерство. Но всё же без тесного знакомства с самыми разными программами и гаджетами программисту не обойтись. И в наши дни знакомство это начинается с достаточно раннего детства. Информационные технологии уже давно проникли в нашу жизнь. Современные программисты, в детстве игравшие на приставках и компьютерах, зачастую сталкивались с непониманием родителей, в чьей молодости не было подобных вещей. Зато теперь эти самые программеры сами обзавелись детьми и гораздо лучше понимают их увлечения. Зачастую даже становятся этакими наставниками по хайтек-развлечениями, обучая детей премудростям комбо-ударов, постройки юнитов и частой отправки врагов на респаун. Как волки обучают волчат азам охоты. И нам стало любопытно, во что же программисты сегодня могут поиграть со своими детьми? И не просто поиграть, а с пользой для молодого ума.
Читать дальше →
Total votes 46: ↑39 and ↓7+32
Comments18

Типичные взаимные блокировки в MS SQL и способы борьбы с ними

Reading time11 min
Views104K
Чаще всего deadlock описывают примерно следующим образом:
Процесс 1 блокирует ресурс А.
Процесс 2 блокирует ресурс Б.
Процесс 1 пытается получить доступ к ресурсу Б.
Процесс 2 пытается получить доступ к ресурсу А.
В итоге один из процессов должен быть прерван, чтобы другой мог продолжить выполнение.
Но это простейший вариант взаимной блокировки, в реальности приходится сталкиваться с более сложными случаями. В этой статье мы расскажем с какими взаимными блокировками в MS SQL нам приходилось встречаться и как мы с ними боремся.


Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments18

Основы многопоточности в .NET Framework

Reading time15 min
Views122K


Многопоточность — одна из самых сложных тем в программировании, с ней постоянно возникает масса проблем. Без четкого понимания внутренних механизмов будет очень трудно предсказать результат работы приложения, использующего несколько потоков. Мы не будем здесь дублировать массу теоретической информации, которой очень много в сети и умных книгах. Вместо этого сконцентрируемся на конкретных и наиболее важных проблемах, на которые нужно обращать особое внимание и обязательно помнить о них в процессе разработки.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments15

PowerShell, кто Вы и что Вам нужно?

Reading time7 min
Views54K


PowerShell — простое синее окно, преобразившее мир администрирования Windows от классического GUI интерфейса, который удобен неподготовленным пользователям, до сценариев, которые автоматизируют все, предоставляют ротацию логов, управление жизненным циклом идентификаций, а также распределением обновлений по серверам.
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments15

Entity Framework и производительность, попытка вторая

Reading time3 min
Views15K
В первой своей попытке закрыть дыру в производительности Entity Framework'а я рассматривал только материализацию. Но дальше в процессе работы, как того и следовало ожидать, я наткнулся и на другое, более весомое ограничение. Операции вставки, модификации и удаления записей происходят тоже медленно. На 100 вставок EF посылает в базу 100 запросов на вставку, никак не пытаясь их сгруппировать.

Кроме этого, в одном из проектов была обнаружена одна неприятная ошибка: EF версии 5.0.0, при работе с Oracle, в Clob/Xml поля не позволяет вставлять строки более 2000 символов.
Решение
Total votes 22: ↑21 and ↓1+20
Comments9

Полезное расширение для SQL Server Management Studio

Reading time2 min
Views23K
Доброго времени суток, уважаемые читатели!

Данный пост будет интересен тем, кто использует SQL Server Management Studio (SSMS) при работе c SQL Server.
Речь пойдет о расширении SQL Refactor Studio для SSMS.
Данное расширение позволяет значительно сэкономить время на ежедневных рутинных операциях.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments16

Интересные моменты работы Linq to Sql

Reading time14 min
Views16K
Прошло уже больше года с моего предыдущего поста на похожую тему. За это время мы как-то не приблизились к переходу на Entity Framework (по текущей легенде, мы перейдём, когда появится стабильная версия EF 7), ну а у меня накопилось некоторое количество опыта, которым я бы хотел поделиться. Думаю, что эта статья будет интересна тем, кто, как и мы, до сих пор пользуются этой в общем-то неплохой, но позабытой Microsoft технологией.

DbType


Указание подсказки DbType (за исключением enum'ов, об этом ниже) не является обязательным для свойств сущностей в Linq 2 Sql. И уж точно не стоит указывать неправильный DbType. Например, не стоит, если в базе колонка имеет тип nvarchar(50), указывать Linq 2 Sql, что колонка имеет тип nchar(50). И особенно не стоит так делать, если это поле является дискриминатором, как в следующем примере:

	[Table(Name = "directcrm.OperationSteps")]
	[InheritanceMapping(Code = "", Type = typeof(OperationStep), IsDefault = true)]
	// ...
	[InheritanceMapping(Code = "ApplySegment", Type = typeof(ApplySegmentOperationStep))]
	public class OperationStep : INotifyPropertyChanging, INotifyPropertyChanged, IValidatable
	{

		// Некоторое количество кода
		...

		[Column(Storage = "type", DbType = "nchar(50) NOT NULL", CanBeNull = false, IsDiscriminator = true)]
		public string Type
		{
			get
			{
				return type;
			}
			set
			{
				if ((type != value))
				{
					SendPropertyChanging();
					type = value;
					SendPropertyChanged();
				}
			}
		}
	}

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity