Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Алеся Гузик @nekotwi
Clojure-разработчица, контрибьюторка в NixOS
27+ ресурсов для онлайн-обучения
5 min
969KВ настоящее время активно развивается система дистанционного обучения, теперь уже не является проблемой получение полноценного образования практически по любому предмету дистанционно. Онлайн-обучение имеет ряд преимуществ – обучение в индивидуальном темпе, свобода и гибкость, доступность, социальное равноправие. В сети появляется все больше сервисов, помогающих получать новые знания.
Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.
+152
MiTM атака на SSH
2 min
44KВ новой версии Intercepter-NG появилась возможность провести полноценную атаку на SSH-2 протокол.
Атакующий получает данные авторизации пользователя и логирует весь сеанс связи, запуск команд и результат их выполнения.
Для этого Intercepter перенаправляет трафик жертвы на свой собственный ssh сервер и в случае успешной авторизации
проксирует соединение до оригинального сервера.
Атакующий получает данные авторизации пользователя и логирует весь сеанс связи, запуск команд и результат их выполнения.
Для этого Intercepter перенаправляет трафик жертвы на свой собственный ssh сервер и в случае успешной авторизации
проксирует соединение до оригинального сервера.
+44
Wikileaks отдыхает — ICIJ опубликовал исследование крупнейшей утечки данных об офшорных счетах сильных мира сего
2 min
86KПятнадцать месяцев назад анонимный источник передал в распоряжение Международного консорциума журналистов-расследователей (ICIJ) 2 500 000 файлов общим объёмом в 260 гигабайт, содержащих данные о финансовых транзакциях 130 000 организаций и частных лиц из 170 стран мира, которые использовали офшорные зоны для уклонения от налогов.
ICIJ объединяет журналистов крупных мировых изданий, ведущих расследования злоупотреблений представителей власти и крупного бизнеса. Исследование 30 лет истории офшорных транзакций, которое 86 журналистов из 46 стран вели больше года — самый крупный проект консорциума за всю его историю. По данным организации Tax Justice Network, сильные мира сего прячут в офшорных «райских уголках» планеты от 21 до 32 триллионов долларов.
+126
Практика борьбы с прокрастинацией и нелюбовью к планированию
7 min
165KDISCLAIMER: Все изложенные ниже приемы работают для меня, и не факт, что будут работать для вас. IMHO only, на истинность в последней инстанции не претендую.
В этом посте я соберу тезисно несколько приемов, которые помогают бороться с прокрастинацией и делать работу.
Как ни странно, большая часть из них относится к переделываю своих привычек. Потому что то, что навязывает нам среда, книги, и что мы сами себе прививаем, часто работает против нас.
Сон и еда
По себе заметил, если не выспался — работать хочется в несколько раз меньше. Нужно найти для себя способ высыпаться, действуя из позиции Автора.
Второй важный пункт — еда. Для работы мозга — а работа в IT суть интеллектуальный труд — нужно много хорошей еды.
Если вы выспались и сыты, то силы должны быть, если их нет, идем дальше.
Активное тело, температура в помещении
Иногда нужно размять тело. Вовсе не так просто в СССР была производственная зарядка, о которой так бодро пел Высоцкий.
Тут есть глубокий физический смысл. Когда вы приводите свои мышцы в активность, повышается их тонус, в теле изменяется обмен веществ. Организм понимает, что нужно стать бодрее — и через 10-15 минут разминки вы себя не узнаете.
В этом посте я соберу тезисно несколько приемов, которые помогают бороться с прокрастинацией и делать работу.
Как ни странно, большая часть из них относится к переделываю своих привычек. Потому что то, что навязывает нам среда, книги, и что мы сами себе прививаем, часто работает против нас.
Отдых тела и ума
Сон и еда
По себе заметил, если не выспался — работать хочется в несколько раз меньше. Нужно найти для себя способ высыпаться, действуя из позиции Автора.
Второй важный пункт — еда. Для работы мозга — а работа в IT суть интеллектуальный труд — нужно много хорошей еды.
Если вы выспались и сыты, то силы должны быть, если их нет, идем дальше.
Активное тело, температура в помещении
Иногда нужно размять тело. Вовсе не так просто в СССР была производственная зарядка, о которой так бодро пел Высоцкий.
Тут есть глубокий физический смысл. Когда вы приводите свои мышцы в активность, повышается их тонус, в теле изменяется обмен веществ. Организм понимает, что нужно стать бодрее — и через 10-15 минут разминки вы себя не узнаете.
+60
Открытие компании в зарубежной юрисдикции для айтишника, фрилансера, разработчика мобильных приложений
4 min
166K«Право налогоплательщика избегать уплаты налогов с использованием всех разрешенных законом способов никем не может быть оспорено. Каждый имеет право вести свои финансовые дела таким образом, чтобы свести соответствующие платежи к минимуму…»
Дж. Сандерленд,
Судья Верховного Суда США
После моей статьи про поиск инвестиций, я получил много просьб рассказать подробнее про открытие компании за рубежом, и осветить финансовые вопросы. В данном топике я попытался изложить основные моменты, не претендуя на истину в последней инстанции.
Дж. Сандерленд,
Судья Верховного Суда США
После моей статьи про поиск инвестиций, я получил много просьб рассказать подробнее про открытие компании за рубежом, и осветить финансовые вопросы. В данном топике я попытался изложить основные моменты, не претендуя на истину в последней инстанции.
+142
Подборка инструментов для фронт-энд разработки
2 min
134KTranslation
Как разработчику, мне очень нравятся инструменты, которые помогают сэкономить время или упростить процесс разработки фронт-энда. В этой статье я собрал мои любимые веб-инструменты для упрощения разработки веб-интерфейсов.
Картинки кликабельны.
Формы являются очень важной частью любого веб-сайта, но их верстка может занять продолжительное время. Этот очень удобный инструмент, поможет вам создать красивую веб-форму очень быстро.
Картинки кликабельны.
Form builder
Формы являются очень важной частью любого веб-сайта, но их верстка может занять продолжительное время. Этот очень удобный инструмент, поможет вам создать красивую веб-форму очень быстро.
+166
20 вещей, которые я должен был знать в 20 лет
3 min
715KTranslation
1. Мир пытается оставить тебя тупым. Начиная от банковских платежей и процентов и заканчивая чудо-диетами — из необразованных людей легче вытрясти деньги и ими проще управлять. Занимайтесь самообразованием столько, сколько можете — для того, чтобы быть богатым, независимым и счастливым.
+346
Упражнения по взлому Linux-систем
2 min
16KДля тех, кто интересуется вопросами безопасности и уязвимостями Linux, создан обучающий проект exploit-exercises.com с подборкой виртуальных Linux-машин, описаниями уязвимостей, документацией и практическими заданиями.
1. Виртуальная машина Nebula
торрент-файл
прямая ссылка
Самые общие уязвимости, связанные с эскалацией привилегий в Linux: это SUID-файлы, разрешения, состояние гонки (race conditions), метапеременные оболочки, уязвимости $PATH, уязвимости скриптовых языков, ошибки компиляции бинарных файлов.
1. Виртуальная машина Nebula
торрент-файл
прямая ссылка
Самые общие уязвимости, связанные с эскалацией привилегий в Linux: это SUID-файлы, разрешения, состояние гонки (race conditions), метапеременные оболочки, уязвимости $PATH, уязвимости скриптовых языков, ошибки компиляции бинарных файлов.
+97
Вам не страшно открывать редактор?
13 min
3.1KВ какой-то момент я стал замечать, что пишу более качественный: оптимальный, логичный и читаемый код, но пишу его медленно. По крайней мере, куда медленнее, чем лет 15 назад. Да, на старый код без слёз не взглянешь: всё можно сделать оптимальнее и, по крайней мере, читабельнее. Но код был написан быстро.
Проблема в контроле. Я стал жестче и глубже контролировать код и… стал тратить на этот контроль слишком много ресурсов.
Основной принцип прост. Если контролю подлежит 10-20% случаев, то на контроль надо тратить… 0% ресурсов. Баги и переписывания всё равно будут. Но лучше разделить кодирование и отладку и на время кодирования об ошибках вообще забыть.
Проблема в контроле. Я стал жестче и глубже контролировать код и… стал тратить на этот контроль слишком много ресурсов.
Основной принцип прост. Если контролю подлежит 10-20% случаев, то на контроль надо тратить… 0% ресурсов. Баги и переписывания всё равно будут. Но лучше разделить кодирование и отладку и на время кодирования об ошибках вообще забыть.
+85
Обзор бесплатных инструментов для пентеста web-ресурсов и не только v2
8 min
190KКак-то давно я уже писал об этом, но немного скудно и сумбурно. После я решил расширить список инструментов в обзоре, добавить статье структуры, учесть критику (большое спасибо Lefty за советы) и отправил ее на конкурс на СекЛаб (и опубликовал ссылку, но по всем понятным причинам ее никто не увидел). Конкурс закончен, результаты объявили и я с чистой совестью могу ее (статью) опубликовать на Хабре.
В данной статье я расскажу о наиболее популярных инструментах для пентестинга (тестов на проникновение) веб-приложений по стратегии «черного ящика».
Для этого мы рассмотрим утилиты, которые помогут в данном виде тестирования. Рассмотрим следующие категории продуктов:
Бесплатные инструменты пентестера веб-приложений
В данной статье я расскажу о наиболее популярных инструментах для пентестинга (тестов на проникновение) веб-приложений по стратегии «черного ящика».
Для этого мы рассмотрим утилиты, которые помогут в данном виде тестирования. Рассмотрим следующие категории продуктов:
- Сетевые сканеры
- Сканеры брешей в веб-скриптах
- Эксплойтинг
- Автомазация инъекций
- Дебаггеры (снифферы, локальные прокси и т.п.)
+103
Лекториум записал почти тысячу лекций за год
4 min
57KДорогой Хабр!
У нас для тебя небольшой подарок. Мы тут работали-работали и вот чего сделали.
Сняли и опубликовали почти тысячу лекций по IT и математике.
UPD2 Помогите, пожалуйста, оперативно решить вопрос насчёт организации торрентов на php.
У нас для тебя небольшой подарок. Мы тут работали-работали и вот чего сделали.
Сняли и опубликовали почти тысячу лекций по IT и математике.
UPD2 Помогите, пожалуйста, оперативно решить вопрос насчёт организации торрентов на php.
+326
Монады с точки зрения теории категорий
9 min
34KTranslation
Введение
Кажется, монады в программировании стали загадкой века. И для этого есть две причины:- недостаточное знание теории категорий;
- многие авторы стараюстся не упоминать категории вообще.
Мы начнём с простого введения в категории и функторы, затем дадим определение монады, приведём простые примеры монад в категориях и в конце приведём монадическую терминологию используемую в языках программирования.
Я уверен, что монады с точки зрения категорий почти элементарны.
Содержание
+84
Как поднять свой уровень в искусстве программирования. План из шести шагов
2 min
21KTranslation
Вольный перевод списка из довольно удачных способов для повышения своего уровня, как программиста.
+140
Стоит ли быть «успешным»?
6 min
48KКак надоели эти тематические статьи о повышении результативности, мотивации и прочей чепухе. Зачем люди их пишут? Чтобы помочь тем, кто запутался в себе? Для тех, кому тяжело сосредоточиться? Вряд-ли это так.
Современная жизнь диктует нам, что все нужно делать быстро, добиваться максимальной эффективности. Непременно нужно быть очень успешным. Нужно двигаться к цели, каждый день, каждый час, ежеминутно. Оставив все лишнее, бросить все силы на достижение результата. Иначе нет смысла жить.
Современная жизнь диктует нам, что все нужно делать быстро, добиваться максимальной эффективности. Непременно нужно быть очень успешным. Нужно двигаться к цели, каждый день, каждый час, ежеминутно. Оставив все лишнее, бросить все силы на достижение результата. Иначе нет смысла жить.
+261
Нелепые глупости
2 min
1.3KТак уж случилось, что в свободное от основной работы время я начал писать программы. Правильные (возможно) программы, программы, которые мне нравилось (и нравится) писать – программы, которые мне нравится использовать. Пока их ажно целых две ). В принципе, это достаточно большие программы (более 2 Мб исходников каждая). При создании их доводилось натыкаться на “непонятные странности” достаточно “неправильное“, на первый взгляд поведение компилятора/программы и операционной системы. После разбора полетов, в очередной раз удостоверялся, что я СЗЗБ (сам себе злобный буратинко). В любом случае – пара примеров, как я глючил и как делать не надо (все под вин32 – интел86).
+12
Создание операционной системы на базе ядра linux. С нуля
7 min
204KРано или поздно каждый пользователь Линукса задумывается над созданием собственного дистрибутива. Некоторые аргументируют это тем, что можно «все настроить под себя». Другие сетуют на то, что среди уже представленных дистрибутивов в Ветке нет идеального. А у них, якобы, есть суперконцептуальные идеи для собственной системы. Зачем я всю эту психологию затеял? Для того, чтобы сразу перекрыть кислород играющимся с Линуксом новичкам, которым делать нечего. Если уж задумались над созданием ОС, думайте до конца. Итак,
Я хочу создать ОС на базе Linux.
Сразу предупреждаю: был бы XVIII век, всех тех, кто для основы своей будущей системы выбирает другой развитый дистрибутив (и, не дай Бог, популярный...) ждала бы виселица. Пост именно про создание системы с нуля, а значит, всякие Slax и Linux Mint мы трогать не будем.
Я хочу создать ОС на базе Linux.
Сразу предупреждаю: был бы XVIII век, всех тех, кто для основы своей будущей системы выбирает другой развитый дистрибутив (и, не дай Бог, популярный...) ждала бы виселица. Пост именно про создание системы с нуля, а значит, всякие Slax и Linux Mint мы трогать не будем.
+52
Просто о Хиндли-Милнере
5 min
20KTranslation
Введение
Если вы когда-нибудь интересовались не слишком популярными языками, то должно быть слышали о «Хиндли-Милнере». Этот алгоритм вывода типов используются в F# и Haskell и OCaml, как и в их предшественнике ML. Некоторые исследователи даже пытаются использовать ХМ для оптимизации динамических языков вроде Ruby, JavaScript и Clojure.
И не смотря на его распространенность, до сих пор не было простого и понятного объяснения, что же это такое. Как же эта магия работает? Всегда ли выводимые типы будут верными? Или чем Хиндли-Милнер лучше, скажем, Java? И пока те, кто действительно знает что такое ХМ будут восстанавливаться от очередного умственного перенапряжения, мы попробуем разобраться в этом сами.
+59
Тайм-менеджмент: эволюция
1 min
22KГода два назад я решил заняться тайм-менеджментом, так как мне казалось, что я живу крайне неэффективно и такими темпами никогда «не приду к успеху». Я прочитал несколько книжек и бесчисленное множество статей от доморощенных гуру тайм-менеджмента разной степени пришибленности. Я даже разработал собственную методику, включавшую в себя аспекты из нескольких систем, и написал специальный софт, так как всё, что имелось на рынке, было слишком жалким и недостойным моего внимания.
И только сейчас, когда 11 часов в день я трачу на работу, и реально свободное время появляется только в выходные, я понял, какая это всё хрень. Теперь я убеждён, что люди, которые занимаются тайм-менеджментом — банальные бездельники, которым просто некуда девать своё время. Они не находят для него лучшего применения, чем рисовать всякие хитровыкрученные схемки и вести десяток отдельных блокнотиков для дел типа «почистить зубы» и «пообедать». Их мозг изнывает от безделья, и они занимают его псевдонаучной жвачкой, которая даёт иллюзию продуктивной жизни.
Вы хотите жить эффективно? Устройтесь на работу с полным графиком, поступите в аспирантуру, начните ходить в спортзал и делать зарядку по утрам. Если покажется мало, то возьмитесь за два-три сторонних проекта. Через пару месяцев случится одно из двух: либо вы сдохнете, либо самоорганизуетесь и уже никогда не будете забивать голову ерундой вроде тайм-менеджмента.
И только сейчас, когда 11 часов в день я трачу на работу, и реально свободное время появляется только в выходные, я понял, какая это всё хрень. Теперь я убеждён, что люди, которые занимаются тайм-менеджментом — банальные бездельники, которым просто некуда девать своё время. Они не находят для него лучшего применения, чем рисовать всякие хитровыкрученные схемки и вести десяток отдельных блокнотиков для дел типа «почистить зубы» и «пообедать». Их мозг изнывает от безделья, и они занимают его псевдонаучной жвачкой, которая даёт иллюзию продуктивной жизни.
Вы хотите жить эффективно? Устройтесь на работу с полным графиком, поступите в аспирантуру, начните ходить в спортзал и делать зарядку по утрам. Если покажется мало, то возьмитесь за два-три сторонних проекта. Через пару месяцев случится одно из двух: либо вы сдохнете, либо самоорганизуетесь и уже никогда не будете забивать голову ерундой вроде тайм-менеджмента.
+233
Духи-покровители программиста
3 min
4.6KTranslation
За душу программиста сражаются три могущественных духа-покровителя: Художник, Трудяга и Прагматик.
Если вы слышите внутри себя голос: «Ты не можешь рисовать», рисуйте во что бы то ни стало, пока голос не стихнет.
Первый дух, Художник, подталкивает программиста к работе над сложными заданиями, изобретению новых подходов и поиску средств самореализации. Он дает силы и желание создавать гениальные решения, учиться и творить (заодно он ведает спортивным программированием и эзотерическими языками программирования — прим.пер.). Он живет в лучших программах; именно он дарит программисту озарения, вселяет в него страсть к красоте кода и заставляет пренебрегать всем, что не относится к задаче. Это сильный дух, но и опасный — человек, одержимый им, непредсказуем и склонен забывать о действительно нужных вещах в угоду красивым. Он отвергнет посредственные, но годные решения и посвятит себя достижению безграничного совершенства на одном отдельно взятом фрагменте кода, переписывая его снова и снова даже ночью накануне важного показа, когда все тестировщики уже давно спят.
Если вы слышите внутри себя голос: «Ты не можешь рисовать», рисуйте во что бы то ни стало, пока голос не стихнет.
— Винсент ван Гог
Первый дух, Художник, подталкивает программиста к работе над сложными заданиями, изобретению новых подходов и поиску средств самореализации. Он дает силы и желание создавать гениальные решения, учиться и творить (заодно он ведает спортивным программированием и эзотерическими языками программирования — прим.пер.). Он живет в лучших программах; именно он дарит программисту озарения, вселяет в него страсть к красоте кода и заставляет пренебрегать всем, что не относится к задаче. Это сильный дух, но и опасный — человек, одержимый им, непредсказуем и склонен забывать о действительно нужных вещах в угоду красивым. Он отвергнет посредственные, но годные решения и посвятит себя достижению безграничного совершенства на одном отдельно взятом фрагменте кода, переписывая его снова и снова даже ночью накануне важного показа, когда все тестировщики уже давно спят.
+76
Information
- Rating
- Does not participate
- Location
- Sydney, New South Wales, Австралия
- Date of birth
- Registered
- Activity