Как стать автором
Обновить
51
0
Александр Десятьбитов @tenbits

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

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

Ваш C# уже «функциональный», просто позвольте ему это

Время на прочтение4 мин
Количество просмотров19K
Привет, Хабр! Представляю вашему вниманию перевод оригинальной статьи «Your C# is already functional, but only if you let it» автора Igal Tabachnik.

Несколько дней назад я написал в Твиттере фрагмент кода C#, реализующий FizzBuzz, используя некоторые из новых «фичи» в C# 8.0 . Твит “стал вирусным”, несколько человек восхищались его лаконичностью и функциональностью, в то время как другие спрашивали меня, почему я не написал его на F#?

Прошло уже более 4 лет с тех пор, как я в последний раз писал на C#, и то, что я обычно использую функциональное программирование, явно повлияло на то, как я пишу код сегодня. Фрагмент, который я написал, кажется очень аккуратным и естественным, однако некоторые люди выразили опасения, что он не похож на код на C#.
«Он выглядит слишком функциональным.» – писали мне они.
В зависимости от того, кого вы спрашиваете, «функциональное программирование» означает разные вещи для разных людей. Но вместо того, чтобы обсуждать семантику, я хотел бы предложить объяснение того, почему эта реализация FizzBuzz кажется функциональной.
Всего голосов 17: ↑15 и ↓2+20
Комментарии127

Цвет в дизайне

Время на прочтение4 мин
Количество просмотров73K
Нет надобности расписывать, как важен цвет в дизайне. Удачное цветовое решение — это уже половина успеха проекта. В помощь развивающимся дизайнерам — немного теории цветового круга и подборка ссылок на полезные ресурсы.



Базовый цветовой круг пригодится в выборе наиболее подходящего сочетания цвета (или поможет гармонично совместить между собой определенные оттенки). Он изображает базовые и известные еще со школы правила смешивания основных цветов: красного, синего и желтого. Если смешать красный и желтый — получится оранжевый, синий и желтый дадут зеленый, а красный с синим — фиолетовый. Оранжевый, зеленый и фиолетовый — это вторичные цвета. Третичные цвета, как красно-фиолетовый и фиолетово-синий, получены от смешивания основных с вторичными.

Читать дальше →
Всего голосов 31: ↑25 и ↓6+19
Комментарии10

50+ лучших дополнений к Bootstrap

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


Благодаря популярности CSS фреймворка Bootstrap, для него разработали массу различных дополнений. Даже сейчас вы можете использовать Bootstrap практически для любой задачи при разработке и оформлении вебсайта.

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →
Всего голосов 123: ↑111 и ↓12+99
Комментарии25

Верстка email рассылок от А до Я для чайников

Время на прочтение9 мин
Количество просмотров408K
Уже 3 с лишним года занимаюсь дизайном и версткой почтовых рассылок, которые ориентированы на англоязычных пользователей. За время работы перелопатили огромную кучу информации, перепробовали много вариантов верстки, набили достаточное количество шишек. Были найдены и исправлены типичные баги, которые в той или иной мере повторялись во всех почтовых клиентах. Также нашлись проблемы с некоторыми CSS свойствами — различные почтовые клиенты интерпретировали их по разному. Каждое письмо тестировалось на самых популярных почтовых клиентах: Gmail, Outlook, Yahoo, Android, iOS, MozillaThunderbird, Microsoft Outlook, The Bat. Рассылки ходят на сотни миллионов пользователей и приносят очень хорошие результаты. Итак, приступим к изучению.
Читать дальше →
Всего голосов 66: ↑62 и ↓4+58
Комментарии36

Интервью с астрофизиком Нилом Тайсоном

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


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

Читать дальше →
Всего голосов 96: ↑91 и ↓5+86
Комментарии45

Великая речь великого человека

Время на прочтение1 мин
Количество просмотров6.1K
Это был его первый звуковой фильм. Его личный протест, никто не соглашался дать ему денег на картину, разоблачающую Гитлера как сумасшедшего тирана. Гитлер по мнению журнала «The Times», был Человеком года и великим политиком.
Тогда Чаплин снял фильм «Великий Диктатор» на свои личные средства.
Фильм, послужившей одной из причин его изгнаия из США.
Фильм, который посмотрел Гитлер и объявил Чаплина своим личным врагом.

И речь, которая остается актуальной и по сей день, не смотря на то, что уже прошло больше 70-ти лет.
3.809.000 — просмотров у оригинального ролика, который уже перевели на 22 различных языка.
Вот русские субтитры к этому ролику:


Почему этот ролик на хабре? Это первое, что пришло к вам в голову после просмотра?
Upd. Огромное спасибо всем, кто гадит мне в карму и угрожает в личке.
Upd2. Это первый случай на хабре, пост не по it? Нет.
*пруф1 freetonik Doug 'QualiaSoup' Непредубежденность
*пруф2 муравьи зомби
Читать дальше →
Всего голосов 173: ↑95 и ↓78+17
Комментарии135

Определение процента схожести нарисованного 2d-полигона с заданным шаблоном

Время на прочтение6 мин
Количество просмотров30K
Приветствую, друзья.

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



Я попробую рассказать вам об алгоритме определения нарисованных 2d фигур. Свою версию движка я написал на языке ActionScript 3.0. При желании(и наличии базовых знаний по геометрии) его можно реализовать на любом другом.

Итак, нам необходимо по нарисованной руками фигуре определить процент схожести с имеющейся:


Читать дальше →
Всего голосов 77: ↑74 и ↓3+71
Комментарии31

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

Время на прочтение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, можно быть уверенным, что в большинстве почтовиках, письмо будет смотреться тоже хорошо, а скорее и лучше.

В качестве примера рассмотрим наиболее важные элементы из следующего, не сложного шаблона:
Шаблон письма для рассылки
Читать дальше →
Всего голосов 94: ↑81 и ↓13+68
Комментарии66

Дайджест интересных новостей и материалов из мира айти за последнюю неделю №53 (13 — 19 апреля 2013)

Время на прочтение8 мин
Количество просмотров33K
Предлагаем вашему вниманию очередную подборку с ссылками на новости, интересные материалы и полезные ресурсы.


Читать дальше →
Всего голосов 74: ↑64 и ↓10+54
Комментарии6

Подборка инструментов для эффективной frontend разработки

Время на прочтение3 мин
Количество просмотров101K
В эту прекрасную пятницу осмелюсь предложить хабрасообществую небольшую подборку приложений, предназначенных для увеличения продуктивности во время работы с фронтэндом. Если ваш любимый апп здесь не представлен — добро пожаловать в комментарии!

Form Builder

image

Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
еще 24 ссылки
Всего голосов 204: ↑197 и ↓7+190
Комментарии46

Кастомные фильтры в CSS

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

Приступая к кастомным фильтрам на CSS (Custom Cascading Style Sheets Filters)



Вступление


Кастомные CSS фильтры (далее CCSSF)(ранее известные как CSS шейдеры) — это новая браузерная фича, накладывающая созданные руками визуальные эффекты на элементы HTML документа.
Кастомные фильтры являются частью Filter Effects 1.0 specification. Они дополняют другую часть этой спецификации, определяющую некоторые общие CSS фильтры, уже встроенные в браузеры (blur, sepia, contrast, grayscale).
Читать дальше →
Всего голосов 49: ↑46 и ↓3+43
Комментарии16

Линейная алгебра для разработчиков игр

Время на прочтение19 мин
Количество просмотров781K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Всего голосов 314: ↑296 и ↓18+278
Комментарии61

QtWebKit-специфика при разработке мобильных HTML5-приложений

Время на прочтение9 мин
Количество просмотров28K
Этот пост участвует в конкурсе „Умные телефоны за умные посты

Введение


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

Такими проблемами к примеру, является получение доступа к системной информации, управление и изменение чего-либо в системе. Доступ из HTML5 к контактам, календарю, органайзеру на мобильном устройстве и другие. Опять же, если наше приложение производит какие-то серьёзные вычисления, то их можно перенести с медленного JS на быстрый C++. В данной статье хочу рассмотреть несколько техник взаимодействия Web-приложения и нативного кода на примере модуля QtWebKit, которые могут оказаться полезными.
Читать дальше →
Всего голосов 22: ↑12 и ↓10+2
Комментарии21

Git Wizardry

Время на прочтение17 мин
Количество просмотров451K
1 Введение


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

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

Читать дальше →
Всего голосов 89: ↑66 и ↓23+43
Комментарии76

Kango — фреймворк для создания кроссбраузерных расширений

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

Вступление

Kango позволяет создавать расширения для популярных браузеров используя только JavaScript, причем код един для всех браузеров. На данный момент поддерживается Chrome, Firefox, Internet Explorer (в публичном доступе только версия с поддержкой Chrome и Firefox) и ведется работа над поддержкой Opera и Safari. Ниже будет рассмотрено как можно быстро создать простой кроссбраузерный Gmail Checker

Что должно получиться в итоге:



Читать дальше →
Всего голосов 133: ↑132 и ↓1+131
Комментарии36

Обзор C# библиотек для работы с PDF

Время на прочтение5 мин
Количество просмотров170K
topic image
На написание данной статьи меня подтолкнул топик HTML в PDF, правда по причине того, что он посвящен языку php, лично мне он был мало полезен, т.к. весь опыт работы с php у меня сводился в переводе нескольких скриптов на C#, поэтому я решил сделать небольшой обзор того, что доступно для работы с pdf по средствам языка C#.

Ко мне в список попало 7 библиотек, о которых я скажу несколько слов, а для самой популярной (судя по ответам на stackoverflow), я напишу, как с помощью неё сделать простейший документ. Сразу скажу, что это iTextSharp и работа с ней будет описана в конце статьи.
Читать дальше →
Всего голосов 87: ↑77 и ↓10+67
Комментарии24

Использование Razor за пределами ASP.NET

Время на прочтение5 мин
Количество просмотров5.5K
Итак, вчера Microsoft выпустила ASP.NET MVC3 RTM, который включает в себя новый движок представлений Razor. Как вы наверняка уже знаете, Razor не содержит каких-то компонентов, специфичных для web, а значит, его можно использовать и в других приложениях. Ну, а если вы этого еще не знаете – то самое время узнать!

В этом посте я покажу, как использовать Razor в качестве движка шаблонов для ваших нужд. Источником для него послужил блог-пост Andrew Nurse «Hosting Razor outside of ASP.Net», но это не прямой перевод.

Читать дальше →
Всего голосов 62: ↑53 и ↓9+44
Комментарии20

Рецепт быстрого приготовления расширений под популярные браузеры

Время на прочтение2 мин
Количество просмотров1.2K
0147 (1)

Возникла задача написание простенького расширения под все (по возможности) популярные браузеры. Деятельность расширения заключается во внедрении javascript`а в тело документа.
Читать дальше →
Всего голосов 90: ↑80 и ↓10+70
Комментарии51

Информация

В рейтинге
Не участвует
Откуда
Leipzig, Sachsen, Германия
Дата рождения
Зарегистрирован
Активность