Pull to refresh
38
0

User

Send message

300 потрясающих бесплатных сервисов

Reading time11 min
Views1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Total votes 341: ↑325 and ↓16+309
Comments107

Просто, как дважды два четыре

Reading time4 min
Views77K
Наверное, каждый из хабровчан хотя бы раз в жизни слышал это выражение. Действительно, что может быть проще? Однако я знавал преподавателя математического анализа, который, услыхав подобное, ехидно улыбался в усы и предлагал доказать этот факт. После этого у говорившего обычно случался когнитивный диссонанс.

И действительно, как же доказать, что 2 × 2 = 4? Ответ под хабракатом.

Дисклеймер


Данная статья не содержит ничего нового для читателей с серьёзным математическим образованием. Также, вполне вероятно, она будет неинтересна людям с чисто инженерным складом ума. Этот текст писался в расчёте на тех, кому интересны основания математики, но кто до сих пор не нашёл времени и сил в них разобраться.
Читать дальше →
Total votes 171: ↑145 and ↓26+119
Comments124

Кош на комплексной плоскости

Reading time6 min
Views65K
В какой-то из весенних дней этого года я ехал в троллейбусе и листал комикс о Коше. В одном из выпусков была такая фраза «НО! Её можно понять, она же фракталами в горизонт перетекает, я бы тоже замешкался...». После этого я посмотрел в окно и понял, что если мы возьмём два подходящих дробно-линейных преобразования комплексной плоскости a(z) и b(z), и рассмотрим систему итерированных функций для a(z), b(z), a−1(z), b−1(z), взяв в качестве начального множества картинку с Кошем, то Кош будет перетекать фракталами в горизонт!

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

Итак, если вы хотите узнать, что такое дробно-линейные преобразования комплексной плоскости, и как с помощью них получать фрактальные картинки, то добро пожаловать под хабракат. Там будет немножко бесполезной математики и много гифок.



Читать дальше →
Total votes 214: ↑206 and ↓8+198
Comments26

Внутреннее устройство Git: хранение данных и merge

Reading time9 min
Views86K
В процессе перехода с SVN на Git мы столкнулись с необходимостью переписывания наших внутренних инструментов, связанных с развёртыванием кода, которые ориентировались на существование линейной истории правок (и разработку в trunk). На Хабре уже публиковались возможные решения этой проблемы через Git-SVN, но мы пошли другим путём. Нам нужна поддержка таких возможностей Git, как branching и merge, поэтому мы решили разобраться в основах, как же работает Git и каким способом должна осуществляться интеграция с ним.
Читать дальше →
Total votes 77: ↑77 and ↓0+77
Comments10

Настоящее и будущее C++. Интервью с Эриком Ниблером

Reading time14 min
Views42K
Эрик Ниблер — известный эксперт по C++, один из важных контрибьюторов Boost, человек, который добавил в стандарт библиотеку Ranges.

26 августа в рамках C++ Party Эрик выступит в новосибирском офисе Яндекса, где как раз расскажет о библиотеке и поговорит с гостями о новых стандартах C++.

image

Я заранее поговорил с Эриком и задал ему несколько вопросов от себя и коллег о том, каким он видит настоящее и будущее C++, что ему кажется самым важным в программировании, будет ли в C++ когда-нибудь нормальный менеджер пакетов, модули, что будет со стандартной библиотекой и о многом другом.

Кстати, если у вас есть ещё хорошие вопросы к Эрику, — их можно задать в комментариях, и мы попросим его на них ответить.
Читать дальше →
Total votes 64: ↑57 and ↓7+50
Comments97

Документируем код эффективно при помощи Doxygen

Reading time18 min
Views346K


Данная статья входит в получившийся цикл статей о системе документирования Doxygen:

  1. Документируем код эффективно при помощи Doxygen
  2. Оформление документации в Doxygen
  3. Построение диаграмм и графов в Doxygen

Это первая и основная статья из упомянутого цикла и она представляет собой введение в систему документирования исходных текстов Doxygen, которая на сегодняшний день, по имеющему основания заявлению разработчиков, стала фактически стандартом для документирования программного обеспечения, написанного на языке C++, а также получила пусть и менее широкое распространение и среди ряда других языков.

В этой статье мы сначала познакомимся с самой системой и её возможностями, затем разберёмся с её установкой и базовыми принципами работы, и, наконец, завершим знакомство рассмотрением различных примеров документации, примеров того, как следует документировать те или иные части кода. Словом, познакомимся со всем тем, что позволит вам освоиться и начать работать с этой замечательной системой.
Читать дальше →
Total votes 52: ↑52 and ↓0+52
Comments39

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 5 из 6

Reading time11 min
Views66K

Содержание основного курса




Улучшение кода






Official translation (with a bit of polishing) is available here.




Пришла пора веселья, давайте для начала смотреть размер текущего кода:
  • geometry.cpp+.h — 218 строк
  • model.cpp+.h — 139 строк
  • our_gl.cpp+.h — 102 строки
  • main.cpp — 66 строк


Итого 525 строк. Ровно то, что я обещал в самом начале курса. И заметьте, что отрисовкой мы занимаемся только в our_gl и main, а это всего 168 строк, и нигде мы не вызывали сторонних библиотек, вся отрисовка сделана нами с нуля!
Я напоминаю, что мой код нужен только для финального сравнения с вашим работающим кодом! По-хорошему, вы всё должны написать с нуля, если следуете этому циклу статей. Очень прошу, делайте самые безумные шейдеры и выкладывайте в комментарии картинки!!!


Читать дальше →
Total votes 103: ↑98 and ↓5+93
Comments41

Boost.DI: внедрение зависимости в С++

Reading time15 min
Views26K
«Не звони нам. Мы позвоним тебе сами.» — принцип Голливуда

Внедрение зависимости (Dependency Injection — DI) означает передачу (внедрение) одной или более зависимости какому-либо объекту (клиенту, компоненту) таким образом, что после внедрения эта зависимость становится частью состояния объекта. Это немного напоминает паттерн проектирования Стратегия, с той лишь разницей, что стратегия задаётся лишь однажды — в конструкторе. DI позволяет создавать более слабо-связанную архитектуру приложения, которая лучше поддаётся поддержке и тестированию.

Итак, ещё раз плюсы:
  • Уменьшает связность компонент (отделяет бизнес-логику от создания объекта)
  • Позволяет писать более поддерживаемый код (в одни и те же объекты мы легко можем внедрять разные зависимости)
  • Позволяет писать более тестируемый код (мы можем легче использовать стабы и моки)


Без внедрения зависимости С внедрением зависимости
class example {                         
public:  
    example()                           
        : logic_(new logic{})           
        , logger_(                      
            logger_factory::create()    
          )                             
    { }  
         
    int run() const;                    
         
private: 
    shared_ptr<ilogic> logic_;          
    shared_ptr<ilogger> logger_;        
};                             

 class example {
 public:
     example(shared_ptr<ilogic> logic
           , shared_ptr<ilogger> logger)
       : logic_(logic), logger_(logger)
     { }

     int run() const;

 private:
     shared_ptr<ilogic> logic_;
     shared_ptr<ilogger> logger_;
 };


Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments2

Создание плагинов для AutoCAD с помощью .NET API (часть 3 – работа со слоями)

Reading time14 min
Views12K
Это очередная статья из цикла, посвященного разработке плагинов для AutoCAD. Речь в ней будет идти о базовых операциях со слоями в документе.

public static string disclaimer = "Автор не является профессиональным разработчиком и не обладает глубокими знаниями AutoCAD. Этот пост – просто небольшой рассказ о создании плагина.";
Слоёный чертеж
Total votes 11: ↑9 and ↓2+7
Comments5

Теория относительности в картинках

Reading time6 min
Views367K
В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
Под катом много картинок (и ни одной формулы).
Читать дальше →
Total votes 272: ↑266 and ↓6+260
Comments345

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

Reading time7 min
Views399K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Постановка задачи


Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
Читать дальше →
Total votes 198: ↑196 and ↓2+194
Comments120

Типы и функции

Reading time13 min
Views57K
Это третья статья в цикле «Теория категорий для программистов».

Категория типов и функций играет важную роль в программировании, так что давайте поговорим о том, что такое типы, и зачем они нам нужны.

Кому нужны типы?


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

image


Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments102

Делить на ноль — это норма. Часть 1

Reading time9 min
Views219K
Часть 1. Вобще-то уже все поделили до нас!
Часть 2. Истина где-то рядом

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


Читать дальше →
Total votes 106: ↑98 and ↓8+90
Comments102

Жизнь на плоскости Лобачевского

Reading time10 min
Views87K
Различные реализации игры «Жизнь» описывались на Хабре уже неоднократно. В этой статье, в качестве продолжения этой темы, рассматривается ещё один её вариант: в качестве игрового поля используется регулярная решётка на плоскости Лобаческого. Описываются общие методы использования плоскости Лобачевского в программах и необходимые для этого математические приёмы.
Как возникла плоскость Лобачевского, достаточно известно. В позапрошлом веке господа Гаусс, Лобачевский и Бойяи, проживавшие примерно в одно время в разных странах тогдашней Европы, задумались, что будет, если отменить пятый постулат Евклида и заменить его на противоположную аксиому. Оказалось, что не случится ничего плохого, и никаких противоречий не возникнет. Заметная часть последующего изучения неевклидовой геометрии была посвящена выяснению того, кто из них у кого украл идею этой самой геометрии.
Менее известно, что несмотря на «отрицательный» способ определения неевклидовой геометрии (вместо того, чтобы сказать, что через точку проходит ровно одна прямая, не пересекающая данную, мы говорим, что таких прямых может быть сколько угодно), мы, тем не менее, получаем систему теорем и формул, не менее стройную, чем та, что есть в евклидовой геометрии. И одновременно, у нас есть гораздо большее разнообразие геометрических фигур, в том числе, разбиений плоскости на правильные многоугольники.

Осторожно, много математики!
Total votes 255: ↑253 and ↓2+251
Comments64

Будущее параметрического CAD’a

Reading time11 min
Views17K
Сегодня невозможно представить проектирование зданий, сооружений или деталей механизмов без использования CAD-систем. 90-е годы принесли революцию в CAD-индустрию, когда компания PTC продемонстрировала параметрический подход, значительно упростивший работу инженера, избавив его от части рутинных процедур, которые возникали при минимальной модификации чертежа. Параметрический элементно-ориентированный (feature-based) подход стал стандартом де-факто, но многие вопросы остались нерешенными, в первую очередь, из-за сложности расчетов, возникающих при параметризации чертежа. Прошло почти 20 лет, но CAD-технологии, кажется, не продвинулись ни на шаг. Сейчас у нас есть мощные компьютеры, многократно превосходящие любые системы, доступные в начале 90-х, повсеместно применяются гетерогенные вычисления, последние видеокарты содержат тысячи потоковых ядер. Застывшим во времени CAD пришла пора меняться.

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

Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments11

Создание плагинов для AutoCAD с помощью .NET API (часть 1 – первые шаги)

Reading time10 min
Views64K
Hello, Habr!

Решил рассказать о своем опыте работы с AutoCAD. Может быть, кому-то это поможет – ну или хотя бы интересным покажется.

public static string disclaimer = "Автор не является профессиональным разработчиком и не обладает глубокими знаниями AutoCAD. Этот пост – просто небольшой рассказ о начальном этапе создания плагина.";


Предыстория


Началось все достаточно просто: в очередной раз почувствовав острую нехватку денег, я решил, что пора бы уже начать их где-нибудь разыскивать. И вот после пары недель поиска на «Фрилансим» обнаружилась вакансия разработчика для создания программы, взаимодействующей с AutoCAD.

Скажу сразу: до того дня общаться с AutoCAD мне не доводилось. Однако объявление содержало в себе фразу «Опыт работы не требуется», которая наполнила мою душу надеждой. Я связался с разместившим вакансию человеком и получил тестовое задание.

Для пробы предлагалось создать на чертеже пару объектов, а также вывести текст. Несколько дней я искал информацию об API и пытался подружиться с непривычной программой. В конце концов фигуры были нарисованы, текст выведен, а тестовое задание отправлено на проверку. И через несколько дней я неожиданно узнал, что принят! Чудеса, да и только.

В следующих абзацах – мои впечатления, синяки и шишки, мысли и советы (возможно, вредные). Разработка велась под AutoCAD 2010, в качестве IDE использовалась верная Visual Studio 2013 Express. Язык разработки – C#.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments14

Пристрастные заметки о русских разработчиках САПР

Reading time11 min
Views41K
Один из сооснователей ЗАО Нанософт, Дмитрий Попов, написал в facebook заметку из серии «САПР в России»… Понятно, что пристрастно, не претендуя на историческую точность. Но нам показалось, что интересно и вполне подойдет для Хабра под пятничное настроение: кто-то узнает что-то новое, кто-то – вспомнит, а кто-то поймет, что не Боги горшки обжигают. Делимся заметкой в режиме «как есть»…



От автора

Какое-то время назад меня попросили написать про САПР в России для одного независимого портала, но природная лень и то, что эта задача с низким приоритетом, привели к тому, что за несколько месяцев не было написано ни одной строчки. То, что вы читаете, это совсем не изложение фактов, скорее это очень субъективные, с некоторой долей вымысла, воспоминания и размышления. Возможно с легким прохановским послевкусием.
Читать дальше →
Total votes 78: ↑72 and ↓6+66
Comments19

C# и AutoCAD. Некоторые приемы работы

Reading time7 min
Views21K

Цель данной статьи.


Целью данной статьи является рассмотрение некоторых приемов работы в связке Autocad + C#.
В основном буду опираться на статью «Начало работы с Autocad с помощью C#». В рамках данной статьи будут рассмотрены некоторые замечания по особенностям работы с Autocad с помощью SDK — ObjectARX.
Подробности
Total votes 21: ↑19 and ↓2+17
Comments14

Взгляд в будущее САПР

Reading time6 min
Views8.7K

Компания Эврика провела опрос трех компаний — разработчиков САПР, какие технологии они считают новыми.


image
Сейчас то время, когда новые релизы от производителей САПР появляются на рынке, и это интересное время. Много говорится об изменении парадигм, будущих тенденциях, и новой уникальной возможности продвижения вперед инженерных и дизайнерских решений. Интересно, что у разных производителей немного общего, многие из них берут на вооружение принципиально разные концепции, что приводит к появлению некоторых действительно новых и уникальных предложений.
Будущие тенденции
Total votes 7: ↑4 and ↓3+1
Comments13

Российское 3D-ядро

Reading time2 min
Views49K

Проект, ведущийся по заказу Минпромторга коллективом разработчиков под руководством МГТУ «СТАНКИН», вышел на финишную прямую.


27 марта 2013 года было объявлено о сдаче очередного этапа НИОКР по созданию отечественного лицензируемого программного ядра трехмерного моделирования. В рамках этого этапа впервые была получена полнофункциональная версия программного продукта.

Геометрическое ядро трёхмерного моделирования — это программная компонента, предназначенная для использования в качестве базового инструментального средства при разработке программных систем, связанных с точным компьютерным моделированием физических трёхмерных объектов. Конечными продуктами, которые могут быть разработаны на основе такого решения, являются системы автоматизированного проектирования (CAD), подготовки производства (CAM), инженерного анализа (CAE) и многих других приложений инженерного программного обеспечения. Во всех таких системах требуется точный и высокопроизводительный инструмент для работы с моделью — формирования данных, хранения, восстановления, средства анализа, специализированные расчёты и многое другое.

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

Читать дальше →
Total votes 87: ↑68 and ↓19+49
Comments94
1

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity