Search
Write a publication
Pull to refresh
16
0.1
Нияз Губайдуллин @guestfromEarth

Java-разработчик

Send message

STM32F4: GNU AS: Программирование на ассемблере (Часть 1)

Reading time15 min
Views76K
Обсуждение статьи после прочтения или задать вопросы можно в VK: vk.com/topic-200545792_46641834

Так же теперь (2021 год) я написал небольшой редактор для программ на ассемблере, начинать читать можно с Редактор ассемблера для ARM микроконтроллеров для компилятора gnu as. Старт там же можно будет и создавать проект в более удобном формате нежели описано в этой и нескольких последующих статьях. При этом рекомендую все таки ознакомится со всеми статьями по этой тематике в моих публикациях, так как не везде я повторяю прошлые материалы.

Это моя первая статья для сообщества Хабрахабр и написать ее я решил про то что сейчас волнует меня самого: написание программ для микроконтроллеров STM32 (семейство АRМ) на языке ассемблера. Я использую отладочную плату на основе микроконтроллера STM32F407 (STM32F4 Discovery, Open407I-C), но статья будет не менее полезна и для программирования других микроконтроллеров STM32.
Читать дальше →

Ещё одна система автополива растений с использованием ESP8266 и Blynk

Reading time10 min
Views70K
Однажды, когда я отдыхал в компании друзей в студенческом лагере МИФИ, один из них рассказал мне, что недавно решил попробовать посадить на участке клубнику. Купил горшки, нарыл где-то почву, подвел шланги для полива. И все бы ничего, хозяин спит — клубника растёт, да только приходится стабильно раз в неделю или даже чаще ездить на дачу, дабы растения не засохли без воды.

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


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

Работа «ИТ-космонавтом»: как мы, инженеры, ездим в гости к медведям и тюленям

Reading time10 min
Views52K


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

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

Я хочу, чтобы сайты открывались мгновенно

Reading time10 min
Views140K
Здравствуйте, меня зовут Александр Зеленин и я веб-разработчик. Я расскажу, как сделать так, чтобы ваш сайт открывался быстро. Очень быстро.


Я хочу, чтобы мой сайт открывался быстро

Ограниченность преобразования Фурье или почему стоит доверять своему слуху

Reading time6 min
Views16K
Последние несколько десятков лет задача распознавания аккордов музыкальной композиции ставилась довольно часто. Казалось бы, этот не столь оригинальный сервис был и остается довольно распространенным среди приложений, работающих со звуком (Ableton, Guitar Pro), однако универсального, срабатывающего всегда алгоритма не существует до сих пор. В этой статье я постараюсь раскрыть одну из множества причин неидеальной работы подобных сервисов на примере алгоритмов, использующих в своей основе преобразование Фурье.

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

Звезды и комета под шубой

Reading time2 min
Views9.2K

В новогодние праздники в темное время суток подними глаза и посмотри на ночное небо. В эти ночи, при отсутствии облаков, на небе можно будет увидеть много всего интересного. Новогодняя комета, метеорный поток, почти парад планет — на что стоит посмотреть?
Читать дальше →

Коллекции в Java: о чём многие забывают

Reading time6 min
Views143K
Из опыта code-review и ответов на StackOverflow набралось немало моментов, касающихся Java Collections API, которые мне казались очевидными, но другие разработчики о них почему-то не знали или знали, но не чувствовали уверенности их применять. В этой статье я собираю в общую кучу всё, что накопилось.

Содержание:


  1. List.subList
  2. PriorityQueue
  3. EnumSet и EnumMap
  4. Set.add(E) и Set.remove(E) возвращают булево значение
  5. Map.put(K, V), Map.remove(K), List.set(idx, E), List.remove(idx) возвращают предыдущий элемент
  6. Map.keySet() и Map.values()
  7. Arrays.asList может быть ключом
  8. Collections.max
  9. LinkedList, Stack, Vector, Hashtable
Читать дальше →

Как мотивировать программистов в рамках «эффективных» технологий — на войне как на войне

Reading time7 min
Views4.8K
Разработчикам не нравятся технологии в компании и хочется что-то сделать на новом, крутом, современно языке и… И? ИИИ? Копнем историю. Полезно вспомнить, как все начиналось. Математика оказалась нужна людям далеко не из любопытства: государственная экспансия, строительство, военные технологии, бизнес — они одними из первых испытали глубокую жажду в быстрых и правильных вычислениях. Квадратные и кубические уравнения научились правильно решать лишь тогда, когда они оказались нужны… купцам и артиллеристам. Синусы и косинусы тоже придумали не из-за большого ума — с их помощью стало возможным строить… нормальные дома, которые не падают :-)

А логарифмы… там вообще интереснейшая история. Они оказались купцам (а за ним морякам и пиратам) и военным настолько нужны, что некоторые математики средневековья жизнь потратили лишь на составление их таблиц! Посмотрим в глаза героям — Джон Непер:


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

Лекции Технопарка. Мастер-класс «20 ошибок при создании IT-компании»

Reading time11 min
Views35K


При создании любой компании можно наделать немало промахов, которые впоследствии могут похоронить весь бизнес. В каждой сфере есть свои специфические ошибки, в том числе и в IT. На тему того, как не бегать по граблям, в Технопарке рассказал Стас Щукин, обладающий 15-летним опытом работы с IT в таких компаниях, как «Ситроникс», «Связной», Tvigle Media и А1. Кроме того, шесть лет назад Стас основал собственную компанию, разрабатывающую заказные проекты, где периодически выступает в роли подрядчика, консультанта и основного разработчика. Текст выступления читайте под катом.
Читать дальше →

Итоги 2015: веб-разработка

Reading time7 min
Views17K
Представители КРОК, Traffic Inspector, WebMoney Transfer и Softline рассказали, что принес 2015-й год в сферу веб-разработки. Эксперты перечислили важнейшие события индустрии и отметили основные тренды уходящего года.



Ключевые события и тренды


2015-й – это год утверждения стандарта HTTP/2 (предыдущая версия протокола была принята в 1999). Это год массового перехода на стандарт HTML-5 с устаревшего Flash, который уже не поддерживается большинством современных браузеров. Это год появления WebAssembly, который в дальнейшем позволит перенести требовательные к производительности приложения в Web, что по мнению Сергея Дорогина, ведущего инженера-разработчика Департамента информационных технологий компании КРОК, означает “начало нового мира”.

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

Правило ста часов

Reading time3 min
Views51K
Популярный мем с «правилом 10000 часов» утверждает, что именно столько времени необходимо для овладения любым мастерством какого-либо рода. У этого правила есть несколько следствий:

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

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

Что делать, если вам нужно в совершенстве освоить все необходимые области, но их освоение отнимает слишком много времени?
Читать дальше →

Эффективный Django. Часть 1

Reading time14 min
Views304K

Представляю вам перевод статей о Django с сайта effectivedjango.com. Наткнулся я на этот сайт во время изучения данного фреймворка. Информация размещенная на этом ресурсе показалась мне полезной, но так как нигде не нашел перевода на русский, решил сделать сие доброе дело сам. Этот цикл статей, как мне думается, будет полезен веб-разработчикам, которые делают только первые шаги в изучении Django.
Приступить к чтению

Легко ли распознать информацию на банковской карточке?

Reading time7 min
Views28K


Когда мы общаемся с нашими заказчиками, то, будучи специалистами в этой области, активно используем соответствующую терминологию, в частности слово «распознавание». При этом слушающая аудитория, воспитанная на Cuneiform и FineReader, часто вкладывает в этот термин именно задачу сопоставления вырезанного участка изображения некоторому числу (коду символа), которая в наши дни решается нейросетевым подходом и является далеко не первым этапом в задаче распознавания информации. В начале необходимо локализовать карточку на изображении, найти информационные поля, выполнить сегментацию на символы. Каждая перечисленная подзадача с формальной точки зрения является самостоятельной задачей распознавания. И если для обучения нейронных сетей существуют зарекомендовавшие себя подходы и инструменты, то в задачах ориентации и сегментации каждый раз требуется индивидуальный подход. Если вам интересно узнать про подходы, которые мы использовали при решении задачи распознавания банковской карточки, тогда добро пожаловать под кат!
Читать дальше →

С чего начинается hardware-стартап: Команда и прототип

Reading time7 min
Views16K


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

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

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

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

Всю неделю в понедельник — лайфхаки по поиску времени

Reading time5 min
Views6.7K
Как Вы ищете время для себя? Наверняка у Вас есть свои собственные методы поиска самого ценного ресурса. Прежде чем прочитать статью — вспомните пару своих методов. А когда дочитаете — поделитесь ими в комментариях. Наверняка вспомните что-то новое и интересное для меня =)

Наша компания выросла с 3 до 40 человек всего за год. Кардинальным образом изменились обязанности тех самых трех основателей. Было несколько месяцев в которых лично у меня было ощущение что моя работа превратилась просто в ужас. А увольняться некуда — это же моя компания :)

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

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


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

Сейчас новый пузырь стартапов? Все аргументы за и против

Reading time3 min
Views4.9K


Автор текста — Билл Марис, президент и управляющий партнер в Google Ventures

Я слышал, люди переживают, не оказались ли мы в случае со стартапами в пузыре. Он такой же плохой, как пузырь доткомов в 2000-м? Может ли он быть еще хуже старого? Я подумал, что нам стоит посмотреть на все доступные данные и понять, можем ли мы извлечь их них что-то большее, чем просто личное мнение. Так что я попросил наших специалистов в Google Ventures вникнуть в вопрос и узнать, что сообщают нам строгие данные. А этом тексте поделюсь с вами обнаруженным.

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

Чек-лист из 36 ошибок менеджеров по продажам (с решениями)

Reading time20 min
Views29K
image
Мой родненький отдел телефонных продаж, в котором я работал

Обширный гид по телефонным продажам для b2b, часть 4 из 4. Я собрал самые распространённые ошибки sales менеджеров. Вы легко увеличите эффективность телефонных продаж, избегая приведённых ошибок. Ссылки на предыдущие части статьи указаны вначале статьи. Впрочем, они вам не потребуются. Эта часть обособлена от предыдущих и вобрала в себя всё.
Читать дальше →

Психологическая деформация программистов. Взгляд с обеих сторон баррикад

Reading time6 min
Views139K
Само наличие психологической деформации у какой-либо профессии, как правило, достаточно спорный момент ввиду того, что у разных людей она проявляется по-разному. Однако общую тенденцию можно выделить и, пожалуй, настало то время когда можно достаточно смело говорить, что программисты всё же имеют свой особенный психологический портрет который обусловлен их профессиональной деятельностью.

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

И что же них такого деформированного?

Об особенностях менеджмента в космических исследованиях СССР или «Назад в будущее»

Reading time2 min
Views5.2K
Как-то в Московском отделении PMI, учитывая мой специфический опыт, попросили рассказать об особенностях менеджмента в СССР. А опыт у меня такой. 20 лет разработки ПО в ЦУПе и еще столько же в коммерческих компаниях.

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

Постараюсь быть краток, поэтому буду говорить только о главном.

Люди


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

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

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

JSON Web Token и sliding expiration в web-приложении

Reading time5 min
Views65K
В web-приложениях наиболее распространенным методом аутентификации до настоящего времени являлось использование файлов cookies, которые хранят идентификатор серверной сессии и имеют свой срок годности (expiration date). При этом существует возможность эту дату автоматически продлевать при очередном обращении пользователя на сервер. Такой подход носит название sliding expiration.

Однако в последнее время разработчики стремятся отказаться от использования cookies и серверной сессии в виду ряда причин и ищут альтернативные способы аутентификации. Одним из них является использование JSON Web Token (JWT) — маркер, который содержит в зашифрованном виде всю минимально необходимую информацию для аутентификации и авторизации. При этом не требуется хранить в сессии данных о пользователе, так как маркер самодостаточный (self-contained). Однако это в свою очередь добавляет определенные сложности с контролем над JWT, что может свести на нет все его преимущества перед cookies. На просторах Интернет мною было найдено несколько решений этих проблем, и здесь я бы хотел предложить альтернативный вариант, который, как мне кажется, при своей простоте должен удовлетворить потребности многих проектов.
Читать дальше →

Information

Rating
6,356-th
Location
Казань, Татарстан, Россия
Registered
Activity