Как стать автором
Обновить
0
0
Антон Романович @the_toster

web dev

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

Фибоначчи на собеседовании

Время на прочтение8 мин
Количество просмотров126K
Вычисление ряда Фибоначчи — это классическая алгоритмическая задача, потому её нередко дают на собеседованиях, когда хотят проверить, что кандидат в принципе хоть как-то умеет в алгоритмы. Предположим, вы тот самый кандидат. Вам дали задание: на языке JavaScript написать функцию fib(n), возвращающую энное число Фибоначчи. Считаем, что нулевое число Фибоначчи — это нуль. Проверка корректности аргумента не требуется. Какие у вас есть варианты?

image
Выбирай мудро
Всего голосов 183: ↑177 и ↓6+171
Комментарии135

Ember.js: (снова) время попробовать

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

Я написал эту статью по мотивам выступления, которое я делал на встрече Berlin.js. В последнее время выходит мало русскоязычных материалов об этом довольно популярном и стабильном фреймворке и я решил немного исправить эту ситуацию.


Вы учите Ember.js один раз, а потом применяете эти знания на всех Ember.js проектах. Этот тезис я попытаюсь раскрыть под катом.

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

Лучше день потерять

Время на прочтение20 мин
Количество просмотров15K
В инвестировании есть понятие «Плохо сейчас — хорошо потом». Инвестор регулярно отщипывает 10, 20% или даже 30% своего заработка на будущее. Эти деньги он инвестирует в облигации, акции, ОФЗ, ETF — кто во что горазд. Сейчас, в моменте, инвестор отбирает у себя свой заработок, лишает себя каких-то благ, чтобы в будущем, на горизонте в 10-20 лет, получить пользу от инвестиций. Прибыль в будущем покроет сегодняшние лишения. Примерно такую же стратегию исповедует Алексей Охрименко (obenjiro), но применительно к разработке — лучше день потерять, а потом за 5 минут полететь.


Источник

На Frontend Conf 2018 Алексей рассказал, как потеряв кучу времени сейчас, в конечном счете его сэкономить потом. Этот доклад не о чувстве скуки и не о том, как бороться с монотонными и рутинными задачами, а о том как потратить время по максимуму — сколько есть, все потратить, и посмотреть, что из этого получится. В расшифровке доклада опыт написания инструментов для отладки, тестирования, оптимизации, скафолдинга и валидации под разные проекты. Бонусом Алексей расскажет о ряде уже существующих инструментов и о пользе, которую они приносят. Давайте выяснять, надо ли вообще на это тратить время.

О докладчике: Алексей Охрименко — разработчик в Avito Frontend Architecture, где немного улучшает жизнь миллионов людей. Ведет подкаст «5 min Angular», а в свободное ото сна и подкаста время организует Angular Meetup вместе с ребятами из Тинькофф, и выступает с огромным количеством разных и спорных докладов.
Всего голосов 41: ↑37 и ↓4+33
Комментарии15

NLP. Основы. Техники. Саморазвитие. Часть 2: NER

Время на прочтение19 мин
Количество просмотров53K
Первую часть статьи об основах NLP можно прочитать здесь. А сегодня мы поговорим об одной из самых популярных задач NLP – извлечении именованных сущностей (Named-entity recognition, NER) – и разберем подробно архитектуры решений этой задачи.

image
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии3

Где взять аудиосемплы для ваших проектов: подборка из девяти тематических ресурсов

Время на прочтение5 мин
Количество просмотров36K
В прошлый раз мы делали подборку ресурсов с полноценными музыкальными композициями для приложений, игр или видео. Сегодня рассказываем о площадках с библиотеками коротких звуков и семплов, распространяемых в основном по лицензиям класса Creative Commons.

Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии5

Подборка интересных фактов о великих айтишниках

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

Джордж Буль


Джордж Буль (1815 — 1864) — английский профессор математики, чьи работы способствовали созданию современной символической логики. Его алгебра логики, называемая булевой алгеброй или булевой логикой (алгебраическая структура, дополненная дистрибутивная решётка и часть математики, которая изучает подобные структуры) — основополагающая для проектирования современных цифровых схем. Работы Буля воплотились в приложениях, которые он никогда бы и представить себе не смог.
Читать дальше →
Всего голосов 158: ↑143 и ↓15+128
Комментарии82

Ричард Фейнман: удовольствие делать открытия

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


Первая часть программы Horizon (BBC, 1981) с Ричардом Фейнманом. О красоте, об отце, о названиях и именах, об алгебре, о наблюдениях и униформе. Это интервью во многом пересекается с книгой "Вы, конечно, шутите, мистер Фейнман", поэтому по большей части монолог касается жизни ученого, его взгляде на жизнь и тому, как такой взгляд развился и кто на него повлиял.
Читать дальше →
Всего голосов 177: ↑170 и ↓7+163
Комментарии30

Госнаркоконтроль преследует Ализара

Время на прочтение2 мин
Количество просмотров26K
Сравнительно недавно — 14 октября 2011 года — alizar перевёл и выложил на Хабрахабре статью Гленна Гринуолда «Стив Джобс и политика в отношении оборота наркотиков», автор которой завершил свой труд следующим умозаключением:

— Учитывая все эти факты, опыт Стива Джобса и многих других выдающихся людей, а также учитывая опыт миллионов американцев по употреблению лёгких наркотиков (среди них — нынешний и прошлые президенты США), совершенно непонятным выглядит то жестокое наказание — тюремное заключение, которое предусмотрено в законодательстве многих стран за оборот лёгких наркотиков и психоделиков. Миллионы людей бросают в тюрьмы за приём этих практически безвредных препаратов, в то время как оставшиеся на свободе, как Стив Джобс, принимают их тайком. Политику властей в этом смысле можно назвать варварством.

(Конец цитаты.)

Я не уверен, возможна ли лучшая иллюстрация осуждаемой Гринуолдом суровости, нежели та, которая последовала в реальности. Не штатовская, а вполне российская Федеральная служба по контролю за оборотом наркотиков связалась с администрацией Хабрахабра и запросила все данные на Ализара, обвиняя его в пропаганде распространения наркотиков — об этом вчера поведал в Твиттере Денис Крючков (@deniskin, создатель Хабрахабра), а Владислав Михеев пересказал в «Вебпланете».

Читать дальше →
Всего голосов 551: ↑527 и ↓24+503
Комментарии612

Топология на пальцах

Время на прочтение3 мин
Количество просмотров213K
Топология — довольно красивое, звучное слово, очень популярное в некоторых нематематических кругах, заинтересовало меня еще в 9 классе. Точного представления конечно же я не имел, тем не менее, подозревал, что все завязано на геометрии.

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

Реконизм

Время на прочтение3 мин
Количество просмотров3.6K
Меня всегда удивляло отношение многих к анонимности и криптографии, как к универсальному средству борьбы с мировым злом. Стоит появиться новости о том, что где-то правительство закручивает гайки, или копирасты проталкивают очередной идиотский законопроект, обязательно возникает комментарий в духе “Ха! Вот мы щас I2P и TrueСrypt из широких штанин достанем, и они утрутся...” Нет, безусловно, в определённых ситуациях шифроваться можно и нужно. Анонимность может спасти жизнь в стране, где принято казнить людей, несогласных с тем, что текущий вечно живой вождь мудро ведёт свой народ к процветанию, а временные перебои с поставками продовольствия — всего лишь досадная мелочь. Но уход в подполье — это последняя надежда, аппарат искусственного дыхания для умирающей свободы, а не оружие победы.

Как-то раз я наткнулся в Сети на вики-проект со странным названием “Реконизм”. Что-то про новый общественный строй и светлое будущее. Но, пообщавшись с автором проекта и углубившись в чтение, убедился, что Рома Петров (@rpetrov) — совершенно нормальный и вменяемый человек, а не маньяк-графоман, точно знающий “как нам обустроить Россию” и черпающий вдохновение в задушевных беседах с инопланетянами. Его отношение к приватности и анонимности почти совпадало с моим, а многие статьи на его вики выглядели воплощением моих задумок и черновиков. Слово за слово, мы дообщались до того, что написали целую книгу о взаимной прозрачности, децентрализации и викификации общества. Пожалуй, одним из самых сильных стимулов к написанию книги было то, что нам так и не удалось найти изданий на русском языке, раскрывающих тему информационной прозрачности.
Читать дальше →
Всего голосов 55: ↑43 и ↓12+31
Комментарии98

Несколько полезных сервисов

Время на прочтение2 мин
Количество просмотров126K
Хочу поделиться ссылками на несколько полезных сервисов. Некоторые из них помогут сэкономить время, другие — сделают за Вас незнакомую/нелюбимую работу. Список разбит по категориям, чтобы было легче ориентироваться.

Сервисы опросов
userreport.com (добавил Romanych)
simpoll.ru
webanketa.com (добавил mihass)

Кнопки постинга в социальные сети
Кнопка от Яндекса
addthis.com (добавил UksusoFF)
share42.com
Читать дальше →
Всего голосов 382: ↑356 и ↓26+330
Комментарии108

JavaScript. Оптимизация: опыт, проверенный временем

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

Предисловие


Давно хотел написать. Мысли есть, желание есть, времени нету… Но вот нашлось, так что привет, Хабра.
Здесь я собрал все идеи, которые помогали и помогают в разработке веб-приложений. Для удобства я разбил их на группы:
  1. Память
  2. Оптимизация операций
  3. Выделение критических участков
  4. Циклы и объектные свойства
  5. Немножко о DOM
  6. DocumentFragment как промежуточный буфер
  7. О преобразованиях в объекты
  8. Разбитие кода
  9. События перетаскивания
  10. Другие советы

Сейчас речь не пойдёт ни о каких библиотеках. Я постараюсь передать знания о механизмах самого языка, а не их реализациях в библиотеках.

Память

Хоть это и не должно волновать клиентского программиста, но не забываем, что память всё-таки не бесконечна и когда-нибудь может закончиться, например, когда запущено несколько массивных программ: офис, графический редактор, компиляция большой программы и др. Несмотря на то, что приведенный пример тривиален, у меня действительно такое случилось, хоть и не из-за браузера, но он тоже сыграл свою роль: 1,3 Гб оперативы (отладчик, около 30 вкладок), начались тормоза по перегрузке страниц ОП в файл подкачки.
Чтобы уменьшить расход памяти, я предлагаю несколько способов:
Читать дальше →
Всего голосов 113: ↑92 и ↓21+71
Комментарии99

Duqu: 0day + инсталлятор

Время на прочтение2 мин
Количество просмотров7.3K
В предыдущем посте мы уже вкратце рассказали о весьма изощренном трояне Duqu, ворующем конфиденциальную информацию компаний и самоуничтожающемся после завершения работы. На что мы получили 2 заявки
1. найти инсталляционный файл
2. найти уязвимость нулевого дня

Итак, концерт по заявкам:

image
Схема инфицирования Duqu
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии18

Бот для Flash-игры / Внедряемся в Flash

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

В рамках недели ботов для браузерных игр.

Эта неделя богата на статьи о ботах для бразуерных игр.
Во всех статьях для управления ботом использовался AutoIT. Это простой и хороший способ чтобы начать делать бота «в лоб», он не требует никаких знаний об игре, кроме как знания правил и графического интерфейса. Для серверной части игры такой бот вообще будет выглядеть как обычный пользователь, если не брать во внимание невероятную усидчивость и производительность такого игрока.

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

В первой статье я наткнулся на комментарий со ссылкой на пост Adobe Profiler Fail, что побудило меня исследовать эту возможность в целях автоматизации действий в Flash-играх.
Читать дальше →
Всего голосов 79: ↑77 и ↓2+75
Комментарии27

Backbone.js для «чайников»

Время на прочтение13 мин
Количество просмотров288K
Backbone.js для чайников
Как то поздним вечерком мне пришла мысль изучить Backbone.js и привязать его к уже написанному на jQuery сервису. Сервис уже серьёзно расширился и меня достало это нагромождение обработчиков кликов, запросов и логики. Поэтому, я как усердный школьник полез в официальную документацию. Но либо я тупой, либо мой английский меня подкачал, либо то и другое вместе, но я не черта не понял. Я прочитал уже второй раз, внимательно, и для особо одарённых мест использовал google translate. Прочитал также и пример ToDo List. Всё показалось понятно, ровно до той поры пока я не стал писать. После чего я взял всё что нашел по этой библиотеке, как на английском так и переводы. Прочтя кипу документации я решил, что сейчас вроде всё понял. Я напрягся, но… Не вышел каменный цветок у мастера Данилы, т.е. вышло, но это явно был не цветок, и камень как то неправильно пах. Тогда, как прилежный ученик, я решил написать «Hello, KittyWorld» с нуля. Попутно комментируя и сохраняя шаги в hg, у меня получилось введение в backbone.js framework для таких как я, особо одарённых.
Данные 7 шагов с комментариями.
Всего голосов 113: ↑110 и ↓3+107
Комментарии51

Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

Время на прочтение20 мин
Количество просмотров315K
Идеальная вёрсткаВы PM. Как узнать – готова ли вёрстка к реальному использованию?
Вы заказчик. Как убедиться, что работа выполнена качественно?
Как оценить качество вёрстки?

Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

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

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

Итак что же это за список?

Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.

История обновлений:
  • 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
  • 2015/08/10: актуализирован список исключений для CSSLint
  • 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
  • 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
  • 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
  • 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
  • 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
  • 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
  • 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
  • 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.


Далее с примерами - как проверить html, даже если вы ничего не понимаете в вёрстке.
Всего голосов 335: ↑318 и ↓17+301
Комментарии244
2

Информация

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