Pull to refresh
0
@Cachenezread⁠-⁠only

User

Send message

Ваш уровень программирования и не только

Reading time4 min
Views41K
Вам интересен ваш уровень программирования?
Информатика и теория информации
2n (Уровень 0) n2 (Уровень 1) n (Уровень 2) log(n) (Уровень 3) Комменатрии (от автора)
Структуры данных Не знает разницу между массивом и связным списком Может объяснить суть и использовать массивы, связные списки, ассоциативные массивы Может рассказать как реализуются хэш-таблицы, обрабатываются столкновения в них, знает очереди приоритетов и способы их реализации Знает сложные структуры данных, такие как: биноминальную и фиббоначиевую кучу, Б-дерево, AVL дерево, красно-черноё дерево, префиксное дерево, расширяющиеся дерево, список с пропусками.

Прим.переводчика: извиняюсь за костлявость перевода, также я заменил некоторые труднопереводимые выражения.
Тогда просим под кат.
Мне интересно, дальше!
Total votes 101: ↑46 and ↓55-9
Comments37

Девушка изучает веб-программирование: 180 сайтов за 180 дней

Reading time2 min
Views302K
Чуть больше четырёх месяцев назад Дженнифер Девальт (Jennifer Dewalt) приняла важное решение — научиться программировать. Хотя у неё не было опыта в этом деле, она никогда не посещала технических спецкурсов в школе, а наоборот — увлекалась только искусствами, но девушка сразу же решительно взялась за дело.

Дженнифер установила правило, что каждый день будет делать по одному веб-сайту, без выходных. При этом каждый веб-сайт должен сопровождаться новой записью в блоге, а весь код выкладываться на Github. Сегодня наступил 115-й день её марафона.
Читать дальше →
Total votes 202: ↑157 and ↓45+112
Comments241

Искусство понимать с полуслова. Расширение запроса в Яндексе

Reading time20 min
Views30K
Сегодня мы расскажем о механизме, который позволяет поиску Яндекса находить именно то, что имел в виду пользователь, как бы кратко и небрежно он ни сформулировал свой запрос.

В мире поиска такой механизм называют расширением поискового запроса. Термин достаточно широкий, включает в себя переформулировки, синонимы, транслит и даже однокоренные слова (последние иногда ошибочно называют поддержкой морфологии).

Из каких частей этот механизм состоит? Что помогает ему угадывать? И почему на каждую из его редких ошибок приходятся тысячи запросов, на которых он сильно помог?

image
Почему нельзя просто так взять и расширить запрос.
Читать дальше →
Total votes 78: ↑75 and ↓3+72
Comments28

Пишем свой системный монитор (Linux)

Reading time9 min
Views41K
В этой статье я опишу процесс создания собственного системного монитора. Данный системный монитор показывает:
  • Hostname
  • Имя пользователя
  • Uptime
  • Имя модели процессора
  • Частоту процессора
  • Загрузку процессора
  • Количество оперативной памяти
  • Количество используемой оперативной памяти без кэшируемых данных
  • Запущенные процессы
Читать дальше →
Total votes 80: ↑54 and ↓26+28
Comments68

Экзамен PMP: подготовка, аудит, рекомендации

Reading time9 min
Views32K
В интернете достаточно легко найти, что из себя представляет экзамен PMP, формальные требования для допуска к экзамену, и стандартная последовательность шагов для сдачи. Например, на хабре.

Однако в процессе подготовки я понял, что информации по практическим вопросам подготовки и сдачи не достаточно, особенно по прохождению аудита.

В этой статье я хочу поделиться личным опытом подготовки, процесса подачи документов, прохождения аудита и сдачи экзамена.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments11

Технопарк Mail.Ru изнутри

Reading time3 min
Views32K
Привет, Хабр!
Здесь уже было несколько статей про Технопарк: Технопарк Mail.Ru Начало, пост, вдохновленный технопарковской инфографикой, статьи про преподаваемые дисциплины (первая, вторая)…
Мне выпала честь рассказать о том, каков Технопарк с точки зрения студента.
 
image
Читать дальше →
Total votes 72: ↑39 and ↓33+6
Comments68

STL для новичков. Реализация класса-контейнера

Reading time6 min
Views17K
Привет Хабр, наверное все, кто изучает С++ хотят разобраться как реализованы и как работают классы-контейнеры из стандартной библиотеки. Как по мне, чтобы лучше освоить нечто похожее на контейнеры, то надо попробовать реализовать один из контейнеров самому. В этой статье я хочу показать вам хотя бы примерно как реализуются классы-контейнеры на примере списка. Хочу сразу сказать, что это не будет копирование всего функционала, а будет показана только концепция работы контейнера, а именно реализуем класс списка и класс итератора для работы с ним.

Статья будет интересна только новичкам, которые начинают изучать стандартную библиотеку, профессионалы не найдут здесь для себя ничего новго.
Читать дальше →
Total votes 14: ↑4 and ↓10-6
Comments6

Что это действительно значит быть «младшим программистом»

Reading time8 min
Views62K

Вечер пятницы, я получил имэйл от моего приятеля, который только что закончил колледж (Рочестерский Технологический Институт) и работает в весьма многообещающем стартапе, занимающемся программированием C++ систем и обучением искуственных интелектов. Ниже небольшой фрагмент его письма.

Чувак, одна вещь на работе не дает мне покоя – хотя мои коллеги по большей части приятные люди, я чувствую, как будто мою работу совершенно не ценят. Я работаю с шестью инженерами (вместе мы составляем команду из семи инженеров). Из шести, один — Platform Architect (Архитектор платформ), двое – Старших Инженеров-Прикладников, еще один – Software Architect (Программный Архитектор), остальные два отвечают за Обеспечение Качества. Если честно, и я не хочу, чтобы это прозвучало надменно, но за исключением одного Старшего Инженера-Прикладника, я понял, что знаю намного больше чем все эти «старшие» парни. Не пойми меня неправильно… они занимаются этим уже много лет, работают над важными системами и все такое, но я более образован чем они. Чаще всего, из-за того, что я Младший Системный Инженер, мои идеи просто отметаются и моя напряженная работа совершенно не ценится… откровенно говоря, это меня ужасно бесит. Иногда я подумываю о том, чтобы вернуться к фрилансу (особенно учитывая, что я уже закончил колледж).
Читать дальше →
Total votes 97: ↑68 and ↓29+39
Comments42

Как из одной прикольной фигни сделать еще более прикольную фигню или функциональный язык на коленке

Reading time6 min
Views18K
«Бросая в воду камешки, смотри на круги, ими образуемые; иначе такое бросание будет пустою забавою.»
К.Прутков


Однажды, бесцельно тратя рабочее время и деньги работодателя с помощью серфинга интернета, наткнулся я на описание языка Whenever и на некоторое время был очарован. Язык поражает своей безумной простотой. Принципы его таковы:

1) Строки кода программы обязательно будут исполнены когда-нибудь, однако порядок их исполнения вообще никак не связан с порядком, в котором они записаны.
2) Переменные? У нас нету даже контроля за порядком исполнения, нам не нужны никакие переменные.
3) Структуры данных? Да вы шутите!

То есть программа трактуется как набор (пул) строк на выполнение и интерпретатор выбирает оттуда строку наугад, выполняет ее команды и выкидывает из пула. И так пока в пуле ничего не останется. Надо признать, что автор сего безумия почти выдержал концепцию. Почти, потому что все же организовать порядок выполнения в программе можно, так же, как и завести переменные, используя возможность добавления строк в пул выполняемых.

Итак, в языке есть следующие конструкции:
Total votes 56: ↑51 and ↓5+46
Comments16

Руководство по магическим методам в Питоне

Reading time28 min
Views574K
Это перевод 1.17 версии руководства от Rafe Kettler.


Содержание


  1. Вступление
  2. Конструирование и инициализация
  3. Переопределение операторов на произвольных классах
  4. Представление своих классов
  5. Контроль доступа к атрибутам
  6. Создание произвольных последовательностей
  7. Отражение
  8. Вызываемые объекты
  9. Менеджеры контекста
  10. Абстрактные базовые классы
  11. Построение дескрипторов
  12. Копирование
  13. Использование модуля pickle на своих объектах
  14. Заключение
  15. Приложение 1: Как вызывать магические методы
  16. Приложение 2: Изменения в Питоне 3


Вступление


Что такое магические методы? Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя нижними подчеркиваниями (например, __init__ или __lt__). Ещё, они не так хорошо документированны, как хотелось бы. Все магические методы описаны в документации, но весьма беспорядочно и почти безо всякой организации. Поэтому, чтобы исправить то, что я воспринимаю как недостаток документации Питона, я собираюсь предоставить больше информации о магических методах, написанной на понятном языке и обильно снабжённой примерами. Надеюсь, это руководство вам понравится. Используйте его как обучающий материал, памятку или полное описание. Я просто постарался как можно понятнее описать магические методы.
Читать дальше
Total votes 143: ↑139 and ↓4+135
Comments59

Итоги online конференции ruHaxe 2

Reading time2 min
Views4.1K
image

Уже давным-давно, казалось-бы, в прошлую пятницу, но на самом деле 6 июля 2013 года в 13:00 по Москве (10:00 по Гринвичу) состоялась вторая online конференция ruHaxe.
(отчёт о первой конференции)

Группа сообщников, при содействии интернета, ютуба, скайпа и просто здравого смысла пообщались в онлайне и послушали интересные доклады интересных людей про haxe, maven, GUI, Unity3d, ну и т.д. и т.п.

Что же там было?
Total votes 15: ↑13 and ↓2+11
Comments2

Интервью с индивидуальным разработчиком на Delphi

Reading time4 min
Views8.6K
Нам часто задают вопросы, а есть ли реальные проекты, реализованные на FireMonkey. Поговорим об этом с Артёмом Бойковым. Он использует Delphi, а сегодня расскажет о своих проектах на FireMonkey.
Артем Бойков – индивидуальный разработчик, сайт его компании www.oilsoft-service.com. Специализируется на разработке ПО под заказчика, также есть проекты для широкого круга пользователей.



Embarcadero: Мы знаем, что ты недавно выпустил первые свои коммерческие проекты, сделанные в Delphi и FireMonkey. Расскажи, что это за проекты.

Артём: первый проект – это приложение по настройке забойной телесистемы (ЗТС) применяемой во время бурения нефтяных скважин. Прибор подключается по USB к программе и осуществляет его настройку. Второй – система для администрирования базы отдыха. Позволяет резервировать домики и наглядно отображать размещение клиентов. Более подробная информация на сайте.

E: А ты работаешь в команде? Или ты – индивидуальный разработчик?

А: Было время, нанимал помощника. Но, в основном, индивидуальный разработчик. Всегда мечтал работать в команде среди профи.

E: Какой у тебя вообще опыт использования Delphi?

А: Программированием увлекся еще с детства. Примерно в пятом классе родители купили компьютер «Дельта-с». Многие наверно помнят, что это за аппараты, когда программы писались на магнитную ленту. Там был реализован Basic. Он мне нравился. Я все мечтал сделать на нем 3D-изображение с вращением. Я только познавал мир программирования. Я с детства мечтал быть программистом. Когда поступил в институт на программиста, столкнулся первый раз с Pascal. После непродолжительного изучения я начал осознавать, что Delphi — очень удобен и понятен.

Начал сравнивать его с С++. Да простят меня «Сишники», этот язык показался мне слишком синтезированным и сложным в изучении. Дипломный проект был написан на Delphi. В 2006 примерно я перешел на должность программиста, до этого был геологом и геофизиком. А потом подумал что на этом можно зарабатывать и неплохие деньги. После чего открыл свое дело.

Читать дальше →
Total votes 75: ↑15 and ↓60-45
Comments28

Размышления о программировании

Reading time14 min
Views35K

От Аристотеля к Витгенштейну


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

Предисловие

Развитие информатики как науки представляется рекой, которая рождается в далеком прошлом (Евклид, III век до н.э.; Вавилон, XIX век до н.э.; а возможно и раньше) из едва заметных ручейков первых алгоритмических вычислений. Неспешно двигаясь по истории, ручейки объединяются в реку, которая, неся свои воды через века, вбирает в себя притоки из смежных дисциплин, накапливает величественность и мощь и, наконец, срывается ниагарским водопадом из второго в третье тысячелетие, превращаясь в стремительный бурлящий поток, который захватывает и несет с собой из прошлого в будущее миллионы людей.



Броуновской частице, которую то бросает на стремнину с турбулентным течением, то опрокидывает в застоявшееся болото, то на мелководье, то в омут; мир информационных технологий видится загадочным, изменчивым и непредсказуемым. Однако радость постоянного движения, героического преодоления трудностей, бешеного вращения калейдоскопа новых впечатлений со временем сменяется тоской, томлением духа и непреодолимой потребностью на мгновение приподняться над суетой, взглянуть со стороны на этот бешено бурлящий поток и попытаться разглядеть, если не общее направление бурной реки, то хотя бы ближайший поворот той протоки, в которой барахтаешься.
Читать дальше →
Total votes 85: ↑58 and ↓27+31
Comments82

Обзор новых возможностей С++14: Часть 1

Reading time10 min
Views138K
В апреле в Бристоле прошла встреча комитета С++, на которой были рассмотрены первые предложения по внесению изменений в новый стандарт С++14. Все рассматриваемые в этой статье изменения были одобрены на этой встрече и уже занимают свое почетное место в последней версии черновика нового стандарта (N3690 от 15 мая 2013).

Краткий перечень:
  • Автоматическое определение типа возвращаемого значения для обычных функций
  • Обобщенная инициализация захваченных переменных лямбд с поддержкой захвата-по-перемещению
  • Обобщенные (полиморфные) лямбда-выражения
  • Упрощенные ограничения на создание constexpr функций
  • Шаблоны переменных
  • exchange
  • make_unique
  • Обособленные строки
  • Пользовательские литералы для типов стандартной библиотеки
  • optional
  • shared_mutex и shared_lock
  • dynarray

Читать дальше →
Total votes 72: ↑68 and ↓4+64
Comments86

Автоматизация слежения за разделами на ebay средствами PHP: история одной покупки

Reading time3 min
Views19K
Привет, Хабр! В данном посте я бы хотел поделиться с сообществом моим способом автоматизации слежения за ценами товаров на ebay.
Зачем? Каждому свое, а мне захотелось купить подешевле. Итак, прошу под кат.
Читать дальше →
Total votes 38: ↑31 and ↓7+24
Comments10

Рэгдолл физика своими руками. Часть первая

Reading time4 min
Views33K
Как-то раз я решил написать игру. Для себя и в своё удовольствие. Передо мной стоял выбор – использовать всё готовенькое ака Box2D или написать для неё физику самому. Второй вариант показался мне более интересным, и я принялся выискивать в просторах сети информацию, которая помогла бы мне написать всё необходимое. Выискал. Как результат получился очень гибкий(как для игры) и простой физический движок. Основой движка стал метод численного интегрирования Верле.



Читать дальше →
Total votes 52: ↑44 and ↓8+36
Comments13

Сглаживание цифровых сигналов

Reading time12 min
Views93K

Введение


Данную статью меня заставил написать пост habrahabr.ru/post/183986, где не совсем правильно используется некоторый алгоритм сглаживания изображения.

Сразу перейдём к сути дела.

Математические модели цифровых сигналов — вектора и матрицы, элементами которых являются числа. Числа могут быть двоичными (бинарный сигнал), десятичными («обычный» сигнал) и так далее. Любой звук, любое изображение и видео могут быть преобразованы в цифровой сигнал1: звук — в вектор, изображение — в матрицу, а видео — в последовательный набор матриц. Поэтому цифровой сигнал — это, можно сказать, универсальный объект для представления информации.

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

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

Приведём пример «плохого» сглаживания


Казалось бы, обычное усреднение и сигнал на выходе должен быть «гладким». Но как определить, насколько он стал «глаже»? Не переборщили ли мы? А может быть некоторые коэффициенты выбрать не по 1/3? А может быть усреднить по пяти точкам? Как определить насколько ослабляются частотные составляющие в сигнале? Как найти свой (то есть для конкретной задачи) оптимум?
На эти и некоторые другие вопросы я постараюсь ответить так, чтобы «обычный» программист смог обосновать свой алгоритм, — надеюсь, не только алгоритм на тему «Сглаживание», так как идеи будут излагаться весьма общие, заставляющие думать самому
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments31

PocketBook выпустила новый 5-дюймовый ридер с «электронными чернилами»

Reading time2 min
Views15K
PocketBook 26 июня анонсировала новый ридер с экраном E-Ink – PocketBook 515. Вообще модель получилась симпатичной, хотя харизмы, которая была у предыдущих устройств этой марки с 5-дюймовыми экранами (PocketBook 360, 360 Plus и 360 Plus New), на мой взгляд, новинке все же не хватает.

Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments18

Каверзные кватернионы

Reading time4 min
Views185K


Отгадайте загадку: в четырёх измерениях сидит и комплексными числами воротит?

Подсказка: это вектор со скаляром. И вещественная матрица. И придумал его Гамильтон.

Не помогло? Ну что вы, это же элементарно! Это кватернион! Кватернионы используют для записи вращений в робототехнике, игровых движках, ПО для моделирования и вообще везде, где не нужны проблемы с углами Эйлера или матрицами. Если вас испугала путаница выше с разными представлениями кватерниона, то можете быть спокойны. Кватернионы очень просты в использовании и их внутреннее строение может понадобиться только в очень редких случаях, где нужна тонкая оптимизация. В остальное время с помощью кватернионов можно крутить всё что угодно и как угодно, и оно будет плавно и красиво интерполироваться без шарнирных замков.
Что же такое кватернион?
Total votes 110: ↑102 and ↓8+94
Comments48

Про Linux — для любознательных Windows-пользователей

Reading time9 min
Views314K


Так уж получилось, что даже на Хабре многие имеют очень смутное представление о семействе OS Linux.

Цель данной статьи – максимально популярным языком рассказать про особенности и отличия Linux от Windows для тех, кто вообще не имел с ним дела.

Я уже не один год свободно пользуюсь Archlinux, загружая винду лишь «на поиграться». Данная статья рассказывает о вещах, которые я выяснил эмпирическим путем, тыкаясь словно слепой котенок. Если бы в свое время мне попалась бы именно такая информация именно в такой форме — это сэкономило бы мне как минимум 2 года, в течение которых я переходил с Windows на Linux.

Станиславский заинтригован!
Total votes 265: ↑179 and ↓86+93
Comments497

Information

Rating
Does not participate
Registered
Activity