Search
Write a publication
Pull to refresh
0
@ArchoN_PROTOSSread⁠-⁠only

User

Send message

19 советов по повседневной работе с Git

Reading time14 min
Views289K


Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!

Содержание:
  1. Параметры для удобного просмотра лога
  2. Вывод актуальных изменений в файл
  3. Просмотр изменений в определённых строках файла
  4. Просмотр ещё не влитых в родительскую ветку изменений
  5. Извлечение файла из другой ветки
  6. Пара слов о ребейзе
  7. Сохранение структуры ветки после локального мержа
  8. Исправление последнего коммита вместо создания нового
  9. Три состояния в Git и переключение между ними
  10. Мягкая отмена коммитов
  11. Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
  12. Игнорирование пробелов
  13. Добавление определённых изменений из файла
  14. Поиск и удаление старых веток
  15. Откладывание изменений определённых файлов
  16. Хорошие примечания к коммиту
  17. Автодополнения команд Git
  18. Создание алиасов для часто используемых команд
  19. Быстрый поиск плохого коммита

Читать дальше →

Как работает реляционная БД

Reading time51 min
Views559K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →

Неразрешимые задачи и нижние оценки. Лекция Александра Шеня в Яндексе

Reading time9 min
Views18K
Понятно, зачем теоретики находят эффективные алгоритмы решения задач какого-то класса, а потом практики их реализуют. Но теоретики стараются также доказать, что для некоторых задач эффективных алгоритмов (и даже вообще никаких алгоритмов) не существует. Что при этом им удаётся и не удаётся, и зачем это может быть нужно? В лекции речь идет о «проблеме остановки» и задачах, к которым она сводится, о знаменитом классе NP, а также о простых нижних оценках.



Лекция был прочитана в Малой Школе анализа данных, которую Яндекс организует для старшеклассников. Автор — Александр Шень. Окончил мехмат МГУ, под руководством Владимира Успенского, ученика Колмогорова, защитил диссертацию «Алгоритмические варианты понятия энтропии». Сейчас является сотрудником Института проблем передачи информации им. А.А. Харкевича РАН и Лаборатории Национального центра научных исследований Франции. Научные интересы: алгоритмы, колмогоровская сложность, логика, теория информации. Почти все книги, которые Александр Ханиевич написал о математике и программированию, находятся в свободном доступе.

Под катом — расшифровка лекции.
Читать дальше →

Логика мышления. Часть 1. Нейрон

Reading time10 min
Views320K


Года полтора назад я выкладывал на Хабр цикл видеолекций с моим видением того как работает мозг и каковы возможные пути создания искусственного интеллекта. За прошедшее с тех пор время удалось существенно продвинуться вперед. Что-то получилось глубже понять, что-то удалось смоделировать на компьютере. Что приятно, появились единомышленники, активно участвующие в работе над проектом.

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

Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 9. «Возможности»

Reading time13 min
Views17K
Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «одного своего знакомого».

В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров.

Начало и план перевода тут: «Шкворень: школьники переводят книгу про хакеров».
Пролог
Глава 1. «The Key»
Глава 3. «The Hungry Programmers»
Глава 5. «Cyberwar!»
Глава 6. «I miss crime»
Глава 8. «Welcome to America»
Глава 34. DarkMarket
(публикуем по мере готовности переводов)

Логика выбора книги для работы со школьниками у меня следующая:
  • книг про хакеров на русском языке мало (полторы)
  • книг про кардинг на русском нет вообще (UPD нашлась одна)
  • Кевин Поулсен — редактор WIRED, не глупый товарищ, авторитетный
  • приобщить молодежь к переводу и творчеству на Хабре и получить обратную связь от старших
  • работать в спайке школьники-студенты-специалисты очень эффективно для обучения и показывает значимость работы
  • текст не сильно хардкорный и доступен широкому кругу, но затрагивает вопросы информационной безопасности, уязвимости платежных систем, структуру кардингового подполья, базовые понятия инфраструктуры интернет
  • книга иллюстрирует, что «кормиться» на подпольных форумах — плохо заканчивается

Кто хочет помочь с переводом других глав пишите в личку magisterludi.

Глава 9. Возможности

(за перевод спасибо jellyprol)

Макс надел блейзер и помятые карго брюки на вынесение приговора и молча наблюдал как юристы начали судебные прения по его делу. Дженнифер Граник, адвокат защиты, сказала судье Джеймсу Вэру что Макс заслуживает смягчения приговора за свою работу в качестве эквалайзера. Прокурор выбрал противоположную точку зрения. Макс, как он утверждал, сделал вид будто он стал информатор ФБР, пока втайне совершал преступления против правительства США. Это было хуже чем если бы он никогда не сотрудничал с ними.
Читать дальше →

Фурье-вычисления для сравнения изображений

Reading time10 min
Views66K
Традиционная техника “начального уровня”, сравнения текущего изображения с эталоном основывается на рассмотрении изображений как двумерных функций яркости (дискретных двумерных матриц интенсивности). При этом измеряется либо расстояние между изображениями, либо мера их близости.

Как правило, для вычисления расстояний между изображениями используется формула, являющаяся суммой модулей или квадратов разностей интенсивности:
d(X,Y) = SUM ( X[i,j] — Y[i,j] )^2

Если помимо простого сравнения двух изображений требуется решить задачу обнаружения позиции фрагмента одного изображения в другом, то классический метод “начального уровня”, заключающийся в переборе всех координат и вычисления расстояния по указанной формуле, как правило, терпит неудачу практического использования из-за требуемого большого количества вычислений.

Одним из методов, позволяющих значительно сократить количество вычислений, является применение Фурье преобразований и дискретных Фурье преобразований для расчёта меры совпадения двух изображений при различных смещениях их между собой. Вычисления при этом происходят одновременно для различных комбинаций сдвигов изображений относительно друг друга.

Наличие большого числа библиотек, реализующих Фурье преобразований (во всевозможных вариантах быстрых версий), делает реализацию алгоритмов сравнения изображений не очень сложной задачей для программирования.
Читать дальше →

Новый курс «Анализ безопасности веб-проектов» на Stepic

Reading time2 min
Views12K


Вниманию всех начинающих разработчиков, желающих создавать не только красивые и интересные, но и защищённые сервисы: 10 сентября на Stepic откроется новый курс по программе Технопарка Mail.Ru «Анализ безопасности веб-проектов». Преподаватель Технопарка Ярослав Рабоволюк расскажет о том, как злоумышленники подходят ко взлому сервисов и как не дать им этого сделать. Также студенты под чутким руководством преподавателя сами попробуют свои силы во взломе сервера. Чтобы поймать преступника, нужно думать как преступник. В общем, скучно не будет!
Читать дальше →

15 тривиальных фактов о правильной работе с протоколом HTTP

Reading time7 min
Views241K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →

Изобретаем JPEG

Reading time28 min
Views178K

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →

Как молодым специалистам устроиться в IT-компанию

Reading time6 min
Views63K
image

Как-то раз коллеги из отдела HR i-Free обратились ко мне с просьбой написать небольшую статью для молодых специалистов, которые стремятся устроиться в IT-компанию. Причины, побудившие их это сделать в целом понятны, в компании основным нанимателем молодых специалистов является отдел под моим управлением, мы берем только что закончивших вуз ребят (а иногда и студентов последних курсов), и у нас они проходят некий курс «молодого бойца».
Естественно, я не претендую на объективность, а лишь хочу дать несколько советов для тех, кто хочет начать свой путь с работы в IT-компании. Статья выражает сугубо моё мнение о том, как нанимать молодого специалиста, и очень надеюсь, что кому-то из студентов старших курсов сей краткий опус поможет в будущей карьере.
В общем, тех, кому интересно, прошу под кат.
Подробности

Шкворень: школьники переводят книгу про хакеров

Reading time9 min
Views88K
Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «одного своего знакомого».

Пролог
Глава 1. «The Key»
Глава 3. «The Hungry Programmers»
Глава 4. «The White Hat»
Глава 5. «Cyberwar!»
Глава 6. «I miss crime»
Глава 8. «Welcome to America»
Глава 34. «DarkMarket»



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

Когда я рассказал ребятам в лагере про подвиг Кевина, который выиграл Porsche 944, взломав дозвонившись на радиостанцию KIIS-FM, и как он разоблачил несколько сотен педофилов, школьники окрестили его «американским хакером-тесаком».

Несколько добровольцев вызвались перевести пролог и прикоснуться к миру писательства на Хабре и компьютерной безопасности.
Ведь будущие blackhat/whitehat хакеры должны знать своего друга/врага.

«Поэтому сказано, что тот, кто знает врага и знает себя, не окажется в опасности и в ста сражениях. Тот, кто не знает врага, но знает себя, будет то побеждать, то проигрывать. Тот, кто не знает ни врага, ни себя, неизбежно будет разбит в каждом сражении.» Сунь Цзы

Предлагаю хабрсообществу присоединиться и перевести по одной главе (они по 2-3 страницы). Пишите в личку или в комментах кто что взял, буду оперативно обновлять раздел «Оглавление».

Начало истории о том, как крышевать миллиардный подпольный хакерский бизнес
Читать дальше →

Дискретные структуры: матан для айтишников

Reading time4 min
Views224K


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

Хотя раньше такого понятия, как «дискретная математика» вовсе не было, это не значит, что не возникало дискретных задач: Абель, Дирихле, Фибоначчи, Эйлер, чьи имена возникают по ходу изучения дискретной математики, — отнюдь не наши современники! Но просто в те времена для выделения самостоятельной ветви математики ещё не сложилось критической массы задач и приёмов, не было видно взаимосвязей между ними. А большое количество плодотворных взаимосвязей между, на первый взгляд, различными понятиями, — то, что математики в своей науке очень ценят.

Ну хорошо, математикам всё математическое интересно. А зачем дискретная математика программисту?
Читать дальше →

5 экспериментов по визуализации данных

Reading time7 min
Views30K
Этой весной мы в лаборатории экспериментировали с самыми разными данными: характеристиками танков в игре World of Tanks, статистикой правильных и неправильных ответов на тренажёре ПДД, температурными рекордами в городах России, нарушениями в работе маршрутных такси Нижнего Новгорода, историей изменения цен на авиабилеты. Результатом экспериментов стали 5 наглядных интерактивных визуализаций:



Я расскажу, как мы создаём визуализации и каких придерживаемся принципов: в общем и на примере каждой визуализации. Все примеры включают ссылки на интерактивные прототипы, где можно самостоятельно «пощупать» данные и сделать собственные выводы.

Читать дальше →

Python Tips, Tricks, and Hacks (часть 2)

Reading time6 min
Views134K
Содержание

Списки. Свёртка списка (reduce). Прохождение по списку (range, xrange и enumerate). Проверка всех элементов списка на выполнение условия (all и any). Группировка элементов нескольких списков (zip). Еще несколько операторов для работы со списками. Продвинутые логические операции с типом set.
Словари. Создание словаря с помощью именованных аргументов. Преобразование словаря в список и обратно. «Dictionary Comprehensions».
Читать дальше →

Основы Python — кратко. Часть 3. Списки, кортежи, файлы.

Reading time5 min
Views396K
В общем-то последняя из готовых глав. Остальные будут выходить чуть реже, поскольку еще не написаны (но я уверен что будут, хотя это зависит только от ваших пожеланий, уважаемые читатели :)

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

В общем, те кому не интересно — читают следующую новость, а остальных — прошу пройти
под кат

Мой топ-100 книг по Программированию, Компьютерам и Науке: часть 1

Reading time3 min
Views133K
Недавно сайт Fog Creek взял у меня интервью, и один из вопросов был связан с моими любимыми книгами по программированию, кодированию и разработке программ. Мне этот вопрос запомнился потому, что я давно себя считаю заядлым книжным ботаником. Книжный ботаник я потому, что безумно люблю книги о науке, компьютерах и программировании. Каждые несколько месяцев я уделяю день или два исследованию недавно изданной литературы и покупке наиболее понравившихся экземпляров. Я мог бы вечно разговаривать о своих любимых книгах. Ведь у меня их так много.

Меня настолько заинтересовал вопрос о книгах, что я решил начать новую серию статей на своём сайте catonmat о моих топ-100 книгах о программировании, программном обеспечении, науке, физике, математике и компьютерах. В каждой статье я буду размещать по пять книг, ведь разбивать огромное задачи на маленькие подзадачи — это самый простой способ их решать (GTD — get things done).

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

image
Читать дальше →

Как создать искусственный интеллект? История первая. Что такое интеллект?

Reading time6 min
Views106K
image

В серии статей мы расскажем о новых подходах в ИИ, моделировании личности и обработке BIG Data, которые недоступны для большинства специалистов по ИИ и общественности. Ценность этой информации в том, что она вся проверена на практике и большинство теоретических наработок реализованы в прикладных проектах.

Многие из вас слышали про современные технологии, которые ассоциируются сегодня с понятием искусственный интеллект, а именно: экспертные системы, нейронные сети, лингвистические алгоритмы, гибридные системы, когнитивные технологии, имитационные(чат-боты) и пр.

Да, многие компании с помощью приведенных выше технологий решают задачи своих клиентов по обработке информации. Некоторые из этих компаний пишут, что создают или создали решения в области искусственного интеллекта. Но интеллект ли это?
Читать дальше →

Введение в курс «Анализ изображений и видео». Лекции от Яндекса

Reading time8 min
Views71K
Мы начинаем публиковать лекции Натальи Васильевой, старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS клуба



Всего в программе — девять лекций. В первой из них рассказывается о том, как применяется анализ изображений в медицине, системах безопасности и промышленности, какие задачи оно еще не научилось решать, какие преимущества имеет зрительное восприятие человека. Расшифровка этой части лекций — под катом. Начиная с 40-й минуты, лектор рассказывает об эксперименте Вебера, представлении и восприятии цвета, цветовой системе Манселла, цветовых пространствах и цифровых представлениях изображения. Полностью слайды лекции доступны по ссылке.
Читать дальше →

Лекции Технопарка. 2 семестр. Java

Reading time4 min
Views74K


В эфире очередной выпуск материалов рубрики «Лекции Технопарка». На этот раз вы можете изучить лекции курса, посвящённого углублённому программированию на Java. Цель курса — получение студентами практических навыков создания клиент-серверного приложения на примере разработки сервера простой многопользовательской online-игры в малых группах (4-6 человек).
Читать дальше →

Пример векторной реализации нейронной сети с помощью Python

Reading time14 min
Views50K
В статье речь пойдет о построение нейронных сетей (с регуляризацией) с вычислениями преимущественно векторным способом на Python. Статья приближена к материалам курса Machine learning by Andrew Ng для более быстрого восприятия, но если вы курс не проходили ничего страшного, ничего специфичного не предвидится. Если вы всегда хотели построить свою нейронную сеть с преферансом и барышням векторами и регуляризацией, но что то вас удерживало, то сейчас самое время.

Данная статья нацелена на практическую реализацию нейронных сетей, и предполагается что читатель знаком с теорией (поэтому она будет опущена).
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity