Search
Write a publication
Pull to refresh
0
@0x2d7e21read⁠-⁠only

User

Send message

Работаем с кнопкой Control в Visual Studio + Resharper

Reading time5 min
Views10K
Введение

Есть очень много статей посвященных тому, как ускорить свою работу. В них написано о «программировании со скоростью мысли». Однако, я хочу поделиться с вами одним трюком, который позволит работать еще быстрее. Для этого потребуется Visual Studio 20xx + Resharper.

При работе в студии я условно разделяю два режима работы:

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

В связке студии и решарпера кнопку Control для редактирования текста я использую для таких комбинаций:

  • Control + B: перейти к определению, при настройках по-умолчанию аналогично Control + клик.
  • Control + Shift + B: перейти к реализации, использую чаще чем Control + B, так как у меня много интерфейсов.
  • Control + W: расширить выделение на логический блок.
  • Control + Shift + W: сузить выделение на логический блок.
  • Control + D: дублировать выделение, если выделения нет, то продублируется текущая строка, позволяет очень быстро множить строки или выделение, не трогая буфер обмена.
  • Control + C: скопировать выделение, если выделения нет, то скопируется текущая строка.
  • Control + X: удалить выделение в буфер обмена, если выделения нет, то удалится (в буфер обмена) текущая строка. Если буфер обмена не важен, то этой комбинацией можно быстро удалять строки одну за другой.
  • Control + V: вставить из буфера обмена.
  • Control + Z: отменить операцию.

Заметьте, что все эти комбинации можно делать одной левой рукой, и не нужно убирать правую руку с мышки. По умолчанию Control + клик работает аналогично Control + B. Если убрать в настройках решарпера переход по Control + клик, мы получим, что по этой комбинации будет выделяться слово целиком, что очень очень удобно. Какие преимущества нам дает выделение слова по Control + клик рассмотрим на примерах.
Читать дальше →

10 советов фрилансерам, как расставлять приоритеты задачам

Reading time9 min
Views27K
Вы когда-нибудь задумывались: «А сколько стоит пароход построить?”, “А сколько — дизайн-макет сделать?”, “А из чего складывается такая цена?»

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

А что с дизайн-макетом? Из чего складывается его цена? Ну, допустим, вложим в стоимость “амортизацию оборудования” — деньги на ПК и ПО, которые регулярно нужно обновлять. А что ещё? Остается, собственно, только оплата труда дизайнера-верстальщика. А как её рассчитать? Тут способов два: либо оплата за человеко-часы (сколько времени потратил — столько и оплатили); либо другой более распространенный подход — сдельная оплата (т.е. оценил бриф-ТЗ на макет, прикинул его сложность, назвал стоимость).

Что в первом случае (прямо), что во втором (косвенно), стоимость будет зависеть от времени, которое вы тратите на свою работу. А из чего складывается это время? Есть факторы внутренние: мотивация, навыки работы, муза, в конце концов… Они подвластны лишь вашей силе воли, тут дза-дзен и прочее самосовершенствование вам в помощь. Но остаются ещё и факторы внешние: от обстановки в рабочем кабинете до методологии, по которой вы работаете, — и с ними всё интереснее…


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

Флешка OneDrive — portable версия для OneDrive

Reading time2 min
Views18K

Флешка OneDrive — и это не метафора, в статье пойдет речь о том, как создать флешку, синхронизированную с OneDrive, используя portable версию syncDriver для OneDrive. «Вес» портативного OneDrive составляет немного более чем 3 MB, причем вся конфигурация и база данных синхронизации хранятся там же, на флэш-накопителе. Всё работает на разных версиях Windows от XP до Windows 8.1, и даже Windows 10. При этом не важно, как Windows назовет вам устройство, когда вы будете использовать флешку на другом компьютере.
Интересно, значит, приступим...

Поговорим про отличия Mono от MS.NET

Reading time9 min
Views77K


С каждым днём кроссплатформенная разработка под .NET становится всё более реальной. А после недавнего анонса официальной поддержки Linux/MacOS счастливое будущее стало ещё немножечко ближе. Вышеприведённая картинка утратила свою былую актуальность, ведь исходники теперь будут под MIT. Впрочем, писать кроссплатформенные .NET-приложения можно достаточно давно — в этом нам помогает Mono. Но вот отношение к нему в сообществе довольно неоднозначное. Мне зачастую приходится слышать изречения вроде «Mono тупит, под него всё в три раза медленнее работает» или «Под Mono вообще нормально ничего не запускается». Причём очень редко доводится слышать от этих людей конкретные факты. Вопросы «А что конкретно тупит?» или «А что конкретно не работает?» повергают их в ступор. Не всех (некоторые способны на конструктивную дискуссию), но большинство. Чаще всего начинаются возмущённые ответы в духе «Да вообще ничего не работает! А если и работает, то очень медленно!». В конце беседы создаётся впечатление, что каждая конечная машинная команда под Mono работает в несколько раз медленнее, а в половине исходников стоят throw new Exception().

В этом посте мне хотелось бы немножко поделиться опытом. Не так давно мы портировали наш продукт PassportVision (анонс на Хабре) под Linux. Могу заявить, что работает он вполне нормально. Да, чутка медленнее, чем под Windows на классическом .NET от Microsoft (далее — MS.NET). Но работает вполне стабильно, а падение производительности не принципиальное. При этом продукт у нас достаточно большой и вполне попадает под категорию enterprise, а возможности C#/.NET мы используем на полную катушку. Так что завести большое серверное приложение под .NET реально — было бы желание. Также мне довелось беседовать с разными разработчиками, которые пишут что-то под Mono — истории в большинстве своём успешные.

Но почему же тогда встречается столько негатива в сторону Mono? Я считаю, что проблема в том, что люди не особо хотят разбираться в разнице между рантаймами. Запустили разок какое-нибудь .NET-приложение под Linux на Mono 2.4, а оно с ходу не запустилось — всё, Mono целиком плохой, не будем его использовать. А в итоге виноват оказывается один-единственный метод, у которого реализация немного отличается от MS.NET. Новые версии Mono выходят раз в пару месяцев, реализацию уже давно поправили, но люди всё равно продолжают ходить и хаять бедный Mono, не желая разбираться в деталях.

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

Когда строка не является строкой?

Reading time6 min
Views21K
В рамках моей «работы» над стандартизацией C# 5 в технической группе ECMA-334 TC49-TG2 мне посчастливилось увидеть несколько интересных способов, которыми Владимир Решетников проверял C# на прочность. В данной статье описана одна из проблем, которые он поднял. Разумеется, она, скорее всего, никак не затронет 99.999% C#-разработчиков… но разобраться все равно любопытно.

Спецификации, используемые в статье:


Что такое строка?


Как бы вы объявили тип string (или System.String)? Я могу предположить несколько вариантов ответа на данный вопрос, от расплывчатых до довольно конкретных:

  • «Какой-нибудь текст в кавычках»
  • Последовательность символов
  • Последовательность символов Юникода
  • Последовательность 16-битных символов
  • Последовательность слов UTF-16

Только последнее утверждение полностью верно. Спецификация C# 5 (раздел 1.3) гласит:

Обработка строк и символов в C# использует UTF-16. Тип char представляет слово UTF-16, а тип string – последовательность слов UTF-16.

Пока всё в порядке. Но это C#. А как насчет IL? Что используется там, и имеет ли это значение? Оказывается, что имеет… Строки должны быть объявлены в IL как константы, и природа этого способа представления важна – не только кодировка, но и интерпретация этих закодированных данных. В частности, последовательность слов UTF-16 не всегда может быть представлена в виде последовательности слов UTF-8.
Читать дальше →

Собрать проект Visual Studio в один файл с помощью ILMerge

Reading time3 min
Views108K
app.exe, d1.dll d2.dll = app.exeОбычно результатом компиляции проекта является сборка (assembly) проекта, а также его зависимости (Referenced Assemblies). Однако иногда нужно чтобы результатом был один файл единственный файл, независимый от других сборок. Например простая утилита, которую можно будет куда угодно скопировать и она будет работать.

Пример

Условно говоря после:
    compile App\App.csproj  
    dir App\bin\Release  
Получаются:
    App.exe
    dep1.dll
    dep2.dll
Нам же нужно лишь один самодостаточный
    App.exe 
То есть содержащий в себе dep1.dll и dep2.dll

На Хабре уже присутствует решение со встраиванием зависимостей в ресурсы, здесь я покажу как это сделать с помощью ILMerge и Post Build Event в Visual Studio.

читать как это сделать

Как непрограммист создал своё мобильное приложение

Reading time6 min
Views48K
Привет, Хабр!

Хочу поделиться историей, как я, непрограммист, смог написать своё первое мобильное приложение благодаря (или вопреки ему) MS Visual Studio 2013 и даже опубликовать его в магазине Windows Phone. Прошу учесть читателей, что я максимально неопытный непрограммист, который мало что умеет в этой области, поэтому если я решал какие-то проблемы не так изящно, как их можно было бы решить, то особо не глумитесь – это мой первый опыт в подобном деле.

Началось всё с того, что, учась на курсе Cyber Security в Таллиннском Техническом Университете я прослушал курс VB.NET в рамках работы с Windows Forms. Затем где-то случайно прочитал, что MS Visual Studio 2013 позволяет создавать мобильные приложения не только на каком-нибудь загадочном для меня C# или Java, а ещё и на VB.NET.

«Вот это шанс – так я же мегаспец в VB.NET» – подумалось мне тогда. Срочно воспользовавшись студенческой лицензией, я скачал себе MS Visual Studio 2013 и преступил к таинству созданию своего первого приложения.
Читать дальше →

Адаптация ZenCoding к C# — ZenSharp

Reading time3 min
Views11K
Многие наверняка знают, что для HTML & CSS существует великолепный инструмент ZenCoding(emmet), который позволяет очень сильно упростить ввод рутинных конструкций языка, определяя специальный язык мнемоник. C# менее многословный язык, чем Html, но тем не менее, ввод его конструкций можно здорово оптимизировать.
Я предлагаю динамическое расширение идеи мнемоник, впервые услышанное мною от Дмитрия Нестерука [1].

proto

sample

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

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

Лицензия для вашего open-source проекта

Reading time98 min
Views191K
В этой статье я хочу немного поговорить об авторском праве и свободных лицензиях на ПО. Текст является результатом самостоятельного выбора лицензий и их применения к своим проектам.

Статья будет полезна тем, кто хочет:

— в общих чертах понять, что такое авторское право (но лучше обратиться к юристу);
— подобрать свободную лицензию для своего проекта;
— разобраться, что нужно писать в шапке файла исходного кода.
Читать дальше →

Дизайн vs. Верстка?

Reading time7 min
Views45K
На Хабрахабре уже не раз поднимался вопрос о том, что популярные на сегодняшний день жизненные циклы разработки веб-интерфейсов, прямо говоря, устарели. Последний раз его обсуждали в публикации «Дизайн в браузере», но так и не пришли к единому мнению.

Настало время наконец-то найти ответы на два главных вопроса: “Кто виноват?” и “Что делать?” в вечной борьбе дизайна и верстки…


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

Sublime Text Vintage Mode — справочник по горячим клавишам

Reading time3 min
Views50K
Как увидел Vintage Mode в действии сразу захотелось научиться им владеть. Как раз к этому времени я прошел курс Соло + VerseQ для слепого печатания на английском. Связка с Vintage Mode, мне казалось, будет очень эффективной для верстки, и я не ошибся.

image Для тех кто не знает Vintage Mode (Insert Mode в VIM) плагин для Sublime Text, который идет в комплекте с редактором. Взят он из редактора VIM, и многие думают, что пользу он может принести только бывшим пользователям Vim, но это ошибочное мнение. По умолчанию плагин деактивирован, как активировать объяснять не буду инструкция есть здесь. Скажу только что для входа в режим Vintage используется клавиша i, а для выхода ESC. По моему это крайне неудобно. Я воспользовался советом из оффициальной документации и теперь вхожу в Vintage Mode два раза нажав клавишу i. Подробности тут.

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

ASP.NET vNext Ликбез

Reading time5 min
Views42K
Ожидаемый релиз платформы ASP.NET (vNext) один из наиболее насыщенных в плане новшеств. Но вместе со всеми новинками к нам приходит и огромное число новых спецификаций, компонентов и других особенностей. В то же время мир .NET эволюционирует с такой скоростью, что просто следить за всеми новинками web-разработки от Microsoft почти не возможно. Особенно если вы до сих пор пишете на технологиях 10-летней давности (ASP.NET Web Forms, .NET 2.0) или выходец не из .NET мира веб-разработки. Возможно именно сейчас один из тех моментов когда можно пропустить все версии предыдущих обновлений и, начав с чистого листа, попасть в новый поток развития платформы. Рассмотрим основные пункты для этого:
  • vNext
  • Roslyn
  • OWIN
  • Katana
  • K

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

Использование подхода MVC в WinForms для самых маленьких

Reading time8 min
Views37K
В статье описаны общие принципы построения приложений, с использованием подхода MVC, на примере внедрения в приложение, использующее много лет Code Behind подход.

Не будет:
• Классического Unit Test;
• Принижения влияния Code Behind;
• Неожиданных открытий в MVC.

Будет:
• Unit Test и Stub;
• MVC;
• Внедрение подхода на базе существующего продукта.
Читать дальше →

Конечный автомат (он же машина состояний) на чистом С

Reading time5 min
Views133K
Почти каждый микроконтроллерщик сталкивался с громадными switch-case и мучительно их отлаживал.
И много кто, начиная писать реализацию какого-либо протокола, задумывался как написать её красиво, изящно, так чтобы через месяц было понятно что ты имел в виду, чтобы она не отжирала всю память и вообще какала бабочками.
И вот тут на помощь приходят машины состояний, они же конечные автоматы (те самые которые используются в регулярных выражениях).

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

Pro Git, 2-е издание

Reading time1 min
Views68K

Вне всяких сомнений, Pro Git — это одна из лучших книг про систему контроля версий git. Совсем недавно появилось второе издание этой замечательной книжки. Большие изменения произошли в издательском процессе: исходный код книги теперь хранится в AsciiDoc, а не в Markdown, а различные форматы (PDF, ePub и Mobi) автоматически генерируются с помощью O'Reilly Atlas platform. Разработка книги активно ведётся на гитхабе, актуальная online-версия находится в открытом доступе на официальном сайте, а любители печатной продукции могут заказать себе экземпляр на Amazon. Второе издание получилось почти в два раза больше первого: на сегодняшний день PDF-версия содержит 570 страниц. Помимо улучшения старого материала, книжка также пополнилась новыми главами и разделами:
Читать дальше →

Ультра-легкий переключатель раскладки клавиатуры

Reading time1 min
Views103K
От многой мудрости много скорби, и умножающий знание умножает печаль: чем глубже вникаешь в особенности мира IT, особенно той его части, которая про защиту информации, тем крепче паранойя. И это совсем не означает, что за тобой не следят. В очередном приступе тревоги за сохранность нажимаемых кнопок я удалил Punto Switcher. Однако без переключения раскладки после уже набранного слова, к которому я так привык, стало очень тоскливо. Никаких вменяемых альтернатив я так и не нашел, поэтому пришлось написать небольшую обертку над парой функций win api.

Возможно, результат нескольких дней тыканья веточкой в user32.dll понадобится еще нескольким людям, в виде самой программки, либо в качестве примера отправки сообщений окнам из .Net, так что вот: аналог punto switcher, без свистелок, перделок и яндекс бара.

К сожалению, в скайпе так и не работает. Буду благодарен, если кто-то опытный укажет мне на ошибки в коде.
Читать дальше →

Как потратить шесть лет жизни впустую, или история провала

Reading time6 min
Views115K


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

По профилям многих пользователей вижу, что на хабре есть достаточное количество молодых людей 16-22 лет и эта история, наверное, как раз для них. Если вы состоявшийся специалист, данный пост не стоит вашего внимания, просто проходите мимо. Если вы студент, или человек, недавно получивший свою первую работу — u r welcome под кат; возможно, вы вынесете что-то полезное для себя.
Читать дальше →

Оформление резюме для зарубежных компаний

Reading time4 min
Views74K

Disclaimer


Текст не претендует на истину в последней инстанции, описанное ниже основано на собственном опыте и рекомендациях людей с больше чем двадцати годами опыта в IT в США и Канаде.

Анализ резюме рекрутером


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

У вас есть 3-5 минут чтобы заинтересовать своим резюме. Это то, сколько будет уделено времени на него в начале, в лучшем случае. Часто резюме могут отсеяться спустя 10 секунд. Вас никто не знает, вы это лист бумаги с текстом, и это единственное, что вас может отличить от других. Представьте, что вы хотите купить новый телевизор, вас вряд ли будут интересовать длинные мануалы или 5 страничные описания. Выбирая из десятков и сотен аналогов, нужно за 5-10 секунд сделать предварительный отсев по определенным параметрам. Оставшимся 5-10 устройствам вы выделите чуть больше времени, а потом еще помешкаете выбираю между двух. Как то так и происходит отбор кандидатов.
Читать дальше →

Обзор нетбука MSI S12

Reading time19 min
Views107K
AMD A4-5000 / 11.6" / 1366x768 / глянец / 4Gb / 500Gb / Wi-Fi / Bluetooth / DOS / ~ 11-14 т.р.
MSI S12
Решил написать этот обзор, так как был заворожен этим нетбуком сразу, как только нашел его.

Набор моих обязательных требований к портативным компьютерам, как оказалось, был очень взыскателен:

  1. Матрица 11.6" – даже 13.3" мне уже многовато.
  2. Минимум 16Gb DDR3-3L 1600 (12800).
  3. Вес вместе с блоком питания до 1.5 кг. — это просто Must Have, так как это очень комфортно.
  4. 4 Core CPU, желательно AMD Kabini\Kaveri.
    Не то, чтобы я «не люблю» Intel Core i5-i7.
    Но для работы мне столько не нужно.
    Хотя, впрочем, да — я фанат AMD уже лет 15.
    Мне нравится Intel как инноватор.
    Но конкуренция должна быть свободной.
  5. Наличие Legacy режима работы BIOS.
    Не то, чтобы я «не люблю» Microsoft.
    Хотя, впрочем, да — у меня Linux, уже лет 10.
    Поэтому присутствие UEFI Secure Boot или других ограничений меня бы очень сильно расстроило.
    Мне всё таки работать нужно, а не разбираться почему оно тормозит\упало\ограничено и тому подобное.
  6. Нормальная графическая подсистема, так как на работе я подключаюсь к Full HD монитору. Соответственно и желание посмотреть что-нибудь в High Res тоже иногда возникает. Да и дома на телевизоре есть HDMI, которому иногда что-нибудь нужно показать.
  7. Полноценная клавиатура. Я давно не смотрю на клавиши. Но тот человек, который придумал в моём старом Acer избавить меня от полноценных стрелочек и клавиш Home, End, PgDn и PgUp — он явно желал сделать мне плохо. Больше НИКОГДА! Потому, что привыкнуть к этому убожеству за два года я так и не смог.


Мои ожидания от MSI S12 полностью оправдались, поэтому захотелось обязательно поделиться, вдруг кому-нибудь тоже пригодится. Под катом, конечно же, будут какие-то фотки, ролики YouTube, агитация, провокации и другие сведения о том, каким я вижу «правильный нетбук» и почему данный экземпляр — это именно «оно».

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

Update 3! Серия из 24 лабораторных работ по разработке, тестированию и управлению жизненным циклом ПО для Visual Studio 2013

Reading time5 min
Views13K
Казалось бы, что только совсем недавно мы опубликовали 24 лабораторные работы по разработке, тестированию и управлению жизненным циклом ПО для Visual Studio 2013 на русском языке (http://habrahabr.ru/company/microsoft/blog/236801/), как уже вышло долгожданное обновление Update 3 (http://habrahabr.ru/company/microsoft/blog/240639/).

Мы не могли остаться в стороне: ahriman перевёл обновлённые лабораторные работы на русский язык.
Ссылки на лабораторные работы, инструкция и т.д.

Information

Rating
Does not participate
Registered
Activity