Как стать автором
Обновить
3
0
Андрей @DreamC

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

Отправить сообщение

5 действительно бесплатных нелинейных видеоредакторов для Windows

Время на прочтение6 мин
Количество просмотров434K
Этот пост призван помочь тем, кому, как и мне, внезапно стало тесно с Movie Maker.

Видеоредакторы почти не интересовали меня до прошлого месяца, пока с друзьями мы не задумали снять что-нибудь оригинальное к Новому году. Креативность наша ограничилась тем, чтобы, говоря терминами прежде мне неизвестными, применить эффект “Разделение экрана” (Split Screen). То есть реализовать нечто такое:


Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии92

Печатаем простейший корпус для самодельного устройства

Время на прочтение3 мин
Количество просмотров76K

Напечатать подходящий корпус для своего устройства — это наверно самая популярная мысль при знакомстве любого изобретателя с технологией 3д печати. Но на практике всё оказывается не так просто как в рекламе 3д-принтера и под катом я немного подробней расскажу к каким выводам я пришёл в попытках сочинить удобную конструкцию корпуса.


Читать дальше →
Всего голосов 85: ↑85 и ↓0+85
Комментарии101

Изучение C# — Практический подход

Время на прочтение5 мин
Количество просмотров30K
Начинающему программисту важно не только изучать теорию и получать необходимые знания, но и практиковать основные навыки создания различных программ. Это особенно актуально для инженеров, студентов и талантливых детей.

Практическое изучение языка Си шарп

Проблема в том, что для практического опыта недостаточно книжек и научных статей. Для эффективной практической работы требуется регулярное живое общение, интересный учебный план, обратная связь, а также самостоятельные задания с обязательной проверкой, и последовательный доступ к урокам. Речь пойдёт о проекте "Формула программиста".
Читать дальше →
Всего голосов 23: ↑16 и ↓7+9
Комментарии21

Событийная модель на основе async и await

Время на прочтение7 мин
Количество просмотров25K
В далеком 2012, когда цена на нефть еще была трехзначной, а трава зеленее, майкрософтом был выпущен .NET 4.5, а с ним и конструкция async/await. Про неё написано уже довольно много статей (Async в C#), а большинство разработчиков C# хорошо её изучили. Но все ли варианты использования были рассмотрены, можно ли выжать из await немного больше?

Самым очевидным вариантом использованием этой конструкции является ожидание завершения некой асинхронной операции. Первое, что приходит на ум — это ожидание ввода-вывода. Например, мы послали запрос клиенту и ожидаем ответа, тогда используя await мы сможем продолжить выполнение кода после получения ответа, а сам код при этом будет выглядеть синхронным. Но что если во время ожидания возникнет необходимость прервать выполнение этой операции? Тогда нам придется использовать CancellationToken, причем если таких операций несколько, то токены необходимо будет линковать или использовать один общий токен. При этом причина отмены будет скрыта от кода, использующего этот CancellationToken. Кроме отмены, код должен поддерживать обработку потери соединения, таймаута, возвращаемых ошибок и т.д.

В классическом варианте это выльется в использование CancellationToken для обработки отмены, try catch для обработки разрыва соединения и код анализа возвращенных данных, для оценки результата запроса. Но можно ли уместить всё это в единой парадигме? В этот статье я предлагаю рассмотреть альтернативный подход, основанный на событийной модели с использованием синтаксического сахара async/await.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии18

Правила работы с Tasks API. Часть 1

Время на прочтение3 мин
Количество просмотров52K
С момента появления тасков в .NET прошло почти 6 лет. Однако я до сих пор вижу некоторую путаницу при использовании Task.Run() и Task.Factory.StartNew() в коде проектов. Если это можно списать на их схожесть, то некоторые проблемы могут возникнуть из-за dynamic в C#.

В этом посте я попытаюсь показать проблему, решение и истоки.

Проблема


Пусть у нас есть код, который выглядит так:

static async Task<dynamic> Compute(Task<dynamic> inner)
{
    return await Task.Factory.StartNew(async () => await inner);
}

Вопрос знатокам: есть ли в данном примере проблема? Если да, то какая? Код компилируется, возвращаемый тип Task на месте, модификатор async при использовании await — тоже.

Думаете, речь идет о пропущенном ConfigureAwait? Хаха!
Если интересно, тогда прошу под кат
Всего голосов 23: ↑20 и ↓3+17
Комментарии10

Что эффективнее: научная библиотека «КиберЛенинка» или государственная НЭБ за 1 млрд руб?

Время на прочтение4 мин
Количество просмотров19K
Вопрос на засыпку: какая из двух электронных библиотек выигрывает по уровню доступности, эффективности, индексации в поисковиках и т.д.— «КиберЛенинка», работающая по модели открытого доступа, или Национальная электронная библиотека (НЭБ), проект министерства культуры РФ с бюджетом более миллиарда рублей?

Центральный экономико-математический институт РАН по заказу Фонда развития интернет-инициатив провёл специальное исследование и опубликовал отчёт с оценкой экономического эффекта от реализации проекта НЭБ, сравнивая его с той же «КиберЛенинкой».

О результатах сравнения несложно догадаться.
Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии9

Построение Android приложений шаг за шагом, часть первая

Время на прочтение8 мин
Количество просмотров146K


В этой статье мы поговорим о проектировании архитектуры и создании мобильного приложения на основе паттерна MVP с использованием RxJava и Retrofit. Тема получилась довольно большой, поэтому подаваться будет отдельными порциями: в первой мы проектируем и создаем приложение, во второй занимаемся DI с помощью Dagger 2 и пишем тесты unit тесты, в третьей дописываем интеграционные и функциональные тесты, а также размышляем о TDD в реалиях Android разработки.
Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии48

Расчет биномиальных коэффициентов на Си (С++) и Python

Время на прочтение9 мин
Количество просмотров58K
При решении задач комбинаторики часто возникает необходимость в расчете биномиальные коэффициентов. Бином Ньютона, т.е. разложение image также использует биномиальные коэффициенты. Для их расчета можно использовать формулу, выражающую биномиальный коэффициент через факториалы: image или использовать рекуррентную формулу:image Из бинома Ньютона и рекуррентной формулы ясно, что биномиальные коэффициенты — целые числа. На данном примере хотелось показать, что даже при решении несложной задачи можно наступить на грабли.
Читать дальше →
Всего голосов 28: ↑19 и ↓9+10
Комментарии73

МТС: яйцом к клиенту, или как бороться с заменой sim

Время на прочтение10 мин
Количество просмотров61K
На хабра-сайтах не раз (см. тут и здесь) выходили статьи о том, как защитить себя от замены sim-карты. Но, не смотря на то, что все эти советы — дельные, в них есть одно слабое и при этом — очень значимое место, которое с юридической точки зрения называется добросовестность одной из сторон, т.е. провайдера.

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

Цель статьи простая — дать людям, не имеющим специальных юридических знаний, краткий список норм, спасающих от произвола операторов сотовой связи, в частности, МТС, потому как заменить sim могут не только без вашего ведома, но даже без поддельного паспорта и просто — по сговору с сотрудником, т.е. технически тут помочь нечем.

При подготовке искового изучил несколько десятков форумов, на которых повторялись типовые вопросы по нормативной базе. Попробовал изложить их в систематизированном виде.
Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии134

Советы по оптимизации Windows для использования SSD

Время на прочтение5 мин
Количество просмотров60K
Привет, Geektimes! Многие до сих пор продолжают утверждать, что твердотельные накопители ненадежные, поскольку имеют ограниченное количество циклов перезаписи и больше подвержены износу, нежели HDD. Сейчас большинство мифов об этом уже развенчаны, однако некоторые советы по оптимизации Windows для работы с SSD могут оказаться полезными.

image

Многие трюки по оптимизации устарели с того момента, когда SSD были слишком дорогими и ограничивались максимальной емкостью в 128 ГБ. Тем более в погоне за более высокой производительностью накопителя вы можете затронуть другие процессы и в конечном итоге сделать только хуже. Поэтому очень важно знать, какие советы действительно окажутся полезными и будут работать, а какие в современных реалиях бестолковые и не имеют практического смысла.
Читать дальше →
Всего голосов 55: ↑30 и ↓25+5
Комментарии39

Рекомендации по написанию кода на C# от Aviva Solutions

Время на прочтение40 мин
Количество просмотров80K
Представляю вашему вниманию перевод документа "Coding Guidelines for C# 3.0, 4.0 and 5.0".

Целью создания этого списка правил является попытка установить стандарты написания кода на C#, которые были бы удобными и практичными одновременно. Само собой, мы практикуем то, что создали. Эти правила являются одним из тех стандартов, которые лежат в основе нашей ежедневной работы в AvivaSolutions. Не все эти правила имеют четкое обоснование. Некоторые из них просто приняты у нас в качестве стандартов.

Статический анализатор кода VisualStudio (который также известен как FxComp) и StyleCop могут автоматически применять многие из правил кодирования и оформления путем анализа скомпилированных сборок. Вы можете сконфигурировать их таким образом, чтобы анализ производился во время компиляции или был неотъемлемой частью непрерывной или ежедневной сборки. Этот документ просто добавляет дополнительные правила и рекомендации, но его вспомогательный сайт www.csharpcodingguidelines.com предоставляет список правил анализа кода, необходимых в зависимости от того, с какой базой кода вы работаете.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии36

«Сладкое» программирование, или Как выделить этикетку с банки варенья в Mathematica?

Время на прочтение5 мин
Количество просмотров10K

Перевод дискуссии "How to peel the labels from marmalade jars using Mathematica?" с сайта Mathematica at StackExchange.
Код, приведенный в статье, можно скачать здесь (~31 МБ).
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Как можно выделить содержимое этикетки с указанной ниже банки (точка съёмки кадра, геометрия банки, её содержимое — всё это нам неизвестно),



чтобы получить нечто подобное — ту же самую этикетку в том виде, в каком она была до того, как оказалась на банке?



Основная идея заключается в следующем:

  • Находим этикетку.
  • Находим границы этикетки.
  • Находим отображение координат пикселей изображения на цилиндрические координаты.
  • Трансформируем изображение с использованием найденного отображения.

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

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

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

Получившийся в конечном итоге алгоритм работает полностью автоматически (однако есть опция ручного задания границ банки), то есть берёт исходное изображение, после чего выдаёт изображение с сеткой и этикетку.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии3

10+ советов по написанию быстрого кода в Mathematica

Время на прочтение9 мин
Количество просмотров26K
Перевод поста Джона Маклуна (Jon McLoone) "10 Tips for Writing Fast Mathematica Code".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе.

Пост Джона Маклуна рассказывает о распространенных приемах ускорения кода, написанного на языке Wolfram Language. Для тех, кто заинтересуется этим вопросом мы рекомендуем ознакомиться с видео «Оптимизация кода в Wolfram Mathematica», из которого вы подробно и на множестве интересных примеров узнаете о приемах оптимизации кода, как рассмотренных в статье (но более детально), так и других.

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

1. Используйте числа с плавающей точкой, и переходите к ним на как можно более ранней стадии.


Самая распространённая ошибка, которую я замечаю, когда разбираюсь с медленным кодом — задание слишком высокой точности для данной задачи. Да, неуместное использование точной символьной арифметики — самый распространенный случай.

У большинства вычислительных программных систем нет такого понятия, как точная арифметика — для них 1/3 это то же самое, что и 0,33333333333333. Это различие может играть большую роль, когда вы сталкиваетесь со сложными и неустойчивыми задачами, однако для большинства задач числа с плавающей точкой вполне удовлетворяют нуждам, и что важно — вычисления с ними проходят значительно быстрее. В Mathematica любое число с точкой и с менее чем 16 цифрами автоматически обрабатывается с машинной точностью, потому всегда следует использовать десятичную точку, если в данной задаче скорость важнее точности (например, ввести треть как 1./3.). Вот простой пример, где работа с числами с плавающей точкой проходит почти в 50,6 раза быстрее, чем при работе с точными числами, которые лишь затем будут переведены в числа с плавающей точкой. И в этом случае получается такой же результат.








Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии2

Тест бесплатных программ для восстановления данных

Время на прочтение5 мин
Количество просмотров547K
Приветствую всех Хабровчан!

Представьте ситуацию, что в один прекрасный момент ваш жесткий диск/флешка/карта памяти перестает нормально работать, и доступ к данным привычным образом уже не получить. Для тех, кто не делает бэкапы, наступает непростое нервное время. В панике народ начинает искать программы для восстановления данных и находит их. Большинство из них бесплатны, что не может не радовать человека в наше непростое время. Но все ли бесплатные программы так эффективно восстанавливают данные? Мы провели пару тестов нескольких популярных программ, и вот что у нас получилось.

image

Внимание! Много скриншотов.
Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии51

Программируем свой дом на .NET

Время на прочтение14 мин
Количество просмотров9.5K
Недавно я писал сюда статью о проекте системы управления умным домом, в разработке которого я участвую. Это .NET Windows Service, который может управлять домом по сценариям и через веб-интерфейс. В октябре как раз был релиз версии 2.0.

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

Этот демо-плагин собирает информацию с датчиков температуры/влажности nooLite и отображает полученную информацию в веб-интерфейсе. Результат выглядит примерно так:

график изменения температуры за последние двое суток


текущая температура в комнатах (точнее, последние значения, полученные с датчиков)


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

Начать обучение
Всего голосов 17: ↑13 и ↓4+9
Комментарии4

Мой безвентиляторный HTPC в корпусе HD-PLEX

Время на прочтение5 мин
Количество просмотров88K
Доброго всем дня!

В данной статье хочу поделиться своим опытом создания безвентиляторного HTPC.



Под катом много фото.

Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии36

Raspberry Pi — HD медиаплеер, HDTV плеер

Время на прочтение6 мин
Количество просмотров109K

Здравствуйте, хочу поделиться небольшим практическим исследованием возможности применения Raspberry Pi model B 512mb в качестве медиаплеера и IPTV плеера HD контента. Также небольшие рассуждения о подобном идеальном устройстве.

Поиск не давал конкретных ответов, имелись разнящиеся данные, говорящие скорее о сырости и ГИКоватости подобного применения одноплатного компьютера.

Прошу подкат за подробностями…
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии40

Mini-Desktop своими руками

Время на прочтение5 мин
Количество просмотров279K
Update: Версия 2.0 здесь.

Немного лирики:


Лет пять назад у меня появилась мечта самому сделать домашний мини сервер. Изучив существующие на то время железки, я остановил свой выбор на материнской плате Intel D945GSEJT с процессором Atom N270. Корпуса, которые были в продаже для этой материнской платы мне совершенно не понравились, по этому я привинтил все это дело к картонке вместе с жестким диском, поставил Хакинтош и повесил за шкаф. Все это дело провисело пару лет, интенсивно качая и раздавая файлы и интернет по всей квартире.
Все бы хорошо, но быстродействия этого агрегата хватало только на дать и взять, никакой речи о проигрывании, или конвертировании HD видео, или помощи при тонировании 3D графики речи быть не могло. А хотелось бы.
Мысль сделать домашний мощный-мини-сервер заела меня окончательно в начале этого года. Просто спать по ночам не мог. И что бы избавиться от этой навязчивой идеи было решено:
1. Сделать не так как у всех
2. Сделать самый маленький Desktop из ныне существующих
3. Сделать проект не индивидуальным, а с учетом промышленных стандартов, а так же с обоснованием адекватной стоимости дальнейшего серийного производства.
Читать дальше →
Всего голосов 156: ↑149 и ↓7+142
Комментарии163

Вышла программа f.lux 3 с режимом кино и температурой 2700 K

Время на прочтение1 мин
Количество просмотров83K
Автор программы f.lux выпустил новую версию f.lux 3 (бета). Это очень полезная программа для тех, кто часто работает за монитором при искусственном освещении, то есть вечером и ночью.



Программа изменяет цветовой профиль монитора, в зависимости от времени суток. Ночью устанавливаеются тёплые цветовые тона (2700 K), которые соответствуют искусственному освещению в квартире, днём — холодные (6500 K), соответствующие дневному свету.
Читать дальше →
Всего голосов 50: ↑43 и ↓7+36
Комментарии52

В США введут новый способ борьбы с пиратством

Время на прочтение1 мин
Количество просмотров77K
Времена, когда крупные рекординговые компании душили пиратов, принимая один законопроект за другим, похоже скоро канут в Лету. Благодаря организации под названием «Center for Copyright Infringement» (к сожалению, не знаю точного перевода) появилась новая инициатива.



Исходя из ее положений, при скачивании нелицензионного контента пользователю будет вынесено несколько предупреждений, также в качестве одного из типов предупреждений ему могут порезать скорость доступа в Интернет. Крупные американские провайдеры, такие как AT&T, Comcast и Time Warner уже подписались под данной инициативой.

Под катом можно посмотреть красивую инфографику на буржуйском, которая, возможно, поможет лучше понять «масштаб трагедии».
Читать дальше →
Всего голосов 50: ↑35 и ↓15+20
Комментарии114

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность