Pull to refresh
120
0
Сергій Олендаренко @GooRoo

User

Send message

Неконстантные константные выражения

Reading time24 min
Views39K
// <какой-то код>
 
int main ()
{
        constexpr int a = f ();
        constexpr int b = f ();
 
        static_assert (!= b, "fail");
}

Можно ли в приведенном выше фрагменте вместо комментария вставить такое определение f (), чтобы a получила значение, отличное от b?

“Разумеется, нет!” — скажете вы, немного подумав. Действительно, обе переменные объявлены со спецификатором constexpr, а значит, f () тоже должна быть constexpr-функцией. Всем известно, что constexpr-функции могут выполняться во время компиляции, и, как следствие, не должны зависеть от глобального состояния программы или изменять его (иными словами, должны быть чистыми). Чистота означает, что функция при каждом вызове с одними и теми же аргументами должна возвращать одно и то же значение. f () оба раза вызывается без аргументов, поэтому должна оба раза вернуть одно и то же значение, которое и будет присвоено переменным a и b… правильно?

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

Я ошибался.
Увиденное под катом уже не развидеть
Total votes 61: ↑57 and ↓4+53
Comments28

24-летний студент начал войну против Facebook

Reading time3 min
Views73K


24-летний студент юридического факультета Венского университета Макс Шремс (Max Schrems) вот уже несколько месяцев ведёт неравный бой с компанией Facebook. Всё началось с того, что Макс отправил несколько грамотно составленных запросов и добился-таки, что из калифорнийского офиса ему прислали CD-диск со всеми персональными данными, собранными за три года активности на сайте.

Каждый гражданин может потребовать у Facebook выдачи ему в течение 40 дней всей собранной на него персональной информации. На сайте есть специальная форма для такого запроса. Вам придёт CD с файлом PDF объёмом несколько сотен мегабайт и более 1000 страниц. Макс Шремс получил PDF из более 1200 страниц, вся информация в файле была разбита на 57 категорий (работа, образование, друзья, политические взгляды, хобби, фотографии и т.д.). Как говорит Макс, даже у КГБ не было такого полного досье на граждан.

Но самое удивительное, что среди всего прочего в присланном файле были удалённые сообщения, чат-сессии, имена бывших друзей и другие данные с пометкой deleted:true.
Читать дальше →
Total votes 323: ↑296 and ↓27+269
Comments246

Разработка привлекательных реалистичных пользовательских интерфейсов

Reading time4 min
Views15K
Cекрет разработки привлекательных интерфейсов заключается в реализме. Ваша задача — придать плоским элементам объём, используя свойства реальных объектов, вроде неровностей и шероховатостей, бликов и теней, различных текстур поверхностей. В идеале они должны выглядеть как предметы на вашем столе. Создавая классный интерфейс, в первую очередь нужно думать не «как», а «почему».
Читать дальше →
Total votes 212: ↑205 and ↓7+198
Comments49

Как обелить свой телефон

Reading time2 min
Views14K
Так получилось что сегодня наткнулся на уже подзабытую, но все еще актуальную, тему отключения «серых трубок». Судя по новости, массовые репрессии в обозримом будущем всё таки начнутся. Так, что буду рад поделится своими знаниями с теми, для кого эта проблема всё еще актуальна.

Напомню теорию. Любой телефон который пересек границу Украины «нелегально» заносится в так называемый «серый» список, а по прошествии трех месяцев, нахождения в нем, соответственно, в «черный» и перестает регистрироваться во всех сотовых сетях. Это касается и телефонов друзей/родственников приехавших погостить из СНГ или более дальнего зарубежья, и реально ворованных аппаратов, и конечно практически всех новых айфонов и им подобных которые выгоднее заказать/привезти чем покупать на месте.

Для законопослушных граждан, которые в силу тех или иных событий стали счастливыми обладателями таких трубок, есть несколько официальных способов легализации, но все они весьма бюрократичные, и неудобные, а в некоторых случаях неприменимы вовсе. Но к счастью есть «lite» метод легализации, который то ли был оставлен специально, для своих, то ли для реселлеров, то ли появился когда народу стало совсем плохо, но простые потребители, как правило, о нем не знают…
Читать дальше →
Total votes 86: ↑70 and ↓16+54
Comments78

Постмортем iPhone игры Finger Physics

Reading time9 min
Views1.6K
Игра Finger Physics была разработана московской командой PressOK Entertainment (Reaxion) и выпущена в сентябре 2009 года на платформе iPhone/iPod. Игра попала в Top-5 платных приложений в США, а бесплатная версия заняла почетное первое место. Finger Physics в разы окупил свой бюджет, был загружен более 2,5 млн раз, получил множество положительных рецензий и успел побывать в руках у самого Стива Джобса (пруфлинк) на январской презентации iPad.

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

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

Читать дальше →
Total votes 82: ↑67 and ↓15+52
Comments26

Как правильно покупать товары на Ebay

Reading time5 min
Views183K
image
Тема Ebay в связи с его русификацией становится очень актуальной, поэтому решил поделиться с хабрасообществом несколькими советами из области как правильно покупать товары на Ebay, чтобы не нарватся на мошенников и сделать правильную покупку. Большая часть описанного основана на личном опыте.
Читаем далее
Total votes 187: ↑166 and ↓21+145
Comments100

Установка Windows 8 Developer Preview для ленивых

Reading time3 min
Views51K
Задача: поставить Windows 8 Developer Preview поиграться.

Условия: старая винда должна выжить, привода DVD нет, большой флешки на десять гигов тоже.

Классические решения:

  1. Поставить в виртуалку. Это медленно, нужен дополнительный софт и без хардварной виртуализации ничего не заработает.
  2. Поставить на другой жёсткий диск. Увы, в ноутбук второй винт не вставишь, да и нету его у меня.
  3. Выделить отдельный раздел на винте. А это ставить лишний софт, танцевать с бубнами вокруг разделов… Лениво!

К тому же последние два варианта обычно требуют физический DVD, которого нет. Выход? VHD!

Кроме ISO образа Windows 8 нам также понадобится установленная Windows 7 — более ранние версии не умеют работать с VHD. А из под Linux мы не сможем так просто запустить инсталлятор.

Читать дальше →
Total votes 217: ↑182 and ↓35+147
Comments139

Атипичные клавиатуры

Reading time7 min
Views18K
Говорят, что обычная QWERTY-клавиатура была изобретена с целью уменьшить скорость набора, потому что у слишком быстрых машинистов первые машинки клинили. Не знаю, сколько в этом утверждении правды, но то, что раскладка далеко не идеальна — факт. Факт также то, что разрабатывалась она для печати десятью пальцами на больших клавишах размещенных в три ряда.

В неизменном виде она перекочевала на электрические пишущие машинки, а затем и на компьютерные клавиатуры, где все стало ещё удобнее — теперь клавиши срабатывали от легкого нажимания, и по ним не приходилось лупить со всей дури.
Все было бы просто отлично, если бы не страсть к минимизации. Ноутбуки, нетбуки, классические смартфоны (не «тачфоны») — QWERTY-клавиатура стремительно уменьшалась в размерах, сохраняя при том свою сущность. Для некоторых таких творений впору вести набор спичками. Были и неплохие инженерные решения — например на Sony-Ericsson M600i клавиши-качели содержали по две-четыре символа, и они выбирались в зависимости от способа нажима.

Но когда это добро перекочевало на экраны… возьмем в качестве образца айфон(да, исторически первым [массовым] тачфоном все-таки было яблоко): три с половиной дюйма диагонали, отношение сторон — 2:3. Кто помнит теорему Пифагора, какова ширина экрана?
x² + (3x/2)² = 3,5²
x² = 49/13
x ≈ 1,94" ≈ 49,3мм.
Итак, ширина экрана — меньше 5 сантиметров. В ряду — 10 клавиш. Получается — около 5 мм на клавишу, и это включая промежутки между ними. Не знаю как у вас, а меня пальцы ощутимо шире, да и печатать на приборе таких размеров я могу только одним, ну максимум двумя большими пальцами одновременно. Ну не могу я печатать на ЭТОМ, при всей его умности! Хватит обратной совместимости! Я печатать вслепую научился за неделю, так дайте мне клавиатуру, где не придется целится в клавиши! Я её изучу! Я хочу комфортно и быстро печатать!

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

Их я и попытаюсь сегодня осмотреть.
Читать дальше →
Total votes 161: ↑148 and ↓13+135
Comments157

Лучшие музыкальные плееры для вашего телефона под управлением Android

Reading time5 min
Views314K
Представляю вам вольный перевод статьи "Round Up: Great Android Music Players"

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

Одно из величайших особенностей платформы с открытым кодом является написание новых приложений. Открытость платформы создает конкуренцию, а конкуренция является важным фактором для конечного пользователя, т.к. она заставляет производителей приложений снижать их стоимость (если они платные) и повышать качество продукции. К счастью, появилась конкуренция и среди плееров для Android. Сегодня мы рассмотрим лучшие плееры для Android и скажем, что их выделяет на фоне других плееров.
Под катом обзор плееров, их скриншоты и QR-коды
Total votes 61: ↑53 and ↓8+45
Comments107

Разработка приложений под электронную книгу Barnes&Noble Nook

Reading time9 min
Views3.4K
image

Введение


Недавно мы (mynook.ru, первый пост, второй пост) открыли свой профиль на reformal.ru, где нас начали спрашивать как самому писать приложения под нук, а так же просили выложить исходники FBReader'а.
Все исходники вы теперь можете найти на гуглокоде, а вот насчет первого я постараюсь сейчас рассказать.

Большое спасибо отличному дизайнеру nilov за то что помог мне оформить картинками этот пост, за то, как он хорошо передизайнил иконки и за непосредственно перевод Nook'а.

На кого расчитано


Я предполагаю, что человек, который будет читать дальше знает азы разработки под андроид (если быть точнее, то под 1.5) и соответственно прошу не задавать вопросов про азы андроида и уж тем более не обсуждать то, как купить нук в россии/украине/etc…
Читать дальше →
Total votes 73: ↑68 and ↓5+63
Comments12

Вожделенный Nexus One за ~$620 в Украине/России или как не платить перекупщикам

Reading time4 min
Views4.2K
Что делать если хочеться заполучить вожделенный Nexus one, но не хочется переплачивать 200-300 баксов перекупщикам?
image
Есть варианты, как купить телефон напрямую от Google и получить его домой примерно за $620 USD
Читать дальше →
Total votes 125: ↑92 and ↓33+59
Comments111

Ваша домашняя страница

Reading time1 min
Views579
image
Стартовых страниц очень много, но учитывая сколько раз в день мы их открываем,
хотелось бы иметь что-то приятное глазу и востребованное.

Сайт fav4.org имеет легкий и привлекательный дизайн
цель которого быстрый доступ к популярным ресурсам.

Читать дальше →
Total votes 82: ↑42 and ↓40+2
Comments69

Ez-12 Parabolic Reflector Template / Усилитель WiFi сигнала для домашней точки доступа

Reading time1 min
Views2.5K
1. Скачиваете шаблон
2. (можно пропустить, см. примечание) Открываете в редакторе и изменяете размер, сохраняя квадрат квадратным
3. Печатаете на тонком картона (бумага для печати визиток или бумажная папка для документов)
4. Делаете прорези
5. На одну сторону прямоугольной детали (рефлектора) приклеиваете фольгу
6. Собираете, вставляя шесть лепестков в шесть прорезей.

Примечание: Если распечатать оригинального размера — получите усиление сигнала в 9 дБ (8 раз), если увеличите вдвое — 12 Дб (16 раз). Если на роутере две антенны — сделайте по усилителю на каждую.

Примечания переводчика:

7. Наденьте усилитель на антенну роутера :-)

Я сделал из коробки из-под конфет — не мучайтесь поисками бумажных папок из-под документов. Только гофрированный картон не берите, неудобно. ОНО РАБОТАЕТ! Раньше телефон уже на выходе из комнаты терял сеть, теперь в любом углу ютьюб без заиканий играет. Замеров не делал, не обессудьте. Но усилий нужен минимум на изготовление — думаю проще сделать самому и попробовать, чем таблицу с цифрами читать.

P.S. Вот видео:
Total votes 38: ↑37 and ↓1+36
Comments20

Упрощение полилинии методом Дугласа-Пекера

Reading time3 min
Views3.6K
Предисловие

Недавно на работе задали задачу — есть клиент с GPS устройством. Ходит, он значит по городу и записывает на это устройство каждую секунду координату своего местонахождения. Потом заходит на наш сайт и отправляет файл с записями маршрута. И в ответ получает изображение карты и поверх нарисованный маршрут по которому он двигался. Все вроде бы ничего, но есть одна проблемка — клиент может записывать хоть целый день и прислать громадный файл, а отрисовка маршрута занимает очень много времени. А он ведь мог идти по прямой линии и тогда смысл отрисовывать все точки отпадает(ценных только две крайних). Тем более рисуется она на JavaScript на клиентской стороне и если клиентская сторона это мобильное устройство вполне вероятно что маршрут он не увидит((
И потому мне надо было сделать небольшую оптимизацию — оптимально упростить ломанную линию. Для этой задачи существует метод Дугласа-Пекера, но на русском описания этого метода я не нашёл, поэтому я решил заполнить этот пробел рунета.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments16

Ipod Nano 2 gen с RockBox через загрузчик iLoader

Reading time3 min
Views6.7K

Вступление


Приветствую Тебя читатель.
Сегодня мы займёмся модернизацией плеера компании Apple — Ipod Nano 2 gen

Совсем недавно, в октябре 2009 года, на сайте альтернативной прошивки rockbox появилась информация о успешном её портировании на плеер Ipod Nano 2-го поколения

Rockbox

Вот выдержка из Википедии:
Rockbox — это свободное программное обеспечение для замены встроенных прошивок цифровых аудио плееров. Проект Rockbox начался в конце 2001 года и был впервые реализован на плеере Archos Studio.
Rockbox предлагает альтернативу встроенному программному обеспечению плеера, во многих случаях без удаления первоначальной прошивки. Внутреннее устройство Rockbox позволяет наращивать функциональность за счёт использования модулей расширения. Улучшение функциональности включает в себя приложения, утилиты и игры. Rockbox может обеспечить (retrofit) воспроизведение видео для плееров, выпущенных в середине 2000-х годов. Также Rockbox содержит управляемый голосом пользовательский интерфейс, подходящий для использования людьми со слепотой или повреждённым зрением.

Как раз у меня сломался мой основной плеер и я подбирал подходящую альтернативу для него.
Не долго думая я пошёл на ebay и заказал за 60$ Ipod Nano 2 gen 8Gb

Ipod Nano 2 gen

Пока плеер ехал в Челябинск я принялся изучать варианты установки.
Читать дальше →
Total votes 56: ↑37 and ↓19+18
Comments116
1
23 ...

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity