Функция reduce

Автор: admin от 8-05-2014, 23:57, посмотрело: 428

javascript в последние годы набрал нешуточную популярность, в связи с чем его подводные камни также стали явственно видны. Справедливости ради, стоит отметить, что любой язык в некоторой мере имеет как своё legacy, так и подводные камни.
Конкретно javascript обладает целым огородом камней. Подводным огородом.

На практике, подводные камни встречаются не так часто, напротив, хороший код склонен быть описанным в рамках здорового подмножества языка. Это также является и причиной, почему запомнить все заковырки языка достаточно сложно: они не являются необходимыми для каждодневной практики. Тем не менее, разнообразные граничные случаи использования языковых конструкций это отличная разминка для ума, а также стимул узнать язык немного лучше. Сегодняшний экземпляр попался мне на глаза в процессе прохождения javascript Puzzlers.

Меня заинтересовал вопрос номер 3:
Каков результат этого выражения (или нескольких)?

[ [3,2,1].reduce(Math.pow), [].reduce(Math.pow) ]

В качестве ответа авторами, на выбор, даются следующие варианты:
* ошибка
* [9, 0]
* [9, NaN]
* [9, undefined]

Попробуйте и вы, без запуска интерпретатора, пользуясь только своим умом ответить на этот вопрос.

Несмотря на то, что пример достаточно отстранённый, аппликация функций и частично определённых функций к коллекциям это распространённая практика для JS, и, при здравом использовании, она способна сделать код чище, как в плане исполнения — избавить его от лишних замыканий, так и в визуальном плане — меньше скобочного мусора (вопрос использования препроцессоров оставим для другой статьи).

А в этой статье вы найдёте:
* Разбор задачки.
* javascript reduce с чисто практической точки зрения.
* Несколько акробатических этюдов с reduce (reduce с академической точки зрения).
* Репозиторий с плюшками к статье.
* Несколько других reduce.
reduce, reduce, reduce

Категория: Программирование

 

Oracle выиграла суд против Google

Автор: admin от 8-05-2014, 23:44, посмотрело: 456

Oracle выиграла суд против Google
Корпорация Oracle одержала победу в ключевом деле против Google. Аппеляционный суд США постановил: Oracle обладает авторским правом на части языка программирования Java, использованные Google при разработке ОС Android. «Мы пришли к выводу, что набор команд, заставляющий компьютер выполнить желаемые операции, может содержать выражения, подвергаемые авторскому праву», — комментирует судья федерального округа Кэтлин О'Мэлли.

В 2010 Oracle подала в суд на Google за нарушение авторских прав на части Java для Android. Oracle оценила ущерб в один миллиард долларов.

Oracle чрезвычайно удовлетворена: «решение федерального округа — большая победа для Oracle и всей индустрии программного обеспечения, продиктованное защитой авторского права для стимулирования инноваций и уверенности, что разработчики будут вознаграждены за свои достижения».

Компания Google не прокомментировала ситуацию. http://habrahabr.ru/post/222327/#habracut

Категория: Google, Android

 

Майское хабрасоревнование: делаем свой ГЛОНАСС

Автор: admin от 8-05-2014, 20:05, посмотрело: 605

Майское хабрасоревнование: делаем свой ГЛОНАССШла холодная зима 2063 года, вы, сидя в избушке в сибирских степях, попивая горячий чай достали свой любимый раритетный телефон МТС 945 — однако он почему-то не нашел ни одного спутника. Вдруг тишину разрезал пронзительный звонок красного телефона — голос на той стороне затараторил: оказалось все спутники ГЛОНАСС вышли из строя из-за неизвестного сбоя… (ТЗЧ? Закладки? Кто теперь разберет....)

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

Категория: Программирование

 

Высшая школа экономики открывает программу «Менеджмент игровых интернет-проектов»

Автор: admin от 8-05-2014, 18:55, посмотрело: 678

Высшая школа экономики открывает программу «Менеджмент игровых интернет-проектов»

Высшая школа экономики (ВШЭ) совместно с Высшей школой бизнес-информатики (ВШБИ) запустила программу профессиональной переподготовки «менеджмент игровых интернет-проектов»—первую в России программу профессиональной переподготовки в сфере управления интернет-проектами по разработке компьютерных игр, созданную экспертами-практиками.

Категория: Программирование » Game Development

 

Специальный отчет 301 (2014 год)

Автор: admin от 8-05-2014, 15:10, посмотрело: 418

30 апреля 2014 года Торговое представительство США (USTR) выпустило новый «Специальный отчет 301». Среди главных изменений — исключение Украины, Италии и Филиппин из списка основных нарушителей прав интеллектуальной собственности. В 2014 году 10 стран находятся в Priority Watch List, Россия в частности, и 27 стран в Watch List. Ряд стран, включая Чили, Китай, Индию, Индонезию, Таиланд и Турцию, публикуются в отчете каждый год с даты его первой публикации в 1989 году.

Специальный отчет 301 (2014 год)

Категория: Программирование » Веб-разработка

 

Пятый международный форум разработчиков приложений Apps4All пройдет в Москве

Автор: admin от 8-05-2014, 15:10, посмотрело: 74042

Пятый международный форум разработчиков приложений Apps4All пройдет в Москве

19 мая 2014 года сообщество разработчиков Apps4All, совместно с агентством «Полилог», компанией Samsung Electronics и Сбербанком России соберет на площадке Digital October более 1000 представителей экосистемы разработки приложений, специалистов крупнейших IT-корпораций и ведущих экспертов в сфере мобильных технологий.

Пятый юбилейный форум Apps4All будет включать в себя конференцию, состоящую из четырех треков деловой программы, выставку высоких технологий и устройств, финал Ежегодного конкурса разработчиков Apps4All, а также традиционный фуршет для участников и гостей. Мероприятие пройдёт при поддержке Высшей Школы Бизнес-Информатики и Стартап Академии Сколково.

Деловая программа мероприятия включает в себя секции по продвижению приложений, удержанию пользователей, аналитике рынка и мобильной рекламе. В дискуссионных панелях участники конференции наряду с экспертами смогут обсудить требования к процессу и результатам сдачи проектов, стандарты индустрии, мобильный контент, а также технологии будущего и рынок венчурных инвестиций. Лидеры и эксперты рынка, такие как Google, Huawei, Intel, Unity, Embarcadero, RedMadRobot, GalsSoft, ZeptoLab, Ostrovok, Aviasales, TNS, AdWatch/Isobar, Video International, Articul Media, AdCamp, AdInch и другие компании представят свои новые продукты и успешные кейсы.

Категория: Гаджеты, Game Development, Android, iOS

 

Разработка REST API на Express, Restify, hapi и LoopBack

Автор: admin от 8-05-2014, 15:10, посмотрело: 439

Если вы работаете над Node.js приложением, то есть все шансы, что у него появится некое API, которое будет использовано вами или кем-то другим. Наверняка это будет REST API и перед вами возникнет дилемма — какие инструменты и подходы использовать. Ведь выбор так широк…

Разработка REST API на Express, Restify, hapi и LoopBack

Благодаря невероятно активному сообществу Node.js, количество результатов на NPM по запросу «rest» зашкаливает. У каждого есть свои реализации и подходы, но у некоторых есть что-то общее в создании REST API на Node.js.

Категория: Программирование » Веб-разработка

 

И снова про опасность eval()

Автор: admin от 8-05-2014, 14:10, посмотрело: 352

Сколько было сломано копий при обсуждении вопроса «Возможно ли сделать eval безопасным?» — невозможно сосчитать. Всегда находится кто-то, кто утверждает, что нашёл способ оградиться от всех возможных последствий выполнения этой функции.
Когда мне понадобилось найти развёрнутый ответ на этот вопрос, я наткнулся на один пост. Меня приятно удивила глубина исследования, так что я решил, что это стоит перевести.

Коротко о проблеме


В Python есть встроенная функция eval(), которая выполняет строку с кодом и возвращает результат выполнения:
assert eval("2 + 3 * len('hello')") == 17

Это очень мощная, но в то же время и очень опасная инструкция, особенно если строки, которые вы передаёте в eval, получены не из доверенного источника. Что будет, если строкой, которую мы решим скормить eval'у, окажется os.system('rm -rf /')? Интерпретатор честно запустит процесс удаления всех данных с компьютера, и хорошо ещё, если он будет выполняться от имени наименее привилегированного пользователя (в последующих примерах я буду использовать clear (cls, если вы используете Windows) вместо rm -rf /, чтобы никто из читателей случайно не выстрелил себе в ногу).

Категория: Программирование » Веб-разработка

 

PHDays IV: Открыта регистрация на онлайн-конкурсы «Конкурентная разведка» и Hash Runner

Автор: admin от 8-05-2014, 13:05, посмотрело: 553

PHDays IV: Открыта регистрация на онлайн-конкурсы «Конкурентная разведка» и Hash Runner

Конкурентная разведка


Со времени проведения последнего конкурса «Конкурентная разведка» многое поменялось в информационном пространстве. Сноуден разоблачил АНБ, и оказалось, что следят за гражданами в интернете не только любопытные домохозяйки, но и профессионалы в дорогих костюмах не без помощи математиков из Массачусетса. Безопасность различных криптографических протоколов, как проприетарных, так и свободных, оказалась совсем не такой высокой, как хотелось бы. Математические алгоритмы для работы с большими данными в облачных решениях позволяют отследить взаимосвязи транзакций казалось бы надежных и анонимных Bitcoin-переводов…

Три победителя — те, кто справится с заданиями лучше и быстрее всех, — получат приглашения на PHDays IV, где мы вручим им ценные призы. Приз за первое место — iPad. Сам конкурс будет проходить за неделю до форума и продлится два дня — 15 и 16 мая.

Категория: Программирование, Информационная безопасность

 

Дайджест KolibriOS #4: и весна нам не помеха

Автор: admin от 8-05-2014, 11:50, посмотрело: 506

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

Категория: Операционные системы » iOS

 
Назад Вперед