Pull to refresh
85
0

User

Send message

Про мнимые и реальные оптимизации в 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

ВУЗ для IT специалиста: взгляд изнутри

Reading time10 min
Views240K
Если вы давно закончили институт и уже сформировавшийся, матерый специалист, то вам не стоит читать дальше. Вы не узнаете из этого поста ничего нового и полезного. Может быть он вызовет у вас улыбку. Но судя по комментариям к статьям, на сайте достаточно и тех, кто еще учится или только собирается учиться на IT специальности. Для них этот пост написан и я искренне надеюсь может быть чем-то полезен.
Так сложилось, что я работаю подрабатываю в университете преподавателем на компьютерной специальности и уже много лет работаю разработчиком (фрилансером и офсерсером). Т.е. могу видеть обе стороны одной медали, имя которой — ВУЗ.
Дальше будет много букв и ни одной картинки. Кому еще интересно — прошу под кат.
Читать дальше →
Total votes 107: ↑93 and ↓14+79
Comments212

Dr. Tariff (тарифы и баланс): Как я стал помогать людям экономить на мобильных затратах

Reading time6 min
Views68K


Сегодня я расскажу вам, как создавалось бесплатное приложение Доктор Тариф (Dr.Tariff). Это ассистент, который анализирует статистику ваших разговоров и подбирает идеальный тарифный план. После запуска приложение подробно изучит историю ваших разговоров и других затрат, чтобы сказать, можете ли вы тратить меньше. За одну неделю мы своими силами попали в ТОП-10 бесплатных приложений в рубрике «Финансы».
Читать дальше →
Total votes 104: ↑93 and ↓11+82
Comments223

Курс лекций «Стартап». Питер Тиль. Стенфорд 2012. Занятие 13

Reading time24 min
Views74K

Весной 2012 г., Питер Тиль (Peter Thiel), один из основателей PayPal и первый инвестор FaceBook, провел курс в Стенфорде — «Стартап». Перед началом Тиль заявил: «Если я сделаю свою работу правильно, это будет последний предмет, который вам придется изучать».

Один из студентов лекции записывал и выложил транскипт. В данном хабратопике shellx переводит тринадцатое занятие, редактор astropilot.

Занятие 1: Вызов будущего
Занятие 2: Снова как в 1999?
Занятие 3: Системы ценностей
Занятие 4: Преимущество последнего хода
Занятие 5: Механика мафии
Занятие 6: Закон Тиля
Занятие 7: Следуйте за деньгами
Занятие 8: Презентация идеи (питч)
Занятие 9: Все готово, а придут ли они?
Занятие 10: После Web 2.0
Занятие 11: Секреты
Занятие 12: Война и мир
Занятие 13: Вы — не лотерейный билет
Занятие 14: Экология как мировоззрение
Занятие 15: Назад в будущее
Занятие 16: Разбираясь в себе
Занятие 17: Глубокие мысли
Занятие 18: Основатель — жертва или бог
Занятие 19: Стагнация или сингулярность?
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments10

Мнемоника: можно запомнить всё

Reading time5 min
Views430K
habrahabr.ru/post/179397 Вторая часть уже здесь!

Что такое мнемоника?


Я не люблю писать определения из википедии, поэтому объясню своими словами, что такое мнемоника. Мнемоника — это способы запомнить информацию путем смены типа информации. Вместо запоминания цифр запоминаете слова. Вместо слов можно запоминать места. Вместо ходов в шахматах — стихотворение.

Самым простым примером мнемоники можно привести пример стишка, благодаря которому можно легко запомнить первые цифры после запятой в числе Пи:
Чтобы нам не ошибаться,
Надо правильно прочесть:
Три, четырнадцать, пятнадцать,
Девяносто два и шесть.
Ну и дальше надо знать,
Если мы вас спросим —
Это будет пять, три, пять,
Восемь, девять, семь.


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

Скажу откровенно, я специально не искал на хабре информацию по мнемонике. Я хочу изложить взгляд со своей стороны: то, что знаю я. У меня не было желания “разбавлять” информацию другими источниками. Под катом много полезной информации, которую я очень долго собирал по крупицам.
Читать дальше →
Total votes 99: ↑78 and ↓21+57
Comments70

Заметки для игры в бизнес

Reading time11 min
Views72K
Бизнес – это игра или нет? Я думаю да. А у любой игры должны быть правила.

Привет Хабр, меня зовут Александр. Сегодня я хотел бы поделиться с вами о том, как надо или не надо вести бизнес в сфере IT. Данные заметки я извлек из собственного опыта. Я не буду писать здесь книжными и в тоже время, зачастую, пустыми и скучными фразами. Здесь будет только то, что я почерпнул для себя работая на поприще самостоятельной работы, то есть не на дядю. Вся статья будет поделена на части. Во всех частях кроме первой, материал будет изложен в виде заметок, после каждой заметки я буду приводить пример из моей работы, чтобы не быть голословным. Поехали!
Читать дальше →
Total votes 154: ↑140 and ↓14+126
Comments63

Путешествия во времени и программирование 2: парадоксы

Reading time26 min
Views216K


Эпоха путешествий во времени еще не наступила, а человечество уже давно пытается разрешить сопутствующие им парадоксы. Мы поговорим о самом очевидном из них: что же все-таки произойдет при вмешательстве в ход истории? Существует несколько вариантов того, как поток времени реагирует на действия путешественника из будущего. Эти модели можно увидеть в фантастических фильмах, о них все больше начинают говорить ученые, но какая модель ближе к истине — единого мнения пока нет. Мы только начинаем проникать в тайны времени, и еще не обладаем возможностью экспериментировать с перемещениями в прошлое. Что же можно прояснить в данном вопросе уже сейчас? Под катом нас ждет экскурсия по основам механики времени, мы порассуждаем о парадоксах, и проведем небольшой эксперимент. Да, это будет испытание виртуальной машины времени, построенной на основе алгоритма «Жизнь»!
Читать дальше →
Total votes 371: ↑351 and ↓20+331
Comments440

Первый украинский SSD диск или вторая жизнь швейцарского компьютера

Reading time8 min
Views197K
К сожалению, огромное количество предприятий в Украине работают на устаревшем промышленном оборудовании, изготовленном пару десятков и более лет назад. После развала Союза и распродажи на металл станков местной разработки оставшиеся на плаву предприятия начали приобретать на западе подержанные станки с числовым программным управлением: плазморезы, дерево-, металлообрабатывающие станки, гравировальное оборудование и т.п. Но относительно невысокая стоимость такого железа имеет и обратную сторону – простои из-за отказов, недоступности запчастей, полного отсутствия поддержки.
Этот пост о том, как простая замена винчестера в деревообрабатывающем станке потребовала создания собственного твердотельного диска, и с какими трудностями мы столкнулись при его разработке. Кому интересно, как создавался первый украинский «винчестер-SSD», прошу под кат.

Читать дальше →
Total votes 371: ↑366 and ↓5+361
Comments81

Игровая механика: давайте разберём ядро игры по косточкам

Reading time11 min
Views115K
Термин «игровая механика» имеет много значений, но сегодня я буду говорить об игровой механике как об абстракции, определяющей состояние игры. Очень упрощённо это выглядит вот так:



Есть только два фактора, которые определяют любое текущее состояние игры: механика (правила) и игроки своими действиями.

Уровень ядра


Такт 1: определение состояния
Всегда есть некое текущее состояние системы (например, начало хода). Оно определяется на первом такте инициализирующей последовательностью, когда игроки «загружают» игру, раскладывая поле, выбирая фишки, распределяя начальные ресурсы и так далее. Затем оно меняется в зависимости от происходящего в игре.
Читать дальше →
Total votes 60: ↑56 and ↓4+52
Comments18

Explorer-2

Reading time5 min
Views154K


Cпустя день после публикации статьи Explorer-1 (Мой «Спирит») я принялся разрабатывать следующую версию аппарата. По советам хабраюзеров, наметил, что необходимо добавить в Explorer-2:

1. Двусторонняя связь.
2. Камера
3. Дублирующиеся датчики.
4. Больше датчиков.
5. Вменяемый корпус.
6. Спящий режим.
7. Источник питания посерьёзнее захудалой «кроны».

Я рассчитывал всё это сделать за пару недель. Однако, в итоге разработка с нуля заняла целый месяц. Слишком много подводных камней выявлялось при каждом шаге.

Читать дальше →
Total votes 163: ↑154 and ↓9+145
Comments106

Захабренный договор на разработку сайта, дизайна, софта. Версия 1.1

Reading time18 min
Views245K
На сайте немало постов о том, какие условия нужно включать в договор на создание сайтов и программ (краткий список ниже), но нет договора в формате, который можно взять за основу для составления своего договора. Мы изучили условия из постов (спасибо авторам), подумали над ними, переработали и учли в предлагаемой на ваш суд форме договора. Так что договор пока можно считать частично «захабренным».


Договор авторского заказа
Total votes 158: ↑147 and ↓11+136
Comments124

Возвращаем приватность или большой брат следит за мной на стандартных настройках. Часть 3. Настраиваем «Фейсбук» и «Вконтакте»

Reading time4 min
Views132K
В первой части мы говорили об общих настройках для всех браузеров, вскользь прошлись по паролям, шифрованию и бекапе, а также несколько усложнили жизнь «Гуглу».

Во второй части мы увидели, сколько статистики собирают на нас даже без использования сторонних (third-party) «куки»-файлов и рассказали о пользе и настройке VPN простым языком.

Сегодня поговорим о приватности в социальных сетях, благо даже в комментариях были прецеденты. Однако пока небольшое отступление.

Судя по комментариям, некоторые из вас считают, что простым людям это не нужно. Но вот, например, недавняя дискуссия на «Реддите», в которой показано, как то, откуда вы, сколько времени ищите билеты и также социальные предпочтения, влияет на цену билетов, которая показывается вам в форме покупки.
I bought a return flights to the Philippines a few days ago, just checked it with incognito mode….180$ cheaper!

I F… KNEW IT! I kept refreshing when I was buying airplane tickets and that f…er kept going up when I hit the refresh button. It eventually went up by $100 extra dollars!

I had been searching for a specific itinerary for a few weeks, just checking on prices. I saw this on the front page and decided to try it out. $400 DIFFERENCE!!!!

Если вы не знаете язык, можете почитать выдержку на русском здесь. Если даже после этого вам все равно, то человечество, все-таки, вымрет. Ну да вернемся к социальным сетям.


Читать дальше →
Total votes 89: ↑67 and ↓22+45
Comments68

18-ступенчатый гауссган

Reading time2 min
Views370K
В дни моей бурной молодости, когда Fallout еще не был забыт народными массами, а в Сталкера играл каждый второй школьник, среди технически образованной молодежи было модно собирать (или хотя бы пытаться собирать) гауссганы, рейлганы и другие «вундервафли», виденные в компьютерных играх. На некоторых сайтах поддерживались мировые рейтинги любительских конструкций, и конечно же я хотел быть в них первым. С этой целью я замыслил собрать 18-ступенчатый гауссган.


Читать дальше →
Total votes 322: ↑316 and ↓6+310
Comments132

Берем под контроль криптографию в облачном хранилище MEGA

Reading time19 min
Views49K
После запуска в какой-то мере скандального сервиса MEGA разговоры о его защищенности немного побурлили и затихли. На сегодняшний день сервис живет своей жизнью и его никто даже не поломал. Из всех разговоров почему-то был упущен термин «User Controlled Encryption» (UCE, или Контролируемая пользователем криптография), которой кичится MEGA. Под словом «упущен» я подразумеваю тот факт, что мы не рассмотрели все возможности, которые дает нам криптографический движок, выполняющийся в JavaScript на стороне клиента.

Конечно, сам сервис MEGA под этим подразумевает всего лишь то, что ключи шифрования не хранятся на сервере, а вся их криптография выполняется в контексте браузера. При этом после запуска сервиса было много разговоров о том, что в нем используются нестойкие криптографические алгоритмы и что вообще все плохо и мы все умрем, а наши файлы прочитает ФСБ. Это подтолкнуло меня на мысль расширить понятие «UCE» и действительно взять криптографию под свой контроль, а именно — заменить или дополнить некоторые механизмы обеспечения безопасности сервиса.

В этой статье я частично разложу по полочкам магию, которая происходит в двух мегабайтах JavaScript-кода MEGA и покажу, как можно переопределить некоторые методы, чтобы перестать волноваться и полюбить криптографию. В результате мы получим сервис облачного хранения файлов с двухфакторной аутентификацией и аппаратным шифрованием критически важной информации.
Читать дальше →
Total votes 147: ↑138 and ↓9+129
Comments31

Светомузыкальный подарок любимой своими руками

Reading time9 min
Views176K


Речь пойдет об устройстве очень простом в изготовлении (даже для начинающего электронщика-любителя), но при этом крайне интересном и полезном — электронной «музыкальной шкатулке». Также, в качестве примера, я покажу и расскажу об одном из возможных воплощений и применений этого девайса — про последний сделанный на его основе подарок своей девушке.
Читать дальше →
Total votes 123: ↑116 and ↓7+109
Comments64

Несколько подробностей об std::string

Reading time10 min
Views76K
Недавно заинтересовался реализацией std::string в libstdc++. Не в связи с принятием нового стандарта, а чтобы разобраться. Благо требования к строковму типу почти не изменились.

Основным средством для анализа кода несомненно является метод пристального вглядывания, но чтобы сузить область вглядывывания и сделать процедуру более захватывающей можно реализовать для строки идиому «трассер» подсмотренную в «C++ Templates: The Complete Guide». Трассировка позволяет выявлять подозрительные интересные операции над строками.

Как известно, std::string это псевдоним для
std::basic_string<char>
и нам ничего не мешает определить
std::basic_string<X>
. В X можно определить несколько статических счетчиков и итерировать их в конструкторе, деструкторе и остальных методах. Выполняя разные операции над такой строкой можно будет проследить эффективность применяемых алгоритмов в терминах количества операций.
Кроме того, в g++ для
std::string a(«entrails»); 
выражение
std::cout << reinterpret_cast<char*>(*((void**)(&a))); 

выведет содержимое строки. Т.е. std::string — является, по сути, указателем на char.
Вобщем, эти и другие шокирующие поднобности под катом.
Читать дальше →
Total votes 51: ↑42 and ↓9+33
Comments23

А все ли в биткоине так хорошо, как заявляют его пропоненты?

Reading time6 min
Views91K
Я, как обладатель аж целых 9-и биткоинов, конечно несказанно рад их резкому влету в цене. Однако же, лично мне непонятно всеобщее ликование по этому поводу, как и не понятны причины роста, нет, я хочу сказать что конечно же мне известны и понятны конкретные причины последнего пузыря, но мне непонятен именно настрой многих людей, что биткоины могут стать революцией которая подорвет все наши экономические устои (в хорошую сторону). Более того, я считаю, что заявленные биткоином, и расхвалеваемые многими свойства не являются истинными, например, я хочу показать что:
— биткоин вовсе не децентрализован
— в биткоине совсем не дешевые транзакции
— и да, что майнеры просто так прожигают реальные ресурсы

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

Расследования, интриги, под катом
Читать дальше →
Total votes 183: ↑136 and ↓47+89
Comments242

ASP.NET MVC. Урок 0. Вступление

Reading time2 min
Views783K
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

Почему именно asp.net mvc

ASP.NET MVC я люблю потому что:
  • Это .net. Я знаю .net и С#.
  • Это компилируемый код.
  • Это не ASP.NET WebForms, я работаю с html-кодом.
  • Используется MVC-паттерн.
  • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
  • Отличные инструменты отладки.


Читать дальше →
Total votes 290: ↑215 and ↓75+140
Comments67

Реконизм

Reading time3 min
Views3.6K
Меня всегда удивляло отношение многих к анонимности и криптографии, как к универсальному средству борьбы с мировым злом. Стоит появиться новости о том, что где-то правительство закручивает гайки, или копирасты проталкивают очередной идиотский законопроект, обязательно возникает комментарий в духе “Ха! Вот мы щас I2P и TrueСrypt из широких штанин достанем, и они утрутся...” Нет, безусловно, в определённых ситуациях шифроваться можно и нужно. Анонимность может спасти жизнь в стране, где принято казнить людей, несогласных с тем, что текущий вечно живой вождь мудро ведёт свой народ к процветанию, а временные перебои с поставками продовольствия — всего лишь досадная мелочь. Но уход в подполье — это последняя надежда, аппарат искусственного дыхания для умирающей свободы, а не оружие победы.

Как-то раз я наткнулся в Сети на вики-проект со странным названием “Реконизм”. Что-то про новый общественный строй и светлое будущее. Но, пообщавшись с автором проекта и углубившись в чтение, убедился, что Рома Петров (@rpetrov) — совершенно нормальный и вменяемый человек, а не маньяк-графоман, точно знающий “как нам обустроить Россию” и черпающий вдохновение в задушевных беседах с инопланетянами. Его отношение к приватности и анонимности почти совпадало с моим, а многие статьи на его вики выглядели воплощением моих задумок и черновиков. Слово за слово, мы дообщались до того, что написали целую книгу о взаимной прозрачности, децентрализации и викификации общества. Пожалуй, одним из самых сильных стимулов к написанию книги было то, что нам так и не удалось найти изданий на русском языке, раскрывающих тему информационной прозрачности.
Читать дальше →
Total votes 55: ↑43 and ↓12+31
Comments98

Information

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