Обновить
1397.34

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

У вас есть синдром ученика?

Время на прочтение2 мин
Охват и читатели76K
Ладно, не такая уж и большая проблема. Но я заметил, что появляется определённый тренд в поведении — особенно в мире технологий и разработки ПО. Не знаю, как его назвать, так что назовём его пока «синдромом ученика». Он описывает поведение, когда человек непрерывно стремится учиться и никогда не применяет приобретённые знания.

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


Источник: https://github.com/mraible/history-of-web-frameworks-timeline
Читать дальше →

Бестиарий С++. Справочник по загадочным персонажам

Время на прочтение9 мин
Охват и читатели34K


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

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

Автоматизация работы в SAP с помощью VBScript

Время на прочтение21 мин
Охват и читатели32K

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


Решил поделиться своими наработками с общественностью.
Читать дальше →

Гибкая система управления доступом на уровне объектов-записей

Время на прочтение10 мин
Охват и читатели16K

Привет всем!


В проектах, основанных на Джанго, часто хочется использовать гибкое управление доступом на уровне записей (объектов), когда разные пользователи имеют, или наоборот, не имеют доступ к отдельным объектам в рамках одной и той же модели.


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


Для наиболее дотошных, далее приведены детали устройства системы, ее внутренней логики и порядка обращения с ней.

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

Открытая трансляция главного зала HighLoad++

Время на прочтение4 мин
Охват и читатели5.4K
image

Отличная новость — как и в прошлом году мы будем транслировать главный зал HighLoad++ с самыми интересными докладами совершенно бесплатно!

Трансляция HighLoad++


Не забудьте нажать на "Напомнить", а также подписаться на наш канал. Мы постоянно выкладываем в нём видеозаписи наших докладов.

Транслироваться в открытом доступе будет только главный зал, если вы хотите посмотреть остальные 9 залов, то можете приобрести и закрытый доступ.

Полное расписание доступно на сайте (PDF, HTML), а подкатом мы расскажем о самых интересных докладах.
Читать дальше →

Как можно взломать свой же Web проект?

Время на прочтение4 мин
Охват и читатели28K


Недавно мне позвонили и попросили помочь разобраться с очень странными симптомами на сайте. А симптомы выглядели вот так. Cовершенно разные клиенты звонили и рассказывали, что они на сайте попадают в личные кабинеты других случайных клиентов. Логинятся под собой. Входят в свой аккаунт, а потом бац – и уже в аккаунте другого клиента. Правда они не догадывались, что кто-то другой так же мог оказаться в их личном кабинете.


Давайте я расскажу «историю неуспеха», чтобы другие на эти грабли не наступали.

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

Как подружиться с UIKit

Время на прочтение6 мин
Охват и читатели30K


Привет, Хабр! Меня зовут Богдан, в Badoo я работаю в мобильной команде iOS-разработчиком. Мы достаточно редко рассказываем что-либо о нашей мобильной разработке, хотя статьи – один из лучших способов документировать хорошие практики. Эта статья статья расскажет о нескольких полезных подходах которые мы используем в нашей работе.


Уже на протяжении нескольких лет iOS-сообщество сражается с UIKit. Кто-то придумывает сложные способы «погребения» внутренностей UIKit под слоями абстракций в своих выдуманных архитектурах, другие команды переписывают его, теша своё эго, но оставляя за собой дикое количество кода, который нужно поддерживать.

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

Дайджест Университета ИТМО: наши разработки в 2017 году. Часть 2

Время на прочтение6 мин
Охват и читатели3.3K
Мы продолжаем рассказывать о достижениях ученых, студентов и сотрудников Университета ИТМО и одновременно подводим промежуточные итоги 2017 года. В первой части нашей подборки мы писали о достижениях в области естественных наук — химии, физики, а также фотоники и о разработках в сфере пищевой промышленности: наши ученые работают над амбициозными проектами от комплекса обнаружения и измерения параметров движения космического мусора до съедобных белковых пленок, продлевающих срок годности продуктов.

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

Какие языки программирования самые популярные: статистика ИТ-платформ

Время на прочтение4 мин
Охват и читатели216K
Каждый язык программирования имеет свою сферу применения. Однако некоторые из них используются чаще других. Мы задались вопросом, какой язык программирования наиболее популярен. Для этого мы проанализировали статистику нескольких IT-платформ: GitHub, Stack Overflow, HN, Хабрахабр и др.

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

Какие самые нелюбимые языки программирования?

Время на прочтение5 мин
Охват и читатели59K
На Stack Overflow Jobs каждый может опубликовать собственную Developer Story, чтобы поделиться достижениями и поспособствовать карьерному росту. При публикации можно добавить к статье теги, соответствующие языкам и технологиям, с которыми вы бы хотели работать и с которыми бы не хотели:



Это даёт нам возможность изучить мнения сотен тысяч разработчиков. Есть много способов измерить популярность языка. Например, мы часто использовали для изучения трендов статистику визитов на Stack Overflow или просмотров вопросов. Но данные о тегах — уникальная возможность посмотреть, что людям не нравится, когда у них есть возможность сказать об этом в резюме.

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

Мы отправили ETH на неправильный адрес и смогли их вернуть

Время на прочтение2 мин
Охват и читатели24K


Всё началось с проблемы с которой мы столкнулись в BitClave: во время подготовки нашего ICO некоторый объем криптовалюты ETH (эфир) был отправлен на адрес смарт-контракта, который ранее был задеплоен в тестовую сеть Ethereum. Деньги были отправлены в главной сети на адрес не относящийся ни к одному приватному ключу, ни к одному смарт-контракту в этой сети. Сначала нам показалось, что мы просто выкинули $2000 без единой возможности вернуть наши средства
Читать дальше →

Что каждый программист на C должен знать об Undefined Behavior. Часть 3/3

Время на прочтение9 мин
Охват и читатели12K
Часть 1
Часть 2
Часть 3

В первой части цикла мы рассмотрели неопределённое поведение в С и показали некоторые случаи, которые позволяют сделать С более быстрым, чем «безопасные» языки. В части 2 мы рассмотрели некоторые неожиданные баги, которые могут противоречить представлениям многих программистов об языке С. В этой части, мы рассмотрим проблемы, которые компилятор Clang решает, чтобы достичь высокого быстродействия, и устранить некоторые сюрпризы.
image
Читать дальше →

Пишем свой маппер для .NET Standard 2.0

Время на прочтение6 мин
Охват и читатели12K

В сегодняшней заметке я хотел бы поведать вам о коротком приключении по написанию своего маппера для .NET Standard 2.0. Ссылка на github и результаты benchmark'ов прилагаются.

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

Ближайшие события

Kotlin DSL: Теория и Практика

Время на прочтение17 мин
Охват и читатели76K

Sql, RegExp, Gradle — что их объединяет? Всё это примеры использования проблемно-ориентированных языков или DSL (domain-specific language). Каждый такой язык решает свою узконаправленную задачу, например, запрос данных из БД, поиск совпадений в тексте или описание процесса сборки приложения. Язык Kotlin предоставляет большое количество возможностей для создания собственного проблемно-ориентированного языка. В ходе статьи мы разберемся, какие инструменты есть в арсенале программиста, и реализуем DSL для предложенной предметной области.


Весь синтаксис, представленный в статье, я объясню максимально просто, однако, материал рассчитан на практикующих инженеров, которые рассматривают Kotlin, как язык для построения проблемно-ориентированных языков. В конце статьи будут приведены недостатки, к которым нужно быть готовым. Используемый в статье код актуален для Kotlin версии 1.1.4-3 и доступен на GitHub.


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

Приглашаем на конференцию YAPC::Russia 4 ноября

Время на прочтение2 мин
Охват и читатели2.7K


В эту субботу мы приглашаем всех Perl’оводов и им сочувствующих на ежегодную конференцию YAPC::Russia, посвящённую языку Perl и его сообществу. Она проводится в Москве и Санкт-Петербурге под названием May Perl, а в Киеве — под названием Perl Mova.


«Столичная» часть конференции пройдёт 4 ноября в московском офисе Mail.Ru Group. Здесь соберутся Perl-профессионалы из разных уголков земного шара, чтобы обменяться опытом, завести новые знакомства и пообщаться с единомышленниками в неформальной и приятной обстановке.

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

Глубокий расчет. Как 3D-технологии помогают считать людей и делают жизнь проще?

Время на прочтение6 мин
Охват и читатели3.2K
Давайте знакомиться

Наша команда занимается разработкой интеллектуального ПО для систем IP-видеонаблюдения. За 9 лет существования мы создали десятки функций и модулей видеоанализа, столкнулись с сотней проблем и одержали неменьше побед. В своем блоге Macroscop мы расскажем о части из них, поделимся своим видением процесса разработки и раскроем некоторые свои технологии.

«Ближе к делу»

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

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

Бесконечный скроллинг на Firebase

Время на прочтение5 мин
Охват и читатели5.8K
Из данной статьи вы узнаете, как реализовать бесконечный скроллинг с помощью JavaScript и Firebase, при этом вам не нужно будет что-либо менять в вашей уже существующей структуре данных для Firebase.

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

Заметка: если ознакомительная информация вас не интересует, то можете смело переходить к примерам кода, приведенным ниже.


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

Не путайте разработку ПО и программирование

Время на прочтение11 мин
Охват и читатели141K

Каждый разработчик ПО умеет программировать, но не каждый программист может разрабатывать ПО



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

Возможно, кому-то больше нравится говорить не «разработчик», а инженер-программист, ведь инженер — это звучит гордо! Или нет? К счастью, эта статья не о терминах. Если мой термин вам не нравится — подставьте свой: «автор ПО», «мастер ПО»… и даже «творец приложений»!

Говоря «разработчик ПО», я имею в виду человека, для которого написание качественного ПО — профессия. Человека, который использует в своей работе научные подходы и статистику и считает свое занятие чем-то большим, чем просто зарабатывание денег.

Чтобы стать разработчиком, уметь программировать недостаточно.

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

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

Хотите еще аналогий? Пожалуйста:

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

Главная задача этого текста — донести, что создание простых программ серьезно отличается от разработки ПО.

Переведено в Alconost
Читать дальше →

Что каждый программист на C должен знать об Undefined Behavior. Часть 2/3

Время на прочтение8 мин
Охват и читатели15K
Часть 1
Часть 2
Часть 3

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

Мне нравится называть это «Почему неопределённое поведение часто пугает и ужасает программистов на C».

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

Реализация мультизагрузки файлов с индикаторами выполнения на ASP.NET

Время на прочтение10 мин
Охват и читатели4.2K
В этой статье Марк Салливан рассказывает, как с помощью ASP.NET и библиотек Uploadify реализовать мультизагрузку файлов с динамическими индикаторами выполнения. Созданный в процессе класс Http-обработчика, наряду с классом элемента управления, подойдет для любого другого приложения на ASP.NET, что делает этот код, с одной стороны, полезным plug-in-play решением, а с другой – наглядной демонстрацией работы с Http-обработчиком. Он также добавил ряд дополнительных функций на уровень ASP.NET, таких как фильтрация по расширению файла, обратная передача по завершении и безопасность на основе сеансов.


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

Вклад авторов