Pull to refresh
6
0

Небесный механик

Send message

Qt Meta System over Network. Часть 1 — свойства

Reading time6 min
Views14K

У меня с завидной регулярностью появляется задача написания клиент-серверных приложений с использованием Qt. И я подумал – почему бы не упростить этот процесс? В самом деле, зачем каждый раз изобретать какой-то новый протокол, если можно использовать привычные сигналы и слоты? Что-то подобное уже есть, например D-Bus или QRemoteSignal, но мне они показались не очень удобными, да и некоторых возможностей в них нет.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments8

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

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

CodeNotes — победитель Clojure Cup 2013

Reading time2 min
Views23K
Мы сделали это.
Российский проект CodeNotes за авторством Грошева Дмитрия (si14) и Пантюхова Александра (alwxndr) из Санкт-Петербурга, Дину Александра (zloy_alu) из Тюмени и Сорокоумова Александра из Мюнхена занял первое место на хакатоне Clojure Cup 2013.

Мы хотели бы поблагодарить всех тех, кто голосовал за нас и немного рассказать о нашем проекте и о том, что мы хотим из него получить.
image
Читать дальше →
Total votes 80: ↑74 and ↓6+68
Comments18

Проект полностью свободного Умного Дома

Reading time2 min
Views62K
Привет, Хабрасообщество!

У меня вот уже больше 10 лет горит идея сделать такой проект Умного Дома, чтобы любой желающий мог при желании собрать полный прототип из подручных материалов.
Совсем недавно, при общении с некоторыми представителями хабрасообщества, идея была скорректирована под то, что не плохо бы сделать некий массовый блог, где каждый смог бы оставлять свои идеи по поводу реализаций (под это дело я сегодня даже поднял лайвстрит на субдомене своего личного домена, ибо пока не придумал названия для проекта с учётом его новой специфики) + к этому некое хранилище проверенных проектов (на гитхабе. Уже даже есть Gentoo'шный layman'овский репозиторий под это дело) + к этому некую «биржу», где люди далёкие от паяльных дел, но желающие умный дом, могли бы найти желающих чуток подзаработать мастеров паяльного дела в своём городе :).
Дополнительным бонусом являлось бы объединение (по возможности всех) людей, занимающихся этой тематикой «под одной крышей» для обмена идеями и опытом.
Читать дальше →
Total votes 79: ↑73 and ↓6+67
Comments59

Floobits: удобное удаленное парное программирование

Reading time1 min
Views33K
image

Сделать удаленное парное программирование удобным — задача не из простых, но у Floobits все может получиться.

Floobits позволяет использовать свой любимый редактор для совместной работы над кодом в реальном времени — сейчас поддерживаются только Sublime Text, Vim и Emacs; кроме того, есть и традиционный для подобных сервисов веб-редактор кода, работающий прямо в браузере.

Поскольку обойтись только редактором было сложно, со временем выяснилось, что парная разработка — это не только распространение кода, но и «расшаривание» терминалов (для этого был разработан Flootty), а еще и реал-тайм обновление кода на тестовом сервере (для этого был разработан несложный diff-shipper). Кроме того, для голосового чата и обмена видео в веб-редактор была добавлена поддержка Google+ Hangouts
Читать дальше →
Total votes 66: ↑62 and ↓4+58
Comments26

Google был вынужден передать властям США переписку двух волонтёров Wikileaks

Reading time2 min
Views48K
image

После получения засекреченных судебных ордеров Google передал данные Gmail-аккаунтов двух бывших волонтёров Wikileaks властям США, пишет Mashable. Целями ордеров стали Смари Маккарти и Герберт Сноррасон, оба из Исландии. Маккарти — интернет-активист и программист, работал в Wikileaks до 2010 года. Сноррасон помогал управлять чатом Wikileaks в течение двух месяцев в 2010 году.

Во вторник Google отправил им письма, сообщив им о судебных ордерах, которые до 2 мая были засекреченными. В этих ордерах не содержится официального подтверждения того, что они связаны с делом Wikileaks, которое расследуется федеральным большим жюри в Александрии, штат Вирджиния, но всё указывает в этом направлении.
Читать дальше →
Total votes 91: ↑84 and ↓7+77
Comments158

Qt Charts 1.3.0 released

Reading time1 min
Views14K
Вышла новая версия Qt Chart, предоставляющая новые чарты (Polar и Boxplot) и некоторые улучшения API. Пакет, как обычно, доступен в Customer portal.

Polar chart позволяет представлять данные в круговом графике. Polar chart поддерживает line, spline, area и scatter series и все поддерживаемые ими типы осей.

Кликабельно
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments9

«constexpr» функции не имеют спецификатор «const»

Reading time3 min
Views16K
Просто хотел Вас предупредить: С++14 не будет обратно совместим с C++11 в одном аспекте constexpr функций.

В С++11, если Вы определите constexpr функцию-член, то она неявно получит спецификатор const:
// C++11
struct NonNegative
{
  int i;
  constexpr int const& get() /*const*/ { return i; }
  int& get() { return i; }
};

Первое объявление функции get получит спецификатор const, даже если мы не укажем это явно. Следовательно, эти две функции являются перегруженными: const и не-const версии.

В С++14 это будет уже не так: оба объявления будут определять одиннаковую, не-const версию функции-члена с различающимися возвращаемыми значениями — это приведет к ошибке компиляции. Если Вы уже начали использовать constexpr функции и надеетесь на неявный спецификатор const, то я советую Вам начать добавлять его явно, чтобы Ваш код продолжал компилироваться, если Вы решите перейти на компиляторы С++14.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments26

GitRec: Персональные GitHub-рекомендации

Reading time1 min
Views6.1K
image

Спору нет, Github — одна из лучших платформ для совместной работы над open source проектами. Но вот найти проект, который близок по духу и смыслу вашему, здесь зачастую бывает не так просто. А ведь можно было бы найти похожий проект и принять участие в его разработке. Теперь с этим вопросом, возможно, станет немного проще — после появления GitRec, который позволяет получить список рекомендаций для конкретного репозитория или юзернейма.
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments10

Стиль именования коммитов

Reading time4 min
Views124K
the Octobi Wan Catnobi

Про многие моменты разработки есть очень много информации. Как писать комментарии, как именовать классы, методы, какие паттерны использовать и т.д. и т.п. Но есть одна область, в которой многие даже и не задумываются о том, что можно что-то улучшить — это написание коммитов.
Читать дальше →
Total votes 59: ↑43 and ↓16+27
Comments51

Парадокс доказательства

Reading time12 min
Views249K
31 августа 2012 года японский математик Cинъити Мотидзуки опубликовал в интернете четыре статьи.

Заголовки были непостижимы. Объём был пугающим: 512 страниц в сумме. Посыл был дерзким: он заявил, что доказал abc-гипотезу, знаменитую, соблазнительно лёгкую числовую теорию, которая десятилетиями заводила математиков в тупик.

Затем Мотидзуки просто ушёл. Он не отправил свою работу в Annals of Mathematics. Он не оставил сообщение ни на одном сетевом форуме, которые часто посещают математики со всего мира. Он просто опубликовал статьи и ждал.

Два дня спустя, Джордан Элленберг, профессор математики в Висконсинского университета в Мадисоне, получил почтовое оповещение от Google Scholar, сервиса, который сканирует интернет в поисках статей по указанным темам. Второго сентября Google Scholar отправил ему статьи Мотидзуки: «Это может заинтересовать вас».

«А я такой: „Да, Гугл, мне это как бы интересно!“» – вспоминает Элленберг, – «Я запостил их в Фэйсбуке и в моём блоге, с пометкой: „Между прочим, похоже, что Мотидзуки доказал abc-гипотезу“».

Интернет взорвался. В течение дней даже далёкие от математики СМИ подхватили историю. «Решена сложнейшая в мире математическая теория», – объявила Telegraph. «Возможный прорыв в abc-гипотезе», – немного скромнее писала New York Times.

На математическом форуме MathOverflow математики со всего мира стали оспаривать и обсуждать заявление Мотидзуки. Вопрос, который быстро стал самым популярным на форуме был прост: «Кто-нибудь может объяснить философию его работы и прокомментировать почему она может пролить свет на abc-гипотезу?» – спросил Энди Путман, ассистент профессора в Университете Райса. Или, если перефразировать: «Я ничего не понял. Кто-нибудь понял?»

Проблема, с которой столкнулись многие математики, сбежавшиеся к сайту Мотидзуки, была в том, что доказательство было невозможно прочесть. Первая статья под заголовком «Интер-универсальная теория Тейхмюллера 1: Построение театров Ходжа», начинается с утверждения, что цель работы в «разработке арифметической версии теории Тейхмюллера для цифровых полей ограниченных эллиптической кривой… с помощью применения теории полуграфов анабелиоидов, фробениоидов, эталь тета-функций и логарифмических оболочек».

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

«Смотря на неё, ты чувствуешь будто читаешь статью из будущего или далёкого космоса», – написал Элленберг в своём блоге.

«Она очень, очень странная», – говорит профессор Колумбийского университета Йохан де Йонг, работающий в близких сферах математики.

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

Как профессор Мун Дучин из университета Тафтса выразила это: «Он воистину создал свой собственный мир».

Должно пройти долгое время прежде чем кто-нибудь будет способен понять работу Мотидзуки, тем более оценить верность доказательства. В последующие месяцы статьи лежали камнем на плечах математического сообщества. Горстка людей подобралась к ним и начала изучать. Другие пытались, но быстро сдались. Некоторые полностью игнорировали их, предпочитая наблюдать издалека. Что же до виновника беспокойства, человека, который заявил, что решил одну из величайших проблем математики – от него не было ни звука.
Читать дальше →
Total votes 356: ↑345 and ↓11+334
Comments404

SIMD без SIMD, или ищем на С почти в два раза быстрее чем на С++

Reading time4 min
Views24K
Прочитал статьи про комбинаторную кодогенерацию на С++ в контексте линейного поиска в базе данных: Возможности оптимизации в языках C и C++ и Скорости разработки и исполнения не достижимые на С. Попробуем достигнуть скоростей разработки и исполнения на C?

После того, как я запустил компиляцию С++ кода из второй статьи, мне стало интересно — успею ли я написать аналог на С, который будет работать быстрее, пока код… компилируется? Не успел, код скомпилировался через 5 минут, а аналог на С писался все 15.

Итак, постановка задачи — есть структура из нескольких полей, есть фильтр, который проверяет, находится ли каждое поле в указанном диапазоне. Или не проверяет — для каждого поля. Нужен код который эту проверку по фиксированному фильтру делает очень быстро. Данные случайные, так что чем меньше условных переходов тем лучше — предсказание переходов на случайных данных работает так себе.
Читать дальше →
Total votes 107: ↑103 and ↓4+99
Comments31

Про мнимые и реальные оптимизации в 10 раз, целительный SSE, и все такое

Reading time6 min
Views38K
По мотивам одного вчерашнего поста про оптимизацию условных переходов при расчете x=sign(a,b)*min(abs(a), abs(b)) якобы в 10 раз. Краткая сводка:

  • оптимизация налицо, но размер мнимый: не в 10 раз, а 2.5 раза;
  • бенчмарки надо делать правильно: не надо мерить CPU stalls, RAM bandwidth итп вместо исследуемой функции;
  • бенчмарки надо делать правильно: иначе могут дико дрожать;
  • выставлять только приоритет прикольно, но на коротких бенчмарках зря: +0.5% скорости, -15% дрожания;
  • нужно мерить исследуемую функцию и только ее, только так получаешь корректные данные;
  • нужно греть проц, нужно считать минимум из N прогонов/секунд, только так побеждаешь дрожание;
  • нужно пользовать SSE, с ним получилось 8.6 раз, причем код… читается.

В общем, опять пачка классических методологических ошибок при бенчмарке. Кому интересно, как такие ошибки НЕ делать, подробности, детальный разбор полетов, оптимизация в еще несколько раз и, главное, исходники под катом.
Читать дальше →
Total votes 166: ↑153 and ↓13+140
Comments60

Скорости разработки и исполнения, не достижимые на С

Reading time20 min
Views59K
В продолжении статьи о кроссплатформенной и кросс-аппаратной оптимизации, на примере задачи поиска полным проходом по таблице из 5 полей и 10 000 000 строк, и неизбежности этой задачи даже при индексном поиске, я покажу как ускорить такой поиск в 3.5-5.3 раза с использованием C++ независимо от аппаратной платформы.
В предыдущей статье нам удалось ускорить поиск в 1.3 раза: GitHub.com
Мы не будем банально описывать конструкции языка, а покажем преимущества C++ при решении одного из этапов реальной задачи.
Мы по-прежнему пишем кроссплатформенно под MSVC11(MSVS2012) и GCC 4.7.2, и используем в них C и частично реализованный стандарт C++11.
Для упрощения понимания мы все ещё пишем без индексного поиска, но это решение в дальнейшем будет использоваться при индексном поиске.
Читать дальше →
Total votes 165: ↑150 and ↓15+135
Comments41

Возможности оптимизации в языках C и C++

Reading time12 min
Views61K
Существует мнение, что C++ имеет заметные накладные расходы по сравнению с C и поэтому он медленнее. Помимо этого, даже, существуют статьи показывающие преимущества в скорости языков с компиляцией налету (JIT — Just-in-time compilation), таких как Java и C#. Сравнить последние мы оставим тем, кто считает их быстрыми, но мы объясним почему это не так. А C и C++ мы сравним на примере задачи поиска данных.
Задача поиска данных часто встречается в: веб-сервисах, системах управления баз данных (СУБД), гео-поиске и аналитике.
Сначала для простоты объяснения поставим задачу поиска элементов полным проходом по массиву из 10 000 000 элементов (структур), содержащих 5 полей с диапазонами значений: amount_of_money(0-1000000), gender(0-1), age(0-100), code(0-1000000), height(0-300). А в следующих статьях добавим в решение индексный поиск.
Мы будем писать кроссплатформенно под MSVC11(MSVS2012) и GCC 4.7.2, и использовать в них частично реализованный стандарт C++11.
Читать дальше →
Total votes 102: ↑89 and ↓13+76
Comments93

Рисование сеточных графиков трехмерных функций и изолиний к ним

Reading time5 min
Views26K

Статья представляет собой нечто вроде “практического руководства” для построения весьма интересных трехмерных графиков функций вида z=f(x,y), с примером реализации на C#.
Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments3

Путешествие через вычислительный конвейер процессора

Reading time16 min
Views135K
Так как карьера программиста тесно связана с процессором, неплохо бы знать как он работает.

Что происходит внутри процессора? Сколько времени уходит на исполнение одной инструкции? Что значит, когда новый процессор имеет 12, или 18, или даже 31-уровневый конвейер?

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

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

Эта статья рассказывает, как устроен вычислительный конвейер x86 процессора.
Читать дальше →
Total votes 160: ↑159 and ↓1+158
Comments43

Микрон — сердце российской микроэлектроники

Reading time5 min
Views94K
Из недавних статей о микроэлектронике (1, 2, 3) вы могли узнать, что самые современные микросхемы в России (90нм) — делают на заводе Микрон, в Зеленограде. Недавно мне как раз удалось его посетить, посмотреть на производство, по-задавать вопросы.

Фотографии из чистых комнат, ответы на каверзные вопросы о билетах метро, гражданской электронике России и будущем Микрона — под катом.
Читать дальше →
Total votes 137: ↑133 and ↓4+129
Comments144
12 ...
8

Information

Rating
6,057-th
Location
Монино, Москва и Московская обл., Россия
Registered
Activity