Pull to refresh
14
0
Иван Перевернихата @ivan_p

User

Send message

Улучшаем производительность: полезные советы и приёмы в .NET

Reading time8 min
Views32K
Эта статья входит в серию статей по улучшению производительности в .NET. Первую статью можно найти здесь.

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

Открывая очередную статью о производительности, пожалуй каждый резонно ищет ответ на вопросы «а как это может помочь в моих проектах» и «бросать ли все и начинать ли срочно исправлять свой код как описано». Исправлю ошибку прошлой статьи, отвечу сразу и подробнее. На мой взгляд, есть смысл использовать наши хаки в следующих случаях:

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

Я ни в коем случае не призываю вас бежать и исправлять весь код в ваших проектах. Более того, я призываю вас не делать этого, потому что это простые хаки, и скорее всего они будут вноситься бездумно в большое количество кода, а это может повлечь за собой появление новых ошибок. Это не те хаки, которые скинут бабу с воза вашего приложения и заставят кобылу-сервак бежать в десять раз быстрее. В лучшем случае удастся выжать процентов десять. Но с миру по нитке — голому рубашка.
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments19

Социальная инженерия на практике: «физический доступ» на закрытую конференцию Кевина Митника

Reading time8 min
Views124K
«Физический доступ — это проникновение в здание интересующей вас компании. Мне это никогда не нравилось. Слишком рискованно. Пишу об этом — и меня уже пробивает холодный пот.» Кевин Митник, «Призрак в Сети. Мемуары величайшего хакера»



Еще в студенческое время, когда проводились олимпиады и конференции по информационной безопасности меня бесило то, что не принимались методы и работы, включающие в себя социальную инженерию (СИ). Как так! Ведь легендарный уже в те времена Митник говорит, что 99% взлома происходит с использованием СИ.

Не могу передать, какова была моя радость, когда я узнал в прошлом сентябре, что Митник приезжает в Москву, но еще большую радость мне доставил «рассказ одного моего знакомого», который попал на закрытую конференцию для бизнес-аудитории. Не знаю, может это он выдумал, но все же опубликую «текст перевода его письма», который он прислал мне с «анонимного почтового ящика».

Под катом отрывок из книги Митника про физический доступ и история про проникновение на конференцию Митника в Москве 2013.
Читать дальше →
Total votes 237: ↑233 and ↓4+229
Comments81

12 правил хорошего тона в деловом общении на английском языке

Reading time4 min
Views112K
Даже прекрасно владея английским, те, у кого этот язык — неродной, могут допускать досадные этические оплошности при деловом общении c клиентами, партнерами, инвесторами, коллегами. Манеры учтивого общения в русском и английском языках различаются; о некоторых нюансах практического взаимодействия с англоговорящими клиентами — в переводе статьи предпринимателя и международного эксперта по продажам Гранта Кардона. Кое-какие советы, впрочем, следует хорошенько обдумать, прежде чем взять на вооружение: давайте обсудим спорные тезисы в комментариях.

Переведено в Alconost.



Читать дальше →
Total votes 126: ↑68 and ↓58+10
Comments79

Как улучшить свой стиль программирования?

Reading time6 min
Views139K

Исповедь 1


Я — разработчик. От своих работодателей я постоянно слышу, что работаю медленно и часто всё усложняю без веской причины. И что мне пора бы что-то с этим сделать. Во избежание.

Весь мой опыт программирования складывается из университетских работ и пары лет пребывания в различных компаниях. Критикующие меня люди неоднократно говорили мне, что в целом я разбираюсь в теме, так что я далеко не клинический случай, как можно было подумать. Однако, очевидно, я выработал совсем не те программистские привычки (как минимум, на взгляд работодателя) и мне нужно срочно изменить их. Везде, где бы я ни работал, мои решения, использующие иерархии мелких классов с делегированием поведения, признавались плохими. Говорят, будто так и надо писать, но это не так. Потому что всё это «как надо» может стоить мне работы.
Читать дальше →
Total votes 235: ↑202 and ↓33+169
Comments248

Как SQL Server каждые два-три часа переключался на использование не оптимального плана выполнения запроса

Reading time3 min
Views23K
Последние пару дней работал над интересной задачей и хотел бы поделиться интересным опытом с сообществом.

В чём проявляется проблема:
Запускаю хранимую процедуру (хранимку) по выборке данных для отчета — выполняется три секунды, смотрю профайлером на бою — у пользователей те же результаты. Но проходит три часа и та же хранимка, с теми же параметрами выполняется уже 2 минуты, и аналогично у пользователей. Причём данные в используемые таблицы не вставлялись/удалялись, окружение не меняли и админы не делали настроек.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments21

Cвежее дополнение к Visual Studio для создания кроссплатформенных приложений на HTML и JavaScript

Reading time3 min
Views25K
image

Сегодня я хочу поделиться с вами еще одним дополнением, позволяющим разрабатывать кроссплатформенные мобильные приложения для Windows, Windows Phone, iOS и Android, используя Visual Studio 2013. В отличие от многих известных вам фреймворков – это дополнение абсолютно бесплатно и легко в освоении для веб-разработчика. Речь пойдет про дополнение, интегрирующее проект Apache Cordova в Visual Studio 2013.
Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments11

AngularJS vs. KnockoutJS

Reading time8 min
Views57K
Добрый день уважаемые, хабрачеловеки.
В данной статье я хочу поделиться с вами своим опытом работы с такими фреймворками как AngularJS и Knockout.
Cтатья будет интересна тем, кто хорошо знаком с JavaScript-ом и имеет представление хотя бы об одном из упомянутых фреймворков и естественно желает расширить свой кругозор.

Читать дальше →
Total votes 63: ↑54 and ↓9+45
Comments18

Как не сойти с ума владельцу стартапа?

Reading time10 min
Views32K


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

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

«Сюрпризы» поджидают на каждом углу. И они приходят не одни. Вместе с ними шагают страхи и сомнения. Именно тому, как выстоять, оставаясь в здравом уме, и будет посвящена эта статья.
Читать дальше →
Total votes 80: ↑61 and ↓19+42
Comments31

Как правильно лгать с помощью статистики

Reading time7 min
Views239K

Существуют три вида лжи: ложь, наглая ложь и статистика (источник)

Есть такой замечательный жанр — "вредные советы", в котором детям дают советы, а дети, как известно, всё делают наоборот и получается всё как раз правильно. Может быть и со всем остальным так получится?

Статистика, инфографика, big data, анализ данных и data science — этим сейчас кто только не занят. Все знают как правильно всем этим заниматься, осталось только кому-то написать как НЕ нужно этого делать. В данной статье мы именно этим и займемся.


Hazen Robert "Curve fitting". 1978, Science.

Структура статьи:
  1. Введение
  2. Предвзятая выборка (Sampling bias)
  3. Правильно выбираем среднее (Well-chosen average)
  4. И еще 10 неудачных экспериментов, про которые мы не написали
  5. Играем со шкалой
  6. Выбираем 100%
  7. Скрываем нужные числа
  8. Визуальная метафора
  9. Пример качественной визуализации
  10. Заключение и дальнейшее чтение

Читать дальше →
Total votes 312: ↑309 and ↓3+306
Comments74

Ratchet 2.0 — самый красивый HTML5-фреймворк теперь дружит и с iOS, и с Android

Reading time2 min
Views68K


Ratchet — так называется HTML5-фреймворк для быстрого прототипирования мобильных приложений, который 1,5 года назад создали те же парни, которые когда-то выпустили Bootstrap.

Инструмент позволяет быстро создать красивый интерфейс мобильного приложения — и дает вам красивые стили и замечательные иконки, согласованные с гайдлайном в зависимости от платформы. Можно сделать прототип, а можно завернуть в PhoneGap и без особых усилий получить сравнимый с нативным интерфейс приложения в продакшене.
Фреймворк очень прост в использовании и прекрасно документирован.

Я являюсь поклонником Ratchet с момента выхода первой версии. Тогда он был доступен только под iOS.
Не так давно вышла вторая версия, которая наряду с iOS поддерживает Android. Ура-ура!
(правда, обратной совместимости с первой версией нет)

Кому интересно про новые возможности Ratchet 2.0 — прошу под кат!
Читать дальше →
Total votes 90: ↑85 and ↓5+80
Comments19

Эрон-дон-дон или на что ещё может сгодиться ваш Windows Phone

Reading time7 min
Views50K
image

Привет всем хабражителям!

Наверняка, многим в детстве нравились машинки на радиоуправлении. Да и не только в детстве: я уверена, что и в возрастной категории 30+ найдётся масса любителей лихой езды в миниатюрном масштабе. Вот и я с детства мечтала о такой машинке, однако девочкам обычно дарят не машинки, а кукол, и моя мечта оставалась невоплощённой до недавнего времени. Но теперь я выросла, и простая радиоуправляемая машинка показалась мне достаточно скучной. И в один прекрасный день мне в голову пришла идея, как себя развлечь и заодно модернизировать машинку: я решила организовать её управление со смартфона по каналу WiFi.
Читать дальше →
Total votes 123: ↑111 and ↓12+99
Comments57

Построение RESTful Message Based веб-сервисов на WCF

Reading time19 min
Views34K

Введение


Я уже писал о том, как сделать SOAP Message Based веб-сервис на WCF. А сейчас хочу рассказать о проектировании и построении RESTful Message Based веб-сервисов на WCF. Для понимания данной статьи необходимы базовые знания о REST и о том, как создавать RESTful веб-сервисы на WCF. Для ознакомления с RESTful веб-сервисами вы можете ознакомиться с: A Guide to Designing and Building RESTful Web Services with WCF 3.5.

В статье я постараюсь раскрыть и решить проблемы дизайна RESTful. Вы узнаете, как построить RESTful веб-сервис, который:
  • Обладает стабильным и универсальным интерфейсом.
  • Передает данные в соответствие с паттерном DTO.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments57

Intl к нам приходит!

Reading time4 min
Views30K
datemap Нет, не Intel. Intl — JavaScript объект, содержащий в себе функции форматирования чисел, дат и сравнения строк. Приходит, потому что 29 апреля Firefox, последний из популярных браузеров, не поддерживающий Intl, обновляется до 29 версии, в которой поддержка интернационализации будет включена.

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

Что же даёт Intl JS программисту?


А очень много
Total votes 76: ↑73 and ↓3+70
Comments28

Завершен перевод книги Эдди Османи «Паттерны для масштабируемых JavaScript-приложений»

Reading time1 min
Views36K
Ура! Мы закончили работу над переводом замечательной книги об архитектуре JavaScript-приложения. Работать над переводом было очень приятно — мы получили около 40 пулл-реквестов от совершенно незнакомых нам людей, которые помогли исправить множество опечаток, неточностей и различных багов на сайте! Ссылка на наш перевод упоминалась в курсе «Фронтенд-разработка», читаемом во втором семестре Технопарка Mail.ru, а также в некоторых независимых подкастах.

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

Читать книгу можно на сайте перевода. Также можно скачать книгу в удобном формате: epub, mobi, fb2. Исходный код проекта доступен в репозитории на GitHub
Total votes 108: ↑102 and ↓6+96
Comments23

За что конкретно я ненавижу некоторых отдельно взятых маркетологов — или как айтишник по магазинам ходил

Reading time5 min
Views613K
Знакомьтесь, это обычный «литровый» пакет молока:

image

  • Проверка на внимательность: там 900 грамм. Рядом несколько по 950. Но пакет может быть воспринят как литровый.
  • Проверка на знание физики. Рядом лежит похожий кефир. Объём измеряется в миллилитрах, масса — в граммах. Плотность кефира трагически выше плотности воды. То есть 900 грамм кефира 3,2% жирности — это примерно 874,5 миллилитров.

Второй пациент:



25 лет гарантии. Круто, правда? Есть одна проблема. Надо сохранять чек. Проверка, опять же, на знание физики. Чек у них печатается на обычной кассовой термоленте (я проверил на месте). У меня в офисе лежит много чеков. Мы их ксерокопируем, потому что через год-два они полностью выцветают. Самый старый чек, который видел коллега, держался 3 года в папке в архиве. UPD: смотрите самый низ топика, Икея ответила.

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

Осторожно, трафик: под катом много находок с фотографиями.
Читать дальше →
Total votes 814: ↑769 and ↓45+724
Comments778

Создание своего банка, или Как обеспечить себе безбедную старость

Reading time15 min
Views354K
Наблюдая за своими родителями-пенсионерами, а точнее за размерами их пенсий, я крепко задумываюсь о том, как обеспечить себе нечто оное в достойном меня размере. На государство в составе СНГ рассчитывать, похоже, не приходится. Значит, надо что-то делать самому! И начинать надо сейчас, пока мне 32 года, есть какой-никакой заработок и силы крутиться. Раньше были мысли, что я буду вечно молодым, вечно здоровым и все время что-то делать. Постепенно начинаю осознавать, что лет 20… 30 — и силы будут таять (или распыляться). Поэтому пару лет назад я начал понемногу что-то делать в этом направлении. Получил некоторый опыт, который может быть интересен уважаемому сообществу. Даже если для читателя вопрос пенсии сейчас звучит безумно абстрактно, то все равно рекомендую хотя бы пробежаться. Если бы я 5 лет назад почитал такой материал — я был бы уже существенно богаче!..
UPD: в статье добавил про смысл диверсификации, а то в комментариях много вопросов было…
В общем, рекомендую!
Total votes 222: ↑155 and ↓67+88
Comments345

Подборка трюков при анализе защищенности веб приложений

Reading time5 min
Views35K
Всем привет! Этот топик посвящен разным трюкам при анализе защищенности (пентесте) веб приложений. Периодически сталкиваешься с ситуацией, когда надо обойти какую-нибудь защиту, выкрутиться в данных ограничениях или просто протестировать какое-то неочевидное место. И этот пост как раз об этом! Добро пожаловать под кат.
Читать дальше →
Total votes 87: ↑81 and ↓6+75
Comments16

8 HTML элементов, которые вы не используете (а следовало бы)

Reading time4 min
Views96K
image
Веб сегодня все больше и больше семантический. Но что означает «семантический»? Почему это важно?

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

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

Ок, итак семантическая разметка — это хорошо, но как ее использовать. Лучше всего начать с замены обычных тегов на более выразительные. Давайте посмотрим восемь элементов, которые позволят вам войти в эту игру.
Читать дальше →
Total votes 214: ↑175 and ↓39+136
Comments101

Архитектура карьерного роста

Reading time9 min
Views232K

С понедельничком (говорят — самым депрессивным в году), хабровчане!
После публикации этой статьи, многие заметили, что я шустрый карьерист, и у меня начали просить совета на тему: как обеспечить карьерный рост в IT-индустрии. Во избежание повторения одних и тех же советов разным людям в личных сообщениях я и пишу эту статью, делясь в ней историей своего собственного карьерного роста и основными наблюдениями, которые я сделал за 13 лет опыта работы в больших и не очень компаниях.
Сразу предупрежу, что не претендую на изложение универсальной теории карьерного роста сферического коня в вакууме, и большинство замечаний искривлено призмой моего восприятия. То, что неоднократно работало в моем случае, необязательно сработает в вашем.

Читать дальше →
Total votes 140: ↑125 and ↓15+110
Comments152

NinjaMock — бесплатное приложение для прототипирования интерфейсов

Reading time6 min
Views179K
Привет %username%! У нас отличные новости: вышла официальная версия NinjaMock — онлайн-сервиса для создания прототипов. Теперь ты можешь рисовать отличные прототипы веб- и мобильных приложений совершенно бесплатно!

Узнай, как это возможно и почему NinjaMock лучше всех!
Total votes 155: ↑151 and ↓4+147
Comments123

Information

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