Рубрика «Программирование» - 943

Вы не программист, если…

На днях, в поисках небольшого апгрейда, заглянул в один компьютерный магазинчик. В процессе разговора с консультантом (30+), он поинтересовался, связанна ли моя профессия с компьютерами, и услышав, что я занимаюсь программированием, сообщил мне:
— Да, я тоже программирую.
Под катом, немного очень субъективных, местами шуточных пунктиков, которые отличают настоящего программиста, от “я-тоже-программирую”.
Читать полностью »

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

На самом деле, у хрущёвок существует несколько десятков модификаций, но некая основа, сущность хрущёвки всё равно прослеживается.

В общем, недолго думая, я сел и написал генератор хрущёвок на C# под Unity3d. Под катом описание работы алгоритма и размышления на тему uv-карт, сабмешей и шейдеров.Читать полностью »

13 декабря 2013 г. в Минске пройдет четвёртая международная конференция Application Developer Days.

image

Application Developer Days — это конференция, сделанная программистами для программистов. Для тех, кто непосредственно пишет код, продумывает архитектуру приложения и старается повысить свою продуктивность, используя новые языки и библиотеки. Кроме непосредственно программистов, конференция будет интересна всем тем, кто вовлечен в процесс создания программных продуктов, кто хочет понять, чем живут разработчики, посмотреть на всё с точки зрения программиста.
Читать полностью »

Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming».

Содержание:

В этой главе мы рассмотрим некоторые из не очень известных особенностей Boost.Asio. Объекты std streams и streambuf иногда немного сложнее в использовании, но, как вы сами убедитесь, у них есть свои преимущества. Наконец, вы увидите довольно позднее добавление в Boost.Asio — co-routines, которое позволит вам иметь асинхронный код, но легко читаемый (как буд-то бы он синхронный). Это довольно удивительная особенность.

Читать полностью »

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

Как знают многие пользователи наших продуктов, JetBrains разработала и поддерживает гибкую расширяемую платформу IntelliJ, служащую фундаментом для всех наших интегрированных сред разработки включая IntelliJ IDEA, PhpStorm, WebStorm, RubyMine, PyCharm и AppCode, а также для Android Studio от Google. Именно IntelliJ обеспечивает всю основную функциональность этих IDE; остальные особенности и “примочки”, придающие индивидуальность каждой из IDE — не более чем набор плагинов к платформе.

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

image
Читать полностью »

Сегодня oDesk, крупнейшая в мире (по её собственным данным) международна биржа фрилансеров, объявила состязание для разработчиков из России и Украины. Суть конкурса сводится к следующему: 19 октября программистам нужно войти на сервис Codingame (зарегистрироваться можно прямо сейчас), получить две конкурсные задачи и выполнить их. На всё про всё даётся четыре часа: с 11.00 до 15.00 по московскому времени или, соответственно, с 10.00 до 14.00 по киевскому.

Участники конкурса, которые, кстати, должны иметь аккаунт на oDesk, могут решать задачи на одном из 15 языков программирования: C, C++, C#, Dart, Go, Haskell, Java, JavaScript, Objective-C, Pascal, Perl, Python, PHP, Ruby или Scala.
Читать полностью »

Lock free структуры данных. Основы: Атомарность и атомарные примитивы
Построение lock-free структур данных зиждется на двух китах – атомарных операциях и способах упорядочения доступа к памяти. В этой статье речь пойдет об атомарности и атомарных примитивах.

Анонс. Спасибо за теплый прием Начал! Вижу, что тема lock-free интересна хабрасообществу, это меня радует. Я планировал построить цикл по академическому принципу, плавно переходя от основ к алгоритмам, попутно иллюстрируя текст кодом из libcds. Но часть читателей требует зрелищ не мешкая показать, как пользоваться библиотекой, особо не рассусоливая. Я согласен, в этом есть свой резон. В конечном счете, и мне не так интересно, что там внутри boost, — опишите, как его применять! Поэтому свой эпический цикл я разделю на три части: Основы, Внутри и Извне. Каждая статья эпопеи будет относится к одной из частей. В Основах будет рассказываться о низкоуровневых вещах, вплоть до строения современных процессоров; это часть для почемучек вроде меня. Внутри будет освещать интересные алгоритмы и подходы в мире lock-free, — это скорее теория о том, как реализовать lock-free структуру данных, libcds будет неисчерпаемым источником C++ кода. В Извне будут статьи о практике применения libcds, — программные решения, советы и FAQ. Извне будет питаться вашими вопросами/замечаниями/предложениями, дорогие читатели.

А пока я судорожно готовлю начало Извне, — первая часть Основ. Статья во многом не о C++ (хотя и о нем тоже) и даже не о lock-free (хотя без atomic lock-free алгоритмы неработоспособны), а о реализации атомарных примитивов в современных процессорах и о базовых проблемах, возникающих при использовании таких примитивов.
Атомарность — это первый круг ада низкий уровень из двух.
Читать полностью »

Runnable: поисковик по коду с его исполнением в VM

Бывший сотрудник Amazon запустил поисковик по исходному коду Runnable.com, который отличается уникальной особенностью: он не только ищет код, но и исполняет его в виртуальной машине EC2 прямо в результатах поиска. Более того, можно собственноручно внести изменения в код — и снова запустить его, чтобы посмотреть результаты.
Читать полностью »

Хабрчане, давайте знакомиться! Мы — Changellenge >> (от слов Change и Challenge) — занимаемся тем, что развиваем в России образование, нацеленное на практику. Для этого мы проводим серию кейс-чемпионатов под нашим именем Changellenge >> (в них участвуют около 20 000 человек ежегодно), а также помогаем крупным компаниям организовывать образовательные мероприятия. Сегодня мы хотели бы рассказать о втором направлении — программе подготовки молодых программистов Java Школа Дойче Банк, в которую, кстати, как раз сейчас проводится набор.

Вся информация о Школе предоставлена инсайдерами, а именно Юрием Рейманом (выпускник МГТУ им. Баумана, факультета информатики и систем управления) и Андреем Мерловым (выпускник МГТУ Станкин, специальность прикладная математика и ГУ ВШЭ, математические методы анализа экономики), выпускниками первого набора Java Школы в виде интервью.
imageimage

Читать полностью »

Здравствуйте, уважаемые читатели !

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

Перебрав много разных вариантов, я остановился на очень удобном для подобных задач решении. Этим решением является использование библиотеки Objective-Zip.

Об этой маленькой, но очень удобной и функциональной библиотеке, я и хочу Вам рассказать.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js