Pull to refresh
1
Alexander Stellove @AlLSTLread⁠-⁠only

Software Engineer

Send message

Разработка надёжных Python-скриптов

Reading time10 min
Views82K
Python — это язык программирования, который отлично подходит для разработки самостоятельных скриптов. Для того чтобы добиться с помощью подобного скрипта желаемого результата, нужно написать несколько десятков или сотен строк кода. А после того, как дело сделано, можно просто забыть о написанном коде и перейти к решению следующей задачи.

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



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

Автор материала, перевод которого мы сегодня публикуем, собирается продемонстрировать подобное «превращение» на примере классической задачи «Fizz Buzz Test». Эта задача заключается в том, чтобы вывести список чисел от 1 до 100, заменив некоторые из них особыми строками. Так, если число кратно 3 — вместо него нужно вывести строку Fizz, если число кратно 5 — строку Buzz, а если соблюдаются оба этих условия — FizzBuzz.
Читать дальше →

AndroCAD: Rise to Power. Электронщики и Android

Reading time13 min
Views14K
Когда-то один чувак произнес: “Государство — это я. Нет меня — нет и государства”. Это было 300 лет назад. Людвиг №16, Король-Солнце. Честно, без подданных он — никто.

На Хабре часто мелькают success-story “одиночек”. Про то, как одному парню стукнула в голову идея, и он решил создать программу/сервис/сайт. Он накопил мульён/взял кредит, собрал команду/нанял компанию, поруководил полгода/год. И вот, ОН сделал проект! Ай, маладца!

Я расскажу о проекте настоящего одиночки, с нуля до… Сам не знаю. Ни суксесса, ни фейла не наблюдается. В общем, занимательное чтиво для общего развития.

image

Далее: ОЧЕНЬ МНОГО БУКВ.
Читать дальше →

Управление SSL/TLS сертификатами в облаках и контейнерах — не человеческая работа

Reading time3 min
Views5.1K

Из презентации Venafi: как установка сертификатов вручную тормозит процесс непрерывной интеграции и развёртывания приложений

Облачные сервисы и контейнеры стали стандартом де-факто для развёртывания веб-приложений. Однако интеграция сертификатов SSL/TLS в окружение DevOps остаётся слишком сложной и медленной. Многие задачи до сих пор выполняются вручную, а это очень большая нагрузка на девопсов. В виртуальной среде с контейнерами резко увеличивается количество машин в сети, а защита соединений «машина-машина» и коммуникаций между ними по-прежнему необходима. Если в такой среде плохо налажена выдача сертификатов и практики управления, то отсутствие надёжной аутентификации каждой машины увеличивает поверхность атаки.

Если всё делается вручную, то разработчики часто отдают приоритет скорости и простоте, а не безопасности. Иногда ради скорости выбирают варианты попроще: создание собственного центра сертификации (ЦС) с самоподписанными сертификатами, слабые алгоритмы шифрования, импорт ненадёжных корневых сертификатов, неадекватная защита секретных ключей для корневых и промежуточных ЦС. А иногда девопсы и вовсе не используют SSL/TLS для шифрования коммуникаций между машинами и контейнерами.
Читать дальше →

Нейросеть в стекле. Не требует электропитания, распознаёт цифры

Reading time2 min
Views39K
image

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

Японские феи показывают работу master-slave триггера в новой манге по цифровой электронике

Reading time9 min
Views20K
Сейчас в издательстве ДМК-Пресс выходит русский перевод японской манги 2013 года про цифровые схемы, созданной Амано Хидэхару и Мэгуро Кодзи. Несмотря на несерьезную форму изложения, суть этой книжки очень здравая. Например, она начинает от древних микросхем малой степени интеграции и быстро привязывает их к современному языку описания аппаратуры Verilog и программируемым логическим интегральным схемам (ПЛИС). Также манга четко определяет зачем нужны комбинационные и последовательностные схемы, и дает представление о методах оптимизации.

Манга избегает ошибок многих своих предшественников. Одну из таких ошибок совершил Чарльз Петцольд в книге «Код», которая вводила последовательностную логику не на D-триггерах, управляемых фронтом тактового сигнала (edge-triggered D-flip-flop), а на D-триггерах с работой по уровню (защелках, level-sensitive D-latch), хотя потом переключалась на правильные триггеры. Вероятно, ошибка была связана с тем, что Чарльз Петзольд, который прославился как автор учебников по программированию GUI в Microsoft Windows, не был практикующим разработчиком электроники, и для него защелки были «проще», чем триггеры с фронтом. Проблема в том, что защелки плохо совместимы со статическим анализом задержек при логическом синтезе, главной технологии проектирования цифровых схем последних 30 лет. Системы на кристалле внутри гаджетов типа айфона в качестве элементов состояния в 99% случаях используют D-триггеры переключаемые по фронту, а защелки используют только в очень специальных случаях. Давать новичкам строить схемы на защелках — это значит вводить их в заблуждение.

В этом смысле манга лучше чем Петзольд. Вот как элегантно манга объясняет работу двухступенчатого master slave D-триггера, управляемого фронтом тактового сигнала. Это делается с помощью феи «Хи-хи-хи» и феи «Ха-ха-ха»:


Делаем таймер или первый проект на ПЛИС

Reading time9 min
Views207K
Начну свою первую статью с того, что сообщу: в предмете статьи я сам новичок, но выбрал именно такую тему. Объясню почему. Читаю хабр уже достаточно долго и мне всегда были интересны топики тех, кто сам в настоящий момент изучает то, о чем повествует. Такие статьи всегда понятны, всегда находят свою аудиторию и всегда предают читающему интерес и энтузиазм автора, который у новичков в любой области обычно зашкаливает!

Так вот, недавно я заинтересовался темой ПЛИС, столкнувшись с ними на учебе, прочитал много всяких доков и заказал себе Starter Kit для экспериментов. Теперь, получив полигон для экспериментов по почте и проведя первый эксперимент, я готов поделиться с хабраюзерами. Надеюсь будет интересно.
Читать дальше →

Сделай шаг к ПЛИС

Reading time7 min
Views271K


Ты ждал знак? Вот он!

Много лет я не решался начать программировать ПЛИС, потому что это сложно, дорого и больно (как мне казалось). Но хорошо, когда есть друзья, которые помогают сделать первый шаг. И теперь я не понимаю одного — ПОЧЕМУ Я ЖДАЛ ТАК ДОЛГО?

Сейчас я помогу сделать первый шаг и тебе!

Я готов!

Сложно быть Junior'ом

Reading time3 min
Views34K

Мне действительно повезло – когда я впервые трудоустроился по профилю в 2010 году, я попал в хорошую компанию и работал рядом с профессионалами высокого уровня и просто хорошими людьми. Рядом с ними я быстро рос. Мне всегда показывали хорошие практики и действительно уделяли мне время.


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


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


  • История, которую я слышал
  • Что в ней не так
  • Как это было со мной
  • Краткий вывод

Если вопросов нет, то поехали.

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

Догуглиться до senior-программиста за четыре года: метод «Школы 21»

Reading time5 min
Views93K
Есть один простой способ научить человека плавать: добираетесь с ним туда, где поглубже, и бросаете в воду. Эффективность может быть колоссальной. В 2013 году в Париже была открыта частная некоммерческая школа программирования L’Ecole 42 (Школа 42), использующая аналогичный подход. Отсутствие учителей и строгого учебного плана — лишь глубокий проектный омут с дедлайнами на дне. Аналогичные школы открыли в Калифорнии, Румынии, Южной Африке, Украине, и практически везде проект стал успешным.

В России при поддержке Сбербанка открывается «Школа 21», использующая такой же подход. И в этом посте мы расскажем о ней абстрактному скептику.


Студенты Школы 42. Фото San Francisco Chronicle
Читать дальше →

Бакалаврские программы в партнерстве с Яндексом

Reading time6 min
Views9.9K
Яндекс более десяти лет активно участвует в образовании: у нас есть собственные программы для школьников (Яндекс.Лицей) и студентов (Школа анализа данных и школы по профессиям), а также тесная работа с вузами. Сейчас идет прием документов от поступающих в университеты, остались считанные недели до дедлайна. Мы хотим напомнить про наши проекты в бакалавриатах по математике и информатике в России.

В каждом университете программа имеет свои особенности. Направления обучения, темы, соотношение объемов математики и программирования — все это отличается от места к месту. Но есть важные принципы, которые мы стараемся соблюдать вместе с коллегами из университетов:

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

Рассказываем под катом про партнерские бакалаврские программы в Москве и Санкт-Петербурге.
Читать дальше →

Мой путь из инженера в программисты

Reading time6 min
Views42K
Краткое содержание
Автор поныл, как тяжело живется инженерам на Руси и решил уходить в программисты. У него получилось. Пост о том, как именно.

Зачем я все это пишу


  • Благодарность. Сказать «спасибо» сообществу Хабра.
  • Поддержка и мотивация. Морально поддержать инженеров, которые тоже решили менять свое призвание на новое, но не могут решиться.
  • Самомотивация. Для движения вперед очень полезны маленький отчет и немного планов, высказанных публично.
  • Поделиться опытом. Возможно, кому-то мой путь покажет его собственную дорожку.
Читать дальше →

With love from Stepik: образовательная платформа Hyperskill

Reading time7 min
Views20K
Я хочу поговорить с вами о том, почему мы чаще чиним сантехнику, чем пишем про неё диссертации, о разных подходах к обучению программированию и о том, как мы пробуем применить один из них в нашем новом продукте Hyperskill.

Если вам не по душе длинные вступления, то переходите сразу к параграфу про программирование. Но так будет менее весело.


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

Эссе на тему «Как стать программистом?»

Reading time5 min
Views125K
Вместо вступления

После открытия публичного доступа к Q&A разделу Хабрахабра появилось множество вопросов по теме «Как стать программистом?». Бесспорно, прекрасно то, что так много людей хотят избрать для себя эту интересную профессию. Многих интересует конкретное направление (web, game development) или язык (PHP, Java, C#, JavaScript, Ruby). Выработать универсальную инструкцию достаточно сложно, если не сказать невозможно. Поделиться с вами своими мыслями по этому вопросу я бы и хотел сегодня.
Читать дальше →

Khan Academy будет использовать JavaScript для обучения программированию

Reading time2 min
Views9K
Khan Academy — некоммерческий проект, предлагающий тысячи бесплатных учебных виедороликов и курсов по основным научным дисциплинам, от математики и физики до истории и искусствоведения. До сих пор на сайте академии в качестве учебного языка использовался Python. Его часто выбирают для обучения программированию, во многом благодаря его однозначности (“There should be one — and preferably only one — obvious way to do it”) и прозрачности (“Explicit is better than implicit”), однако для первого учебного языка, считает Джон Рейсиг (недавно перешедший из Mozilla Corporation в Khan Academy) очень важны такие качества, как доступность и наглядность. Начать программировать на JavaScript можно в любом браузере не тратя ни секунды на установку, кроме того, всегда под рукой HTML5 и CSS, и можно вместо скучных традиционных чисел Фибоначчи и “Hello world” довольно быстро соорудить простенькую игру или хотя бы нарисовать что-нибудь на canvas'е (привет черепашке из Logo).
Читать дальше →

Как обучать джуниоров внутри компании: опыт компании Lodoss Team

Reading time7 min
Views14K
Антон Репьев, технический директор Lodoss Team, специально для блога Нетологии поделился кейсом, как внутри компании организовать программу стажировки и вырастить с нуля молодых специалистов.

Кадровый голод — вечная проблема IT-компаний. Все решают её по-своему: кто-то прокачивает HR-бренд и хантит кандидатов в LinkedIn, кто-то воспитывает своих разработчиков с нуля. Мы в Lodoss Team выбрали второй путь. Я разработал тренинг для начинающих специалистов и курирую обучение стажеров в компании. Что из этого получилось и зачем нам это надо, читайте в этой статье.

Зачем растить джунов


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

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

Зачастую в IT проще обучить сотрудников «с нуля», чем переучивать человека с опытом.
Читать дальше →

23 Шортика по ReactJS – короткие видео-уроки не только для новичков

Reading time6 min
Views23K
image

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

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

Так появились шортики. Я собрал весь изюм из прошлых уроков, часто задаваемых вопросов на практике и дыр у новичков в собеседованиях и превратил их в 3х-4х минутные ролики. Принцип шортиков: пример кода, не больше 5 минут, заранее набранный код, не банальный контент, подтверждение вопроса практикой.

Копают только вниз

Reading time10 min
Views32K
Здравствуйте, уважаемые читатели.

В последнее время нас заинтересовала серия Зеда Шоу "The Hard Way", которую хотелось бы как минимум частично перевести на русский язык. Поскольку порой мы действительно не ищем легких путей, начать хотелось бы с книги о языке C:



Серия ориентирована в первую очередь на начинающих. Для тех, кто любит язык C, а также для их оппонентов, полагающих, что лучше стартовать с чего-нибудь попроще, мы публикуем немного сокращенную статью Эвана Миллера, написанную в конце прошлого года. Возможно, в зависимости от реакции на эту статью, мы решим дополнительно перевести и опубликовать отрывок из книги мистера Шоу либо даже его ответ на критику, высказанную Тимом Хентенааром, а пока приглашаем вас под кат, где, как нам представляется, изложены самые общие соображения в пользу актуальности этой книги.
Читать дальше →

Пора заменить Python как язык для обучения

Reading time3 min
Views108K
В последние десять лет мой стандартный ответ на вопрос «с какого языка начинать знакомство с программированием?» был прост — Python. Теперь я меняю свою рекомендацию. Python все еще хороший язык. Он позволяет сфокусироваться на задаче и не волноваться об архитектурных заморочках. О штуках, которые опытные программисты считают важными, позабыв о том, каково это — быть абсолютным новичком. Сам язык растворяется на фоне, и вместо объяснения возможностей и философий, уроки посвящены генерации музыкальных звукорядов, вычислению расстояний на стадионе в зависимости от беговой дорожки, или написанию автоматического игрока в покер или ятцы.

И вот в один прекрасный день студент задаст невинный вопрос: «А как сделать так, чтобы симулятор покера был не в командной строке, а в окне, с кнопкой для выдачи следующих карт?»
Читать дальше →

Как организовать детский кружок робототехники — 2

Reading time7 min
Views27K
Публикуем новую версию нашего руководства для тех, у кого вдруг возникла мысль пойти поучить чему-то детей. К слову, в ближайшее время будем раздавать небольшие наборы для организации кружков, следите за новостями.

С чего начать?


Зайдите в школу, где вы учились сами или где учатся ваши дети, и договоритесь с кем-нибудь из учителей провести пару занятий (вам там будут рады, это точно совершенно). Любому технарю, если он своим предметом увлекается, есть что рассказать интересного детям. Они будут слушать внимательно, поскольку серьезных людей им сильно не хватает. Я в свое время начал с того, что освежил в памяти университетский курс по радиобиологии, пришел в родную школу и прочитал старшеклассникам лекцию про радиацию (есть у них такая тема в программе).
Читать дальше →

Do good code: 8 правил хорошего кода

Reading time9 min
Views124K
Практически всем, кто обучался программированию, известна книга Стива Макконнелла «Совершенный код». Она всегда производит впечатление, прежде всего, внушительной толщиной (около 900 страниц). К сожалению, реальность такова, что иногда впечатления этим и ограничиваются. А зря. В дальнейшей профессиональной деятельности программисты сталкиваются практически со всеми ситуациями, описанными в книге, и приходят опытным путём к тем же самым выводам. В то время как более тесное знакомство могло бы сэкономить время и силы. Мы в GeekBrains придерживаемся комплексного подхода в обучении, поэтому провели для слушателей вебинар по правилам создания хорошего кода.

В комментариях к нашему первому посту на Хабре пользователи активно обсуждали каналы восприятия информации. Мы подумали и решили, что тему «совершенного кода» стоит развить и изложить ещё и письменно — ведь базовые принципы хорошего кода едины для программистов, пишущих на любом языке.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity