Pull to refresh
3
0

User

Send message

Справочник по синхронизаторам java.util.concurrent.*

Reading time14 min
Views271K
Целью данной публикации не является полный анализ синхронизаторов из пакета java.util.concurrent. Пишу её, прежде всего, как справочник, который облегчит вхождение в тему и покажет возможности практического применения классов для синхронизации потоков (далее поток = thread).

В java.util.concurrent много различных классов, которые по функционалу можно поделить на группы: Concurrent Collections, Executors, Atomics и т.д. Одной из этих групп будет Synchronizers (синхронизаторы).



Синхронизаторы – вспомогательные утилиты для синхронизации потоков, которые дают возможность разработчику регулировать и/или ограничивать работу потоков и предоставляют более высокий уровень абстракции, чем основные примитивы языка (мониторы).
Читать дальше
Total votes 45: ↑41 and ↓4+37
Comments15

Работа с устройствами USB в Android

Reading time5 min
Views76K
В недавней статье на Geektimes в комментариях возник вопрос о поддержке в ОС Android периферии, подключенной к шине USB. Действительно, большинство вендорского ПО, к примеру, для работы с принтерами и МФУ, поддерживает только подключение по сети. Однако это не означает, что в самой ОС Android нет такой возможности — это означает лишь то, что большинство устройств не имеют полноценного USB хоста, и далеко не все имеют поддержку OTG. По сети же могут работать абсолютно все без исключения.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments4

Советы начинающим программистам микроконтроллеров

Reading time10 min
Views218K
Очень давно хотелось поделиться своим опытом, с начинающими радиолюбителями, потому что об этом пишут очень мало и разрозненно. Мой опыт не хороший, не плохой, он такой какой есть. С некоторыми утверждениями вы в праве не согласиться и это нормально, ведь у каждого свое видение ситуации. Цель данного материала, обратить внимание читателя на некоторые вещи, что то взять на заметку и сформировать собственное мнение и видение ситуации, ни в коем случае нельзя воспринимать это как истину.
Читать дальше →
Total votes 54: ↑51 and ↓3+48
Comments87

Почему некоторые ноты гармонично звучат вместе

Reading time4 min
Views45K


Вы никогда не задумывались, почему некоторые ноты больше подходят друг другу, чем другие? Как связаны между собой частоты их волн? Почему ноты одной тональности звучат «хорошо»? Почему «хорошо» звучат ноты в составе аккорда?
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments65

Linux в кармане — на службе у фотографа

Reading time6 min
Views49K
Так получилось, что фотография, это мой основной профессиональный вид деятельности, а программирование — хобби, которое иногда позволяет размять мозг. Кроме непосредственно разминки для мозга, программирование помогает и в работе. Например, писал полезные штуки, такие как это или это, или это.

Недавно поставил себе задачу, как бы еще порадовать своих клиентов. Вспомнил многочисленные просьбы клиентов на свадебную съемку: «Как хорошо было бы, если бы на банкете вы смогли показать коротенькое слайдшоу из фотографий, которые отсняли за день». На эти просьбы приходилось отказывать, по нескольким причинам: лень таскать с собой ноутбук для сборки слайдшоу, нет времени на отбор пары десятков снимков из сотен, из raw опять же нужно конвертировать, и самое главное — на это все нужно время, которого нет.

Это рассказ, о том, как мне удалось сделать для себя инструмент, который с минимальным моим участием и минимальным дополнительным весом в рюкзаке, помогает сделать красивые слайдшоу. И конечно же рассказ о python, ffmpeg и linux на android.
Читать дальше →
Total votes 72: ↑69 and ↓3+66
Comments75

Подготовительная работа, которая поможет вам покорить Кикстартер [несколько прописных истин, о которых забывают]

Reading time7 min
Views32K
Вы придумали крутую идею, записали потрясающее промо-видео, потратили несколько месяцев на подготовку, неделю оформляли страницу, запустили кампанию в ожидании головокружительного успеха и…

image

ничего не произошло…

В этом посте я постараюсь поделиться с вами некоторыми общеизвестными (и не очень) моментами, которыми часто пренебрегают отечественные разработчики, хотя они могут оказать существенное влияние на судьбу вашего проекта.
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments16

7 игр за 7 дней: rewarded video

Reading time5 min
Views24K
image

Ты решил выпустить свою игру под iOS? Значит, читай дальше. Яхты, машины, виллы — все это будет твое. Главное — удачно жениться. А разработчикам игр остаются свобода и счастье творчества. Sic!

Да, закатай губу и помни, каждый день в яблочный магазин выкладывается более 1000 игр. Представь, что какой-то тип-игроман заходит в Appstore раз в неделю посмотреть свежие приложения. Его ждет 7*1000=7000 новых игр. И еще миллион старых, которых он не пробовал. Он пролистает 3 страницы с иконками и описаниями, увидит 3 десятка приложений, почитает отзывы и скачает себе пару бесплатных игрушек. Какова вероятность, что он увидит твое гениальное, неслыханное, эпохальное, умопомрачительное приложение? Невелика? Ах, ты с кафедры мат. статистики? Да ладно?! А не переживай. Удача и реклама спасут тебя. Выпусти 100 приложений, размести в них современную рекламу и 50 долларов в день тебе обеспечены до самой смерти.

Я расскажу, как осуществляется автором этот гениальный план, опубликую финансовые итоги 2015 года (тс-с-с), и проинформирую уважаемых читателей о рекламных сервисах, которые, по-моему мнению, самые модные и доходные в этом сезоне. Ссылок на приложения не даю, никого не трогаю, починяю примус.
Читать дальше →
Total votes 48: ↑44 and ↓4+40
Comments13

Как накормить мозг программиста… или feed your brain

Reading time12 min
Views371K

Введение


Из всех наслаждений, отпущенных человеку в жизни,
самое изысканное — шевелить мозгами.
(Борис Акунин)


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

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

В данной публикации мы рассмотрим, как правильно питаться для жизнеобеспечения мозга и как его разогнать ноотропами (в случае аврала необходимости).
Читать дальше →
Total votes 213: ↑163 and ↓50+113
Comments145

Еще одна статья про изготовление домашнего медиа-сервера

Reading time15 min
Views55K
На Гиктаймс уже не раз и не два размещались статьи про сборку своего домашнего NAS/медиа-сервера/ТВ-приставки и тому подобных произведений чешущихся и относительно прямых рук. Для тех, кто любит подобное рукоблудие, или планирует сам заняться таковым, ниже представлена еще одна вариация на эту тему.


Ну давай уже, что там у тебя?
Total votes 31: ↑29 and ↓2+27
Comments119

Проектирование ПО для начинающих методом снежинки

Reading time3 min
Views21K
Публикация может быть полезной скорее начинающим программистам, чем тем, кто знаком с разработкой и проектированием ПО (не нужно знать каких либо продуктов для проектирования ПО).

Я думаю, знающие согласятся, что их первый опыт программирования реального приложения (не Hello World) свелся с простому вопросу: с чего, собственно, начать? Как начать проектирование программы? Что писать-то?!

И, как правило, первый опыт — это куча кода, который потом либо забывался, либо переписывался полностью, в зависимости от нужности программы.

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

И вот, однажды утром, мне пришла в голову простая мысль: а что, если программу проектировать по методу снежинки?
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments6

Как музыканты сочиняют музыку: Слышат ли они музыку в своей голове

Reading time5 min
Views84K


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

Например, очень быструю мелодию в рапсодии №2 или звуки из рапсодии №6 (невозможно поверить, что их рождает рояль), или прекрасную концовку рапсодии №12.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments41

11 ошибок ваших бэкапов

Reading time7 min
Views96K
Всех пользователей можно разделить на две группы: на тех, кто регулярно делает бэкапы и на тех, кто пока не начал их делать. Если вы относитесь ко второй категории, то это означает лишь то, что вы недостаточно хорошо или не в полной мере представляете себе количество и масштабы неприятностей, способных повредить ваши данные – кража, пожар, ураган, вирусы, баги программного обеспечения, поломки железа, ошибки пользователей и всё в таком духе. Ну, или ещё не сталкивались с прохождением «квеста» по восстановления данных после их потери (который, к сожалению, можно успешно пройти далеко не всегда). Как бы там ни было, лучше знать наперед, каких ошибок стоит избегать при резервном копировании, поэтому представляем вашему вниманию одиннадцать ошибок при создании бэкапа. Это даже не столько ошибки, сколько советы и перечень стратегий, которыми не следует пользоваться (в первую очередь, для пользователей Mac). Добро пожаловать под кат.


Читать дальше →
Total votes 55: ↑41 and ↓14+27
Comments78

Как я много раз не бросил разработку своей второй игры

Reading time15 min
Views43K

Картинка для привлечения внимания

Успокоившись после шока из-за того, что моя первая игра не взорвала интернет, я решил сделать еще одну. Первая мысль, с которой началась разработка второй игры, возникла в голове и без обдумывания стала краеугольным камнем в фундаменте игры: «если игра с бесконечным геймплеем не стала популярной, то нужно делать контенто-зависимую игру с уровнями».

Так как небольшой опыт создания игры у меня уже был, я вооружился не клавиатурой, как в прошлый раз, а карандашом и бумагой, и принялся «придумывать» игру. На разных листах А4 я записывал свои мысли по разным направлениям: игровые механики, сеттинг, интерфейс, правила, интересные мысли, запомнившиеся игры из детства и т. п.; при этом я параллельно шерстил Google Play Market в поисках вдохновения. В итоге, спустя несколько дней, было принято решение, что игра станет головоломкой, а именно — пазлом. За это время мой мозг и пальцы заскучали по программированию, в результате чего захотелось сделать хоть какой-нибудь прототип игры. Это сподвигло меня на более интенсивную проработку идеи пазла, и в итоге в качестве рабочего был принят вариант со следующими правилами: игровое поле состоит из квадратных кусочков пазла (далее они будут называться тайлами), на которых располагаются разноцветные линии; тайлы можно менять местами; цель игры: собрать пазл единственным образом, в котором линии одного цвета замкнуты в некий узор.
Продолжить создавать игру
Total votes 75: ↑67 and ↓8+59
Comments33

Пишем тактическую игру про цифры под Android

Reading time21 min
Views24K
Когда я только взялся за программирование (3 месяца назад), я быстро понял, что лучше сразу начинать заниматься своими проектами. Невозможно с утра до вечера сидеть за книгами или курсами, но если вы начнете делать что-то свое, то запросто просидите за разработкой с утра до утра.

Эта статья — небольшой туториал по тому, как сделать логическую игру с ботом. Игра будет выглядеть вот так:


*Подробно опишу правила еще раз в разделе про ИИ.

Читателей статьи условно разделяю на три группы.
  1. Начали программировать несколько часов назад.
    Вам будет сложно, лучше предварительно пройдите какой-нибудь небольшой курс по введению в Android-разработку, разберитесь с двумерными массивами и интерфейсами. А потом загрузите проект с гитхаба. Комментарии и эта статья помогут вам разобраться, что и как работает.
  2. Уже умеете программировать, но еще не можете назвать себя опытными.
    Вам будет интересно, потому что вы очень быстро сможете сделать свою игру. Я взял на себя грязную работенку по построению логики игры и ui-составляющей, вам же оставляю творческую часть. Вы можете сделать другой режим игры (2 на 2, онлайн и т.п.), изменить алгоритмы бота, создать уровни и т.д.
  3. Опытные.
    Вам может быть интересно подумать над ИИ — написать его не так легко, как кажется на первый взгляд. Так же я был бы очень рад получить от вас замечания по коду — уверен, далеко не все я сделал оптимально.

Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments8

Анализ изменения цен в российских интернет-магазинах

Reading time3 min
Views48K

В последние пару лет меня достаточно сильно интересовал вопрос ценообразования в российских интернет-магазинах. Каждый раз при заявлении интернет-магазина о большой скидке в душу закрадывается сомнение… Действительно ли такая большая скидка? Была ли реальна цена которая сейчас зачеркнута?
Резкие изменения курса доллара в конце 2014г. подлили масла в огонь. Очень захотелось получить ответ на вопрос как зависят цены от курса доллара в реальности.
В итоге, я решил покончить с этими вопросами и собрать историю изменения цен по российским интернет-магазинам. По катом результаты работы + несколько интересных закономерностей.
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments62

Социальная инженерия из первых рук

Reading time1 min
Views23K
Кевину Митнику, родоначальнику социальной инженерии, принадлежат золотые слова:
Социальный инженер задумал заполучить проект (исходники) Вашего нового продукта за 2 месяца до релиза.
Что остановит его?
Ваш файервол? Нет.
Мощная система идентификации? Нет.
Система обнаружения вторжений? Нет.
Шифрование данных? Нет.
Ограничение доступа к номерам дозвона модемов? Нет.
Кодовые имена серверов, которые затрудняют определение местонахождения проекта искомого продукта? Нет.
Смысл здесь в том, что никакая технология в мире не сможет противостоять атаке социального инженера.



Однако частично обезопасить себя всё же можно – изучив, чем движим социальный инженер, как он мыслит и действует, какими приёмами пользуется. Зная это, можно уберечь себя от атак социальных инженеров. Подробно об этом можно почитать в книге про Кевина Митника «Искусство обмана». Однако поскольку книги читать мало кто любит, можно посмотреть фильм «Взлом», где хорошо проиллюстрированы приёмы, которыми пользовался Кевин. Ниже представлены ключевые видеофрагменты из этого фильма. Их вполне можно использовать при проведении корпоративных тренингов по информационной безопасности.
Читать дальше →
Total votes 22: ↑14 and ↓8+6
Comments6

«ua-hosting.company» или как стать хостинг-провайдером с нуля и сгенерировать трафика больше, чем вся Беларусь

Reading time48 min
Views43K
Некоторое время назад на одном небезызвестном форуме было начато интересное обсуждение, человек из российской глубинки задал вполне здравый, на мой взгляд, вопрос:

ХолодныйСинтез:
«Доброго времени суток форумчане. Действительно, не знал, где создать тему, но для таких как я сделали целый раздел, за это и спасибо.
Вкратце, живу в далекой глуши, где отбирают бизнес и не дают ничем спокойно заняться… и вот пришла ко мне идейка сделать сервер для услуг хостинга ну или чего-то прочего.

Интересуют такие вопросы:
*Что надо для старта, какое оборудование, программы и т.д
*Что нужно купить для начала
*В какой бюджет можно влезть
Может найдутся «знавцы» это темы. чтоб мне поведать что и как? …»

И конечно же в лучших традициях «серча» начался срач:

pavellift:
«ХолодныйСинтез, может лучше переехать?»

voltamper:
«ТС, не стоит суваться, если вообще в этом не понимаете.
Брутанут и вообще без штанов останетесь».

sladkydze:
«Автор, я поддерживаю товарищей, которые не советуют соваться.

Что-то тут можно поймать:
1. Имея знания в области и опыт.
2. Имея как минимум от 10.000$ на первоначальные вложения. А лучше от 50.000$. Остальное — бултыхание в луже».

[umka]:
«Это как начать автопрокатную компанию, имея в качестве «первоначального оборудования» ушатанный ВАЗ 2106. Ну и плюс сайт, конечно же».

И таких советчиков было много. Да, конечно, это могло быть желание задавить нового конкурента, так как большинство отметившихся с такими советами — существующие хостинг-провайдеры. Если бы не одно но… Эти люди были напрочь убеждены, что организовать хостинг-проект, не обладая специальными знаниями или большим бюджетом, невозможно, только лишь несколько людей дали советы по делу.

Сразу вспомнилось, как начинал я, и стало просто невыносимо грустно от таких советов, ведь люди заблуждались, все возможно и без бюджета, и без начальных знаний. Потому что именно так возник «ua-hosting». И далее я поведаю небольшую историю успеха и разочарований…
Читать дальше →
Total votes 59: ↑48 and ↓11+37
Comments35

Натуральные энергетики

Reading time3 min
Views82K
Красные глаза IT-специалиста давно вошли в поговорку. В силу самых разнообразных причин крепкий здоровый сон не относится к преимуществам этого рода деятельности.
Сразу оговорюсь, я это совсем не одобряю. Человек должен спать минимум восемь часов в сутки, в противном случае у него будет портиться здоровье и работоспособность. Несмотря на своё неодобрение, последние два месяца приходится работать часов по шестнадцать в сутки и, как следствие, регулярно пить кофе и энергетики.
Ниже я предлагаю краткий обзор природных энергетиков. Несмотря на слово «природный», не следует считать их безвредными. Даже если не считать передозировки, возможна куча других неожиданных последствий из за индивидуальной непереносимости, взаимодействия с лекарствами и тому подобных вещей.
Единственным сомнительным преимуществом натуральных энергетиков перед энергетическими напитками может служить лишь то, что от приёма первых у меня пока что ни разу не было отрицательных последствий.
Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments111

400 потрясающих бесплатных сервисов

Reading time16 min
Views718K

Рад представить дополнение оригинального списка из 300 потрясающих бесплатных сервисов. Автор оригинальной статьи Ali Mese добавил ещё +100 новых сервисов, которые помогут найти все — от источников вдохновения и редакторов фотографий до создания опросов и бесплатных иконок.

И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные веб-сайты

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly: Конструктор веб-сайтов.
  • Layers: Создание сайтов на WordPress (new).
  • Bootstrap Zero: Самая большая коллекция бесплатных шаблонов Bootstrap (new).
  • Landing Harbor:  Продвижение мобильного приложения c помощью бесплатного лендинга (new).
Читать дальше →
Total votes 108: ↑89 and ↓19+70
Comments38
У нас для вас плохие новости! Заплатив за код или дизайн сотрудникам или фрилансерам, вы НЕ становитесь его владельцем. Передавая такой продукт заказчику, студия подставляет и его, и себя.
Wait! What?
Total votes 59: ↑36 and ↓23+13
Comments54

Information

Rating
Does not participate
Registered
Activity