Pull to refresh
0
0
Дима К. @digiart

User

Send message

Ты добавил всего две строчки. Почему на это ушло два дня?

Reading time3 min
Views63K
На первый взгляд вопрос кажется разумным, но он делает некоторые ужасные предположения:

  • строки кода = усилие
  • строки кода = значение
  • все строки кода равны

Ничто из этого не является истинным.

Почему исправление, которое кажется таким простым, заняло два дня?
Читать дальше →
Total votes 127: ↑122 and ↓5+147
Comments225

Go и кэши CPU

Reading time8 min
Views21K

Источник: unsplash.com

По словам Джеки Стюарта, трехкратного чемпиона мира по гонкам Формулы-1, понимание автомобиля помогло ему стать лучшим пилотом: «Гонщику не обязательно быть инженером, но нужен интерес к механике».

Мартин Томпсон (создатель LMAX Disruptor) применил эту концепцию к программированию. Если в двух словах, то понимание базового оборудования улучшит ваши навыки, когда речь заходит о разработке алгоритмов, структур данных и так далее.

Команда Mail.ru Cloud Solutions перевела статью, автор которой углубился в устройство процессора и рассмотрел, как понимание некоторых концепций CPU помогает принимать оптимальные решения.
Читать дальше →
Total votes 51: ↑48 and ↓3+66
Comments17

5 современных альтернатив старым инструментам командной строки Linux

Reading time6 min
Views50K
Используя более современные альтернативы наряду со старыми инструментами командной строки, можно получить больше удовольствия и даже повысить производительность труда.



В повседневной работе в Linux / Unix мы используем множество инструментов командной строки — например, du для мониторинга использования диска и системных ресурсов. Некоторые из этих инструментов существуют уже давно. Например, top появился в 1984 году, а первый релиз du датируется 1971 годом.

За прошедшие годы эти инструменты были модернизированы и портированы на разные системы, но в целом далеко не ушли от своих первых версий, их внешний вид и usability также сильно не изменились.

Это отличные инструменты, которые необходимы многим системным администраторам. Однако сообщество разработало альтернативные инструменты, которые предлагают дополнительные преимущества. Некоторые из них просто имеют современный красивый интерфейс, а другие значительно улучшают удобство использования. В этом переводе расскажем о пяти альтернативах стандартным инструментам командной строки Linux.
Читать дальше →
Total votes 59: ↑51 and ↓8+67
Comments106

Почему веб-разработка на Go приятнее чем на PHP

Reading time3 min
Views21K
Для кого я пишу? Для тех кто пишет на php (возможно также python, ruby) и слышал про Go, но ещё не решился его изучить детальнее. Я приведу доводы почему стоит изучать этот язык программирования и почему за ним будущее в веб-разработке.
Читать дальше →
Total votes 38: ↑15 and ↓23-8
Comments47

Постмортем 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

Создание настраиваемого профиля Default User в Windows XP

Reading time3 min
Views4.7K
При создании собственной сборки Windows XP с помощью nlite, мне понадобилось некоторые настройки, которые обычно хранятся в HKEY_CURRENT_USER, применить для всех будущих пользователей.

Логично было бы предположить, что ветка реестра HKEY_USERS\.DEFAULT хранит копию реестра для новых пользователей, но оказалось, что это далеко не так. Погуглив немного, я выяснил, что он хранит профиль пользователя Local System.

Дальнейшее изучение матчасти привело к нахождению двух способов:
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments0

Перемножаем матрицы быстро или простая оптимизация программ

Reading time5 min
Views11K
Для тех, кто обучался/обучается на математических или программистских факультетах вузов, я думаю, эта статья будет не в новость, но стало самому интересно протестировать скорость работы разных алгоритмов. Также её можно рассматривать, как некое пособие по оптимизации, но такую оптимизацию стоит проводить только, когда это действительно необходимо, т.к. читаемость кода рушится на глазах, да и отлаживать такое намного сложнее.

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

Итак задача: перемножить две большие матрицы double-ов (размерами третьего порядка). Для простоты будем рассматривать квадратные матрицы, хотя все алгоритмы подойдут и для прямоугольных. Алгоритм писался на C++, но классов нигде не использовал, так что можно считать код C-совместимым (возможно только cout использовал).

Не буду объяснять тут, что такое матрица и как их перемножать — тем, кто этого не знает, вряд ли будет интересно как ускорить перемножение…
Читать дальше →
Total votes 44: ↑36 and ↓8+28
Comments114

Поиск сотрудников с бложьей помощью — 2

Reading time4 min
Views825
Продолжение изысканий на тему «На что надеяться в интернете «маленькому работодателю», без денег и связей». Читать с начала



2. Социальные сети

Десяток виртуальных друзей и сотни друзей ваших друзей — более благодатная почва для вербовки будущих коллег. Работные сайты пытаются социализироваться, но пока безуспешно. «Хедхантер» открыл паутину профзнакомств Webby.ru и коллективный блог Live.hh.ru, но эйчары и менеджеры о них молчат. Все-таки не «хедхантеры», рассуждающие в категориях кадрового брендинга и репутационных рисков, делают сейчас знаковые соцсети, а физики-математики, создавшие «Мойкруг» или энтузиасты гражданской журналистики, которые придумали сами знаете что.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments10

Габриэль Гарсия Маркес — 13 ФРАЗ О ЖИЗНИ

Reading time1 min
Views6K
1. Я люблю тебя не за то, кто ты, а за то, кто я, когда я с тобой.
2. Ни один человек не достоин твоих слез. А те, кто их достойны, никогда не заставят тебя плакать.
3. Только потому, что кто-то не любит тебя так, как тебе хочется, не означает, что он не любит тебя всем сердцем.
4. Настоящий друг — это тот, кто будет держать тебя за руку и чувствовать твое сердце.
5. Наихудший способ грустить о ком-то — это быть с ним и понимать, что он никогда не будет твоим.
6. Никогда не прекращай улыбаться, даже когда тебе грустно, потому что кто-то может влюбиться в твою улыбку.
7. Возможно, в этом мире ты лишь человек, но для кого-то ты — весь мир.
8. Не трать времени на человека, который не желает проводить его с тобой.
9. Возможно, Бог хочет, чтобы мы встречали не тех людей, пока мы не встретим ТОГО ЕДИНСТВЕННОГО. Чтобы, когда это в конце концов случится, мы были благодарны.
10. Не плачь, потому что это прошло. Улыбнись, потому что это было.
11. Всегда найдутся люди, которые сделают тебе больно. Нужно продолжать верить людям, просто быть немного осторожнее.
12. Стань лучше и сам пойми, кто ты, прежде чем встретишь нового человека и будешь надеяться, что он поймет тебя.
13. Не прикладывай столько усилий — все лучшее приходит неожиданно.

Источник: Хутір.info
Total votes 72: ↑41 and ↓31+10
Comments65

KISS'n'DRY

Reading time1 min
Views1K
Ramm подкинул два простых и точных принципа разработки.

KISS = Keep It Simple, Stupid
DRY = Don't Repeat Yourself


Пусть побудут отдельным топиком-мантрой, специально подготовленным для внесения в избранное.
Кстати, Ramm раскрыл тему, в контексте которой он рассказал про принципы.
Total votes 14: ↑14 and ↓0+14
Comments15

Подключаемся к камерам наблюдения

Reading time2 min
Views39K
image

Зачем нужны камеры наблюдения? Правильно — чтобы наблюдать за происходящим и контролировать ситуацию! В наше неспокойное время эти самые камеры развешаны повсюду — от денежных хранилищ до придорожных кафе. Однако защищая свои владения, хозяева порой забывают о защите самой камеры путем банальной установки пароля на доступ из Интернета. И очень зря. Если пароль не установить — ваша камера «безопасности» превращается в публичную вэб-камеру с реалити шоу для всех желающих.
Читать дальше →
Total votes 258: ↑245 and ↓13+232
Comments133

Here be dragons: Управление памятью в Windows как оно есть [1/3]

Reading time8 min
Views175K

Каталог:
Один
Два
Три

Менеджер памяти (и связанные с ним вопросы контроллера кеша, менеджера ввода/вывода и пр) — одна из вещей, в которой (наряду с медициной и политикой) «разбираются все». Но даже люди «изучившие винду досконально» нет-нет, да и начинают писать чепуху вроде (не говоря уже о другой чепухе, написанной там же):
Грамотная работа с памятью!!! За все время использования у меня своп файл не увеличился ни на Килобайт. По этому Фаерфокс с 10-20 окнами сворачивается / разворачивается в/из трея как пуля. Такого эффекта я на винде добивался с отключенным свопом и с переносом tmp файлов на RAM диск.

Или к примеру μTorrent — у меня нет никаких оснований сомневаться в компетентности его авторов, но вот про работу памяти в Windows они со всей очевидностью знают мало. Не забываем и товарищей, производящих софт для слежения за производительностью и не имеющих ни малейшего понятия об управлении памятью в Windows (и поднявших по этому поводу истерику на пол интернета, на Ars-е даже был разбор полетов). Но самое потрясающее, что я видел всвязи с управлением памятью — это совет переместить pagefile на RAM-диск:
Из моих трех гигабайт под RAM disk был выделен один (на тот момент, когда на лаптопе еще была установлена XP), на котором я создал своп на 768МБ ...

Цель данной статьи — не полное описание работы менеджера памяти (не хватит ни места ни опыта), а попытка пролить хоть немного света на темное царство мифов и суеверий, окружающих вопросы управления памятью в Windows.
Читать дальше →
Total votes 360: ↑338 and ↓22+316
Comments85

Создание виртуальной волны

Reading time7 min
Views60K


Как всем известно, 71% поверхности Земли занимает вода. К сожалению или к счастью, корректно изобразить океан умеют единицы. Иван Айвазовский вошел в учебники живописи благодаря одним только морским пейзажам. В компьютерных играх все еще сложнее. Когда-то море в них обозначали скоплением синих пикселей, раскрашенных белыми квадратами пены. Со временем виртуальные моря стали больше похожи на снимки из отпуска, научились качать волну и покрываться рябью, в которой иногда даже отражались очертания парусников. Но они оставались самостоятельной стихией: натолкнувшись на берег, волна превращалась в незамысловатые угловатые полигоны. Настоящий прибой логично взаимодействует с пляжем, увлажняет песок и с шуршанием откатывается назад. Такого правдоподобия удалось добиться только в современных играх. В том числе в нашем Skyforge. И хоть в основные события будут разворачиваться на суше, игроки попадут и на тропические острова, и в шумные порты. Вода будет постоянно рядом. Ее «правильный» облик будет играть большую роль. И воссоздание морской стихии – серьезная математическая задача. Расскажу об этапах ее реализации.
Читать дальше →
Total votes 178: ↑164 and ↓14+150
Comments25

Особенности обработки исключений в Windows

Reading time4 min
Views25K
Прочитав недавний топик "Использование try — catch для отладки" решил все таки в качестве дополнения поделиться и своим опытом.

В этой статье предлагаю рассмотреть получение callstack’а места, где было брошено исключение в случае работы со
структурными исключениями (MS Windows). В детали работы исключений вдаваться не будем, т.к. это тянет на отдельный цикл статей (для интересующихся рекомендую Рихтера, MSDN и wasm.ru). Конечно, есть много уже готовых проектов для генерации minidump’ов (например CrashRpt или google-breakpad), так что эта статья носит больше образовательный характер.

Что делать с полученным стеком вызовов — решать вам. Можно смотреть отладчиком, можно записать в файл и смотреть сторонней программой (для этого не забудьте записать список загруженных модулей с их адресами, а так же вам понадобятся отладочные символы).
Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments4

Что такое TCHAR, WCHAR, LPSTR, LPWSTR,LPCTSTR (итд)

Reading time12 min
Views338K


Многие C++ программисты, пишущие под Windows часто путаются над этими странными идентификаторами как TCHAR, LPCTSTR. В этой статье я попытаюсь наилучшим способом расставить все точки над И. И рассеять туман сомнений.

В свое время я потратил много времени копаясь в исходниках и не понимал что значат эти загадочные TCHAR, WCHAR, LPSTR, LPWSTR,LPCTSTR.
Недавно нашел очень грамотную статью и представляю ее качественный перевод.
Статья рекомендуется тем кто бессонными ночами копошиться в кодах С++.

Вам интересно ??
Прошу под кат!!!
Читать дальше →
Total votes 91: ↑64 and ↓27+37
Comments85

Хабраиндекс для статей по программированию под Android

Reading time2 min
Views94K
Читать дальше →
Total votes 220: ↑204 and ↓16+188
Comments43

C++, приведение в стиле C и неожиданные последствия их сочетания

Reading time5 min
Views17K
C++ получил в наследство от C приведение вида (тип)(что привести) – обычно называется приведением в стиле C. В C++ есть еще четыре явных приведения – static_cast, reinterpret_cast, dynamic_cast, const_cast.

C++ – не самый новый язык, и жаркие споры о том, что лучше – приведение в стиле C или использование *_cast в нужном сочетании, начались давно и не утихают по сей день. Не будем подливать масла в огонь, лучше рассмотрим пример, и пусть каждый сам решит, что ему нравится больше.
Читать дальше →
Total votes 48: ↑44 and ↓4+40
Comments67
1

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Backend Developer
Lead