В прошлом году появилась необходимость дополнить старый проект написанный на C функционалом на Python3. Не смотря на то, что есть статьи на эту тему я помучился и в том году и сейчас когда писал программы для статьи. Поэтому приведу свои примеры по тому как работать с Python3 из C под Linux (с тем что использовал). Опишу как создать класс и вызвать его методы, получить доступ к переменным. Вызов функций и получение переменных из модуля. А также проблемы с которыми я столкнулся и не смог их понять.
User
Введение в Си. Послание из прошлого столетия
Предисловие
Я несколько раз в своих комментариях ссылался на книгу Эндрю Таненбаума «Operating Systems Design and Implementation» на ее первое издание и на то, как в ней представлен язык Си. И эти комментарии всегда вызывали интерес. Я решил, что пришло время опубликовать перевод этого введения в язык Си. Оно по-прежнему актуально. Хотя наверняка найдутся и те, кто не слышал о языке программировании PL/1, а может даже и об операционной системе Minix.
Это описание интересно также и с исторической точки зрения и для понимания того, как далеко ушел язык Си с момента своего рождения и IT-отрасль в целом.
Мелкая питонячая радость #9: консольные приложения с человеческим лицом
Философы говорят, что людей нужно оценивать не по тому, как высоко они могут забраться, а по тому, как низко они могут пасть.
В мире есть много прекрасных разработчиков, которые могут выдавать эффектные алгоритмы, изящные архитектуры и прекрасный код. Но эти же программеры берут и пишут весьма посредственно организованный код какого-нибудь маленького консольного скрипта для расчета аналитики или патча данных в базе. Никакой разбивки на классы и функции, корявая передача аргументов, примитивный вывод малопонятной информации с помощью print()
Сегодня мы поговорим о том, как сделать лучше программы, на которые большинству плевать — одноразовые консольные утилитки и скрипты.
Шпаргалка по Gradle
Как мне кажется, большинство людей начинают разбираться с gradle только тогда, когда в проекте что-то надо добавить или что-то внезапно ломается — и после решения проблемы "нажитый непосильным трудом" опыт благополучно забывается. Причём многие примеры в интернете похожи на ускоспециализированные заклинания, не добавляющие понимания происходящего:
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.habr.hello"
minSdkVersion 20
targetSdkVersion 28
}
buildTypes {
release {
minifyEnabled false
}
}
}
Я не собираюсь подробно описывать, для чего нужна каждая строчка выше — это частные детали реализации андроид-плагина. Есть кое-что более ценное — понимание того, как всё организовано. Информация раскидана по различным сайтам/официальной документации/исходникам градла и плагинов к нему — в общем, это чуть более универсальное знание, которое не хочется забывать.
Дальнейший текст можно рассматривать как шпаргалку для тех, кто только осваивает gradle или уже забыл.
Samsung открывает бесплатный онлайн-курс по нейросетям в задачах компьютерного зрения
Мы запускаем открытый курс «Нейронные сети и компьютерное зрение», который адресован тем, кто в этой области делает первые шаги. Курс разработан экспертами Samsung Research Russia: Исследовательского центра Samsung и Центра искусственного интеллекта Samsung в Москве. Сильные стороны курса:
- авторы курса знают, о чем говорят: это инженеры московского Центра искусственного интеллекта Samsung, Михаил Романов и Игорь Слинько;
- есть как теория с задачками, так и практика на PyTorch
- приступаем к практике сразу после освоения минимальных теоретических знаний.
- лучшие студенты будут приглашены на собеседование в Samsung Research Russia!
Введение в машинное обучение
Оригинальный курс на английском доступен по этой ссылке.
Возможности Python 3, достойные того, чтобы ими пользовались
Все примеры, приведённые в этом материале, написаны с использованием Python 3.7. В описании каждой возможности имеются сведения о минимальной версии Python, необходимой для её применения.
Джулия в лабиринте
Разбирая одну олимпиадную задачу мы отправимся по петляющим коридорам генерации лабиринтов и их прохождения, а также увидим, что на языке Julia простота реализаций алгоритмов граничит с их псевдокодом.
Лабиринты: классификация, генерирование, поиск решений
В этом классическом посте подробно рассказывается о самых популярных способах создания и прохождения лабиринтов. Статья разделена на четыре части: классификация, алгоритмы генерации, алгоритмы решения лабиринтов и другие операции с лабиринтами.
Классификация лабиринтов
Лабиринты в целом (а значит, и алгоритмы для их создания) можно разбить по семи различным классификациям: размерности, гиперразмерности, топологии, тесселяции, маршрутизации, текстуре и приоритету. Лабиринт может использовать по одному элементу из каждого класса в любом сочетании.
Машинное обучение для всех, кто изучал математику в восьмом классе
Привет, Хабр! Представляю вашему вниманию перевод статьи "Machine Learning for Anyone Who Took Math in Eighth Grade" автора Kyle Gallatin.
Я обычно замечаю, что искусственный интеллект объясняется одним из двух способов: через все более сенсационную призму различных медиа, или через плотную научную литературу, пронизанную излишним языком и специфическими для области терминами.
Между этими крайностями существует менее публикуемая область, где, я думаю, литература должна немного активизироваться. Новости о «прорывах», по типу этого глупого робота София, поднимают хайп вокруг искусственного интеллекта и может показаться, что это чем-то похоже на человеческое сознание, в то время как в действительности София не умнее, чем SmarterChild у AOL Instant Messenger.
Научная литература может быть еще хуже, заставляя даже самого искушенного исследователя закрывать глаза после нескольких абзацев бессмысленного псевдоинтеллектуального мусора. Чтобы правильно оценить AI, люди должны в целом понимать, что это такое на самом деле. И все, что нужно, чтобы понять основы искусственного интеллекта, это немного математики средней школы.
Введение в машинное обучение
1.1 Введение
Благодаря машинному обучению программист не обязан писать инструкции, учитывающие все возможные проблемы и содержащие все решения. Вместо этого в компьютер (или отдельную программу) закладывают алгоритм самостоятельного нахождения решений путём комплексного использования статистических данных, из которых выводятся закономерности и на основе которых делаются прогнозы.
Технология машинного обучения на основе анализа данных берёт начало в 1950 году, когда начали разрабатывать первые программы для игры в шашки. За прошедшие десятилетий общий принцип не изменился. Зато благодаря взрывному росту вычислительных мощностей компьютеров многократно усложнились закономерности и прогнозы, создаваемые ими, и расширился круг проблем и задач, решаемых с использованием машинного обучения.
Чтобы запустить процесс машинного обучение, для начала необходимо загрузить в компьютер Датасет(некоторое количество исходных данных), на которых алгоритм будет учиться обрабатывать запросы. Например, могут быть фотографии собак и котов, на которых уже есть метки, обозначающие к кому они относятся. После процесса обучения, программа уже сама сможет распознавать собак и котов на новых изображениях без содержания меток. Процесс обучения продолжается и после выданных прогнозов, чем больше данных мы проанализировали программой, тем более точно она распознает нужные изображения.
Благодаря машинному обучению компьютеры учатся распознавать на фотографиях и рисунках не только лица, но и пейзажи, предметы, текст и цифры. Что касается текста, то и здесь не обойтись без машинного обучения: функция проверки грамматики сейчас присутствует в любом текстовом редакторе и даже в телефонах. Причем учитывается не только написание слов, но и контекст, оттенки смысла и другие тонкие лингвистические аспекты. Более того, уже существует программное обеспечение, способное без участия человека писать новостные статьи (на тему экономики и, к примеру, спорта).
Создание калькулятора чаевых на Kotlin: как это работает?
Рассказываем, как создать простое приложение для расчета чаевых на языке Kotlin. Если точнее, то Kotlin 1.3.21, Android 4, Android Studio 3. Статья будет интересной, в первую очередь, для тех, кто начинает свой путь в разработке Android-приложений. Она позволяет понять, что и как работает внутри приложения.
Такой калькулятор пригодится, когда нужно подсчитать сумму чаевых с компании, решившей провести время в ресторане или кафе. Конечно, не все и не всегда оставляют официантам на чай, это больше западная традиция, но процесс разработки такого приложения в любом случае интересен.
10 шагов к успешному Python-проекту
Управление памятью в Python
Знание того, что происходит в Python, позволит вам лучше понимать некоторые особенности поведения этого языка. Это, хочется надеяться, даст вам возможность по достоинству оценить ту огромную работу, которая делается внутри используемой вами реализации этого языка для того, чтобы ваши программы работали именно так, как вам нужно.
Изучаем Docker, часть 1: основы
Docker — это платформа, которая предназначена для разработки, развёртывания и запуска приложений в контейнерах. Слово «Docker» в последнее время стало чем-то вроде синонима слова «контейнеризация». И если вы ещё не пользуетесь Docker, но при этом работаете или собираетесь работать в сферах разработки приложений или анализа данных, то Docker — это то, с чем вы непременно встретитесь в будущем.
→ Часть 1: основы
→ Часть 2: термины и концепции
→ Часть 3: файлы Dockerfile
→ Часть 4: уменьшение размеров образов и ускорение их сборки
→ Часть 5: команды
→ Часть 6: работа с данными
Если вы пока не знаете о том, что такое Docker, сейчас у вас есть шанс сделать первый шаг к пониманию этой платформы. А именно, освоив этот материал, вы разберётесь с основами Docker и попутно приготовите пиццу.
Не VPN-ом единым. Шпаргалка о том, как обезопасить себя и свои данные
Это мы, VPN-сервис HideMy.name. Сейчас временно работаем на зеркале HideMyna.me. Почему? 20 июля 2018 года Роскомнадзор добавил нас в список запрещенных ресурсов из-за решения Медведевского районного суда в Йошкар-Оле. Суд постановил, что посетители нашего сайта имеют неограниченный доступ к экстремистским материалам #безрегистрацииисмс, а ещё каким-то образом нашёл на нём книгу «Майн Кампф» Адольфа Гитлера. Видимо, для надёжности.
Такое решение нас очень удивило, но мы продолжаем работать на hidemyna.me, hidemyname.org, .one, .biz и др. Затяжное пререкание с Роскомнадзором не привело ни к какому результату. Пока мы с юристами оспариваем блокировку и волшебное решение суда, делимся с вами базовыми советами по сохранению конфиденциальности в интернете и новостями на эту тему.
Эдвард Сноуден любит Агентство национальной безопасности (наверное)
Обширный обзор собеседований по Python. Советы и подсказки
Всем привет!
Кратко о себе. По образованию я математик, а вот по профессии — программист. В сфере разработки с 2006 года. Хотя, поскольку программирование начали изучать ещё в школе, свои первые программки и игры я начал писать ещё в школе (примерно, с 2003). Так сложилось, что пришлось выучить и поработать на нескольких языках. Если не брать во внимание ВУЗ-овские лекции по С, С++, Бэйсику, Паскалю и Фортрану, то реально я работал с Delphi (более 6 лет), PHP (более 5 лет), Embedded (Atmel + PIC около 2.5 лет) и последним временем Python + чуть-чуть Scala. Конечно же без баз данных тоже никак не обойтись.
Для кого эта статья? Для всех, кто, как и я, хотел (или хочет) найти для себя достойную хорошо оплачиваемую работу с интересным проектом, классным коллективом и всякими плюшками. А также для тех, кто желает поднять свой уровень знаний и мастерства.
42 оператора расширенного поиска Google (полный список)
site:
, который ограничивает поисковую выдачу одним сайтом.Большинство операторов легко запомнить, это короткие команды. Но уметь эффективно их использовать — совсем другая история. Многие специалисты знают основы, но немногие по-настоящему овладели этими командами.
В этой статье я поделюсь советами, которые помогут освоить поисковые операторы для 15 конкретных задач.
Руководство и шпаргалка по Wireshark
Устранение неполадок сетевого подключения
- Визуальное отображение потери пакетов
- Анализ ретрансляции TCP
- График по пакетам с большой задержкой ответа
Исследование сессий прикладного уровня (даже при шифровании с помощью SSL/TLS, см. ниже)
- Полный просмотр HTTP-сессий, включая все заголовки и данные для запросов и ответов
- Просмотр сеансов Telnet, просмотр паролей, введённых команд и ответов
- Просмотр трафика SMTP и POP3, чтение писем
Английский язык: взгляд инженера
ДИСКЛЕЙМЕР
Я по образованию инженер, и вряд ли могу сказать, что очень хорошо владею языком. Могу читать техническую литературу и статьи по специальности.
Здесь приводится опыт, который выдернул меня из состояния «читаю со словарем».
Походу большинство учебников иностранного языка, по которым учат школьников, студентов основаны на чьих-то докторских. Даже в технических (точных) науках докторские бывают так себе, что уж творится в гуманитарных науках.
Возьмем такой предмет, как английский язык. Там куча понятий: 12 времен глагола, страдательный залог, причастия и т.п. Кто их ввел? Видимо, некие ученые мужи, для которых английский язык был РОДНЫМ. Они жили себе в каком-нибудь Oxford’e или в Cambridg’e и вряд ли знали русский язык.
Соответственно, курс английского у них получался неадаптированным под русскоговорящего. Учебник английской грамматики пытается научить человека говорить с нуля заново, игнорируя тот факт, что речью он уже владеет.
Вспомните, как вы в школе изучали русский язык. Подлежащее, сказуемое, дополнение, определение… и штук 200 правил, из которых куча исключений, которые все благополучно забывают, кроме собственно учителей русского. И которые потом нужны – максимум – при разборках с бюрократическими документами («казнить нельзя помиловать»).
Английская грамматика – туда же – что-то академическое и малополезное при изучении языка с нуля. Для человека, который более-менее свободно умеет стыковать из английских слов фразу, нужно просто учить новые слова.
Но есть много людей, которые даже стыковать толком не умеют, у них уровень — «читаю и перевожу словарем», в смысле — «заглядываю в словарь за каждым словом из текста».
При отсутствии языковой практики навык сложения английской фразы из слов у них практически отсутствует, что является серьезным барьером на пути к дальнейшему изучению.
Статья ориентирована именно на таких.
Information
- Rating
- Does not participate
- Registered
- Activity