Как стать автором
Обновить
18
0
Айрат Сабитов @JaLoveAst1k

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

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

Кому сингулярность, а кому архаизация

Время на прочтение7 мин
Количество просмотров54K
Данный пост является некоторым рассуждением на тему, затронутую в недавнем посте "Сингулярность: 7 вариантов роботизированного будущего"

Написать этот пост меня побудило в корне неверное отношение к вопросу о сущности искусственного интеллекта в оригинальной статье.

В статье рассматриваются 7 потенциальных моментов, связанные с появлением ИИ. Но обо всех них можно говорить только сделав ряд допущений:

1) искусственный интеллект будет усиленной копией человеческого интеллекта,
2) человечество едино и развито равномерно,
3) ИИ представляет собой автономную независимую сущность и способно активным образом влиять на процессы,
4) ИИ осознаёт себя, свои цели и сущность, обладает способностью саморефлексии,
5) саморепликация.

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

Основы основ: акции (часть два)

Время на прочтение6 мин
Количество просмотров50K
Итак, в предыдущем топике мы обсудили, что такое акции, зачем они нужны и откуда они берутся. Если вы не читали его и не ощущаете себя полностью знакомыми с этими вопросами — возможно, имеет смысл прочитать. А пока мы плавно переходим к тому, что с этими акциями происходит после IPO.

Замечание автора: как и в предыдущих топиках, я не ставлю целью объять необъятное, и постараюсь лишь «на пальцах» объяснить некоторые базовые вещи. Если вы считаете, что информация не полна или не точна — я в высшей степени приветствую развернутые комментарии (которые я постараюсь инкорпорировать в текст статьи) — или, что еще лучше — самостоятельные топики. И еще — огромное спасибо всем тем, кто читал, комментировал, уточнял, задавал вопросы — мне приятно видеть, что людям это интересно. Мне приятно было получать ваши комментарии, и я постараюсь ответить на все возникшие вопросы.

Как торгуются акции


Большинство акций так или иначе продается на биржах (альтернативой являются внебиржевые сделки, так называемые over-the-counter). Биржа (вообще-то биржи бывают разные, а здесь речь пойдет о фондовых биржах — stock exchange) — это, в самом простом понимании, место где покупатели и продавцы встречаются и договариваются о цене. Какие-то биржи очень похожи на то, что вы видели в голливудских фильмах — люди стоят в торговом зале и кричат «Продаю…! Покупаю!!» — таковой до последнего времени (начала 2007) была биржа NYSE — знаменитый New York Stock Exchange.

Другая часть бирж просто не существует в физическом мире — они целиком и полностью электронные, к таким относится биржа NASDAQ: все операции на ней проходят через сеть, к которой подключены клиенты биржи. Так или иначе, принципом работы большинства бирж является аукцион — цена, за которую продается акции определяется как совокупность максимальной цены, которую покупатель готов заплатить за данный объем данного стока, и минимальной цены, за которую продавец готов ее продать. Рассмотрим небольшой пример.

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

Основы основ: акции

Время на прочтение4 мин
Количество просмотров59K
На самом-то деле, это все, без исключения, каждое слово от первого до последнего — про акции. Акции, акции, акции — у человека, который прошел «веселые девяностые», МММы и прочие радости нашей с вами «тогдашней» жизни слово это вызывает не вполне положительную реакцию и понятное желание «никому больше никогда и ничего». А на самом-то деле ничего страшного в этом слове нет, и более того, в подавляющем большинстве случаев акции это то, что позволяет компании расти и развиваться. Именно акции и лежат в основе — самом фундаменте мирового фондового рынка.

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


Глоссарий


Сразу введем некоторые пояснения. В мире финансов сложилась ситуация отчасти подобная рынку IT — все развивается слишком быстро, и часто развивается с сильным перекосом в сторону рынков американских, поэтому терминология используется по большей части англоязычная. И тут уже как повезет — у каких-то слов есть разумные русские эквиваленты, а каким-то приходится довольствоваться англицизмами; поэтому вводя понятие я постараюсь дать его определение по-русски, если это возможно, и тут же дать соответствующие английские эквиваленты (потому как если вам захочется продолжать изучение предмета, почти наверняка придется столкнуться с англоязычными источниками).

Акция


Итак, акция (англ: share, но чаще – stock или equity) — владение частью компании. Что это такое физически? В последнее время все чаще — ничего. То есть где-то в каком-то большом компьютере (а иногда — во многих) хранится запись о том, что Mr V. Pupkin является держателем N акций ZAO «Horns and Hooves Plc». Чем больше N, тем, соответственно, большей частью г-н Пупкин владеет. Да, вы поняли меня правильно — наличие акции или акций той или иной компании у вас означает, что вы владете какой-то частью всех офисов, компьютеров, мебели и даже интеллектуальной собственности компании.

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

Почему реклама не работает или хватит выбрасывать деньги на ветер

Время на прочтение14 мин
Количество просмотров30K
Рекламные кампании проваливаются.

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

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

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

Давайте разбираться, что же идет «не так» и что нужно делать, чтобы все-таки желаемый результат был достигнут.
Читать дальше →

Рекомендации для начала карьерного роста

Время на прочтение7 мин
Количество просмотров17K
По мотивам недавно прошедшей конференции в ЯрГУ 25 марта, на которую пришло уж очень немного народу, решил я написать небольшой мотивирующий пост для студентов и начинающих программистов/IT специалистов. Мою презентацию с доклада можно посмотреть на skydrive. Здесь же я постараюсь вкратце, на сколько это возможно, осветить этот доклад.

Это чисто мой полет мыслей, ни на какое откровение или новизну я не претендую. Начал я его писать сразу же после конференции (месяц назад), но все как-то не мог закончить. Радует безумно, что кроме меня со студентами и начинающими разработчиками хотят делиться все. Вот только в последние пару недель замечено два топика с похожими темами (и тоже стенограммы с конференций):

Ну и до нас не раз еще поднимали эту тему. Рекомендую читать и заряжаться всеми этими топиками.
Читать дальше →

Руководство для дизайнера по DPI

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


Это руководство — начальный материал о кросс-DPI и кроссплатформенном дизайне для начинающих и средних дизайнеров, желающих узнать о нем с самого начала или получить больше знаний. Без сложных математических и непонятных диаграмм, только непосредственные объяснения, упорядоченные в небольших разделах, для понимания и применения их непосредственно к вашей дизайнерской работе.

Автор — Sebastien Gabriel.

Я не знаю всего, так что, если по вашему мнению я где то ошибаюсь или вам нужно уточнить что-то, либо у вас есть предложения или вопросы для улучшения данного руководства, отправьте письмо (на англ) на sgabriel.contact@gmail.com. Вы также можете найти на меня Twitter, G+ или Facebook.
Читать дальше →

Как легко сделать Navigation Drawer и вкладки, используемые в популярных приложениях от Google

Время на прочтение15 мин
Количество просмотров125K
При использовании популярного приложения Play Маркет многие обратили внимание на вкладки для переключения контента. Такое применение вкладок можно найти и в других приложениях от Google, таких как Play Музыка, Play Пресса.



На этой почве возникает интерес, а иногда и необходимость (если заказчик просит) реализовать увиденное. Я не стал исключением и при проектировании нового приложения, дизайн которого был набросан на черновике, присутствовал очень схожий дизайн, хотя и имел всего несколько вкладок. Казалось бы, что сложного? Сейчас откроем официальную документацию, просмотрим необходимые разделы и приступим к делу. Но, изучив документацию, не смог обнаружить соответствующих примеров — и тут же возник новый вопрос. Почему Android разработчики из компании Google по умолчанию не предоставляют примеров с необходимой функциональностью, чтобы сделать это довольно просто, ведь это реализовано в каждом их приложении? Также, погуглив, нашлись аналогичные вопросы на Stack Overflow. Исходя из этого, оказалось, что существует проблема или, по крайней мере, нераскрытый вопрос, в котором следует разобраться.

Ниже хочу рассказать о том, как всё же можно реализовать паттерн Navigation Drawer вместе с вкладками, как в популярных приложениях от Google.
Читать дальше →

Дюжина логических задач с собеседований

Время на прочтение2 мин
Количество просмотров320K
image

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

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

Что не нужно кодить самостоятельно

Время на прочтение6 мин
Количество просмотров74K
Недавно написал свой велосипед и выложил его на хабре. Вот он: «Простейший Connection pool без DataSource в Java». Статья не из самых удачных, только прошу больше не минусовать. Итак, чтобы не повторять такие ошибки самому и, возможно, предостеречь кого-то от таких ошибок, решил перевести статью «Seven Things You Should Never Code Yourself» достаточно известного в среде open-source деятеля IT-области — Andy Lester'а. Итак, кому интересно, прошу под кат.
Читать дальше →

Реактивное программирование под Android

Время на прочтение10 мин
Количество просмотров90K
Отказоустойчивость, отзывчивость, ориентированность на события и масштабируемость — четыре принципа нынче популярного реактивного программирования. Именно следуя им создаётся backend больших систем с одновременной поддержкой десятков тысяч соединений.

Отзывчивость, простота, гибкость и расширяемость кода — принципы, которые можно закрепить за реактивным UI.

Наверняка, если совместить реактивные backend и UI, то можно получить качественный продукт. Именно его мы и попытались сделать, разрабатывая 2GIS Dialer — звонилки, которая работает через API и при этом должна оставаться быстрой и удобной.


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

Создание нестандартного компонента на основе ListView

Время на прочтение4 мин
Количество просмотров8.6K
Для приложения под Android мне понадобился элемент интерфейса, отдаленно напоминающий DatePicker. Он должен уметь:
  • прокручивать список от начала и до конца (но не по кругу), так чтобы выделять центральный элемент.
  • по мере удаления элемента от центра компонента изменять шрифт и прозрачность цифр
  • “доводить“ список до нужного элемента
  • отображать заданное количество элементов на экране
  • определять направление скроллинга (вверх или вниз)
  • рисовать тень для содержимого текстовых окон

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

Почем нынче на рынке яблочки?

Время на прочтение2 мин
Количество просмотров13K
Яблочный рынок приложений, или Apple App Store, потребляет и порождает деньги. Чем больше Вы вкладываете денег, тем выше отдача. Однако, заработанное не всегда больше потраченного. С недавних пор в моей голове вдруг сформировался типичный график потраченных/полученных средств.

image

Зеленая прямая — график потраченных денег. На что потраченных? На покупку траффика. В результате Ваше приложение выходит в ТОП100, ТОП25 или (ого!!) ТОП10 США и начинает приносить деньги. Красная линия — это заработанное. Если заработанное больше потраченного, то красная линия на графике выше зеленой и Вы отдыхаете на Гавайях, пересыпая между ладоней белый песок Вайкики.
-Чему равна точка Ж?,- спросит сообразительный читатель.

В 2011 году она равнялась 5000 долларов, этого хватало войти в ТОП10. Приложение приносило не менее 1000 долларов в день. Те времена ушли. Теперь в 2014 году надо потратить 50000 долларов, приложения из ТОП10 зарабатывают в день не менее 10000 долларов в день.

Хочу заметить, что речь идет об успешных приложениях, которые после искусственного прыжка в ТОП, сами начинают поднимать свой рейтинг и держаться на гребне успеха не менее 5 дней. Математически красную параболу можно характеризовать показателем степени. Если показатель степени больше 1 — это круто, Вы и Ваше приложение — молодцы. Если меньше-равно 1 — получаем голубой график и дырку от бублика. То есть, сколько денег не вкладывай — дерево не вырастет.

Как же определить показатель степени для Вашего приложения? Для этого не надо тратить 50000 долларов.
Ловко я Вас заманил под кат?
Читать дальше →

Продвижение приложений в AppStore (Google Play)

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

Прежде чем мы написали этот материал, наши приложения загрузили более 2 000 000 раз, мы провели порядка 50 больших промо кампаний, побывали в топах AppStore более, чем в 24-х странах пока наконец не собрали всё это в один большой work flow. В статье почти нет очевидных вещей про ключевые слова, красоту иконок, скриншотов и рекламные кампании. Мы попытались привести работу продуктовой компании к единой модели, ответив на вопросы: «что?», «когда?», «зачем?» и даже на вопрос «а дальше что?». Если вы разрабатываете собственное приложение, хотите начать это делать или у вас просто есть друг разработчик или маркетолог продуктовой компании — в этой статье вы найдёте много полезной информации.
Читать дальше →

Полезное для Android разработчика #2

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

Полезное для Android разработчика #2



Привет, теперь я постараюсь еженедельно выпускать дайджесты на интересные библиотеки и находки для Ваших проектов.

Сегодня в выпуске

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

Вычисление дня недели в уме

Время на прочтение4 мин
Количество просмотров108K
imageСуществует множество способов прокачать мозг. Задачи «n-back» или мобильные приложения для тренировки навыка быстрого счета в уме. Но эти задачи оторваны от текущей реальности, а хотелось бы прокачать мозг практичным навыком.

Зачем? Ведь можно быстро посчитать на гаджете. Увы, совсем не быстро, т.к. потребуется время на поиски и активацию гаджета, поиск приложения, ввод даты, осознание полученного результата. А еще можно друзей/подруг порадовать своими внезапно появившимися экстраординарными способностями. Кстати, друзья быстро осознают удобство использования вечного календаря с голосовым интерфейсом.

Разве это возможно? Как-то раньше обходились без компьютеров. В одной из тв-передач «ищем таланты» показывали натренированного трехлетнего ребенка, который может вычислять произведение трехзначных чисел (пощадите своих детей). Впрочем, взрослые уже не дети и их мозг частично кристаллизован, в смысле слабо обучаем. Значит нужно запоминать как можно меньше и максимально задействовать имеющиеся навыки.
Как считать

Полезное для Android разработчика из Github

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

Доброго времени суток.


Много бороздя по простором Github, я нашел множество интересных проектов, source кодов, и библиотек. И теперь пришло время поделиться ими. Встречайте множество вкусностей под катом!

Зайти на огонек!

Синхронизация в Android приложениях. Часть первая

Время на прочтение6 мин
Количество просмотров63K
image
На дворе 2014 год, доля Android JellyBean перевалила за 60%, появились новые тренды в дизайне. В общем, случилось много всего интересного. Но синхронизация данных с сервером осталось неотъемлемой частью большинства приложений. Существует много способов реализации ее в приложении. Android предоставляет нам SyncAdapter Framework, который позволяет автоматизировать и координировать этот процесс и предоставляет множество плюшек в довесок.

Account


Для начала нам потребуется собственный аккаунт на устройстве. Сначала, я думаю, стоит ответить на вопрос, зачем? Действительно, зачем?

Краткое резюме преимуществ:
  • Поддержка фоновых механизмов вроде SyncAdapter
  • Стандартизация способа авторизации
  • Поддержка различных токенов (прав доступа)
  • Шаринг аккаунта с разграничением привилегий (возможность использовать один аккаунт для различных приложений, как это делает Google)

Шаги для получения плюшек:
1) Создание Authenticator'а
2) Создание Activity для логина
3) Создание сервиса для общения с нашим аккаунтом

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

Google анонсировал SDK для носимых устройств

Время на прочтение1 мин
Количество просмотров10K
Сегодня в блоге разработчиков Android появился анонс Android Wear Developer Preview (ссылка).
Читать дальше →

Трансформации AST — Первый шаг к тяжёлым веществам

Время на прочтение7 мин
Количество просмотров20K
А давайте сделаем magic с вашим Java кодом. Вот такой:


Берем это:
import groovy.transform.Canonical
import groovy.transform.TupleConstructor

@Canonical
@TupleConstructor
class Person {
    int id
    String firstName
    String lastName
    Date birthdate
}

Компилируем, и в байткоде получаем аналог вот этого:
Адский бойлерплейт на Джаве на 100 с лишним строк
import java.util.Date;
import java.util.Map;

public class Person {
    private int id;
    private String firstName;
    private String lastName;
    private Date birthdate;

    //Эта штука добавлена @TupleConstructor-ом
    public Person(Map parameters){
        this.id = (int) parameters.get("id");
        this.firstName = (String) parameters.get("firstName");
        this.lastName = (String) parameters.get("lastName");
        this.birthdate = (Date) parameters.get("birthdate");
    }

    public Person(int id, String firstName, String lastName, Date birthdate) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
        this.birthdate =birthdate;
    }

    public Person(int id, String firstName, String lastName) {
        this(id, firstName, lastName, null);
    }

    public Person(int id, String firstName) {
        this(id, firstName, null, null);
    }

    public Person(int id) {
        this(id, null, null, null);
    }

    public Person() {
        this(0, null, null, null);
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Person person = (Person) o;

        if (id != person.id) return false;
        if (birthdate != null ? !birthdate.equals(person.birthdate) : person.birthdate != null) return false;
        if (firstName != null ? !firstName.equals(person.firstName) : person.firstName != null) return false;
        if (lastName != null ? !lastName.equals(person.lastName) : person.lastName != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = id;
        result = 31 * result + (firstName != null ? firstName.hashCode() : 0);
        result = 31 * result + (lastName != null ? lastName.hashCode() : 0);
        result = 31 * result + (birthdate != null ? birthdate.hashCode() : 0);
        return result;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", firstName='" + firstName + '\'' +
                ", lastName='" + lastName + '\'' +
                ", birthdate=" + birthdate +
                '}';
    }

    public int getId() {
        return this.id;
    }

    public void setId(int paramInt) {
        this.id = paramInt;
    }

    public String getFirstName() {
        return this.firstName;
    }

    public void setFirstName(String paramString) {
        this.firstName = paramString;
    }

    public String getLastName() {
        return this.lastName;
    }

    public void setLastName(String paramString) {
        this.lastName = paramString;
    }

    public Date getBirthdate() {
        return this.birthdate;
    }

    public void setBirthdate(Date paramDate) {
        this.birthdate = paramDate;
    }
}



Ну, как-бы да, приятно. Но ничего уникального, вот-же есть Lombok, не говоря уже о способности любого хорошего IDE сначала генерить, а потом прятать всесь этот бойлерплейт.

Так зачем именно Groovy, почему AST transformations?
В этой статье я попробую вкраце обосновать, зачем пользоваться Groovy AST transformations в Java проектах, и (опять-же вкраце) рассказать какие AST transfromations есть в Groovy сегодня. Если вы уже знаете зачем, и хотите только «как и что», смело листайте к «Введение в AST transformations».
Читать почему и как AST transformations

Пишем эффективный blur на Android

Время на прочтение8 мин
Количество просмотров54K
image
Сегодня мы попытаемся разобраться с методами размытия (blur) доступными для Android разработчиков. Прочитав определенное число статей и постов на StackOverflow, можно сказать, что мнений и способов выполнить эту задачу достаточно много. Я попытаюсь собрать все это в кучу.

И так, зачем?


Все чаще и чаще можно заметить эффект размытия в приложениях появляющихся на просторах Google Play Store. Взять хотя бы замечательное приложение Muzei от +RomanNurik или тот же Yahoo Weather. Глядя на эти приложения можно заметить, что при умелом обращении размытием можно добиться очень впечатляющих результатов.

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

Информация

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