Как стать автором
Обновить
0
@Bazread⁠-⁠only

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

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

Как проходят алгоритмические секции на собеседованиях в Яндекс

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

Алгоритмическая секция с написанием кода на доске или бумаге — один из важнейших этапов собеседования разработчиков для получения работы в Яндексе. Мы решили подробнее рассказать о том, как устроены эти секции, чтобы помочь будущим кандидатам в подготовке. Кроме того, надеюсь, многие из тех, кто не решается прийти в Яндекс на собеседование, опасаясь слишком сложных испытаний, после этого рассказа поймут, что в действительности всё не так уж и страшно!


Так что мы подготовили для вас следующие материалы:


  • Специальный контест, содержащий задачи, похожие на те, что мы даём на интервью.
  • Этот пост. В нём рассказывается, почему нужно проводить такие секции, а также разбираются все задачи контеста.
  • Два видео, в которых разбираются задачи из контеста: в первом — задача попроще, во втором — две задачи посложнее. Из этих видео вы узнаете о типичных ошибках, допускаемых и при прохождении алгоритмических секций, и при написании продакшен-кода.
Читать дальше →
Всего голосов 86: ↑52 и ↓34+18
Комментарии105

Организация отступов в верстке (margin/padding)

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


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

Ниже перечисленные принципы выполняются в среде позиционирования элементов на странице. В элементах декора тоже выполняются. Но не так категорично.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии44

Персона. Командир Нортон

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

Питер Нортон известен большинству пользователей персональных компьютеров. Правда, не все об этом задумываются, не все представляют, насколько велики его заслуги. За плечами Питера годы работы над такими продуктами, как Norton Commander, Norton Utilities, Norton Disk Doctor. Он также является автором таких популярных книг, как «Внутри IBM PC», «Внутри OS/2» и «Справочник программиста».

Нортон создал новое направление разработки ПО. Он был новатором и с точки зрения рынка, и в техническом плане. Однако Питер Нортон работал не ради денег и славы. По крайней мере, сам он в это верит.
Читать дальше →
Всего голосов 57: ↑54 и ↓3+51
Комментарии60

[в закладки] Bash для начинающих: 21 полезная команда

Время на прочтение9 мин
Количество просмотров143K
Материал, перевод которого мы публикуем сегодня, предназначен для тех, кто хочет освоить командную строку Linux. Умение эффективно пользоваться этим инструментом позволяет экономить немало времени. В частности, речь здесь пойдёт о командной оболочке Bash и о 21 полезной команде. Также мы поговорим о том, как пользоваться флагами команд и псевдонимами Bash, которые позволяют ускорить ввод длинных инструкций.



Также читайте в нашем блоге цикл публикаций про bash-скрипты
Читать дальше →
Всего голосов 58: ↑34 и ↓24+10
Комментарии25

JavaScript: загадочное дело выражения null >= 0

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


Однажды я собирал материалы чтобы устроить ликбез по JavaScript для пары коллег. Тогда я и наткнулся на довольно интересный пример, в котором рассматривалось сравнение значения null с нулём. Собственно говоря, вот этот пример:

null > 0; // false
null == 0; // false
null >= 0; // true

На первый взгляд — полная бессмыслица. Как некое значение может быть не больше, чем 0, не равно нулю, но при этом быть больше или равно нулю?
Всего голосов 52: ↑49 и ↓3+46
Комментарии52

Я всё ещё здесь: возвращение в Cеть спустя год без Интернета

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


Я был неправ.

Год назад я покинул Интернет. Я думал, что он пагубно влияет на мою продуктивность. Я думал, что ему не хватает смысла. Я думал, что он «развращал мою душу».

Уже год прошёл с тех пор, как я «сёрфил по Сети» или «проверял почту» или «лайкал» что-либо в фигуральном смысле заместо обычного «пальца вверх». Я научился оставаться отключённым, как и планировал, я свободен от Интернета.

Теперь я собираюсь рассказать вам, как всё это решило мои проблемы. Я собирался быть просвещённым, более «реальным». Более совершенным.

На самом деле сейчас 8 вечера, и я только проснулся. Я спал весь день, проснулся с восемью сообщениями на голосовой почте от друзей и коллег. Я пошёл в своё обычное кафе за обедом, игрой Knicks, двумя моими газетами и копией The New Yorker. А сейчас я смотрю «Историю игрушек», попутно уставившись и моргая на мигающий курсор в этом текстовом документе, надеясь, что он напишет себя сам, сгенерирует те прозрения моей жизни, которых я не смог достичь.

Я не хотел встречать такого Пола в конце моего годового путешествия.
Читать дальше →
Всего голосов 215: ↑168 и ↓47+121
Комментарии147

Веб-серверы на солнечных батареях

Время на прочтение1 мин
Количество просмотров1K
С сегодняшнего дня компания Greenest Host начинает предоставление хостинговых услуг на серверах, полностью питающихся энергией Солнца.

Хостинговая компания из Сан-Диего (Калифорния, США) предлагает свои услуги за $14,95 в месяц. Все сервера и другое оборудование Greenest Host питаются от солнечных батарей. В некоторых случаях будут использоваться пропановые генераторы, однако они не должны способствовать парниковому эффекту.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Как я уехал в Штаты в 2000-ом и что было дальше

Время на прочтение6 мин
Количество просмотров8.5K
После одного из моих комментариев несколько человек попросили рассказать как я уехал в Америку. Вкратце дело было так…
Читать дальше →
Всего голосов 285: ↑262 и ↓23+239
Комментарии316

Семь вещей, которые полезно знать о программистах

Время на прочтение5 мин
Количество просмотров96K
Как-то знакомый преподаватель английского языка рассказал, что вчера был на вечеринке и услышал анекдот:

— Ложась спать программист ставит рядом на столик 2 стакана.
— Один с водой — если захочет пить, второй пустой — если не захочет.

Смеялись только программисты, а остальные и он, в том числе, анекдот не поняли. Пришлось сильно постараться, чтобы объяснить гуманитарию, что в этом анекдоте смешного.

Программист – относительно новая профессия. Зародилась она по времени где-то между физиком-ядерщиком и космонавтом. Многие «лирики» и даже некоторые «физики» и «космонавты» нас не понимают. И среди этих людей часто находятся наши коллеги, менеджеры, сотрудники коммерческих департаментов, отделов кадров, владельцы бизнеса, заказчики и др. Этот пост для них. Ну и немного для себя (типа, ретроспектива самоанализ).

Disclaimer. Сейчас программистов много. Хороших и разных. Я буду писать про хороших. И то, не про всех, а про большую часть из тех, с кем имел честь вместе разрабатывать ПО.
Читать дальше →
Всего голосов 355: ↑220 и ↓135+85
Комментарии159

Парсим на Python: Pyparsing для новичков

Время на прочтение6 мин
Количество просмотров185K
Парсинг (синтаксический анализ) представляет собой процесс сопоставления последовательности слов или символов — так называемой формальной грамматике. Например, для строчки кода:

import matplotlib.pyplot  as plt

имеет место следующая грамматика: сначала идёт ключевое слово import, потом название модуля или цепочка имён модулей, разделённых точкой, потом ключевое слово as, а за ним — наше название импортируемому модулю.

В результате парсинга, например, может быть необходимо прийти к следующему выражению:

{ 'import': [ 'matplotlib', 'pyplot' ], 'as': 'plt' }

Данное выражение представляет собой словарь Python, который имеет два ключа: 'import' и 'as'. Значением для ключа 'import' является список, в котором по порядку перечислены названия импортируемых модулей.

Для парсинга как правило используют регулярные выражения. Для этого имеется модуль Python под названием re (regular expression — регулярное выражение). Если вам не доводилось работать с регулярными выражениями, их вид может вас испугать. Например, для строки кода 'import matplotlib.pyplot as plt' оно будет иметь вид:

r'^[ \t]*import +\D+\.\D+ +as \D+'

К счастью, есть удобный и гибкий инструмент для парсинга, который называется Pyparsing. Главное его достоинство — он делает код более читаемым, а также позволяет проводить дополнительную обработку анализируемого текста.

В данной статье мы установим Pyparsing и создадим на нём наш первый парсер.

Читать дальше →
Всего голосов 57: ↑46 и ↓11+35
Комментарии12

Несколько интересностей и полезностей для веб-разработчика (выпуск 2)

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

Webflow



С помощью данного сервиса вы сможете сверстать кроссбраузерный отзывчивый макет за 55 минут. Очень красивый и удобный интерфейс. Идеальное решение для веб-дизайнеров, 26 000 из которых уже используют Webflow. Для создания двух проектов сервис бесплатный, а в дальнейшей перспективе вас ждут вполне демократичные цены. Инструмент реально «крутой».

Если Вам GUI для верстки не комильфо сам по себе как для меня, все равно рекомендую зарегистрироваться и экспортировать парочку responsive макетов. А еще есть простой генератор отзывчивого лэйаута и Responsive Patterns.

Parallax.js


Функциональный и простой инструмент для создания параллакс эффекта.

Читать дальше →
Всего голосов 124: ↑114 и ↓10+104
Комментарии27

О книге Боба Мартина «Чистый код»

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

(Картинка без намека, просто уж очень хотелось котика в статью добавить! Ведь это основной залог популярности в интернетах, правда? :))

У меня очень неоднозначное отношение к книгам Роберта Мартина… В них довольно много здравых и интересных мыслей, но иногда они выражаются столь категорично, что неокрепшим программерским мозгом они могут восприниматься неправильно. Если же мозг читателя достаточно окреп, чтобы воспринимать советы прагматично, то есть все шансы, что ничего нового из этих советов он (мозг или программист) не вынесет.
Читать дальше →
Всего голосов 78: ↑59 и ↓19+40
Комментарии59

Особенности jQuery методов fadeIn, fadeOut и fadeTo

Время на прочтение2 мин
Количество просмотров53K
Итак, рассмотрим что же не так в методах fadeIn и fadeOut, которые, как утверждает документация, являются аналогами метода fadeTo, но имеют некоторые свои особенности. На первый взгляд ничего, всё написано в документации. Однако, это не всегда верно, и не все особенности можно найти в документации.
Читать дальше →
Всего голосов 42: ↑32 и ↓10+22
Комментарии14

Динамические деревья

Время на прочтение8 мин
Количество просмотров36K
Перед прочтением статьи рекомендую посмотреть посты про splay-деревья (1) и деревья по неявному ключу (2, 3, 4)

Динамические деревья (link/cut trees) мало освещены в русскоязычном интернете. Я нашел только краткое описание на алголисте. Тем не менее эта структура данных очень интересна. Она находится на стыке двух областей: потоки и динамические графы.

В первом случае динамические деревья позволяют построить эффективные алгоритмы для задачи о поиске максимального потока. Улучшенные алгоритмы Диница и проталкивания предпотока работают за и соответственно. Если вы не знаете, что такое поток, и на лекциях у вас такого не было, спешите пополнить свои знания в Кормене.

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

Перед тем, как нырнуть под кат, попробуйте решить следующую задачу. Дан взвешенный граф в виде последовательности ребер. По последовательности можно пройти только один раз. Требуется посчитать минимальное покрывающее дерево, используя памяти и времени. По прочтении статьи вы поймете, как легко и просто можно решить эту задачу, используя динамические деревья.
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии5

Какой должна быть магистерская диссертация по computer science?

Время на прочтение3 мин
Количество просмотров44K
Санкт-Петербургский академический университет продолжает набор в магистратуру. Спешите подать заявку, первые собеседования уже прошли.

В этом посте мы порассуждаем о том, какой должна быть магистерская диссертация computer science.

Магистерские диссертации: плохие и хорошие


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

На нашей кафедре защищают два типа магистерских диссертаций: теоретические (теоретическая информатика и биоинформатика) и прикладные (разработка ПО).
Читать дальше →
Всего голосов 50: ↑30 и ↓20+10
Комментарии51

Интернет-радио с множеством ведущих из разных городов и звонками в прямом эфире

Время на прочтение11 мин
Количество просмотров16K
С 1 по 4 мая 2014 года в Воронеже уже в пятнадцатый раз пройдёт ежегодный всероссийский фестиваль японской анимации. Фестиваль стал для нас традицией, посетители съезжаются со многих городов России.

У участников и посетителей возникает множество вопросов и идей относительно фестиваля. И хотя у них есть много возможностей задать эти вопросы нам и получить ответы, организаторы придумали способ дать им ещё одну возможность — организовать интернет-радио и возможность позвонить в прямой эфир и задать вопрос там.

Однако, это осложнено тем, что сам оргкомитет фестиваля географически весьма распределён. Мы находимся в разных городах, в числе которых Кобе (Япония), Москва, Ростов-на-Дону, Вальдкирх (Германия), Краснодар, и конечно же, Воронеж, и это весьма долго и дорого — собраться физически в одном месте. (Достаточно того, что на сам фестиваль все съезжаются.) А нужно ещё организовать входящие звонки в эфир, и желательно тоже бесплатно. При этом хотелось бы максимально простых и безопасных инструкций, например, использования уже имеющегося ПО на компьютерах аудитории.

Организаторы достаточно успешно делают фестиваль, используя голосовые конференции в Skype. Естественной идеей было собраться в конференцию и как-то завернуть её в радио. А для приёма звонков — запустить на компьютере второй Skype, с другой учётной записью, и в нужный момент после приёма вызова заворачивать его на радио и в конференцию (и также конференцию в него).

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

Примечание по поводу скриншотов: они были сделаны не в самый последний момент. Они отражают суть, но не точные настройки, которые использовались. Если что-то отличается, верить следует тексту, а не картинкам.
Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии24

Bootstrap Dropdown Menus Enhancement

Время на прочтение1 мин
Количество просмотров43K
Мне очень нравятся выпадающие меню из Bootstrap. Благодаря простой и понятной семантике их легко и приятно использовать при верстке.

Но для полного счастья мне не хватало некоторой функциональности.

Итак, встречайте расширения Dropdowns
Всего голосов 51: ↑47 и ↓4+43
Комментарии14

Двухпанельный менеджер закладок для Firefox на ExtJS

Время на прочтение5 мин
Количество просмотров16K
Приветствую хабражителей. Я бы хотел рассказать о своем расширении и попросить небольшой помощи.
Называется расширение Total bookmarks, т.к. его интерфейс почти полностью позаимствован у Total commander'а.

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

TDD for Responsive Design. Или как автоматизировать тестирование отображения сайта для разных устройств с помощью Galen Framework

Время на прочтение11 мин
Количество просмотров19K
Трудно одним заголовком сформулировать, чем же является Galen Framework. Все началось с того, что у меня возникла потребность тестировать сайты в различных браузерах и проверять: не поехала ли разметка, например, в том же Internet Explore или Chrome. Затем возникла мода на Responsive Web-Design, и пришлось вручную менять ширину браузера и проверять, как отображаются сайты. И, хотя все это время были WebDriver и Selenium Grid под рукой, так и не получалось нормально тестировать верстку сайта в Java коде. Одна из идей была: делать скриншоты в разных браузерах в Selenium Grid и затем собирать их все в один большой отчет, по которому один из тестировщиков обязан пробежаться глазами и, в случае обнаружения несоответствий, рапортовать о дефекте. К сожалению, вся эта затея долго не продержалась. Тестировщикам стало лень листать огромный отчет и сравнивать скриншоты, и они все равно пропускали мелкие дефекты. А затем пошли требования внедрения во всех сайтах Responsive Design. И вот тут появился Galen Framework. Решение оказалось простым: проверять размер и расположение элементов относительно друг друга. Для этого понадобился специальный язык Galen Specs, который было бы легко читать и понимать.



Если коротко, Galen Framework — это специальный язык и инструмент для тестирования отображения сайта в браузере. Он позволяет тестировать адаптивный дизайн, а также проводить кросс-браузерное тестирование сайта.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии8

Django и особенности использования транзакций в MySQL

Время на прочтение6 мин
Количество просмотров12K
Наверное всем известно, что Django является одним из самых популярных фреймворков для web-разработки на python-е. И даже если в основе web-проекта лежит сторонний код, то зачастую при разработке используют отдельные части этого фреймворка — например ORM. В данной статье я хотел бы рассказать об особенностях использования Django ORM при работе с базой данных MySQL, а именно про транзакции и подводные камни, связанные с ними. Так, например, если в какой-то момент вы осознаёте, что вместо ожидаемых данных, возвращается совершенно другой результат, то возможно, данная статья поможет разобраться что к чему.
Читать дальше →
Всего голосов 52: ↑49 и ↓3+46
Комментарии21
1
23 ...

Информация

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