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

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

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

Выразительный JavaScript: Структуры данных: объекты и массивы

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

Содержание




Два раза меня спрашивали: «Скажите, м-р Бэббидж, а если вы введёте в машину неправильные данные, получится ли правильный ответ?». Непостижима та путаница в головах, которая приводит к таким вопросам.

Чарльз Бэббидж, «Отрывки из жизни философа» (1864)


Числа, булевские значения и строки – кирпичики, из которых строятся структуры данных. Но нельзя сделать дом из одного кирпича. Объекты позволяют нам группировать значения (в том числе и другие объекты) вместе – и строить более сложные структуры.

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

Глава пройдётся по более-менее реалистичному примеру программирования, вводя понятия по мере необходимости. Код примеров будет строиться из функций и переменных, которые мы определяли ранее.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии12

Самый гиковский конкурс в истории Хабра: про призы

Время на прочтение2 мин
Количество просмотров15K
Здравствуй, Хабр! Как-то всё очень странно и непривычно с этим разделением любимого ресурса. Как развод с разделом имущества, только в данном случае — хабов. Ну да ничего, приспособимся.

Осталось чуть больше двух недель до окончания нашего гик-конкурса. На днях мы опубликовали небольшое видео-интервью с авторами и разработчиками идеи. Так получилось, что в этот же день Хабр потрясло реформирование, так что если вы в суматохе пропустили это пост, то рекомендуем посмотреть. А сегодня мы хотели поподробнее рассказать о тех 28 призах, которые в скором времени достанутся счастливым победителям нашего гик-конкурса.

Начнём по порядку. Итак, самыми главными призами являются три ноутбука:

Apple Macbook Pro 13


Читать дальше →
Всего голосов 73: ↑52 и ↓21+31
Комментарии102

Создание Today Extension для iOS 8

Время на прочтение14 мин
Количество просмотров19K
С выходом iOS 8 компания Apple представила новою концепцию под названием App Extensions, с помощью которой, Вы сможете делиться функциональностью Вашего приложения с другими приложениями, и из самой ОС.

Один из этих типов расширений являются Today Extensions, также известные как Widgets. Они предоставляют Вам возможность отображать информацию в Центр Уведомления, который является отличным способом предоставления самой актуальной информации, которой интересуется пользователь.

В этой статье, Вы напишете приложение на основе расширения Today Extension, которое представит текущую рыночную стоимость Bitcoin на основе доллара США.

Еще никогда не было так просто и так быстро предоставлять нужную информацию для Ваших пользователей. Давайте начнем!
Читать дальше →
Всего голосов 20: ↑15 и ↓5+10
Комментарии10

SAM: твой личный «интернет вещей»

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


Электронный набор с говорящим — для русского уха — названием SAM позволит создать практически все, о чем вы мечтали: для этого понадобятся Bluetooth-модули и софт, работающий по принципу drag-and-drop. Естественно, фраза «все, о чем вы мечтали» не должна вводить вас в заблуждение. Все в пределах разумного…
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии21

Выразительный JavaScript: Величины, типы и операторы

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

Содержание




Под поверхностью машины движется программа. Без усилий, она расширяется и сжимается. Находясь в великой гармонии, электроны рассеиваются и собираются. Формы на мониторе – лишь рябь на воде. Суть остаётся скрытой внутри…

Мастер Юан-Ма, Книга программирования

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

Несколько интересностей и полезностей для веб-разработчика #30

Время на прочтение6 мин
Количество просмотров51K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Cloudtunes



Cloudtunes один из тех проектов, глядя на которые я не понимаю мотивации разработчиков выкладывать такие наработки в открытый доступ. Не сочтите меня за сугубо меркантильную личность, но данный проект — это грубо говоря клон iTunes в облаке и это просто великолепный сервис. Cloudtunes обеспечивает единый интерфейс для вашей медиатеки, синхронизируя данные между Dropbox, Youtube, Lastfm и тд. Серверная часть написана на Python (Tornado, Celery, Mongo DB, MongoEngine, Redis), а клиентская на CoffeeScript (Backbone.js, SocketIO, Handlebars, Compass, SoundManager).

Читать дальше →
Всего голосов 75: ↑71 и ↓4+67
Комментарии13

Рубин на рельсах: продакшен и деплой для чайников

Время на прочтение13 мин
Количество просмотров32K
Год назад я довел свое первое рельсовое приложение до приемлемого вида. Вопрос использования готового кода в продакшене ранее меня не заинтересовал. С чего вдруг? Несложный язык, лаконичный фреймворк — уж деплой-то явно не сложнее, чем преодоление ментального тормоза после PHP.

Команда разработчиков Rails рекомендует использовать Phusion Passenger, он что-то вроде mod_php — установил, разместил файлы и полетел. На момент изучения вопроса на форумах хватало баталий о производительности решений; Passenger в них фаворитом не значился.

Совета относительно альтернативы я спросил у техдиректора сайта с миллионом уников в сутки — тот отправил меня гуглить на тему Nginx и Unicorn. Инструкция по настройке продакшена, найденная на Хабре, датировалась 2009 годом. Помимо прочего, ее просто переполняли изъяны уроков «Как нарисовать сову».

Отдельные составляющие процесса кое-где разжеваны по-английский, но монолитный tutorial на глаза так и не попался. В традициях рельсового сообщества лежит принцип, предписывающий делиться результатами и опытом решения проблем.
Делюсь
Всего голосов 38: ↑30 и ↓8+22
Комментарии81

jQuery.viewport или как я искал элементы на экране

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

Равно как у каждой девушки должно быть «маленькое черное платьице», у каждого front-end разработчика должен быть «маленький черный плагинчик»… как-то не очень звучит, пусть будет «маленький функциональный плагинчик», так о чем это я, я это о том, что хочу одним таким поделиться.

Представленный плагин позволяет определять положение какого-либо элемента/набора элементов, относительно области просмотра. Функционально, он расширяет набор псевдо-селекторов, а так же добавляет трекер элементов.

Так же, под катом, я расскажу о процессе написания плагина, с какими трудностями столкнулся и т.д., если я Вас заинтересовал — милости прошу под кат.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии60

Freemium. За и против

Время на прочтение2 мин
Количество просмотров7.9K
В последнее время полезность модели Freemium достаточно активно обсуждалась. На эту тему высказались два отечественных и один западный сервис.



Несмотря на такую неоднозначность, в МоемСкладе недавно все-таки появился полностью бесплатный тариф. Зачем?

Читать дальше →
Всего голосов 26: ↑18 и ↓8+10
Комментарии5

Повышаем личную эффективность: советы от Марка Андреессена

Время на прочтение8 мин
Количество просмотров121K
Одно из моих любимых удовольствий – productivity porn, порнография эффективности. Или, для тех, кто в теме – pr0n. Это набор техник, тактик и трюков по максимизации личной эффективности. Что называется, «getting things done».

Следующие техники я использую в комплексе, но возможно не все они пригодятся конкретно вам. Даже если вы почерпнёте одну-две идеи – значит, моя цель будет достигнута. Итак, начнём внезапно.

Не составляйте себе расписание

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

Аппаратное ускорение в жизни верстальщика. Семинар в Яндексе

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

Привет! Меня зовут Александр Завьялов. В Яндексе я занимаюсь разработкой интерфейсов. Недавно я выступил перед коллегами с докладом об аппаратном ускорении в жизни верстальщика, где также коснулся смежных тем. Рассказал о производительности веб-страниц, о том, как она измеряется и к чему она может стремиться.



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

На основе доклада я подготовил этот пост. Я расскажу о том, как браузеры оптимизировали процесс отрисовки: с чего начинали и до чего докатились. Что сейчас можно сделать, чтобы жизнь верстальщиков и пользователей стала немного лучше. Я надеюсь, что кого-нибудь натолкну на какие-нибудь улучшения. Мне бы это было приятно.


Читать дальше →
Всего голосов 96: ↑95 и ↓1+94
Комментарии21

JavaScript. Вопросы на собеседовании

Время на прочтение3 мин
Количество просмотров136K
Не так давно озадачился поиском работы, в связи с чем посетил n-нное количество собеседований и услышал много интересных вопросов. По сети гуляет много статей с вопросами по JS, поэтому постараюсь выбрать вопросы, которые ещё не видел. Здесь нет вопросов типа Что такое замыкание?, Наследование в JavaScript или Сделайте ajax запрос на VanillaJS. Кстати советую поискать ответы на эти вопросы, прежде чем читать статью :) Под катом вопросы типа «с подвохом». Вряд ли какой-то из них попадётся вам, но, надеюсь, статья настроит вас на «подвоховое» мышление, и напомнит некоторые скользкие места и подводные камушки javascript.
Читать дальше →
Всего голосов 93: ↑60 и ↓33+27
Комментарии158

Как нанимать наилучших сотрудников

Время на прочтение8 мин
Количество просмотров62K
Есть много тонкостей в найме людей, и многие люди поумнее меня часто писали об этом. Поэтому я не буду пытаться охватить всё. Но я передам некоторые уроки, полученные мною, уроки того, как нанять наилучших людей для стартапа. В этой статье я затрону два вопроса. Критерий: что ценить в кандидатах. Процесс: как вести процесс найма, и как исправлять возможные ошибки.

Критерии


Многие скажут – нанимайте умных. Особенно это актуально для нашей индустрии. Вы прочтёте: «нанимайте самых умных, и успех у вас в кармане». Я считаю, что сам по себе интеллект слишком переоценен. Я не видел статистики, которая бы подтверждала зависимость между чистым интеллектом, измеренным любым способом (достижения в образовании, тесты интеллекта, способность решать логические задачки) и успехом компании.
Читать дальше →
Всего голосов 62: ↑39 и ↓23+16
Комментарии56

Вся правда о венчурных инвесторах, часть 2

Время на прочтение4 мин
Количество просмотров9.4K
Часть 1

Выбираем инвестиционные компании и инвесторов внутри компаний


Подыскивая инвестиционную компанию, помните – они сильно разнятся по стилю и качеству. К примеру, некоторые компании очень любят предпринимателей. Другие относятся к ним жёстко. Что интересно, финансовый успех в сфере инвестиций никак не связан с отношением к предпринимателям. Индивидуальные инвесторы внутри компаний также сильно отличаются по стилю, личности, знаниям, опыту, возможности помочь, энергичности и этике. Я бы рекомендовал выбирать правильного партнёра внутри фирмы, а не правильную фирму.

Это противоречит интуиции, да и качество фирмы, конечно, важно. Но партнёр – это человек, с которым вы будете работать. Остальных членов фирмы вы увидите пару раз за всю жизнь. Лучше, конечно, выбрать хорошую фирму и хорошего партнёра в ней, но даже в лучших фирмах встречаются слабые партнёры.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии3

Руководство по созданию стартапов, часть 8: нанимаем, управляем, повышаем и увольняем исполнительных директоров

Время на прочтение10 мин
Количество просмотров30K
Часть 7



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

Определения: ИД – это лидер. Тот, кто выполняет функцию и несёт ответственность за систему внутри компании, которая вносит свой вклад в успех или неудачу. Разница между ИД и менеджером в том, что область деятельности ИД обширнее в плане организации, принятия решений и их исполнения. Менеджер может спросить, что ему делать. ИД должен знать это сам.
Читать дальше →
Всего голосов 27: ↑21 и ↓6+15
Комментарии5

Руководство по созданию стартапов, часть 9, и Вся правда о венчурных инвесторах

Время на прочтение5 мин
Количество просмотров16K
Часть 8

Руководство по созданию стартапов, часть 9: Как нанять профессионального генерального директора компании (CEO)?


Никак. Если никто из основателей стартапа не может быть CEO — немедленно продавайте компанию.

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

Вся правда о венчурных инвесторах, часть 1


Многие имеют своё мнение по поводу венчурных инвестиций. Плюсы и минусы венчурных инвесторов (ВИ), искать ли себе ВИ, у кого из них можно брать деньги, как добиться от ВИ инвестиций, являются ли ВИ опытными рисковыми профессионалами или психически неуравновешенными социопатами, ненавидящими предпринимателей…

Часто такие мнения основаны на единичном случае, произошедшем с конкретным человеком, или же неприятном опыте кого-то из знакомых – как обычно, люди больше склонны делиться негативом, нежели позитивом. Попробую поделиться своим,– надеюсь, достаточно широким,- мнением на этот счёт.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии7

Руководство по созданию стартапов, часть 6: слишком мало инвестиций – это сколько? А слишком много?

Время на прочтение6 мин
Количество просмотров21K
Часть 5

В этой статье я отвечу на вопросы:

Слишком мало инвестиций – это сколько?
Слишком много инвестиций – это сколько?
Как подсчитать нужную сумму и что с этим можно сделать?


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

Дальше я покажу, что «как минимум» означает такое количество денег, которое превышает то, что вы планируете потратить – чтобы можно было справиться с неприятными сюрпризами. Другими словами – страховка. Это особенно верно для не вышедших на рынок стартапов, потому что им очень сложно просчитать, когда этот выход случится. Всё это звучит очевидно, но по моему опыту, удивительно много стартапов пытаются привлечь инвестиции, слабо представляя количество денег, которое им понадобится, а также на какие конкретно цели они пойдут.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии12

SSD + raid0 — не всё так просто

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

Вступление


Коллеги с соседнего отдела (UCDN) обратились с довольно интересной и неожиданной проблемой: при тестировании raid0 на большом числе SSD, производительность менялась вот таким вот печальным образом:

По оси X — число дисков в массиве, по оси Y — мегабайтов в секунду.

Я начал изучать проблему. Первичный диагноз был простой — аппаратный рейд не справился с большим числом SSD и упёрся в свой собственный потолок по производительности.

После того, как аппаратный рейд выкинули и на его место поставили HBA, а диски собрали в raid0 с помощью linux-raid (его часто называют 'mdadm' по названию утилиты командной строки), ситуация улучшилась. Но не прошла полностью -цифры возросли, но всё ещё были ниже рассчётных. При этом ключевым параметром были не IOPS'ы, а многопоточная линейная запись (то есть большие куски данных, записываемых в случайные места).

Ситуация для меня была необычной — я никогда не гонялся за чистым bandwidth рейдов. IOPS'ы — наше всё. А тут — надо многомногомного в секунду и побольше.

Адские графики


Я начал с определения baseline, то есть производительности единичного диска. Делал я это, скорее, для очистки совести.

Вот график линейного чтения с одной SSD.



Увидев результат я реально взвился. Потому что это очень сильно напоминало ухищрения, на которые идут производители дешёвых USB-флешек. Они помещают быструю память в районы размещения FAT (таблицы) в FAT32 (файловой системе) и более медленную — в район хранения данных. Это позволяет чуть-чуть выиграть по производительности при работе с мелкими операциями с метаданными, при этом предполагая, что пользователи, копирующие большие файлы во-первых готовы подождать, а во вторых сами операции будут происходить крупными блоками. Подробнее про это душераздирающее явление: lwn.net/Articles/428584
Читать дальше →
Всего голосов 132: ↑129 и ↓3+126
Комментарии89

Руководство по созданию стартапов, часть 4: самое важное для стартапа

Время на прочтение6 мин
Количество просмотров32K
Часть 3

Статья о том, что наиболее важно для стартапа. Для начала – немного теории.

Если посмотреть на достаточно большую подборку стартапов, штук 30-40, чтобы можно было выделить общие тенденции – две вещи сразу бросаются в глаза. Во-первых, большой разброс по шкале успеха. Некоторые невероятно успешны, некоторые – середнячки, а некоторые полностью проваливаются. Во-вторых, можно увидеть очень большое разнообразие калибра и качества трёх ключевых элементов – команды, продукта и рынка. Команды варьируются от выдающихся до плохих, продукт – от инженерного шедевра до едва функционирующей модели, состояние рынка – от цветущего до коматозного.

Начинаешь задумываться, что больше влияет на успех – команда, продукт или рынок? Или, проще говоря, в чём рецепт успеха? Или, наоборот, что наиболее опасно – плохая команда, слабый продукт или дохлый рынок?
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии4

Руководство для дизайнера по DPI

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


Это руководство — начальный материал о кросс-DPI и кроссплатформенном дизайне для начинающих и средних дизайнеров, желающих узнать о нем с самого начала или получить больше знаний. Без сложных математических и непонятных диаграмм, только непосредственные объяснения, упорядоченные в небольших разделах, для понимания и применения их непосредственно к вашей дизайнерской работе.

Автор — Sebastien Gabriel.

Я не знаю всего, так что, если по вашему мнению я где то ошибаюсь или вам нужно уточнить что-то, либо у вас есть предложения или вопросы для улучшения данного руководства, отправьте письмо (на англ) на sgabriel.contact@gmail.com. Вы также можете найти на меня Twitter, G+ или Facebook.
Читать дальше →
Всего голосов 92: ↑88 и ↓4+84
Комментарии19

Информация

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