Search
Write a publication
Pull to refresh
0
Константин @igrafkotread⁠-⁠only

User

Send message

Пять популярных мифов про C++, часть 1

Reading time11 min
Views113K

1. Введение


В этой статье я попытаюсь исследовать и развенчать пять популярных мифов про C++:

1. Чтобы понять С++, сначала нужно выучить С
2. С++ — это объектно-ориентированный язык программирования
3. В надёжных программах необходима сборка мусора
4. Для достижения эффективности необходимо писать низкоуровневый код
5. С++ подходит только для больших и сложных программ

Если вы или ваши коллеги верите в эти мифы – эта статья для вас. Некоторые мифы правдивы для кого-то, для какой-то задачи в какой-то момент времени. Тем не менее, сегодняшний C++, использующий компиляторы ISO C++ 2011, делает эти утверждения мифами.

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

Каждому мифу можно посвятить книгу, но я ограничусь простой констатацией и кратким изложением своих аргументов против них.
Читать дальше →

Восстановление удаленных данных с помощью Scalpel

Reading time5 min
Views43K
У каждого человека в жизни возникает такая ситуация как rm -rf на той папке, где этого не следовало делать. Бекапы это хорошо, но что делать если их нет? Для Linux систем существует утилита Scalpel, которая позволяет восстановить удалённые файлы по заданным паттернам, включая применение регулярных выражений.
Читать дальше →

Pillow 2.7 — Существенное улучшение качества и производительности

Reading time6 min
Views43K
Первого января 2015 года по расписанию вышла новая версия библиотеки для работы с изображениями Pillow 2.7. Так как многие изменения в ней были сделаны командой Uploadcare, мы рады представить вам расширенную версию заметок о релизе этой версии.

Для начала вспомним, с чего все началось. Pillow — дружественный форк (как называют его авторы) популярной библиотеки PIL, Python Imaging Library. Последняя версия PIL 1.1.7 вышла в 2009 году и в основном содержала исправления ошибок. Изначально Pillow задумывался как проект только по приведению в порядок сборки PIL, и разработчики рекомендовали отправлять все баги, не связанные со сборкой, в оригинальный PIL. Но время шло, PIL стремительно устаревала, багов не уменьшалось, тут еще Python 3 маячил на горизонте. Поэтому с версией Pillow 2.0 все изменилось. «Pillow 2.0.0 добавляет поддержку Python 3 и включает много багфиксов со всего интернета» гласит описание проекта на PyPI. И с тех пор понеслось. Каждые три месяца выходили версии с огромным количеством багфиксов и другими улучшениями от различных разработчиков. Самым значительным нововведением за это время было, пожалуй, поддержка форматов WebP и JPEG2000. Теперь пришло время следующего большого шага.
Читать дальше →

Облачные IDE для веб-программистов

Reading time8 min
Views75K


Здравствуйте, уважаемые коллеги и друзья! Меня зовут Евгений, в начале данной статьи я расскажу Вам о 4-ех облачных IDE для веб-разработчиков, а потом о новой online среде разработки, цель которой объединить возможности самых мощных IDE (например: webstorm), простой дизайн Sublime Text и новые решения.
Читать дальше →

Наследуем тип .NET от JavaScript объекта с перегрузками и приватными методами

Reading time3 min
Views7K
Да, именно так и никаких уловок. Эта идея мою голову посетила около двух месяцев назад в процессе обдумывания статьи об Алгоритмах и решениях. Типы .NET в том движке использовать легко, а можно ли наоборот…
Как это?

Маленький новогодний сюрприз. Встречайте, RAM-disk и PXE-загрузка по сети

Reading time1 min
Views30K
image

В эти предновогодние минуты праздник придет и на улицу обладателей «бездисковых» компьютеров и ноутбуков. Стараниями разработчиков Herve Poussineau, Timo Kreuzer и Pierre Schweitzer в ReactOS добавлен полностью работоспособный драйвер ramdisk.sys и активирована поддержка PXE-загрузки по сети (пока только для livecd). Эти нововведения значительно расширяют список оборудования, поддерживаемого ReactOS, теперь в него входят нетбуки без оптического привода и бездисковые терминалы.
Читать дальше →

Функциональное программирование в Swift. Начало

Reading time15 min
Views26K


Предисловие переводчика.


Отмечая окончание 2014 года, известная Swift группа SLUG из Сан-Франциско выбрала 5 наиболее популярных Swift видео за 2014 с организованных ею встреч. И среди них оказалось выступление Chris Eidhof «Функциональное программирование в Swift».
Сейчас Chris Eidhof — известная личность в Swift сообществе, он — автор недавно вышедшей книги «Functional programming in Swift», один из создателей журнала objc.io, организатор конференции «Functional Swift Conference», прошедшей 6-го декабря в Бруклине и будущей конференции UIKonf.
Но я открыла его, когда он, один из первых, опубликовал очень простую элегантную статью об эффективности функционального подхода в Swift к JSON парсингу.
В этой статье нет недоступных для понимания концепций, никаких мистических математических «химер» типа «Монада, Функтор, Аппликативный функтор», на которых Haskell программисты клянутся перед оставшимся миром, закатывая глаза.
Там нет и таких нововведений Swift, как дженерики (generics) и «вывод типа» (type inference).
Если вы хотите плавно «въехать» в функциональное программирование в Swift, то вы должны познакомиться с его статьей «Parsing JSON in Swift» и выступлением на SLUG «Functional Programming in Swift».
Читать дальше →

Docker, SkyDNS и SkyDock — быстро и удобно

Reading time4 min
Views33K
Не так давно начал изучать, что такое docker, который уже успел нашуметь по всему миру. Не буду вдаваться в философские изыски «а зачем оно надо?», или «фи, это просто очередной модный тренд!», или «кто же такой сырой продукт выпускает?». Я просто хочу дать краткие советы, как можно быстро в домашних условиях пощупать, что такое docker, используя такие блага и удобства как SkyDock и SkyDNS.
Данная заметка рассчитана на людей, у кого мало времени, чтобы читать горы статьей на английском (или не знают английского), но есть небольшие познания в том, что такое консоль и как установить docker самостоятельно.
Краткая суть статьи для ленивых
docker pull crosbymichael/skydns
docker pull crosbymichael/skydock
docker run -d -v /var/run/docker.sock:/docker.sock --name skydock crosbymichael/skydock -ttl 30 -environment dev -s /docker.sock -domain docker -name skydns
docker run -d -p 172.17.42.1:53:53/udp --name skydns crosbymichael/skydns -nameserver 8.8.8.8:53 -domain docker

Далее следует настройка роутера или правка /usr/lib/systemd/system/docker.service, но за такими подробностями придется всё же залезть под хабракат.

Хочу подробней!

Архитектура мобильного клиент-серверного приложения

Reading time33 min
Views142K

К добавлению внешнего сервера рано или поздно приходит любой сложный проект. Причины, при этом, бывают совершенно различные. Одни, загружают дополнительные сведения из сети, другие, синхронизируют данные между клиентскими устройствами, третьи- переносят логику выполнения приложения на сторону сервера. Как правило, к последним относятся большинство «деловых» приложений. По мере отхода от парадигмы «песочницы», в которой все действия выполняются только в рамках исходной системы, логика выполнения процессов переплетается, сплетается, завязывается узлами настолько, что становится трудно понять, что является исходной точкой входа в процесс приложения. В этом момент, на первое место выходит уже не функциональные свойства самого приложения, а его архитектура, и, как следствие, возможности к масштабированию.
Заложенный фундамент позволяет либо создать величественный архитектурный ансамбль, либо «накурнож» — избушку на куриных ножках, которая рассыпается от одного толчка «доброго молодца» коих, за время своего существования повидала видимо — невидимо, потому что, глядя на множественные строительные дефекты заказчик склонен менять не исходный проект, а команду строителей.
Планирование — ключ к успеху проекта, но, именно на него выделяется заказчиком минимальный объем времени. Строительные паттерны — туз в рукаве разработчика, который покрывает неблагоприятные комбинации где время — оказывается решающим фактором. Взятые за основу работающие решения позволяют сделать быстрый старт, чтоб перейти к задачам, кажущиеся заказчику наиболее актуальными (как-то покраска дымоходной трубы, на еще не возведенной крыше).
В этой статье я постараюсь изложить принцип построение масштабируемой системы для мобильных устройств, покрывающей 90-95% клиент-серверных приложений, и обеспечивающей максимальное отдаление от сакраментального «накурножа».
Читать дальше →

Учебник AngularJS: Всеобъемлющее руководство, часть 1

Reading time7 min
Views274K

Содержание


1 Введение в AngularJS
2 Engineering concepts in JavaScript frameworks
3 Modules
4 Understanding $scope
5 Controllers
6 Services and Factories
7 Templating with the Angular core
8 Directives (Core)
9 Directives (Custom)
10 Filters (Core)
11 Filters (Custom)
12 Dynamic routing with $routeProvider
13 Form Validation
14 Server communication with $http and $resource

1 Введение в AngularJS


Angular – MVW-фреймворк для разработки качественных клиентских веб-приложений на JavaScript. Он создан и поддерживается в Google и предлагает взглянуть на будущее веба, на то, какие новые возможности и стандарты он готовит для нас.

MVW означает Model-View-Whatever (модель – вид – что угодно), то есть гибкость в выборе шаблонов проектирования при разработке приложений. Мы можем выбрать модели MVC (Model-View-Controller) или MVVM (Model-View-ViewModel).

Этот обучающий материал задумывался как отправная точка для изучения AngularJS, его концепций и API, чтобы помочь вам создавать великолепные веб-приложения современным способом.
Читать дальше →

Composite C1 теперь OpenSource .NET CMS

Reading time1 min
Views6.1K
Датская компания Composite A/S объявила о переходе своей CMS в OpenSource.
Работает на IIS, .NET 4 и ASP.NET. Как базу данных может использовать как текствый XML так и MS SQL
Кратко об возможностях:
  • Ориентирована на использования XSLT для формирования HTML, но также позволят вставлять обычные ASP.NET контролы
  • Генерируемые дататипы
  • Древовидная структура страниц
  • Темплейты с разным количеством контент-блоков

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

Попытка сделать логичное поведение форм редактирования в asp mvc

Reading time4 min
Views6.5K
В данный момент я работаю над небольшим проектом на asp net mvc. Сроки достаточно короткие, результат нужен как можно скорее, вот мы и начали набрасывать функционал и натягивать красивый интерфейс (говнокодить). Время шло, смотреть на это становилось все тяжелее, вносить правки все дольше, и вот пока заказчик проводит тестирование приложения, есть время подумать, что можно сделать с этой простыней кода (раньше подумать было лень и некогда).
Читать дальше →

Yeoman для новичков

Reading time3 min
Views86K


Есть такие программы и утилиты, воспользовавшись которыми, пользователь возопит: «Не знаю, как я мог жить без этого инструмента раньше!». На мой взгляд, консольная утилита Yeoman, написанная на Node.JS, относится как раз к разряду таких незаменимых инструментов. Почему?
Давайте посмотрим

GPS контроль для персонального использования (часть 4. Обзор систем)

Reading time5 min
Views16K
В этой части статьи представлены две системы «Life360» и «Glympse».

В предыдущих частях рассматривались:

Часть 1: Общие соображения об использования систем GPS контроля для персонального мониторинга
Часть 2: Рассмотрены системы «ГДЕ МОИ», «GPSHome» и «GPS-Trace Orange»
Часть 3: Рассмотрены системы «Live GPS Tracking» и «M2M gps-tracker.com.ua»

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

Рассмотренные здесь системы ориентированы и предоставляют максимальную эффективность при работе с ними на смартфонах.

Family Locator http://life360.com/ (США)




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

Система домашней автоматизации TAIYITO

Reading time5 min
Views6.4K
В современном мире с неимоверной скоростью в нашу жизнь внедряется автоматизированное управление различными устройствами для облегчения процесса их эксплуатации и обеспечения удобства их использования. В связи с этим большую популярность набирают интеллектуальные домашние системы, призванные облегчить жизнь простому населению. «Умный Дом» – это комплекс программно-аппаратных средств, обеспечивающий комфорт жизнедеятельности человека посредством автоматизации ежедневных процессов. Так же целью является такое проектирование системы, при котором будут осуществляться наименьшие затраты теплоносителя и, как следствие, будет производиться экономия материальных средств. Но технологии «Умных домов» всё еще находятся в стадии бурного развития, каждый год мировые гиганты электронной индустрии выкидывают на рынок все более совершенные и функциональные устройства, улучшаются протоколы передачи данных, перерабатывается концепция и идеология этих систем. Несколько студентов-старшекурсников с нашей кафедры в недавнем времени представили свою разработку в данной технической области.
Читать дальше →

Дизайн шаблона Joomla для front-end разработчика совершенно незнакомого с CMS

Reading time10 min
Views22K

Слово Jumla на языке суахили означает «все вместе», «как одно целое».

Когда-то давно, довольно долгое время я верстал сайты на HTML/CSS/JavsScript и не имел никакого представления о CMS.
Пугающим моментом было то, что как я полагал владение PHP является крайне необходимым, однако по факту каких-то базовых знаний оказалось достаточно (простой код оказывается понятен программисту любого другого языка, а в дебри лезть не обязательно).
Для человека, владеющего только версткой и скриптами, довольно достаточно знать какие-то определенные моменты, для того, чтобы с ходу приступить к работе с Joomla.
Что-то в этих моментах схоже с другими CMS, что-то отличается.
Постарался изложить эти моменты кратко. Если бы они мне были известны сразу, то смог бы начать создавать администрируемые пользователями сайты гораздо быстрее.
Итак, если вы владеете HTML, но не имеете представления о CMS Joomla, то вам следует нажать кнопку ниже.
Jump Start Joomla за 10 минут

Руководство хакера по нейронным сетям. Схемы реальных значений. Шаблоны в «обратном» потоке. Пример «Один нейрон»

Reading time8 min
Views16K
Содержание:
Глава 1: Схемы реальных значений
Часть 1:
   Введение   
      Базовый сценарий: Простой логический элемент в схеме
      Цель
         Стратегия №1: Произвольный локальный поиск

Часть 2:
         Стратегия №2: Числовой градиент

Часть 3:
         Стратегия №3: Аналитический градиент

Часть 4:
      Схемы с несколькими логическими элементами
         Обратное распространение ошибки

Часть 5:
         Шаблоны в «обратном» потоке 
      Пример "Один нейрон"

Часть 6:
      Становимся мастером обратного распространения ошибки


Глава 2: Машинное обучение
Часть 7:
      Бинарная классификация

Часть 8:
      Обучение сети на основе метода опорных векторов (SVM)

Часть 9:
      Обобщаем SVM до нейронной сети

Часть 10:
      Более традиционный подход: Функции потерь



Давайте снова посмотрим на наш пример схемы с введенными числами. Первая схема показывает нам «сырые» значения, а вторая – градиенты, которые возвращаются к исходным значениям, как обсуждалось ранее. Обратите внимание, что градиент всегда сводится к +1. Это стандартный толчок для схемы, в которой должно увеличиться значение.
Читать дальше →

Создание универсальных веб-приложений при помощи Web App Template

Reading time10 min
Views34K

Всем привет!

Сегодня мы с вами будем знакомиться с инструментом для создания веб-приложений для Windows и Windows Phone – Web Application Template.

В этой статье мы с вами разберемся, что такое веб-приложения и зачем они нужны, а также посмотрим, как Web Application Template может помочь вам при создании веб-приложений.
Читать дальше →

Consulo Beta продолжится в 2015 году

Reading time2 min
Views11K
Для тех кто пропустил мои посты:
Consulo — это форк IntelliJ IDEA Community Edition, который имеет поддержку .NET(C# на текущий момент, и на этот сектор пока идет большой акцент), Java, Javascript(NodeJS).

Здравствуй Хабр. В моих предыдущих постах (тык, тык), я показал хорошие возможности плагина C#, да и сама платформа вполне стабильно работает. Можно было выйти в реализ, но — это не только написать код. Нужен как минимум сайт, что бы не отдавать Night Builds пользователям, но увы — имею ограниченные возможности.

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

Advanced PowerShell vol. 1: повторное использование кода

Reading time6 min
Views36K
Привет! Как большой поклонник и активный практик PowerShell я часто сталкиваюсь с тем, что мне необходимо повторно использовать ранее написанные куски кода.
Собственно, для современных языков программирования code reuse — это обычное дело.
PowerShell в этом вопросе не отстает, и предлагает разработчикам (написателям скриптов) сразу несколько механизмов обращения к написанному ранее коду.
Вот они по возрастанию сложности: использование функций, дот-сорсинг и написание собственных модулей.

Рассмотрим их все порядку.

В качестве решения лабораторной задачи напишем скрипт, который расширяет раздел C:\ до максимально возможного размера на удаленном Windows-сервере LAB-FS1.
Такой скрипт будет состоять из одной строки и выглядеть так:

Invoke-Command -ComputerName LAB-FS1 -ScriptBlock { "rescan", "select volume=c", "extend" | diskpart }

Работает это так. Сначала PowerShell устанавливает удаленное соединение с сервером LAB-FS1 и запускает на нем локально набор команд, заключенный в фигурные скобки параметра -ScriptBlock. Этот набор в свою очередь последовательно передает команде diskpart три текстовых параметра, а diskpart выполняет (по очереди) повторное сканирование разделов, выбор раздела C:\ и расширение его до максимально возможного размера.



Как видите, скрипт крайне простой, но в то же время крайне полезный.
Рассмотрим, как правильно упаковать его для повторного использования.
Для этого у нас есть три способа.

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity