Как стать автором
Поиск
Написать публикацию
Обновить
-5
0
Алексей @Pro-invader

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

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

Кремниевая долина в Москве. Вся правда и новости

Время на прочтение36 мин
Количество просмотров14K
В этой статье я постараюсь разобраться есть ли жизнь на Марсе в московской «Кремниевой долине» и постараюсь максимально подробно разобрать всю информацию с точки зрения московского инженера. Поговорим о Сколково, Сириусе и (внезапно) Huawei.

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

Приглашаю всех под кат и давайте разбираться.


Путь в программисты (С++)

Время на прочтение13 мин
Количество просмотров122K
Привет. С вами я. Мне нравилось боксировать и бегать на дальние дистанции, и думал я только о спорте, но выучился на моряка. Работал в авиации, а стал программистом С++ в 29. Расскажу, как так получилось.

О программировании к октябрю 2017 я знал ровно столько, сколько сейчас о квантовой физике- ничего. Абсолютно. «hello world»- даже не слышал о такой фразе. Время от начала обучения до трудоустройства — полтора года.

Почему решил расписать свое обучение?- потому что знаю по себе, как тяжело найти хорошую работу в СНГ. Мест, где есть карьерный рост, нормально оплачивается труд в инженерии и смежных областях я не встретил, везде ты просто рабочий, всем до одного места на твои амбиции, желание повысить квалификацию, как-то вырасти.

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

Структуры данных: список, который умеет всё*

Время на прочтение20 мин
Количество просмотров12K
* Под всё имеется в виду относительно быстрое выполнение операций над единичным элементом массива.

Структур данных, которые реализуют список полно. У всех есть свои достоинства и недостатки. Например в мире Java — в зависимости от необходимых операций — можно использовать:

  • add(obj), get(obj), set(index, obj): базовый набор почти всех списков, например ArrayList.
  • add(index, obj): структуры в виде дерева, например TreeList из apache common-collections.
  • remove(index): то же, что и выше.
  • contains(obj), indexOf(obj): можно использовать связку ArrayList и HashMap.
  • remove(obj): … затрудняюсь ответить. В некоторых случаях можно обойтись LinkedHashSet. Решается тривиально при наличии предыдущих двух пунктов, но какие структуры могут и то и другое быстро?

Когда мне понадобилась структура с быстрыми add(obj), get(index), remove(index) и indexOf(obj), то google не дал ответа. Ни примеров кода, ни описания подобных структур я не нашел. Возможно не там искал, пришлось выдумывать самому. Но если кто-то скинет ссылку в комментариях, то буду весьма признателен.

Возможно, кто-то догадался, что можно взять TreeList, который умеет быстро вставлять/удалять элементы в середине списка и добавить к нему HashMap из объекта в индекс в TreeList для быстрого выполнения indexOf(obj). И это будет простое, изящное, но неверное решение. Ведь при добавлении в середину или удалении из середины нужно будет пересчитать индексы, в среднем, для половины элементов. Это ухудшит производительность до O(n).

Дальше я расскажу о структуре данных, которая может всё из перечисленного выше. Которая выполняет любую операцию над одним элементом за O(log(n)) времени. Ну почти — за логарифм выполняется в том случае, когда все объекты в списке различны. Если в списке есть одинаковые объекты, то возможно проседание производительности вплоть до O(log(n) ^ 2).
Читать дальше →

В поисках физкультуры

Время на прочтение18 мин
Количество просмотров8.5K
И что интересного люди находят в этих книжках?

Спорт


Совет “займись спортом” часто звучит рядом с многими проблемами: осанка, ожирение, мигрени, самооценка, выгорание — спорт хорошо помогает в очень разных случаях.

И можно даже не уточнять, о каком спорте идет речь. Обычно сказавший и услышавший подразумевают под словом “спорт” одно и то же — это какой-то полезный для здоровья вид двигательной активности.

Остается только выбрать подходящий вид спорта — приносящий побольше пользы и поменьше вреда. Чтобы не дорого, не далеко от дома, по силам и личным предпочтениям. По рекомендациям пробовавших и примерам успеха.

Я хочу обратить внимание на то, что упомянутый выбор вида спорта — это часть проблемы, тесно связанной с использованием популярного, но размытого термина.

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

Спойлер: В статье содержится приглашение к размышлению. Озвучены вопросы, предложено направление для новых мыслей, а не готовые ответы. Здесь нет мотивирующей рекламы очередной методики тренировок. Если вы хотите узнать очередной рецепт для здоровья, который кому-то помог, то вам нужны другие статьи, их много. Желающие пропустить рассуждения могут сразу перейти к итогам.

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

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

DIY Корутины. Часть 1. Ленивые генераторы

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

В мире JVM про корутины знают в большей степени благодаря языку Kotlin и Project Loom. Хорошего описания принципа работы котлиновских корутин я не видел, а код библиотеки kotlin-coroutines совершенно не понятен неподготовленному человеку. По моему опыту, большинство людей знает о корутинах только то, что это "облегченные потоки", и что в котлине они работают через умную генерацию байткода. Таким был и я до недавнего времени. И мне пришла в голову идея, что раз корутины могут быть реализованы в байткоде, то почему бы не реализовать их в java. Из этой идеи, впоследствии, появилась небольшая и достаточно простая библиотека, в устройстве которой, я надеюсь, может разобраться практически любой разработчик. Подробности под катом.


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

Как я прошел OSWE сертификацию

Время на прочтение4 мин
Количество просмотров15K
OSWE — сертификация продвинутого уровня, идеально подходящая для пентестера и аудитора веб-систем. Это был один из самых сложных экзаменов в моей жизни: куча оставленного здоровья, из 48 часов удалось поспать часов 12, и я даже не знал, что могу так “выражаться”. Состояние было “быстрее бы сдохнуть”. Но обо всем по порядку.
Читать дальше →

Сортировка выбором минимумов (максимумов)

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

imageМногие программисты думают, что Quick Sort — самый быстрый алгоритм из всех существующих. Отчасти это так. Но работает она действительно хорошо только если правильно выбран опорный элемент (тогда сложность составляет O (n log n)). В противном же случае асимптотика будет примерно такой же как и у пузырика (то-есть O (n2)).
При этом, если массив уже отсортирован, то алгоритм всё-равно будет работать не быстрее, чем O (n log n)


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

«Дело было вечером, делать было нечего», — Сергей Михалков.

Требования:


  1. Лучший случай O (n)
  2. Средний случай O (n log n)
  3. Худший случай O (n log n)
  4. В среднем быстрее быстрой сортировки


А теперь давайте обо всём по порядку


Чтобы наш алгоритм всегда работал быстро, нужно чтобы в среднем случае асимптотика была хотя бы O (n log n), а в лучшем — O (n). Все мы прекрасно знаем, что в лучшем случае сортировка вставками работает за один проход. Но в худшем ей придётся гонять по массиву столько раз, сколько в нём элементов.


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

Интервальное голодание — как точно вычислить время

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

Интервальное голодание — паттерн питания в котором регулируются циклы с едой и без нее.


Этот паттерн питания сейчас стал довольно популярным и, так как Lifext методика изначально уделяла большое внимание паттернам питания, то мы решили написать подробный разбор и перевести исследования на эту тему.


Интересно. В ходе исследования мы сделали полезное открытие, которое позволяет информировано настраивать индивидуальные циклы еды с максимально полезным результатом и легко внедряемыми интервалами. Статья написана в хронологии проведённого исследования и логика вывода довольно проста и понятна.


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


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

Как рассказать об основных компонентах Android за 15 минут

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

Введение


В этой статье пойдет речь о том, как рассказать человеку, ранее не знакомому с программированием под Android, об основных его компонентах. Заинтересовать и показать, что все не так сложно, как многие думают. При этом сделать это за 15 минут и не уходя в объяснение какой-то базовой теории, которую каждый может прочитать сам и вернуться уже с уточняющими вопросами.


Когда я попробовал сделать это первый раз, был неприятно удивлен собой. Мое "простое и понятное" объяснение превратилось в занудство, в рамках которого четко прослеживалась отчаянная попытка объять необъятное и рассказать в двух словах обо всем понемногу. Нужно ли говорить, что такой рассказ скорее не заинтересует, а напугает Вашего собеседника, попутно уменьшив желание сделать что-то свое, даже если раньше в планах был небольшой калькулятор.


Не секрет, что в Интернете размещено огромное количество статей на эту тему, но в моем случае повествование будет немного отличаться: здесь будет только наглядная практика, без определений и прочих деталей. То есть смотрим — видим — комментируем происходящее. Смотрится, на мой взгляд, все достаточно просто и наглядно, куски кода получились тоже небольшие и очень простые, готовые к быстрому использованию в собственном проекте. Мне кажется, такой подход дает достаточно широкую обзорную картину классических инструментов Android, и при написании первого приложения вместо вопросов "что мне использовать" будут более конкретные вопросы "как именно мне использовать компонент Х". А уже все подробности об этом человек сможет узнать сам — если захочет.

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

Памятка по борьбе с алкоголем или Как пережить фуршеты

Время на прочтение20 мин
Количество просмотров183K
Тут вот праздники скоро. Спросил недавно друг «как мне это все пережить?». Я сначала объяснял, а потом решил написать статью на Хабр. Рассказанное — услышит один человек, а написанное — прочитают сотни!

Меня, если честно, достаточно сильно раздражают всевозможные застолья. Потому что гораздо приятнее посидеть с паяльником или читая книгу, а не "… хорохорясь, ерепенясь и валяясь, как колода..." провести выходные. Но традиции-с, будь они неладны, формировались столетиями и не умея пить — бывает достаточно сложно вписаться в коллектив, найти нужный подход и т.д. Особенно грешат этим делом всевозможные руководящие кадры из старого поколения. Что же делать тем, для кого алкоголь и необходимость его употреблять — это просто лишняя головная боль? Самый простой ответ — НЕ ПИТЬ, но на практике полностью это очень сложно реализовать. Эффективнее в наших реалиях принять тезис «алкоголь — просто инструмент» и учиться с ним правильно работать и использовать для решения своих задач с минимизацией ущерба для здоровья.

Статью кладем в закладки и рассылаем всем друзьям, подчиненным и т.д. и т.п. Есть время подготовиться и встретить новогодние корпоративы во всеоружии. Практически уверен, что многое из описанного активно используют те, кто «не напиваться» обязан по долгу службы. Простой же обыватель чаще про это не думает, полагаясь на удачу и легкую руку. И чаще всего оказывается в проигрыше. Предупрежден = вооружен, поэтому под катом читаем, как победить в битве с алкоголем.

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

Как я 12 лет создавал свой ЯП и компилятор к нему

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


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

Здравствуй, читатель! Меня зовут Александр, родился я в небольшом городке (меньше 10000 человек) в Беларуси. Моя семья была бедной, игрушек крайне мало, про компьютер и какие либо приставки вообще можно не заикаться. Не смотря на то, что семья была бедной, у матери были не бедные родственники, которые иногда дарили нам какие либо не дешевые вещи. И вот однажды (где то в 2001 году) эти самые родственники, дарят нам компьютер «Байт»(советский аналог ZX Spectrum 48k). Радости моей не было предела! Сразу же я начал, запускать на нем игры. Игры на этом компьютере загружались с обычных аудиокассет с магнитной лентой. Загрузка одной игры длилась примерно 5 минут и с не малой вероятностью, могла прекратиться из-за некачественного сигнала. Чтобы увеличить вероятность успешной загрузки, мне приходилось протирать спиртом и регулировать положение считывающей головки магнитофона. Весь этот шаманизм при загрузке, длительность загрузки и невозможность сохраняться в играх, привели к тому, что постепенно я начал терять интерес к играм. Но вместе с «Байт»-ом мне также подарили книгу, по работе с этим компьютером. Я решил прочитать эту книгу, чтобы узнать больше о возможностях «Байт»-а. В книге оказался учебник по встроенному в «Байт» языку программирования «Бэйсик».
Читать дальше →

Secured by Knox — механизмы мобильной безопасности Samsung

Время на прочтение9 мин
Количество просмотров84K
Если у вас телефон Samsung, то вы, возможно, замечали на экране загрузки фразу «Secured by Knox». Что это вообще значит? Под катом – описание платформы мобильной безопасности, предустановленной на большинстве смартфонов и планшетов Samsung. Это первый русскоязычный обзор того, какие механизмы вообще существуют в решении Knox.


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

Поиск уязвимостей в Samsung TrustZone, или AFL зафаззит все

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


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


Посмотрим на одну из таких технологий — ARM TrustZone. Ее реализации содержат огромный объем кода, и чтобы искать в них уязвимости, нужен какой-то автоматический способ. Задействуем старый проверенный метод — фаззинг. Но умный!


Будем фаззить специальные приложения, которые появились с введением технологии TrustZone — трастлеты. Чтобы подробно описать выбранный нами способ фаззинга, сначала обратимся к теории про TrustZone, доверенные операционные системы и взаимодействие с обычной операционной системой. Это недолго. Поехали!

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

Бег — идеальный спорт для удаленщика. Часть 2: физика и матчасть

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


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

Итак, что даёт нам бег?
Читать дальше →

Как записаться на курс и… пройти его до конца

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

За последние три года я проходил 3 больших многомесячных курса и ещё пачку курсов покороче. Потратил на них больше 300 000 ₽ и не достиг поставленных целей. Кажется, я набил достаточно шишек, чтобы сделать выводы и в последнем из курсов сделать всё как надо. Ну, и заодно написать об этом заметку.

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

Как «Историю игрушек 2» Pixar удалили дважды: сначала случайно, а потом из-за стремления к совершенству

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

«Тогда-то мы и заметили это впервые, на примере Вуди».

«Ларри Катлер зашёл в каталог и как раз говорил об установке исправления для Вуди или его шляпы. Он посмотрел в каталог, и там было около 40 файлов, потом заглянул ещё раз, а там осталось всего четыре».

«Затем мы увидели, что начали пропадать последовательности кадров, и подумали: „Боже мой!“»

«Я схватил телефонную трубку… „отключайте машину!“»

Так Орен Джейкоб, бывший главный технический директор Pixar, тогда работавший помощником технического директора Toy Story 2, вспоминает момент, когда они обнаружили, что фильм удаляется с серверов компании после выполнения ошибочной команды, уничтожая два месяца и сотни человеко-часов работы.

Ханнес Линдеманн против Алена Бомбара: развенчание мифа?

Время на прочтение5 мин
Количество просмотров3.8K
Ален Бомбар, французский врач, который на надувном плоте совершил переход из Европы в Америку, упоминался в предыдущей истории. Трагедия на гряде Этель, где при испытаниях надувного плота, в которых участвовал Бомбар, унесла жизни девяти человек. Сам он остался жив. Причины случившегося – совпадение различных неблагоприятных обстоятельств.

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

Немецкий врач Ханнес Линдеманн знал о переходе Алена Бомбара через Алантику. Сам Линдеманн – довольно опытный яхтсмен и каякер, принял достижение Бомбара как вызов.
Читать дальше →

Бег — идеальный спорт для удаленщика. Часть 1: путь до первого забега на сотню километров

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


Меня зовут Олег, я работающий удалённо DevOps-инженер в компании «Флант», и в этой статье я постараюсь убедить вас в том, что занятия бегом — лучший выбор для удалёнщика.

Недавно сумма преодоленных мной километров перевалила за цифру 3000. Но так было не всегда. С детства я был категорически неспортивен. Уроки физкультуры и в школе, и в университете вызывали у меня стойкое отвращение.

Создание консоли c изменяемой высотой для более удобной работы за компьютером

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



Введение


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

Так же есть несколько различных моделей настольных/настенных консолей. Например Ergotron (IMHO самая большая контора про производству подобных устройств).
читать далее

Ретропоезд с паровозом

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


Пока вы тут сидите, РЖД отлично продаёт билеты на ретропоезда. Это которые, натурально, с паровозом. Да, паровозы переживут многое, включая ядерную войну. Да, на нашем стратегическом резерве можно проехаться.



Итак, у нас ретропоезд «Рускеальский экспресс», который ходит по Карелии от города Сортавалы до горного парка Рускеала. Это 5 часов от Петербурга на важную туристическую точку.

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

Информация

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