All streams
Search
Write a publication
Pull to refresh
816
0
Владимир @tangro

Пользователь

Send message

Где хранить пользовательские настройки

Reading time2 min
Views3K
Когда-то, во времена Вседозволенности и Хаоса программы хранили настройки пользователей где-придётся. Многие держали одну копию настроек на всю систему. Со временем все ОС обзавелись нормальными профилями пользователей, начали ограничивать доступ к системным папкам и всех программистов стали с яслей учить хранить настройки пользователя в папке (ветке) его профиля. Казалось бы, на том и сказочке конце. Но нет. Есть случаи, когда этот подход не работает. Я продемонстрирую это на примере ошибки (именно архитектурной ошибки, а не банального бага в следствии опечатки) в одном из приложений Google.
Читать дальше →

Меню разработчика

Reading time1 min
Views1K
Бродил я тут по сайту университета Беркли и набрёл на вот такое меню (которому уже невесть сколько лет). Да, в Беркли всегда знали, что на самом деле нужно для развития IT-индустрии.

Где Apple iCloud хранит Ваши файлы

Reading time1 min
Views7.3K
Не так давно на Хабре пробегала статья о сборке стенда для перехвата трафика между iPhone\iPad\iTunes и облачным сервисом iCloud. Статья была хорошая и всё в ней верно, но, как заметили в одном из комментариев, она легко заменяется одним предложением «поставьте Charles и добавьте его сертификат в доверенные». Результат будет тот же — мы увидим расшифрованный HTTPS трафик.

И вот что мы видим в логах Charles при синхронизации музыки с iCloud:
Читать дальше →

Code Review и теория вероятностей

Reading time3 min
Views17K
Не все программисты хорошо знакомы с теорией вероятностей. Казалось бы — ну какая тут беда? Кто на что учился, гениев-универсалов не бывает. Теорвер на хорошем уровне нужно знать разве что в геймдеве, криптографии ну и может во всяком финансово-статистическом софте. Ан нет! Непонимание некоторых вещей может привести к плохим результатам даже в проектах, где его применением и не пахнет. Нет никакой магии, просто мозг человека неверно оценивает некоторые вероятности и, как результат, принимает неверные решения.
Читать дальше →

Будьте голосом, а не эхом

Reading time1 min
Views698
Весьма часто я захожу на Хабр и вижу здесь новости о том, что, дескать вышла новая версия Х какой нибудь ОС\браузера\библиотеки\молотка с гравицапой. Я хотел бы обратиться к авторам этих топиков: объясните мне, зачем? Неужто вы думаете, что пользователи этой ОС\браузера\библиотеки\молотка не знают его официального сайта? Или может быть, не умеют пользоваться автоапдейтом? Или кого-нибудь волнует обновление в четвёртой минорной цифре номера версии? Или никто не знает, что англоязычные сайты эту новость уже запостили?

Может быть вы этим топиком кого-то чему-то научили? Что-то новое поняли сами? Сделали мир лучше? Поделились знаниями? Может быть вы читали лог коммитов в репозитории и что-то интересное из него узнали? Сделали бенчмарк версий? Нет? Ну так а зачем тогда? Ради той пары плюсов, которые не читая поставят пользователи этих продуктов (потому что заслужено их любят)? Ну так это не ваши плюсы, это плюсы продуктов. Вашего тут ничего нет, считайте эти цифры глюком. Он как сегодня сам появился, так же завтра сам и пропадет.

Я даже понимаю (хоть и не одобряю) тех авторов, которые для себя дали зарок ничего, кроме творческой копипасты не писать — ну так она хоть творческая и иногда с умных статей. А все вот эти «17 секунд назад вышел сто-пятсотый Никель! Всем качать!» меня просто угнетают. Люди, ну вы что — боты?

Неужели не лучше быть редко, но красиво поющим соловьём, чем петухом, кукарекающим каждый день одинаково (да и то только вторя соседнему кукареканью)?

Проблемы инкапсуляции

Reading time3 min
Views3.2K
Недавно мне попалась на глаза интересная статья о проблемах в концепции инкапсуляции — почитайте, если есть время.
Для тех, у кого времени нет, я быстренько перескажу суть: инкапсуляция не выполняет одной из своих основных задач (дать «черный ящик» с описанными входами и выходами) по целому ряду причин:
  1. Программисты не доверяют чужим «черным ящикам».
  2. В чужих «чёрных ящиках» случаются ошибки, которые приходится фиксить, влезая в их внутренности (и ломая этим всю затею).
  3. Входы и выходы не всегда описаны понятно. Иногда бывает проще создать свой велосипед, чем разбираться в том, как поехать на чужом.

Всё это презренная реальность, которую теоретики программирования игнорируют. И как же с этим жить?
Читать дальше →

Интервью с Грейс Хоппер

Reading time1 min
Views17K
На Хабре о ней уже вспоминали: контр-адмирал ВМФ США, один из создателей первого американского компьютера MARK-I, автор первого в мире компилятора, разработчик языка программирования COBOL, изобретатель термина "баг" в его нынешнем понимании и просто талантливый человек Грейс Хоппер. А еще в её честь назван эсминец и учреждена премия, которую в своё время получили Кнут, Возняк, Столлман, Страуструп и прочие достойные люди.

Я взял на себя смелость сделать русские субтитры к интервью с Грейс, взятом у неё в возрасте 80 лет, когда она уже ушла со флота и работала на частную компанию. Грейс рассказывает о своей карьере, шутит о президентах и поясняет кой-какие термины. Дай Бог каждому за свою жизнь совершить хоть половину сделанного ею и сохранить к столь почтенному возрасту такую трудоспособность и ясность мысли.

(Кто не в курсе — субтитры включаются и настраиваются кнопкой «СС»)


P.S. Ютюб в некоторых странах рассказывает, что видео не доступно. Но вот например с американским ВПН — работает (и видео и субтитры).
Читать дальше →

Новая карта мира С++ от Alenacpp

Reading time1 min
Views6.8K
Вышла новая версия знаменитой уже карты мира С++ от Алёны Сагалаевой и Джима. На карте отражены последние изменения, пришедшие к нам со стандартом С++11 — обратите внимание на хамелеона auto, Пресловутые Врата Анонимности, руины крепости std::auto_ptr и новые боевые юниты STL. Наслаждайтесь!



Оригинальный размер (18 Мб)
Зеркало
P.S. Сама Алёна не против использования карты в любых целях, правда, часть исходных картинок взята из интернета, а значит за полную чистоту копирайта никто вам поручаться не будет.

Могу ли я увидеть код?

Reading time2 min
Views5.8K
Некоторое время назад Карен Сэндлер (исполнительный директор в GNOME Foundation) был поставлен диагноз Гипертрофическая кардиомиопатия, что, если не вдаваться в медицинские подробности, существенно увеличивает вероятность смерти от проблем с сердцем. Ей была рекомендована установка кардиостимулятора. Испытывая законное любопытство, Карен спросила, что за программное обеспечение работает в нём и может ли она взглянуть на его код, перед тем, как доверить ему свою жизнь. После множества пожиманий плечами, смущенных взглядов и переводов стрелок, кот, наконец-то, был вынут из мешка.
Читать дальше →

Когда инструкцию лучше не читать

Reading time3 min
Views2.2K
Дыры в информационной безопасности бывают разные. Бывают дыры в софте, бывают в железе, бывают в головах людей. А еще бывают в документации. Вот, к примеру, прямо сейчас на сайте весьма известного в Украине банка лежит инструкция, призывающая пользователей корпоративного интернет-банкинга доверять любым фишинговым сайтам, выдающим себя за банк, забивая при этом на все предупреждения браузера о неверных сертификатах. А ведь хотели, наверное, сделать людям полезную доку. Но получилось как всегда.
Читать дальше →

Есть такая профессия

Reading time3 min
Views14K
Погода за окном в это утро совершенно не радовала. Не блистала она, конечно, и вчера, и днём ранее, но сегодня было как-то особенно мерзко. Осень наконец почувствовала всю свою власть и стремилась продемонстрировать её людям в виде туч, дождя и ветра.

Выходить из дому Антону совсем не хотелось. Но сегодня был особенный день. Сегодня его ждала Работа. Он спокойно собрался и вышел прямо в пелену городского тумана. Антон шел и думал о чём-то своём. Давно прошли те времена, когда перед выполнением заказа он переживал или терзался муками совести. В конце концов, его труд не был преступлением, хотя и был причиной ненависти многих людей. Это просто работа и кто-то должен её делать. У него получалось лучше многих.
Читать дальше →

Введение в Qt Quick3D

Reading time6 min
Views35K
Этот пост участвует в конкурсе „Умные телефоны за умные посты“
Не так давно фреймворк Qt Quick обзавелся дополнением Qt Quick3D, позволяющим полноценно работать с 3D объектами (поддерживается импорт из 3D Max и Blender), совершать над ними различные трансформации, анимации, применять эффекты, ну и вообще по полной использовать возможности лежащего в основе OpenGL. Работает всё это под Symbian, MeeGo, Windows\Linux\MacOs (ну и вообще везде, где Qt есть). В этом топике мы попробуем технологию «на зуб». Писать что-то сложное и серьёзное не хочется, поэтому мы сделаем хабрахолодильник, из которого по клику будет вылетать НЛО.
Сразу результат:

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

Страсть vs профессионализм

Reading time6 min
Views3.5K

Прочитайте пару объявлений об открытых вакансиях в геймдеве, и Вы увидите, что в большинстве из них наниматель ищет людей со страстью к компьютерным играм. Это звучит очень заманчиво, романтично и оптимистично. Объявления рассказывают, как много всего интересного делается в компании, как увлечены играми её работники — и вот они ищут себе таких же коллег. «Вау!» — говорит себе молодой наивный читатель — «У меня огромная страсть к играм! Эта работа для меня!»
Читать дальше →

Умение забывать

Reading time4 min
Views23K

Есть на свете много профессий, для которых критически важно уметь хорошо запоминать информацию. Ну, например, разведчики, лингвисты или детективы (добавьте свой вариант). Но мне кажется есть и другой класс профессий — те, кому не менее важно уметь хорошо забывать. И IT-специалист — одна из таких профессий. Аргументация под катом.
Читать дальше →

Ускоряем загрузку карты в World of Tanks

Reading time4 min
Views186K

Заметил я как-то, что на моём компьютере карты в WoT загружаются очень долго — больше минуты. Заходишь, бывает, в бой, а он уже секунд 30 идёт. А иногда вообще обнаруживаешь свой танк уже в виде горящих обломков. Компьютер мой, конечно, старенький и давно просит апгрейда, но вначале можно попытаться сделать что-то программным путём.
Читать дальше →

Чек-лист разработчика языка программирования

Reading time4 min
Views23K
Итак, Вы собираетесь создать новый [] функциональный, [] императивный, [] объектно-ориентированный, [] процедурный, [] стековый, [] мультипарадигменный, [] быстрый, [] статически-типизированный, [] динамически-типизированный, [] чистый, [] богатый, [] не-искусственный, [] наглядный, [] простой для новичков, [] простой даже для не-программистов, [] абсолютно непостижимый язык программирования.

Не получится. И вот почему.
Читать дальше →

Information

Rating
Does not participate
Location
Украина
Registered
Activity