Как стать автором
Обновить
0
0
slcoleg @slcoleg

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

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

Карринг vs Частичное применение функции

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

Перевод статьи Джона Скита, известного гуру языка C#, автора книги C# In Depth, сотрудника Google, человека #1 по репутации на stackoverflow.com и наконец героя Jon Skeet Facts. В этой статье Джон доступно объясняет, что представляют из себя карринг и частичное применение функции, концепции, пришедшие из мира функционального программирования. Кроме того, он подробно поясняет в чём их различие. Признаюсь, что я и сам их путал до прочтения этой статьи, поэтому мне показалось полезным сделать перевод.


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

  • Те, кто не интересуются функциональным программированием и находят функции высшего порядка запутанными: вы можете пропустить эту статью полностью.
  • Те, кто знают всё о функциональном программировании и хорошо понимают разницу между каррингом (currying) и частичным применением функции (partial function application): пожалуйста, внимательно прочтите этот пост и отпишитесь в комментариях, если найдете неточности.
  • Те, кто частично знаком с функциональным программированием, и заинтересован узнать больше: отнеситесь к этому посту скептически и внимательно прочтите комментарии. Прочитайте другие статьи более опытных разработчиков для получения дополнительной информации.

В общем-то, я знаю, что некоторые люди иногда путают термины карринг и частичное применение функции — используют их взаимозаменяемо, когда этого делать не следует. Это одна из тех тем (как, например, монады), которую я до некоторой степени понимаю, и я решил, что лучшим способом удостовериться в своих знаниях будет написать об этом. Если это сделает эту тему более доступной для других разработчиков, тем лучше.
Читать дальше →
Всего голосов 95: ↑94 и ↓1+93
Комментарии24

Настрой свой Google

Время на прочтение2 мин
Количество просмотров25K
После написания этого поста, меня заинтересовали параметры поиска которые можно использовать, для удобной работы.
Задавшись этим вопросом, в рунете я более менее полной информации не нашел.
Но! Оказывается Google уже давно и для всех, все показал.

Читать дальше →
Всего голосов 123: ↑108 и ↓15+93
Комментарии33

Wolfenstein 3D теперь и в HTML5

Время на прочтение1 мин
Количество просмотров9.7K
Праздник на улице Wolfenstein не заканчивается. К 20-летию Wolfenstein 3D, компания-разработчик id Software сегодня выпустила HTML5 версию, в которую можно поиграть по этой ссылке.

Под катом видео с комментариями Кармака, ссылка на бесплатную версию в iTunes и сборники игр от id Software, которые можно преобрести по акционной цене.
Читать дальше →
Всего голосов 60: ↑55 и ↓5+50
Комментарии29

Готовим расширение под Chrome, украшаем Хабр

Время на прочтение5 мин
Количество просмотров30K
Чтобы сделать расширение достаточно минимальных знаний Javasctipt, HTML и CSS. Давайте добавим на хабр догрузку следующей страницы, а также систематическую проверку новых постов на текущей. Примерно как на twitter.

Полностью готовый экстеншн можно установить и проверить в работе через Chrome Web Store, а здесь разберемся как написать основной код с нуля (полный занимает всего 6 KB).



Читать дальше →
Всего голосов 50: ↑41 и ↓9+32
Комментарии10

Руководство по оформлению HTML/CSS кода от Google

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

От переводчика


С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.

Введение


Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

Это относится к рабочим версиям файлов использующих HTML, CSS и GSS

Разрешается использовать любые инструменты для минификации компиляции или обфускации кода, при условии, что общее качество кода будет сохранено.
Читать дальше →
Всего голосов 295: ↑286 и ↓9+277
Комментарии168

Создание лайтбокса для сенсорного интерфейса на HTML5

Время на прочтение15 мин
Количество просмотров5.9K
Stephen Woods, фронтэнд-инженер в Flickr, объясняет, как создать простой лайтбокс с поддержкой жестов и дает советы для улучшения восприятия и производительности сенсорных интерфейсов.



Необходимые знания: средний уровень CSS, средний-продвинутый уровень JavaScript
Требования: Android или IOS устройство
Временные затраты: 2-3 часа
Скачать исходники
Просмотр демонстрации
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии11

Введение в CSS3 Multicolumn. Работаем с колонками

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

Как расположить текст на странице в несколько колонок? И можно ли это делать автоматически? Наверняка, многие из тех из вас, кто занимается или занимался раньше веб-разработкой, сталкивались с такой задачей — и часто упирались в сложные решения, требующие хитрых стилей, либо применения дополнительных библиотек на JavaScript (см. например Columnizer-плагин для jQuery).

Многоколоночная верстка контента (не путать с задачей общей многоколоночной верстки страницы, которая скорее ближе к проблеме расположения блоков по сетке) долго пробивала себе дорогу в мире веб-стандартов и, наконец-то, не просто достигла статуса Candidate Recommendation в виде соответствующего модуля CSS3 Multi-column Layout, но и получила достаточно широкую поддержку в браузерах: где-то с префиксами (-moz- или -webkit-) и где-то в актуальных (Opera 11.1+) и планируемых версиях (IE10+), причем сразу без префиксов.
Читать дальше →
Всего голосов 127: ↑121 и ↓6+115
Комментарии29

+1 расширение для Mozilla Firefox

Время на прочтение1 мин
Количество просмотров9.2K
Доброго времени суток!

Несколько дней назад Shaida создал пост под названием +1 расширение для Google Chrome, где каждый мог посоветовать расширение, которое ему когда-либо пригодилось. Пора пользователям огнелиса дать свой ответ. Итак, я начну!
Читать дальше →
Всего голосов 73: ↑49 и ↓24+25
Комментарии89

В Chrome Canary заработали новые единицы измерения CSS — vh, vw и vmin

Время на прочтение1 мин
Количество просмотров4.7K
В девелоперской версии Google Chrome (на момент написания статьи — Chrome 20) появилась поддержка новых единиц измерения CSS — vh, vw и vmin, которые пару месяцев назад были реализованы в движке Webkit. До этого они работали только в Internet Explorer 9-й и 10-й версий. Эти единицы задают размеры объектов относительно высоты или ширины окна. В отличие от процентов, они всегда привязаны именно к окну браузера, а не к контейнеру текущего блока. 1vh равен 1% высоты окна, 1vw — 1% ширины, 1vmin — меньшему из этих двух значений.
Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии26

Циклическое слайд-шоу на чистом CSS3

Время на прочтение11 мин
Количество просмотров98K
Благодаря CSS3 мы можем создавать эффекты анимации, не используя JavaScript, что упростит работу многих разработчиков.
Мы не должны злоупотреблять CSS3, потому что старые браузеры не поддерживают все его свойства. В любом случае, все мы видим потенциал CSS3, и в этой статье мы обсудим, как создать зацикленный слайдер изображений, используя только CSS3-анимацию.

Скриншот слайд-шоу на чистом CSS3
Читать дальше →
Всего голосов 66: ↑62 и ↓4+58
Комментарии20

Непутевые заметки о ASP.NET MVC. Часть 1 (и единственная)

Время на прочтение11 мин
Количество просмотров41K
В последнее время на Хабре часто начали появляться статьи о ASP.NET MVC. Однако в этой статье я бы хотел сделать несколько заметок по поводу построения приложений на вышеприведенном фреймворке: минимальный набор NuGet-packages (без которых грех начинать работу), логирование, подводные камни при использовании стандартных membership-, profile- провайдеров. И, напоследок, почему Web API из MVC 4 — то, что так долго мы все ждали.
Поехали
Всего голосов 60: ↑48 и ↓12+36
Комментарии72

Видеоматериалы, блоги и подкасты для .NET разработчика

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


В одной из своих статей Бьёрн Страуструп (папа С++) признался, что он не признает видео материалы в качестве источника для самообразования. И с ним сложно не согласиться, когда речь касается изучения с нуля языка программирования или технологии. Я правда сомневаюсь, что можно одолеть такого монстра, как С++ или стать гуру WPF лежа на диване и просматривая обучающее видео типа «Узнай все за 24 часа». Но если вы ставите себе цель познакомиться с некоторой технологией или новой возможностью языка программирования, или просто послушать философско-компьютерные размышления умного товарища, то в этом случае веб-касты, записи конференций или другой вид видеоматериалов может быть очень кстати.
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии19

Возьми от Firefox все для веб-разработки

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

Обновление от 24.03.13
Neatbeans 5.3 бесплатная IDE подходящая для верстки умеет на лету отображать набранный html в хроме через свой плагин.
Тоже самое умеет webstorm.
Куча костылей описанных ниже уже не нужны!

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

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

Со многими вы знакомы, а что есть еще, или вы твердо убеждены, что у вас всего пара рук?

Начнем с самого известного:

1.

Говорят, если бы капитан мочевидность был веб-разработчиком, он бы всем советовал ставить Firebug. Это Джастин Бибер в мире попсы, это почти половина самого firefox.
В представлениях не нуждается, самая дописанная и навороченная панель разработчика FireBug есть только в Firefox.


Ошалеть от увиденного...
Всего голосов 142: ↑127 и ↓15+112
Комментарии105

62 полезных инструмента для адаптивного дизайна (Responsive web design)

Время на прочтение14 мин
Количество просмотров203K
UPD. Для краткого введения в адаптивный дизайн рекомендую прочитать статью «Как сделать один сайт для всех устройств (Responsive Web Design)».

Перевод крайне ценной статьи «Responsive Web Design Techniques, Tools and Design Strategies» популярного интернет-издания для разработчиков Smashing Magazine.

Еще в январе мы опубликовали статью об адаптивном дизайне «Responsive Web Design: What It Is and How To Use It» (Адаптивный веб-дизайн: Что это такое и как им пользоваться). Адаптивный веб-дизайн продолжает привлекать к себе много внимания, но, учитывая, насколько он отличается от традиционных методов разработки сайтов, он может показаться заоблачно сложным для тех дизайнеров и разработчиков, которые его не пробовали.

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

Техники Responsive web design


1. CSS Transitions and Media Queries
CSS Transitions и Media Queries

Elliot Jay Stocks подробно рассказывает о методе сочетания CSS Media Queries и CSS transitions. Основная идея в следующем: разрабатывая адаптивный сайт с помощью Media Queries, вы постоянно изменяете ширину вашего браузера, чтобы посмотреть, как сайт ведет себя при этом. Но каждый раз, когда отрабатывает один из ваших Media Queries, виден жесткий переход между стилями (первый, например, для десктопов, второй — для планшетов). Почему бы не использовать CSS transitions для сглаживания этих жестких переходов с помощью анимации?



Читать дальше →
Всего голосов 112: ↑107 и ↓5+102
Комментарии14

Открытая система управления “умным домом” MajorDoMo

Время на прочтение7 мин
Количество просмотров76K
В этой статье я расскажу об одном проекте, которым занимаюсь уже довольно продолжительное время и который с некоторых пор доступен широкой публике. Речь идёт о системе управления “умным домом” MajorDoMo (Major Domestic Module), являющейся центральным блоком комплекса программно-аппаратных решений, которые я, в силу своих скромных возможностей, внедряю в своём домашнем хозяйстве.

image

Но обо всём по порядку…

Читать дальше →
Всего голосов 120: ↑117 и ↓3+114
Комментарии58

Полуавтоматическая конвертация лени в код

Время на прочтение7 мин
Количество просмотров6.5K
Всем доброго дня. Сегодня я хочу поговорить об автоматической генерации кода C#. Например, свойства в классах, описывающих сущности предметной области, обычно описываются по совершенно одинаковой схеме. И мне элементарно лениво писать для каждого примитивного свойства одинаковые конструкции. Немного спасает применение сниппетов и активных шаблонов, но когда приходит нужда что-то поменять в этой схеме, то приходится перелопачивать кучу кода. Так почему бы это однообразие не генерировать автоматически в процессе сборки?
В какой-то момент кинетическая энергия творчества ненадолго пересилила потенциальную энергию лени, и результатом этого стала маленькая библиотечка для автоматической генерации некоторых исходных файлов программы на основе внешних данных. Приглашаю под кат всех ленивых (в хорошем смысле этого слова) разработчиков на C#.
Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии17

Секретные коды, или как я писал свое приложение для android

Время на прочтение5 мин
Количество просмотров98K
Думаю все, у кого есть устройство на базе ОС Android, хотя-бы краем уха слышали о «секретных кодах».
Однако поиск по Хабру показал что здесь нет ни одной статьи на данную тему. А ведь некоторые коды довольно могущественные: например один из кодов на моем Samsung Galaxy Tab позволяет настроить GPS что ускоряет поиск спутников, другой — жестко установить режим связи с сетью(GPRS, EDGE, 3G...) что в местах с нестабильной связью позволяет хорошо сэкономить батарею на скачках между режимами.
Но повествование я поведу не сколько про возможности кодов а про исследование механизма запуска приложений по кодам в ОС Android, как найти все коды(и приложение в которое это всё вылилось). И еще немного про то, как сделать приложение которое будет отзываться на свой код.
Под катом 6 картинок, немного кода и много текста… Самых нетерпеливых прошу сразу в конец статьи помацать результаты а уж потом — читать технологию.
Читать дальше →
Всего голосов 118: ↑109 и ↓9+100
Комментарии73

Архитектура Android-приложений. Часть IV — интеграционный уровень

Время на прочтение5 мин
Количество просмотров34K
В этой статье мы поговорим о различных механизмах, посредством которых взаимодействуют части Android-приложений. Условимся называть все эти механизмы «уровнем взаимодействия» (насколько мне известно, в документации Android нет специального термина для этого).
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии4

PhotoSlider — GPL утилита для разбора завалов фотографий

Время на прочтение3 мин
Количество просмотров961
Цель PhotoSlider'а

Я читаю несколько фото-блогов, в которых иногда проскакивают «фото паки/сессии/репортажи». Плюс знакомые несут свои фото гигабайтами. Как только фотографий набирается довольно много (тысяч по 10-20) я их просматриваю оставляя себе на wallpaper'ы избранный 0,001% из них.
Фотоаппараты у всех всё лучше, фотографии весят всё больше, что не может сказаться на скорости их загрузки. Встала проблема с тем, как это всё эффективно разгребать. Почти все фотографии после разового просмотра удаляются, небольшое количество избранных перемещаются в папочку для wallpaper'ов.
Изначально пользовался либо Picasa, либо FSViewer. Но оба по некоторым причинам не устраивали.
  • Picasa не хочет показывать фото на весь экран, нельзя удалять нажатием одной кнопки (для каждой фотографии спрашивает подтверждение), переключение на следующую фото довольно медленное (в случае просмотра ~24 MP фото на ноуте весьма неприятно);
  • FSViewer тоже особой скоростью не отличался, с удалением получше, но всё равно медленно. К тому же он до сих пор не понимает unicode в именах файлов (давно уже просил разработчиков добавить поддержку).

Помучавшись немного начал писать свою утилиту, которая и стала PhotoSlider'ом.
Под катом подробности реализации и управления.
Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Комментарии10

Информация

В рейтинге
Не участвует
Откуда
Newmarket, Ontario, Канада
Дата рождения
Зарегистрирован
Активность