Как стать автором
Обновить
24
0
Arsen Adzhiametov @Kalpazan

Java Software Engineer

Отправить сообщение

Роботаракан Петя за десять баксов

Время на прочтение10 мин
Количество просмотров29K

Знакомьтесь с Петей, шестиногом о трёх сервоприводах


Продолжаю публикацию статей из серии "ардуино головного мозга". Петя — это очень дешёвый (примерно десять баксов) гексапод. Он может быть прекрасным проектом на один ненастный выходной, который развлечёт как и взрослых, так и детей. Раз уж мы про развлечения, вот вам видеоролик с Петей, танцующим под фанк-музыку:


Читать дальше →
Всего голосов 104: ↑104 и ↓0+104
Комментарии48
Если дома мы можем сами определять конфигурацию рабочего места, то в компаниях по-разному подходят к офисному проектированию. Где-то размышляют утилитарно и ставят обычные noname офисные столы рядами, как скамьи для гребцов на галере. Как итог — работать в таком офисе становится неприятно. А если попробовать что-то особенное? Повлияет ли это на продуктивность и насколько такой подход оправдан?
Подробности — под катом
Всего голосов 44: ↑41 и ↓3+38
Комментарии218

MikroTik и блокировка нежелательных сайтов (на примере youtube и facebook)

Время на прочтение3 мин
Количество просмотров185K


На написание данной статьи меня сподвиг тот факт, что старший ребенок стал по ночам вместо того чтобы укладываться спать, смотреть на своем смартфоне всякие ролики на youtube, до поздней ночи, а так же замена домашнего роутера с TP-Link TL-WR1043ND на MikroTik RB951G-2HnD.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии79

Удалённое включение скриптов Mikrotik из Telegram

Время на прочтение6 мин
Количество просмотров59K
На данную реализацию меня подтолкнул Александр Корюкин GeXoGeN своей публикацией "Удалённое включение компьютера бесплатно, без SMS и без облаков, с помощью Mikrotik".

И комментарий в одной из групп ВК Кирилла Казакова:
Да уж, совсем не секьюрно. Я бы лучше написал телеграм бота, который принимает только с моего аккаунта команды на включение.

Я решил написать такого бота.
Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии35

Удалённое включение компьютера бесплатно, без SMS и без облаков, с помощью Mikrotik

Время на прочтение3 мин
Количество просмотров106K
… а также без проброса портов, SSH/telnet и установки сторонних приложений. С любого компьютера, подключённого к интернет и даже с телефона!

Периодически мне бывает нужно включить домашний компьютер, когда я нахожусь не дома. Обычно я не запаривался и звонил или отправлял сообщение с такой просьбой жене, которая сидит дома в декрете. Очень удобное средство удалённого управления с голосовым интерфейсом. Однако у этого способа есть ряд недостатков — ушла гулять, укладывает ребёнка, или ещё чем либо занята. Хотелось простого решения из того что есть под рукой.
Тыкни меня!
Всего голосов 30: ↑24 и ↓6+18
Комментарии69

Хостим персональный сайт на роутере

Время на прочтение3 мин
Количество просмотров125K
Доброго времени суток.

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

Поразмыслив, я вспомнил интересную статью о настройке сервера ip-телефонии Asterisk на маршрутизаторе Mikrotik. Так как у меня дома установлен роутер именно этого проиводителя, не раздумывая, я решил поднять на нём веб-сервер nginx.
Читать дальше →
Всего голосов 37: ↑28 и ↓9+19
Комментарии52

Как два программиста хлеб пекли

Время на прочтение5 мин
Количество просмотров259K


Я работаю программистом уже много лет, на протяжении которых, как это ни странно, я всё время что-то программирую. И вот какую интересную вещь я заметил: в коде, написанном мной месяц назад, всегда хочется что-то чуть-чуть поправить. В код полугодичной давности хочется поменять очень многое, а код, написанный два-три года назад, превращает меня в эмо: хочется заплакать и умереть. В этой статье я опишу два подхода. Благодаря первому архитектура программы получается запутанной, а сопровождение — неоправданно дорогим, а второй — это принцип KISS.

Итак, представим себе, что есть два программиста. Один из них умный, прочёл кучу статей на Хабре, знает каталог GoF наизусть, а Фаулера — в лицо. Другой же делает всё просто. Первого будут звать, например, Борис Н., а второго — Маркус П. Само собой, имена вымышленные, и все совпадения с реальными людьми и программистами случайны.

Итак, к ним обоим приходит проектный менеджер (если в вашей вселенной PM не ходит сам к программистам, назовите его как-то иначе, например BA или lead, сути это не изменит) и говорит:
— Ребята, нам нужно, чтобы делался хлеб.

Именно так, «делался», без уточнения способа производства.

Как же поступят наши программисты?
Читать дальше →
Всего голосов 380: ↑348 и ↓32+316
Комментарии328

Подготовительный этап разработки программного обеспечения

Время на прочтение30 мин
Количество просмотров53K
Если вы не знаете, в каком направлении развивать проект, то он вряд ли выберет нужный путь самостоятельно.
Стив Макконнелл

Введение


В предыдущей статье «Обзор процесса разработки программного обеспечения» [1] я рассказал о самом «верхнем уровне» процесса разработки, сложившегося в моей практике на текущий момент. Во введении к «Обзору» я постарался сформулировать используемые термины и привёл примеры некоторых проектов, в которых использовался рассматриваемый процесс.

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

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

Для достижения поставленных целей заказчику и исполнителю совместно нужно решить ряд вполне определённых задач:

  1. На основе исходной идеи сформулировать цели и задачи будущего проекта.
  2. Разработать некоторое исходное видение – концепцию проекта.
  3. Провести анализ востребованности будущего продукта.
  4. Провести предварительную оценку рисков будущего проекта.
  5. На основе концепции и списка предварительных рисков подготовить предварительное техническое решение.
  6. Выбрать методологию разработки и подготовить предварительный план работ.
  7. Провести предварительную оценку трудозатрат и необходимых ресурсов.
  8. Провести анализ реализуемости продукта.
  9. Провести независимое рецензирование технического решения.
  10. Принять решение о том, стоит ли продолжать работы.

Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии0

Прототип. От идеи до опытной партии. Литье в силикон

Время на прочтение2 мин
Количество просмотров182K
В прошлой статье я описал мой путь по созданию опытной партии изделия, в ней я литье в силикон отдал на аутсорс. Пока я ждал выполнения моего заказа, потихоньку сам начал осваивать это ремесло. Статья будет полезна тем, у кого допустим есть плата какого-нибудь девайса, но нету красивого корпуса, 3д-печать не подходит по характеристикам, а делать сразу промышленную пресс-форму очень дорого.


Читать дальше →
Всего голосов 168: ↑166 и ↓2+164
Комментарии75

Компиляция Try/Catch/Finally для JVM

Время на прочтение7 мин
Количество просмотров22K

Вместо введения


Автор статьи, Alan Keefer1, является главным архитектором компании Guidewire Software2, разрабатывающей программное обеспечение для страхового бизнеса. Еще будучи старшим разработчиком, он участвовал в работе над языком Gosu3. В частности, Алан занимался вопросами компиляции языка в байт-код Java.

Данная статья написана в 2009 году и посвящена деталям реализации try/catch/finally в JVM версии 1.6. Для ее прочтения необходимо иметь базовые знания синтаксиса Java, а также понимать назначение байт-кода, простыни которого лежат под катом. Также в конце статьи приведен ряд примеров, похожих на каверзные задачи SCJP.

Внутренности JVM


Одной из вещей, над которой по целому ряду причин мы сейчас работаем, является компиляция нашего «домашнего» языка в байт-код Java. (Для справки: не могу сказать, когда мы закончим. Даже примерно. Даже попадет ли он в будущие релизы.) Веселье заключается в изучении внутренностей JVM, а также поиске всех долбанутых острых углов собственного языка. Но больше всего «веселья» и острых углов доставляют такие операторы, как try/catch/finally. Поэтому, на этот раз, я не буду вдаваться в философию или аджайл. Вместо этого я углублюсь в JVM, куда большинству не требуется (или не хочется) углубляться.

Если бы две недели назад вы спросили меня о finally-блоках, я бы предположил, что их обработка реализована в JVM: это базовая часть языка, она должна быть встроенной, не так ли? Каково же было мое удивление, когда я узнал: нет, не так. На самом деле finally-блоки просто подставляются во все возможны места после try- или связанных с ним catch-блоков. Эти блоки оборачиваются в «catch(Throwable)», который повторно выбросит исключение после того, как finally-блок закончит работу. Осталось только подкрутить таблицу исключений, чтобы подставленные finally-блоки были пропущены. Ну как? (Небольшой нюанс: до версии JVM 1.6 для оператора finally, по всей видимости, использовались подпограммы вместо полной подстановки. Но сейчас мы говорим о версии 1.6, к которой все вышесказанное применимо.)
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии15

Секс и насилие в Google Play

Время на прочтение1 мин
Количество просмотров342K
Последнее время google систематически удаляет приложения за секс и насилие, без пояснения причин и не вступая в диалог с разработчиками.

Окей, гугл. Давайте проведем небольшой социальный эксперимент.

Я установил на смартфоне доступ к контенту для младшей возрастной группы и зашел в несколько приложений от производителя Google Inc.
посмотрим, что из этого получится
Всего голосов 419: ↑371 и ↓48+323
Комментарии147

Деньги с AdSense теперь можно выводить напрямую на банковский счет

Время на прочтение1 мин
Количество просмотров30K
Зайдя в панель управления Google AdSense сегодня утром обнаружил, что можно выводить деньги напрямую через банковский счет, а не через Рапиду. Аккаунт зарегистрирован в России. Вероятно, теперь можно получать выплаты в долларах и экономить 2% на выводе с Рапиды.
Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии33

Андроид: [DirectoryBind] Простой способ связать внешнюю sd карту и внутреннюю память, чтобы освободить место

Время на прочтение4 мин
Количество просмотров776K
Сразу оговорюсь, что речь пойдет не о программах типа link2sd. Принцип похож, но связывать мы будем не программные каталоги, а каталоги данных этих программ, например /sdcard2/Navigon -> /sdcard/Navigon или /mnt/extSdCard/Books -> /sdcard/Books и т.д.
Кроме того, нам нужен рут (куда ж без него). Кстати, после того как я узнал про эту программу, это для меня очередной аргумент за root.

Многие владельцы андроид смартфонов или таблеток с небольшей встроеной памятью наверняка сталкивались со следущей проблемой: вставлена большая sd карта (например 16, 32 или даже 64 Гигабайт), но после установки нескольких тяжеловесных программ наше устройство или очередная программа с наглостью заявляет, что на карте не хватает места. Иногда сама программа небольшая, но после установки лезет в интернет и тянет на смартфон гигабайты данных.
В очередной раз получив сообщение «Нет места» и заглянув на карточку видим, что она практически пуста, зато внутренняя память устройства забита под завязку.
Это происходит потому, что внутренняя память часто используется как каталог по умолчанию для многих программ. Дело в том, что она монтируется как /sdcard, что исторически всегда было внешней sd картой (раньше так оно и было на всех смартфонах). Внешняя же sd карта монтируется в этом случае как /sdcard2, /mnt/sdcard2, /mnt/extSdCard или даже /sdcard/.externalSD. Я так понимаю, что это делается изготовителями, чтобы устройство работало из коробки, т.е. совсем без sd карты.

Многие «недобросовестные» программы всегда хотят читать/писать данные из/в каталог /sdcard/НазваниеПодставить. Редко это можно изменить в настройках программы.
В результате имеем, что имеем, и несколько возможностей чтобы поправить сложившееся положение:
  • перемонтировать каталоги: внешнюю sd карту на /sdcard, а внутреннюю на /sdcard2 (нужен рут, если нет в настройках). По моему недостаточно гибкий способ, т.к. теперь уже внутренняя память лежит у нас мертвым грузом. Еще один недостаток этого способа — скорость работы системы.
    Если вы все же решитесь пойти этим путем, внизу я добавил как это можно сделать.
  • создать символьную ссылку на внешние каталоги, как нам нужно, например
    ln -sf /mnt/externalSD/Books /sdcard/Books.
    Не работает, если файловая система не поддерживает симлинк (например fat).
  • при загрузке андроида примонтировать внешние каталоги на внутреннюю память, используя что-то типа
    mount -o bind /mnt/externalSD/Books /sdcard/Books
    и добавить это в автозагрузку, например используя Autostart (root), чтобы это происходило автоматически при включении или после перезагрузки устройства.

Два последних способа тоже не являются панацеей, т.к. требуют определенных навыков от пользователя, кроме того не достаточно «чисты», например известны проблемы при подключении смартфона к компьютеру через usb (не отмонтируются) и т.д.

Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии24

Если бы языки программирования были девушками…

Время на прочтение2 мин
Количество просмотров81K
Image #1602564, 172.6 KB

Предупреждение: данный перевод носит сугубо юмористический характер и предназначен исключительно для поднятия настроения. Этот хабратопик может являться логическим продолжением другого похожего хабратопика годовалой давности.

Читать дальше →
Всего голосов 164: ↑94 и ↓70+24
Комментарии114

Аскетичный ридер за 9.90 евро

Время на прочтение1 мин
Количество просмотров121K


Немецкий разработчик электронных книг Txtr на Всемирной книжной ярмарке в Франкфурте представил своё видение популярных ридеров — читалка Beagle с E-Ink экраном размером в 5 дюймов, разрешением экрана 800×600, весом в 128 грамм и толщиной немногим менее 5 мм за 9.90 евро.

Устройство обладает внутренней памятью в 4 Гб (поддержки карт памяти нет) и Bluetooth. Всё — больше ничего, кроме экрана и пары AAA-батареек, которые должны работать целый год, нет. Экран ридера также не реагирует на касания пальцами — для работы предусмотрены три аппаратных кнопки. Ни зарядок, ни каких-либо кабелей к ридеру не существует.

Для обмена книгами с устройством и синхронизации предлагается использовать приложение txtr ebooks (есть и для iOS), которое на обычном смартфоне или планшете позволит выбрать необходимую книгу ( их более 700 000, DRM не забыли, форматы EPUB и PDF) и отправить её по Bluetooth на Beagle.

Продажи планируются по всему миру, начиная от Европы и заканчивая США и Азией.
Источник
Всего голосов 107: ↑99 и ↓8+91
Комментарии101

Curiosity — первые 50 дней на Марсе

Время на прочтение3 мин
Количество просмотров96K
Мы решили примерно раз в неделю делать обзоры про текущие исследования Curiosity на Марсе. Но так как уже два месяца прошло, в первых постах пробежимся быстренько, чтобы догнать текущий момент.

Итак, 6 августа 2012 года на планету Марс совершил успешную посадку марсоход MSL Curiosity. Первый его кадр, переданный на Землю, вызвал волну радости и воодушевления у специалистов NASA:


Далее про первые 50 дней Curiosity на Марсе, с фотографиями, панорамами и иллюстрациями
Читать дальше →
Всего голосов 269: ↑266 и ↓3+263
Комментарии88

Развитие правого полушария головного мозга или как я учился рисовать

Время на прочтение4 мин
Количество просмотров87K
Сразу дискламер: я редко пишу посты на широкую аудиторию, и более правильного ресурса для этого текста в рамках моего кругозора не нашлось. Тем не менее, если кто-то найдет это интересным, значит не зря… Поехали.

С чего все началось



Как-то я услышал от одного человека мысль о том, чтобы заниматься бизнесом, ему приходится «выращивать в себе Мистера Хайда», типа некая альтернатива его личности способна придумать что-то такое, что не способен придумать он сам. Конечно же, он шутил, по большей части, и тогда я этому значение не придал. Вспомнил эту точную метафору лишь, когда сам решил, что мне нужно развивать креативность, умение продуктивно фантазировать, придумывать нестандартные решения.
Читать дальше...
Всего голосов 163: ↑156 и ↓7+149
Комментарии84

12 сентября. Сан-Франциско. Центр искусств Йерба Буэна. Live-трансляции — чего изволите?

Время на прочтение1 мин
Количество просмотров77K


Хабрачитатель! Это случится сегодня. В День Программиста.
12 сентября 2012 года. В 21:00 по Москве. В 20:00 по Киеву.

Продолжая эстафету анонсов live-трансляций — коротко и без хабраката — встречайте:

Русскоязычные трансляции:





Англоязычные трансляции:





Читать дальше →
Всего голосов 70: ↑54 и ↓16+38
Комментарии72

«All day phone» — Motorola обновила линейку RAZR

Время на прочтение2 мин
Количество просмотров39K
В тот же день, когда Nokia презентовала свои новые смартфоны, Motorola провела свою пресс-конференцию, на которой представила обновлённый модельный ряд семейства RAZR со следующими названиями — RAZR Maxx HD, RAZR HD и RAZR M и со слоганом "All day phone". Общим для всех моделей является поддержка сетей четвертого поколения, Android 4.0 с обещанным дополнением до более новой версии Jelly Bean (если вдруг что-то пойдёт не так, что производитель обещает каждому покупателю по 100 USD) и и солидное время работы без подзарядки.

Узнать подробности
Всего голосов 25: ↑21 и ↓4+17
Комментарии90

Google пытается сохранить 3054 языка, находящихся на грани исчезновения

Время на прочтение1 мин
Количество просмотров4.6K


Будет ли вам плохо от того факта, что люди перестанут говорить на арагонском? А как насчет Навахо или Оджибве? Или Коро, язык, который не так давно был открыт на северо-востоке Индии?

Вам-то, понятно, скорее всего, будет пофиг. Но вот для человечества в целом это довольно негативная тенденция. Как и для науки и искусства. По прогнозам ученых, к 2100-му году 3054 языка перестанут существовать. А это — половина всех языков мира.
Читать дальше →
Всего голосов 71: ↑63 и ↓8+55
Комментарии375
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность