Pull to refresh
27
0
Артем @Lond

Web developer

Send message

Стартап, вестинг, клифф: доли в бизнесе и права участников

Reading time6 min
Views77K
Один из самых привлекательных моментов в присоединении к стартапу — получение опционов (прав на приобретение определенной доли в стартапе по фиксированной цене). Это предоставляет право владения долей компании и помогает сбалансировать интересы руководства и сотрудников. Впрочем, один аспект в обыкновенном пакете опционов вызывает горячие дискуссии между сотрудниками и руководителями, и этот аспект — годовой порог (cliff). Мы в Alconost перевели для вас статью, в которой понятно и практично написано о клифф-вестинге, опционах и рисках, связанных со всем этим.


Читать дальше →
Total votes 38: ↑32 and ↓6+26
Comments5

Lock-free структуры данных. Основы: Атомарность и атомарные примитивы

Reading time15 min
Views108K

Построение lock-free структур данных зиждется на двух китах – атомарных операциях и способах упорядочения доступа к памяти. В этой статье речь пойдет об атомарности и атомарных примитивах.

Анонс. Спасибо за теплый прием Начал! Вижу, что тема lock-free интересна хабрасообществу, это меня радует. Я планировал построить цикл по академическому принципу, плавно переходя от основ к алгоритмам, попутно иллюстрируя текст кодом из libcds. Но часть читателей требует зрелищ не мешкая показать, как пользоваться библиотекой, особо не рассусоливая. Я согласен, в этом есть свой резон. В конечном счете, и мне не так интересно, что там внутри boost, — опишите, как его применять! Поэтому свой эпический цикл я разделю на три части: Основы, Внутри и Извне. Каждая статья эпопеи будет относится к одной из частей. В Основах будет рассказываться о низкоуровневых вещах, вплоть до строения современных процессоров; это часть для почемучек вроде меня. Внутри будет освещать интересные алгоритмы и подходы в мире lock-free, — это скорее теория о том, как реализовать lock-free структуру данных, libcds будет неисчерпаемым источником C++ кода. В Извне будут статьи о практике применения libcds, — программные решения, советы и FAQ. Извне будет питаться вашими вопросами/замечаниями/предложениями, дорогие хабражители.

А пока я судорожно готовлю начало Извне, — первая часть Основ. Статья во многом не о C++ (хотя и о нем тоже) и даже не о lock-free (хотя без atomic lock-free алгоритмы неработоспособны), а о реализации атомарных примитивов в современных процессорах и о базовых проблемах, возникающих при использовании таких примитивов.
Атомарность — это первый круг ада низкий уровень из двух.
Читать дальше →
Total votes 119: ↑116 and ↓3+113
Comments37

Подробно о внутренней кухне AngularJS

Reading time9 min
Views48K
У фреймворка AngularJS есть несколько интересных решений в коде. Сегодня мы рассмотрим два из них – как работают области видимости и директивы.

Первое, чему обучают всех в AngularJS – директивы должны взаимодействовать с DOM. А больше всего новичка запутывает процесс взаимодействия между областями видимости, директивами и контроллерами. В этой статье мы рассмотрим подробности работы областей видимости и жизненный цикл Angular-приложения.

Если в следующей картинке вам что-то непонятно – эта статья для вас.

image

(В статье рассматривается AngularJS 1.3.0)
Читать дальше →
Total votes 38: ↑33 and ↓5+28
Comments4

Почему вам НЕ стоит использовать AngularJs

Reading time12 min
Views248K
Много времени прошло с момента появления AngularJs (в масштабах веб-технологий конечно). Сейчас в интернетах есть огромное количество постов восхваляющих этот фреймворк до небес, что это манна небесная не иначе, а критики не так уж и много как он того заслуживает. Но такие статьи уже потихоньку начинают появляться, и меня это радует, надеюсь индустрия переболеет ангуляром так же, как переболела MooTools, Prototype, %какой-нибудь новый язык под JVM%, %другая-супер-революционная-технология%. Не знаю почему, но в IT-области такие революционные технологии, которые поднимают шум, а потом пропадают, появляются довольно часто. Хороший разработчик должен уметь отличать очередную модную технологию, от работающего инструмента. И для этого очень важно критически смотреть на вещи. Моя статья — это компиляция самых весомых выводов из других статей, и моих личных умозаключений. Ангуляр создает хороший вау-эффект, когда видишь его впервые: «ух ты, я написал ng-repeat, и реализовал эту логику одними тегами и все само обновляется!», но как только приходится реализовывать реальные приложения, а не очередной TODO-лист, то все становиться очень печально. Сразу хочу сказать, что фреймворк я знаю хорошо, даже больше чем мне хотелось бы его знать, я программировал на нем в течении 2 лет. И для следующего проекта я его точно не выберу, и это хорошо, все мы учимся на ошибках. Так что же не так с ангуляром? Тут нет однозначного ответа, слишком много разных недостатков, которые создают такой облик фреймворку. Если одним словом – непродуманная архитектура. Под катом я привожу конкретику, так что устраивайтесь поудобнее. ДА НАЧНЕТСЯ ХОЛЛИ ВАР!
Читать дальше →
Total votes 305: ↑242 and ↓63+179
Comments387

Семь принципов создания современных веб-приложений

Reading time19 min
Views188K
Эта статья основана на моей презентации с конференции BrazilJS в августе 2014 года. Она базируется на идеях, о которых я писал в блоге недавно, в основном, в связи с UX и производительностью.

Я хочу представить 7 действенных принципов для веб-сайтов, которые хотят применить JavaScript для управления UI. Эти принципы являются результатом моей работы как веб-дизайнера, но также как давнего пользователя WWW.

JavaScript бесспорно стал незаменимым инструментом для разработчиков фронтенда. Сейчас сфера его применения расширяется на другие области, такие как серверы и микроконтроллеры. Этот язык программирования выбрали престижные университеты, чтобы обучать студентов основам информатики.

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

  • Должен ли JavaScript использоваться как замена функциям браузера: история, навигация, рендеринг?
  • Умирает ли бэкенд? Нужно ли вообще рендерить HTML?
  • Правда ли, что будущее за приложениями на одной странице (Single Page Applications, SPA)?
  • Должен ли JS генерировать страницы на веб-сайте и рендерить страницы в веб-приложениях?
  • Нужно ли использовать техники вроде PJAX или TurboLinks?
  • Каково точное отличие между веб-сайтом и веб-приложением? Должно ли остаться что-то одно?
Читать дальше →
Total votes 108: ↑99 and ↓9+90
Comments33

Scala. Введение

Reading time12 min
Views87K
Привет хабралюди.

Не так давно я заинтересовался одним из многочисленных ныне языков под JVM — Scala. Причин тому много, основная — всё нарастающее со временем чувство неудобства при работе с cpp-подобными языками. Взгляд мой попеременно падал на Ruby, Groovy, Python, но все они оставляли впечатление инструментов, не совсем подходящих для моего обычного круга рабочих задач (Python-таки хорош, но у нетипизированных языков есть свои ограничения). Scala же, напротив, показалась вполне годным языком. Так как поиск по хабру никаких статей о ней не выловил (было несколько, но мягко говоря не вводных), я решил написать маленький обзор и поделиться им с массами.
По возможности коротко о кажется главном
Total votes 65: ↑56 and ↓9+47
Comments106

Дизайн будильника моей мечты

Reading time4 min
Views44K
Нет, не здоровенного. А просто удобного будильника для Андроида. После долгих поисков на Маркете я так и не смог найти будильник, который мне было бы приятно использовать. Поэтому в этой статье я буду проектировать будильник таким, каким бы я сам хотел его видеть.

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

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

Во-вторых, в нём нет псевдо-анализа стадий сна, так как пока я не нашёл подтверждения тому, что хоть одно из таких приложений работает. И уж точно они не работают, если спишь в кровати не один.

И в-третьих, в нём нет никаких математических примеров для отключения звонка. Так что для любителей математики он не подойдёт.

Дисклаймер. Вполне возможно, у вас уже есть будильник который вас полностью устраивает. Что ж, тогда эта статья вряд ли вам будет интересна. А для остальных я расскажу о проектировании будильника
под катом
Total votes 302: ↑279 and ↓23+256
Comments195

Определение местоположения по mac адресу роутера

Reading time1 min
Views168K
image

1. Узнаем MAC–адрес WiFi роутера, через который вы выходите в интернет. (Через веб–интерфейс, дать arp–запрос «arp -a», посмотреть на обратной стороне девайса.)

2. Заходим по адресу samy.pl/mapxss

3. Вбиваем в текстовое поле MAC–адрес и жмем «Search MAC».

Как это работает?
Читать дальше →
Total votes 109: ↑91 and ↓18+73
Comments283

Особенности использования GD-lib на хостинге PHP c ограничеными ресурсами

Reading time2 min
Views835
Данной проблемой пришлось занятся после случая на хостинге «Х», на котором достаточно небольшие изобржаения невозможно было преобразовать, используя эту библиотеку. Но самое противное заключалось в том что скрипт просто умирал, оставляя информацию только в логах. Поэтому пришлось выяснить
чтобы такого сделать чтоб не умирал
Total votes 10: ↑8 and ↓2+6
Comments3

Как не стать спамером со своей уютной рассылочкой

Reading time1 min
Views67K
image
Пользователь когда-то подписался на рассылку, но уже забыл когда, и главное зачем. Теперь ежедневно к нему падает спам, а по собственному опыту он знает, для того чтобы отписаться нужно зайти по ссылке свой профиль, найти и снять там какую-то галку а главное, помнить свой логин и пароль на давно забытом им сайте.
Его действия? «В спам!»

А по другую сторону баррикад находитесь Вы с вашей уютненькой подписочкой, полезной информацией и очень удобной системой отписки, о которой пользователь так никогда и не узнает.

И вот, с десяток таких «отписок» и гугл будет удобно отсортировывать ваши рассылки в папочку Спам (584), у ВСЕХ ваших подписчиков.

Однако многие из нас уже успели заметить: некоторые письма в Gmail при попытке отметить их «В спам!» САМИ предлагают отписаться от рассылки в один клик.

Эта фича была введена google более года назад, но лишь единицы рассылок научились ей пользоваться. И не удивительно. В рекомендациях по осуществлению массовых рассылок, лишь косвенно упоминается о том, что Вам нужно сделать.
А сделать нужно не многое.
Читать дальше →
Total votes 238: ↑230 and ↓8+222
Comments60

Как собрать IT-команду

Reading time4 min
Views1.6K
Специалист должен быть на своем месте — это позволит быть успешным и развиваться как ему, так и компании-работодателю. Это справедливо для IT-сферы, как и для любой другой. Однако айтишник — это не рядовой офисный сотрудник, и к нему нужен особый подход. В этой статье я попыталась обобщить опыт ряда IT-компаний по подбору и продвижению технического персонала.

Мифы об айтишниках
Безусловно, для работы с IT-персоналом существует своя специфика, но различия между сотрудниками-айтишниками и простыми юзерами часто преувеличиваются. Вот наиболее распространенные заблуждения:
  • IT-люди очень своеобразны. Почти во всем. Для коллеги-юзера непонятно, как иметь с ними дело, мотивировать, оценивать, обучать.
  • Айтишники разговаривают на своем языке. С их же стороны язык рядовых пользователей — птичий. Договориться крайне сложно.
  • В IT работают люди, руководствующиеся исключительно логикой и рациональным мышлением. Эмоции им чужды.

Читать дальше →
Total votes 17: ↑9 and ↓8+1
Comments17

Организация живой трансляции с ip камеры на сайте

Reading time7 min
Views20K

Введение

Задача
Рассмотрим задачу по организации на сайте живой видео трансляции с ip камеры. Наш стенд состоит из трёх составных частей:
  • ip камера
  • медиасервер
  • flash плеер в браузере на стороне клиента
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments15

jQuery.colorit — подсветка значений в унылых таблицах

Reading time1 min
Views588
image
Плагин ColorIt (он же «Колорит») превращает скучные таблицы в цветные мозаики, облегчая восприятие данных. Одного взгляда на таблицу будет достаточно, чтобы понять общую картину («среднюю температуру по больнице»), а также отыскать экстремальные значения.
Возможности и способы применения
Total votes 18: ↑17 and ↓1+16
Comments11

Жизненный цикл серебряной пули

Reading time10 min
Views1.7K
Мой перевод статьи Сары Шерд “Life Cycle of a Silver Bullet”, 2003 г.

«Внимание! Выбросьте из головы другие методы оптимизации — мы открыли самый лучший. С нашим методом уровень качества у вас будет расти, а стоимость и время разработки — падать». Практически любой метод оптимизации провозглашается лучшим способом спасти молодой бизнес от проблем. К сожалению, спустя несколько лет этот же самый метод уже разгромленным и разнесённым в пух и прах, и заменяется новым. В этой притче рассказывается, как это происходит.



Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments4

Разработка на ассемблере в Linux

Reading time3 min
Views16K
Вообще программирование на ассемблере в Linux мало распространено и занимаются им, разве что, фанаты ассемблера. Сегодня мы и поговорим о программировании на ассемблере и инструментарий.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments19

Звоним из терминала

Reading time2 min
Views1.5K
Решил опубликовать небольшую заметку, как можно используя базовые знания по программированию реализовать возможность звонков из терминального сервера.
Кому это нужно: в первую очередь это будет интересно тем людям(или организациям), у которых стоит терминальный сервер(НАПРИМЕР windows 2003) в нем есть некоторая программа-CRM, в которой хранятся контактная информация по клиентам. А сотрудники используют софтверные IP-телефоны.

Что у нас есть:локальная сеть, сам сервер терминалов[у нас Windows 2003 Standart], сервер IP-телефонии[Asterisk], клиентские машины[Windows XP] с установленным софтверным IP-телефоном[X-lite].
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments3

Ratings Service / Online-сервис + REST API для поиска рейтингов фильмов

Reading time6 min
Views1.6K
Ratings Service — это online-сервис, который позволяет узнать рейтинг фильма по его названию.

image

Отличительные особенности:
  1. поиск по нескольким Интернет-базам одновременно (на данный момент это КиноПоиск.Ru и КиноКопилка.ру)
  2. легкий интерфейс; можно пользоваться с мобильного телефона, например, через Opera Mini
  3. возможность получать результаты выборки в формате XML в стиле REST
  4. хостинг на Google App Engine / Java
  5. Open Source

Я бы хотел рассказать о некоторых особенностях реализации и поделиться впечатлениями работы с Google App Engine / Java. Ниже вы также найдете адрес проекта на Google Code, с выложенными исходными кодами.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments3

Транзакции InnoDB

Reading time4 min
Views4.5K
InnoDB это транзакционный, реляционный движок работающий на основе MySQL сервера. Начиная с 2001 года он поставляется в стандартной сборке, а с версии 5.1 может устанавливаться в качестве плагина (без необходимости перекомпилировать ядро сервера). Синтаксис очень простой.
START TRANSACTION;
...
COMMIT; -- или же ROLLBACK; если что-то пошло в логике не так

Про определение


Определение транзакционности и реляционности значат во-первых значат полноценную связанность таблиц через FK и как следствие — целостность данных при удалении рядов. С MyIsam как известно приходилось вручную удалять связанные данные в нескольких таблицах, в InnoDB — каскадное удаление одним запросом. Во-вторых поскольку для БД немыслимы параллельные версии данных как в SVN и некому эти версии объединять в одну ветку, но при этом необходима параллельная работа нескольких процессов (пользователей) с одними данными, то в качестве решения становится транзакции.
Очередь из запросов-автомобилей теперь пополняется атомарной транзакцией-автобусом. Естественно это плохо, поскольку чем длиней и дольше выполняется транзакция тем больше параллельных процессов будут ждать его. Для ускорения работы создаются остановки — типы и уровни блокировки данных. Для InnoDB по умолчанию это блокирование на уровне строки (по PK), тогда как в MyIsam атомарная операция блокирует всю таблицу.

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments2

24 способа, увеличивающих вероятность индексации сайта

Reading time6 min
Views8.6K
Далеко не все поисковые сервисы быстро и эффективно индексируют новый ресурс в Интернете. «Зубры» типа google или yahoo все схватывают на лету, надо просто немого подождать. При этом объем проиндексированного контента у них достаточно высокий. Множество поисковиков рунета (rambler, aport, altavista), а также майкрософтовские livesearch и msn тоже сами индексируют новый сайт.
Проблемы иногда возникают с индексацией в mail.ru, и его детище gogo, а также с Яндексом. Из индекса Яндекса сайты иногда пропадают, число проиндексированных поисковиком также часто меняется.
Cледует также отметить, что индексировать то может и индексируют поисковики, но если проиндексированная страница будет находиться на 10ой странице поиска, то вряд ли на нее кто-то перейдет. Разве что самый упорный. Поэтому особенно актуален вопрос именно эффективной индексации. О ней и вообще об индексации пойдет речь. Так как ориентация статьи сделана в основном на русскоязычный сегмент Интернета, то акцент слегка смещен в сторону Яндекса.
Читать дальше →
Total votes 36: ↑28 and ↓8+20
Comments18

ТОП 10 самых раздражающих факторов для программиста

Reading time5 min
Views16K
Совсем недавно наткнулся в интернете на забавный "хит-парад" наиболее раздражающих вещей для программиста. Поскольку он был на английском — решил перевести текст и несколько адаптировать к нашим реалиям…

ТОП 10 самых раздражающих факторов для программиста


Читать дальше →
Total votes 309: ↑292 and ↓17+275
Comments70

Information

Rating
Does not participate
Location
Светловодск, Кировоградская обл., Украина
Registered
Activity