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

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

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

Функциональное программирование для всех

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

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

Мнение переводчика может иногда не совпадать с мнением автора, но переводить статью было крайне занимательно.

UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Читать дальше →
Всего голосов 188: ↑181 и ↓7+174
Комментарии151

Встречайте обновленный Windows Azure. Небольшой обзор нововведений

Время на прочтение11 мин
Количество просмотров5K
Добрый день, уважаемые коллеги. Пока ещё уставшие от недосыпа последних дней (утренняя Венера, MEET Windows Azure) спят, в Томске сидит скромный автор и пишет эти строки, испытывая нечто вроде феерии от того, что происходит сейчас в мире IT. А мы, друзья, стоим на пороге окончательной необходимости менять парадигму.

В этой статье я попробую в рамках небольшого обзора передать то, что произошло сегодня ночью на событии MEET Windows Azure – мажорном релизе новой функциональности платформы. Основной доклад делался светлым умом, которого в твиттере назвали «Мидасом нашей современности» — Скоттом Гатри.

Читать дальше →
Всего голосов 30: ↑23 и ↓7+16
Комментарии13

Объектно ориентированный подход на функциях в Scheme

Время на прочтение3 мин
Количество просмотров4.3K
imageПривет. В данной статье хотелось бы еще разок осветить вопрос объектного программирования на языке Scheme, так, как его рассматривают в книге «Структура и интерпретация компьютерных программ».
Далее предлагаю тем, кто еще ни когда не программировал на Scheme скачать DrRacket и попробовать по шагам пройтись по примерам из данной статьи. Опытные программисты Scheme, Racket… эта статья будет очень скучна, так как написана для новичков и людей, желающих «потрогать» racket.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии7

Три ключевых принципа ПО, которые вы должны понимать

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

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

Все, что касается любви, применимо и к коду. Новых законов в коде нет. Если вы четко понимаете основные идеи разработки, вы способны максимально быстро адаптироваться к новым подходам. В этой статье я расскажу вам о трех основных принципах, которые, наряду с другими, позволяют регулировать сложность разработки. Я поделюсь своим видением вопроса, которое, надеюсь, поможет вам в повседневной работе.
Читать дальше →
Всего голосов 142: ↑128 и ↓14+114
Комментарии56

Можно ли прибраться на компе раз и навсегда?

Время на прочтение5 мин
Количество просмотров26K
«Пора бы прибраться на своем компе...» Думаю, эта мысль возникала у всех пользователей, и не раз. Без приборки любой комп рано или поздно превращается в свалку хлама, и найти нужные файлы становится все труднее. Даже если вырабатывается какая-то система каталогизации и хранения, новые интересы могут потребовать новых инструментов и новых иерархий. А если машин несколько или на одной машине уживаются несколько пользователей, все становится еще сложнее.

Я, конечно, пытался использовать какие-то методы сортировки помимо файловой системы — т.к. часто хочется упорядочить файлы не по одному критерию, а по нескольким равнозначным, что невозможно сделать в древовидной иерархии — требуется сетевая структура. Но все мои усилия разбивались об интерфейс. Судите сами.
Читать дальше →
Всего голосов 46: ↑37 и ↓9+28
Комментарии85

Бесплатного супа больше не будет

Время на прочтение23 мин
Количество просмотров17K
Фундаментальный поворот к параллелизму в программировании

Автор: Герб Саттер
Перевод: Александр Качанов

The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
(By Herb Sutter)

Ссылка на оригинал статьи: www.gotw.ca/publications/concurrency-ddj.htm

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

Данная статья достаточно старая. Ей уже 7 лет, если считать с момента ее первой публикации в начале 2005 года. Помните об этом, когда будете читать перевод, так как многие вещи, которые для вас уже стали привычными, для автора статьи в 2005 году были в новинку и только-только появлялись.

Читать дальше →
Всего голосов 122: ↑113 и ↓9+104
Комментарии81

Визуальный язык программирования Google Blockly

Время на прочтение1 мин
Количество просмотров54K
Blockly — визуальный язык программирования с веб-интерфейсом. Создание программы осуществляется путём соединения блоков.



Некоторые демки:
Maze — используйте Blockly, чтобы пройти лабиринт.
Code — экспорт программы Blockly в JavaScript, Dart, Python или XML.
Читать дальше →
Всего голосов 132: ↑116 и ↓16+100
Комментарии152

Трюки со специализацией шаблонов C++

Время на прочтение4 мин
Количество просмотров109K
imageСпециализация шаблонов является одной из «сложных» фичей языка с++ и использутся в основном при создании библиотек. К сожалению, некоторые особенности специализации шаблонов не очень хорошо раскрыты в популярных книгах по этому языку. Более того, даже 53 страницы официального ISO стандарта языка, посвященные шаблонам, описывают интересные детали сумбурно, оставляя многое на «догадайтесь сами — это же очевидно». Под катом я постарался ясно изложить базовые принципы специализации шаблонов и показать как эти принципы можно использовать в построении магических заклинаний.

Ознакомиться с заклинаниями
Всего голосов 47: ↑45 и ↓2+43
Комментарии61

Графический «велосипед» по мотивам Turbo Vision (дела давно минувших дней)

Время на прочтение4 мин
Количество просмотров12K
Относительно недавно, прочитав местную статью "Демо, которых никто никогда не видел", решил, что тоже стоит пролить свет на некоторые плоды своей программистской молодости.

Начиналось с этого:
image

Под 'катом' 500Кб картинок!!!
Всего голосов 167: ↑163 и ↓4+159
Комментарии80

Как и зачем мерить FLOPSы

Время на прочтение8 мин
Количество просмотров135K
image Как известно, FLOPS – это единица измерения вычислительной мощности компьютеров в (попугаях) операциях с плавающей точкой, которой часто пользуются, чтобы померить у кого больше. Особенно важно померяться FLOPS’ами в мире Top500 суперкомпьютеров, чтобы выяснить, кто же среди них самый-самый. Однако, предмет измерения должен иметь хоть какое-нибудь применение на практике, иначе какой смысл его замерять и сравнивать. Поэтому для выяснения возможностей супер- и просто компьютеров существуют чуть более приближенные к реальным вычислительным задачам бенчмарки, например, SPEC: SPECint и SPECfp. И, тем не менее, FLOPS активно используется в оценках производительности и публикуется в отчетах. Для его измерения давно уже использовали тест Linpack, а сейчас применяют открытый стандартный бенчмарк из LAPACK. Что эти измерения дают разработчикам высокопроизводительных и научных приложений? Можно ли легко оценить производительность реализации своего алгоритма в FLOPSaх? Будут ли измерения и сравнения корректными? Обо всем этом мы поговорим ниже.
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии32

+10 к интеллекту

Время на прочтение9 мин
Количество просмотров165K
MM_mindmap_title

Так или иначе, практически каждый из нас использовал в своей жизни технику интеллект–карт или Mind Mapping. Это всего лишь простая радиальная схема, но с правильным подходом ее можно превратить в мощный инструмент аналитики и синтеза информации, который всегда под рукой и достаточно прост в использовании. И что самое интересное, освоение техники настолько естественно для нашего мозга, что занимает всего лишь несколько минут…
Читать дальше →
Всего голосов 90: ↑75 и ↓15+60
Комментарии49

Использование Visio для создания рабочих процессов

Время на прочтение3 мин
Количество просмотров44K
Рабочие процессы — важная и почти обязательная составляющая портала на SharePoint, они являются основой документооборота и многих других бизнес-процессов. Неудивительно, что существуют такие системы как Nintex, пытающиеся расширить и дополнить возможности стандартных рабочих процессов.

По опыту работы с Nintex могу сказать, что данная система не лишена недостатков: дороговизна, периодически возникающие ошибки, общая неторопливость системы (хоть это свойственно всему SharePoint) — все это вынуждает меня использовать штатный механизм рабочих процессов. Однако, у Nintex есть важное преимущество — визуализация схемы и текущего состояния процесса. Благодаря этому создание рабочих процессов упрощается, и их могут создавать даже люди, достаточно далекие от программирования (контент-менеджеры, бизнес-аналитики и т.д.). В SharePoint 2010 есть аналогичная возможность создания рабочего процесса на основе визуальной схемы, используя Visio 2010 и SharePoint Designer 2010.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

Управление знаниями, создание базы знаний. А что на практике?

Время на прочтение8 мин
Количество просмотров73K
Продолжая тему двух предыдущих постов (первый и второй), в которых проводилось исследование на тему управления знаниями и были рассказаны основные результаты, хотелось бы углубиться в практическую составляющую данной проблемы. Вопросов для обсуждения здесь предостаточно, но основной — существуют ли инструменты, позволяющие удовлетворить все потребности бизнеса в части управления знаниями? Попробуем ответить на этот вопрос со своей «колокольни».
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии19

Как моделировать бизнес-процессы в нотации eEPC?

Время на прочтение3 мин
Количество просмотров126K
В ходе своей работы и преподавания я сталкиваюсь с описанием бизнес-процессов организации в нотации eEPC (Extended event driven process chain), которая принята стандартом де-факто для описания процедур и регламентов после обследования деятельности организации. К сожалению, используя эту нотацию очень просто допустить ошибки моделирования, не зная правил, по которым она составляется. Эти ошибки приводят в последующем к несоответствию логики процесса, и как следствие – непониманию реальной ситуации в организации. Эта статья является некоторым обобщением моего опыта моделирования бизнес-процессов, и надеюсь, послужит некоторым читателям полезным руководством.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии26

Итак, вы решили запретить копирование объектов класса в C++

Время на прочтение4 мин
Количество просмотров48K
SHALL NOT DANCE THEREДовольно часто можно встретить код на C++, в котором у одного или нескольких классов конструктор копирования и оператор присваивания объявлены private и написан комментарий вида «копирование запрещено».

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

Рассмотрим возможные проблемы.
Читать дальше →
Всего голосов 42: ↑36 и ↓6+30
Комментарии45

ТОП-10 подводных камней, на которые вы можете наткнуться при переходе на Vim

Время на прочтение5 мин
Количество просмотров15K
Согласитесь, каждый раз, когда вы видите человека, который использует Vim, вам кажется, что он знает то, чего не знаете вы. Иначе, как вы можете объяснить тот факт, что он использует редактор, который, по вашему мнению, является open-source мусором? Думайте, что хотите, но есть целый ряд причин, по которым програмисты поклоняются Vim.
Пока вы не потратите по крайней мере месяц на ознакомление с ним, вы, несомненно, будете его ненавидеть. Именно по этой причине большинство новичков работают с Vim около дня, после чего больше никогда к нему не притрагиваются. Они даже представить себе не могут, какой невероятной скоростью и гибкостью он обладает. Нужно всего-лишь найти в себе силы и преодолеть те трудности, которые встретятся вам на протяжении всего того времени, что вы знакомитесь с Vim.
Читать дальше →
Всего голосов 88: ↑66 и ↓22+44
Комментарии315

Делиться не всегда полезно: оптимизируем работу с кэш-памятью

Время на прочтение7 мин
Количество просмотров39K
Делиться с ближним своим для нас, божьих тварей, это очень характерно, считается добродетелью, и вообще, как утверждает первоисточник, положительно отражается на карме. Однако в мире, созданном архитекторами микропроцессоров, такое поведение не всегда приводит к хорошим результатам, особенно если это касается разделения памяти между потоками.

Мы все «немного читали» об оптимизации работы с памятью, и у нас отложилось, что полезно, когда «кэш остается горячим», то есть данные, к которым часто обращаются потоки, должны быть компактными и находиться в ближайшем к процессорному ядру кэше. Все так, но когда дело доходит до того, чтобы делиться доступом, потоки становятся злейшими врагами [производительности], а кэш не просто горячий, он аж «горит адским огнем» – такая во круг него разворачивается борьба.

Ниже мы рассмотрим простой, но показательный случай возникновения проблем производительности многопоточных программ, а потом я дам несколько общих рекомендаций, как избежать проблемы потери эффективности вычислений из-за разделения кэша между потоками.
Читать дальше →
Всего голосов 72: ↑68 и ↓4+64
Комментарии30

Секретная Гильдия Долины Кремния

Время на прочтение3 мин
Количество просмотров4.5K
Пару недель назад я пил пиво с друзьями в Сан-Франциско и кто-то язвительно заметил:

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

Шутка смешная, но заставила меня задуматься. Кто эти «жиробасы, знающие C++» или, как сказал еще кто-то, «бородатые парни в растянутых свитерах, которые поддерживают сервера Google»? И почему если ты встретил одного из них, это как дернуть за нитку клубка и они вообще все, похоже, друг друга знают?

Причина в том, что…
Читать дальше →
Всего голосов 172: ↑138 и ↓34+104
Комментарии81

Самоорганизация с Evernote

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


Наш пользователь Гани Султанов (aka @Moriarty Lecter) написал интересную мини-книгу “Как накормить слона, или первые шаги к самореализации с Evernote”. Она посвящена системе управления делами и сбора информации с помощью нашего сервиса.

Загрузить книгу в PDF >>

Книга будет особенно интересна тем, кто уже давно присматривается к методике повышения личной эффективности GTD (Getting Things Done), но все никак не возьмется реализовать ее на практике. Впрочем, если вы никогда и не слышали о GTD, но хотите эффективно использовать Evernote, чтобы быть продуктивнее в работе, учебе, бизнесе и частной жизни, вам эта книга тоже может пригодиться и стать отправной точкой для работы с методикой.
Читать дальше →
Всего голосов 40: ↑27 и ↓13+14
Комментарии20

Пишем своё первое приложение на Android

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

Предисловие


Цель данного поста — с одной стороны поделиться своим успешным опытом старта разработки приложений на платформе Android и с другой стороны поспособствовать развитию рынка софта для этой замечательной и бурно растущей платформы за счёт (без ложной скромности скажу) возможно Вас, прочитавших данный пост. В сети, конечно, можно найти материалы на тему разработки приложения «чуть сложнее, чем helloworld», но как правило они разрозненные и в них не описываются различные мелкие подводные камешки. В данном посте мы рассмотрим полный цикл разработки приложения, начиная с чистого компьютера до готового apk-файла. Под катом скрины.
Читать дальше →
Всего голосов 138: ↑123 и ↓15+108
Комментарии99

Информация

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