Как стать автором
Поиск
Написать публикацию
Обновить
-3
0
Иван Мокров @Lincoln6Echo

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

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

Новый взгляд на голосовалку, или популярно о парадоксе Кондорсе

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

Дисклаймер


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

Проверяем хабр


Единственное упоминание о парадоксе Кондорсе (не путать с теоремой Кондорсе о жюри присяжных) есть в комментарии пользователя TimTowdy.
Читать дальше →

Найден способ установки эксклюзивных приложений Nokia на любой смартфон с WP

Время на прочтение1 мин
Количество просмотров12K
Китайский сайт WPDang вчера опубликовал способ установки приложений из Nokia Collection на любой другой смартфон. В эксклюзивном наборе программ, доступных только на Lumia, сейчас находится около 50 приложений, и по крайней мере некоторые из них можно установить на смартфоны других компаний – Samsung, HTC и т.п.

Вся фишка в использовании простого прокси (в частности у китайцев это 117.135.139.179, порт 8888), который при Wi-Fi подключении «делает» из любого смартфона Lumia. В результате, когда ты зайдешь в Windows Phone Store, ты получишь доступ к эксклюзивным приложениям Nokia. Вторая тонкость в том, что открыв страницу приложения в магазине надо отключиться от прокси и только потом скачивать или покупать программу.



Гуглоперевод с китайского

Основы профессиональной верстки электронных писем

Время на прочтение7 мин
Количество просмотров105K
Верстка электронных писем
Ни для кого не секрет, что e-mail маркетинг только начинает набирать обороты во всем мире. А для России – это ещё и вовсе молодая ниша на рынке. И профессиональная верстка электронных писем здесь один из составляющих факторов успеха. Под профессиональной версткой понимается не только визуально красиво и надежно сверстанный макет, но и то, как выглядит usability открытки с маркетинговой точки зрения, как оптимизирована графика вместе с типографией для спам-фильтров и многое другое. Верстка электронных писем довольно обширная тема, в одной статье все не уместить, поэтому в данном посте постараюсь описать только базовые элементы и приемы, надежно проверенные за годы практики и работающие в top самых используемых почтовых клиентах мира: iPhone 4S/5; Outlook 07/10/13; iPad; Apple Mail; Android 2.3/4.0; Yahoo; Gmail. Если рассматривать только российский рынок, то нельзя не упомянуть о Mail.ru и Яндекс.Почта.

Что нужно знать в начале?


Сразу хочу выделить несколько из основных и важных моментов:

  1. В нашем арсенале имеется очень урезанный набор css-свойств, которые поддерживаются всеми почтовиками. При этом, стили нужно прописывать inline, а в head выносить только вендорные свойства и те блоки объявлений, которые не несут нагрузки на основную стилизацию письма. Ну и использовать link in head — крайне нежелательно.
  2. Не используйте background-image в основных визуальных элементах дизайна и не помещайте в изображения важную текстовую информацию. Вообще нужно всегда учитывать такой вариант, что письмо будет просматриваться получателем без единого изображения.


Каркас


Пожалуй каждый, кто хоть раз верстал письмо под рассылку, знает, что каркас лучше строить с помощью таблиц. На самом деле простая блочная модель div поддерживается на данный момент во всех перечисленных выше почтовиках, за исключением MS Outlook начиная с 2007 версии. Это связано с тем, что в качестве движка последние версии Outlook используют Microsoft Word, который в свою очередь много не знает о блочных css-свойствах. Игнорировать при верстке данный почтовый клиент я не рекомендую, поэтому в качестве фундамента все же используйте table. Да и добившись хорошего результата для Outlook, можно быть уверенным, что в большинстве почтовиках, письмо будет смотреться тоже хорошо, а скорее и лучше.

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

Разработчик ядра Windows NT объяснил причины низкой производительности ОС

Время на прочтение3 мин
Количество просмотров158K
Один из программистов компании Microsoft анонимно выступил на форуме Hacker News и выдал интересные подробности о процессе разработки ядра NT. Своим сообщением он хотел подтвердить тезис о том, что ядро неэффективно и во многом уступает по производительности другим ОС: см. оригинальное сообщение (автор удалил его, испугавшись резких формулировок) и копию.

Причина проблем, по словам сотрудника Microsoft, социальная. Дело в том, что разработчики не вносят в ядро таких оптимизаций, которые мы видим в мире Linux. В компании Microsoft никто не будет хвалить программиста, если он оптимизировал какой-то процесс на 5%, если это не входит в сферу его основных обязанностей. Такая оптимизация никому не интересна. Только в случае какого-то очень существенного прогресса работу программиста могут заметить в соседних командах разработки, что положительно отразится на его карьере. Но это скорее исключение, чем правило. Нет никакого стимула принимать изменения из-за пределов своей команды разработки.
Читать дальше →

Десятикратная разборчивость

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

Как же они этого добиваются?

Часто считают, что десятикратная производительность вытекает из десятикратных способностей или десятикратных знаний. Я так не думаю. Не хочу сказать, что способности или знания бесполезны. Но за много лет я заметил, что самое главное тут — десятикратная разборчивость. Фокус в том, чтобы постоянно уклоняться от паршивой работенки.

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

Не пишите комментарии к коду!

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

Вступление


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

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

Для понимания проблемы обратимся к Вики, а после перейдем к примерам:

Коммента́рии — пояснения к исходному тексту программы, находящиеся непосредственно внутри комментируемого кода.

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

Как бороться с низкокачественными Android приложениями

Время на прочтение5 мин
Количество просмотров58K
Все согласны, что Google Play переполнен некачественными приложениями, но никто не хочет брать вину на себя — принято винить абстрактный Android или просто Google, который выпустил систему без строгих гайдланов, создал маркет без модерации и дал возможность производителям делать свои оболочки с разноцветными иконками и градиентами.

Но каждый день выходят новые приложения с дизайном из iOS, темами из 2.3, не адаптированные для планшетов и с размытыми картинками на HD-экранах. И в этом виноват не Google, а разработчики. Кто-то не пытается спорить, когда заказчик присылает макеты от iOS версии, кто-то пытается, но сдается. Кто-то разрабатывает приложение ради опыта, откладывая «неважное» на потом, и так оно и остается. Стартапы делают приложения «за день», а потом лихорадочно фиксят баги, создавая снежный ком, который уже никто не перепишет с нуля. Крупные социальные сети, имея деньги и время, каким-то образом умудряются выпускать ужасные клиенты…
Читать дальше →

Программный синтезатор

Время на прочтение8 мин
Количество просмотров46K
И так господа, решил наконец разобраться с программным синтезом музыки, а именно с практической частью реализации подобной задачи. Давайте посмотрим что из это вышло и как оно реализовано…


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

Запускаем .NET MicroFramework на STM32F4Discovery (перевод)

Время на прочтение4 мин
Количество просмотров35K
image
Несколько месяцев назад STMicroelectronics бесплатно раздавали отладочную плату STM32F4 Discovery. Я стал одним из тех, кому повезло получить ее бесплатно. Последний семестр я использовал плату для моего проекта (realtime и embedded OS) с применением Keil. У меня так-же есть отладочная плата Netduino, которая является моим фаворитом среди моих отладочных плат потому что я могу использовать Visual Studio и C#. Я знаю об ограничениях управляемого кода, связанных с расходами ресурсов на CLR, но моя программа не является программой реального времени. В последнюю неделю я случайно наткнулся на сайт netmf4stm32.codeplex.com и был приятно удивлен тем, что .NET MicroFramework был портирован на отладочные платы STM32F4. Так почему-бы не попробовать? Одновременно я описывал весь процесс, разбавляя текст скриншотами. Источником этой работы стал пост netmf4stm32.codeplex.com/discussions/400293. Благодарю LouisCPro и членов netmf4stm32.codeplex.com/team/view. Все это отняло у меня не более 2 часов (включая установку Visual C# Express 2010). Начнем…
Читать дальше →

Консервативная логика

Время на прочтение14 мин
Количество просмотров20K
Вооруженные жидким азотом оверклокеры неоднократно показывали, что современные чипы могут стабильно работать на частотах в разы выше номинальных, обеспечивая соответствующий рост производительности. Тем не менее, прогресс в области «гонки гигагерц» остановился давно и надежно. Первый «Pentium 4» с частотой больше 3 ГГц появился в далеком 2002 году, почти 10 лет назад. За прошедшие годы нормы техпроцессов уменьшились со 180 до 32 нм, но даже это не позволило существенно поднять штатные рабочие частоты. Все упирается в огромное тепловыделение элементов цифровой логики.

В основе «проблемы тепловыделения» лежит глубокая связь между информационной и термодинамической энтропией, а также второе начало термодинамики, запрещающее уменьшение общей энтропии замкнутой системы. Любое вычисление, уменьшающее энтропию информационную, обязано приводить к увеличению энтропии термодинамической, то есть к выделению тепла. Рольф Ландауэр в 1961 году показал [pdf], что уничтожение одного бита информации должно приводить к выделению не менее k∙T∙ln 2 джоулей энергии, где k – постоянная Больцмана и T – температура системы. Само по себе эта энергия невелика: для T=300K она составляет всего 0.017 эВ на бит, но в пересчете на процессор в целом суммарная энергия вырастает уже до величин порядка одного Джоуля за каждую секунду работы, то есть порядка одного Ватта [Компьютерра №538]. На практике этот теоретический минимум умножается на ненулевое сопротивление и прочие неидеальности реальных полупроводников. В результате мы получаем процессоры, которые по тепловыделению обгоняют утюги.
Читать дальше →

Regexponline – интерактивный анализатор и редактор регулярных выражений

Время на прочтение4 мин
Количество просмотров53K
Есть одна бородатая шутка: «если у вас есть проблема, и вы собираетесь решать ее с использованием регулярных выражений, то у вас есть две проблемы». Действительно, регулярные выражения – очень мощный и гибкий инструмент, применяемый для решения весьма широкого круга задач. Но, как водится, для поддержания баланса, такой серьёзный инструмент имеет весьма недружелюбный вид.

(<([a-z]+[^>]*)>)(.*)(</\2>)

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

image

Когда-то и мне пришлось по долгу службы подружиться с регулярными выражениями. Прочитав Фридла и несколько статей на Хабре, я, конечно, начал понимать этот синтетический язык. Тем не менее, каждый раз, когда приходилось написать очередную регулярку, я быстро закапывался в нагромождении скобок, слешей, точек, плюсов, знаков вопроса, и других хорошо вам знакомых конструкциях. Разобраться в этой каше было очень сложно, особенно если возвращаешься к задаче месячной давности. Я мечтал об инструменте, который помог бы мне разобраться в собственном творении. Приблизительно подходящих по смыслу сервисов нагуглилось с десяток, но все они приносили мало пользы. Как раз тогда я и начал разрабатывать этот проект.

Итак, regexponline – инструмент, способный наглядно изобразить структуру регулярного выражения, разобрав его по элементарным компонентам; продемонстрировать совпадающие и не совпадающие его части; помочь в написании и отладке выражения, которое почему-то не совпадает с нужной строчкой.
Читать дальше →

Микроэлектроника для космоса и военных

Время на прочтение13 мин
Количество просмотров308K
Возможное, многие из вас думали после ситуации с Фобос-Грунтом — что такого особенного в микросхемах для космоса и почему они столько стоят? Почему нельзя поставить защиту от космического излучения? Что там за история с арестом людей, которые микросхемы экспортировали из США в Россию? Где все полимеры?

На эти вопросы я и попробую ответить в этой статье.

Disclaimer: Сведения получены из открытых источников и могут быть не вполне точными. Я лично с военной электроникой не работаю, а кто работает — те статьи писать не могут. Буду рад дополнить и исправить статью.
Читать дальше →

Try jQuery — новый интерактивный самоучитель по jQuery

Время на прочтение2 мин
Количество просмотров72K
Раньше я как-то не стремился глубоко изучать jQuery, поскольку работаю в основном с back-end. Однако самоучитель TRYjQuery, ссылка на который пришла в недавнем письме от CodeSchool, вызвал интерес с первых кадров.

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

Новый практический обучающий курс по Windows Phone 8

Время на прочтение2 мин
Количество просмотров21K
Всегда приятно делиться хорошей новостью. И сегодняшнее утро я как раз и хочу начать именно с хорошей новости.

Доступен новый практический обучающий курс по Windows Phone 8 на русском языке. Для нетерпеливых — сразу ссылка на заглавную страницу курса: aka.ms/wp8labs.

Данный курс предполагает, что вы уже знакомы с разработкой под Windows Phone. Если это не так, можно начать с курса по Windows Phone 7.5 msdn.microsoft.com/ru-ru/ff380145 или книги.
Подробнее о содержании курса

Как две недели?!

Время на прочтение2 мин
Количество просмотров106K
Как это вам надо две недели на эту задачу? Что, правда? Вот на эту элементарную формочку с тремя полями и двумя кнопками? Две недели? Да вы надо мной издеваетесь, наверное! Давайте разбираться.

Что? Нужна ли валидация данных при вводе? Ну, конечно, нужна! И вообще, вот это поле лучше разбить на два, так понятнее. А вот в это добавить маску. А вот это — заменить на выпадающий список. Где брать варианты для этого списка? В базе на сервере, конечно. Как это их там нет? А, ну да, это же в другом проекте они у нас были… Ну, значит надо добавить. Взять там и добавить сюда. Сейчас я дам вам контакт разработчика того проекта — обсудите с ним. Он, правда, у нас уже не работает, но я думаю, вполне можно спросить что и как — он расскажет, скорее всего.

Мы всё обсудили? Нет? Что ещё?
Читать дальше →

19 команд ffmpeg для любых нужд

Время на прочтение3 мин
Количество просмотров583K
От переводчика:
Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его man объёмен и местами малопонятен, лишь немногие постигли дао профессиональной работы с ним. И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне. О некоторых полезных консольных командах ffmpeg и пойдёт речь в статье. В некоторых местах я взял на себя смелость вставить ссылки на поясняющие статьи.


ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. Я собрал 19 полезных и удивительных команд, покрывающих почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.

1. Получение информации о видеофайле

ffmpeg -i video.avi

2. Превратить набор картинок в видео

ffmpeg -f image2 -i image%d.jpg video.mpg

Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg

(примечание переводчика: мне больше нравится такой формат:
ffmpeg -r 12 -y -i "image_%010d.png" output.mpg

здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
Читать дальше →

Black Hole War, или Битва при Черной дыре

Время на прочтение5 мин
Количество просмотров17K
В начале 2013 года в нашем издательстве вышла в свет новая научно-популярная книга, изданная совместно с гуманитарным фондом «Династия». Цель проекта «Библиотека фонда «Династия» — содействовать изданию лучших современных научно-популярных книг в области естественных и гуманитарных наук. Благодаря данной программе отечественные читатели смогли познакомиться с работами таких известных ученых и популяризаторов науки как Билл Брайсон, Стивен Хокинг, Митио Каку, Брайан Грин, Джаред Даймонд и многих других авторов. Наша предыдущая книга, выпущенная совместно с «Династией», — «Теория струн и скрытые измерения Вселенной» Стива Надиса и Шинтана Яу — стала настоящим бестселлером, что явилось большим и приятным сюрпризом для нас как издателей.

И сегодня мы хотим вам рассказать о новом издании, выпущенном в рамках «Библиотеки Династии», — книге «Битва при черной дыре. Мое сражение со Стивеном Хокингом за мир, безопасный для квантовой механики» (The Black Hole War: My Battle with Stephen Hawking to Make the World Safe for Quantum Mechanics) известного американского ученого Леонарда Сасскинда.

image

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

Что происходит, когда объект падает в черную дыру? Исчезает ли он бесследно?
Читать дальше →

dot42 — компилятор C# для Dalvik Runtime

Время на прочтение3 мин
Количество просмотров30K
Главным недостатком Mono для Android является то, что для работы приложений требуется отдельная среда выполнения, отличная от Dalvik. И хотя полный доступ к CLR выглядит весьма привлекательно, проксирование и маршаллинг вызовов от одной среды выполнения к другой могут сильно повлиять на производительность. Так почему бы не убрать промежуточную компиляцию в IL-код и получать сразу рабочий Dex-код? Этим и занимается проект dot42.



В январе, после 1 года разработки, авторы проекта dot42 наконец-то перешли от обещаний к пряникам. И, хотя проект еще не дотягивает до состояния боевого продукта-конкурента Mono, стоит, как минимум, его рассмотреть и попробовать.
Так что это?

Чему я научился у Джейсона Фрайда (37signals)

Время на прочтение10 мин
Количество просмотров27K
Творческая беседа Дэна Шиппера, кофаундера Firefly и Джейсона Фрайда, кофаундера 37signals привела автора статьи к занятным выводам о том, как и кому продавать ПО. Надеемся, и вам, Хабражители, принесет пользу.

Переведено компанией-локализатором Alconost


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

Эффективная конкатенация строк в .NET

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

Для программистов на платформе .NET одним из первых советов, направленных на повышение производительности их программ, является «Используй StringBuilder для конкатенации строк». Как и «Использование исключений затратно», утверждение о конкатенации часто неправильно понимается и превращается в догму. К счастью, оно не столь деструктивно, как миф о производительности исключений, но встречается заметно чаще.

Было бы неплохо, если бы вы перед прочтением данной статьи прочли мою предыдущую статью о строках в .NET. И, во имя удобочитаемости, дальше я буду обозначать строки в .NET просто строками, а не «string» или «System.String».

Я включил эту статью в список статей, посвящённых .NET Framework в общем, а не в список C#-специфичных статей, так как полагаю, что все языки на платформе .NET под капотом содержат один и тот же механизм конкатенации строк.
Читать дальше →

Информация

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