Pull to refresh
9
0
Сергей Нехайчик @Ahao

User

Send message

Как я потратил 1 000 000$, чтобы сделать свой переводчик. Часть 3

Level of difficultyEasy
Reading time9 min
Views11K

Неделю назад исполнилось 6 лет, как я открыл фирму, чтобы заниматься машинным переводом. За это время многое произошло. Сейчас в команде 40 человек, 120 серверов и более миллиона пользователей. Но так было не всегда. Помню те времена, когда нас было двое. Мы сидели в маленькой комнате без вентиляции, и каждый час нужно было открывать окна, чтобы совсем не задохнуться. Мы были полны надежд, идей и большого желания создать переводчик, который сможет конкурировать с Google.

В 2017 году у нас был прототип под Linux, который уже что‑то переводил. Под iOS собрать тоже удалось. А вот с Windows оказалось не все так просто. Клиенты хотели установку под эту ОС, и нужно было действовать. Для этого пришлось бы перекомпилировать много библиотек с кучей зависимостей, но у меня не было такого опыта. Когда я пошёл на сайты фриланса и разместил несколько объявлений, откликнулось всего нескольких заявок. Cтало ясно, что задача не такая простая, какой кажется.

В интернете было много предложений от аутсорс компаний о разработке проектов любой сложности. Так как я по образованию инженер‑программист, то заявление о любой сложности вызывало удивление, но в то же время и интерес. Было решено попробовать! Cо стороны всё выглядело серьёзно, общение велось от имени юридического лица. Наша компания хочет заказать разработку, но сначала требуется получить оценку того, как долго эта задача будет решаться.

Стоит отметить, что компании, с которыми я говорил, были разными по размеру. Одна из них — известный бренд и лидер в Восточной Европе. Я написал менеджеру по продажам, и со мной обещали связаться. В течение недели я не получил ответа, написал им еще раз, и мне еще раз ответили, что точно со мной свяжутся. Не связались. Ну и ладно!

Читать далее
Total votes 74: ↑72 and ↓2+70
Comments37

Как я заработал 1 000 000 $ без опыта и связей, а потом потратил их, чтобы сделать свой переводчик

Reading time20 min
Views134K

Как все начиналось


Эта история началась 15 лет назад. Работая программистом в столице, я накапливал деньги и увольнялся, чтобы потом создавать собственные проекты. Для экономии средств уезжал домой, в небольшой родной город, где работал над сайтом для студентов, программой для торговли, играми для мобильных телефонов. Но из-за отсутствия опыта ведения бизнеса это не приносило дохода, и вскоре проекты закрывались. Приходилось снова ехать в столицу и устраиваться на работу. Эта история повторилась несколько раз.

Когда у меня в очередной раз закончились деньги, наступил кризис. Я не смог найти работу, ситуация стала критической. Пришло время посмотреть на все вещи трезвым взглядом. Нужно было честно признаться себе, что я не знаю, какие ниши выбрать для бизнеса. Создавать проекты, которые просто нравятся, — путь в никуда.
Читать дальше →
Total votes 233: ↑224 and ↓9+215
Comments144

Telegram. Безлимитный сетевой диск. Бесплатный

Reading time3 min
Views184K
Привет, Хабр.

Наверняка многие об этом задумывались, возможно у кого то эта идея лежит в TODO. У меня она пролежала примерно год, но таки удалось ее реализовать в виде работающего прототипа.

TgCloud:


  • Виртуальная файловая система с открытым исходным г****кодом.
  • На локальном диске — только метаданные: имена, размер, структура папок и т.д.
  • Данные хранятся в Telegram и загружаются только при работе с файлом
  • Размер и тип файлов не ограничен, можно использовать с любой ОС

Подробности реализации и ссылка на репозиторий под катом.
Читать дальше →
Total votes 211: ↑175 and ↓36+139
Comments232

Как создать веб-сайт, используя видео с YouTube в качестве фона?

Reading time9 min
Views86K


Большие видео на заднем плане веб-сайтов — довольно популярный тренд в веб-дизайне. Умело примененные видео могут сделать веб-сайт более драматичным и привлекательным для пользователей.

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

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

Хотя и наиболее популярным способом создания видео-фона является использование HTML5 видео тега вместе с некоторыми параметрами CSS, стоит также обратить внимание на альтернативные источники видео, например, YouTube. В этом случае, вам не придется переживать о медленном ответе сервера, потому что запрос будет отправляться напрямик в YouTube.

В этой статье, я покажу вам, как можно построить клевый сайт, использующий видео с YouTube в качестве фона. Мы будем использовать jQuery.mb.YTPlayer.js для редактирования и управления внешним видом нашего видео. Итак, приступим!

Скачать исходники
Демо
Читать дальше →
Total votes 75: ↑45 and ↓30+15
Comments55

Программа проверки грамматики

Reading time3 min
Views96K
Большинство систем редактирования текста имеют инструмент для автоматической проверки орфографических ошибок (когда в слове написаны неправильно одна или несколько букв; по-английски — speller). Их принцип действия: программа анализирует в тексте каждое слово и ищет такое же в Базе Данных всех слов и их всевозможных форм.

Такая проверка текста гарантирует, что слова в тексте будут написаны правильно (как в словаре), но не защищает от ошибок согласования и синтаксических ошибок в предложении. Например, предложение «Я читаешь интересными журналом» неправильно, но система редактирования текста не покажет правильный вариант: «Я читаю интересный журнал».
Избежать таких ошибок помогает программа проверки грамматических ошибок в предложении (по-английски — grammar checker).
Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments40

Codecademy. Учимся программировать

Reading time1 min
Views12K
Изображение - savepic.ru — сервис хранения изображений

Codecademy, который запустился буквально день назад будет интересен в первую очередь начинающим программистам JavaScript. Ресурс претендует быть прекрасным дополнением к туториалам, манам и другим материалам. Под катом небольшой обзор сервиса.
Читать дальше →
Total votes 80: ↑72 and ↓8+64
Comments52

Социальный алгоритм от Adobe

Reading time1 min
Views773
Социальный алгоритм написан Оливером Голдман для Adobe:

if ( message.length <= 140 && message.isPublic ) {
  Twitter.tweet ( message.text );
} else if ( message.isPublic ) {
  if ( ! intersection ( message.recipients, Contacts.facebookOnlyUsers ).isEmpty ) {
    FaceBook.setStatus ( message.text );
  } else {
    GooglePlus.share ( message.text, GooglePlus.PUBLIC );
  }
} else {
  circles = GooglePlusUtilities.computeRelevantCircles ( message.recipients );
  GooglePlus.share ( message.text, circles );
}
Total votes 77: ↑51 and ↓26+25
Comments35

Конференция RubyConfUa 2010

Reading time2 min
Views333
Первая полноформатная двухдневная конференция RubyConfUa 2010 состоится в Киеве, 16-17 октября. Основной задачей мероприятия является создание комфортной площадки для общения и обмена опытом среди руби-разработчиков из Украины, России, Беларусии и стран СНГ.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments4

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

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

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

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

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

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

How-to install gitosis (мануал с учётом проблем возникающих при установке) + интеграция в redmine

Reading time6 min
Views4.2K

gitosis — программное обеспечение для хостинга Git репозиториев


image

Установка:


Появился скрипт авто установки пока тестируется
sudo apt-get install python-setuptools git-core -y
mkdir ~/src
cd ~/src
git clone git://github.com/sc0rp1us/gitosis-tools.git
cd gitosis-tools/gitautoinstall
sudo bash main

Дальше следуем инструкциям скрипта


Но вернёмся к статье
Для начала установим необходимые компоненты для запуска gitosis:
  • Для debian & ubuntu выполните следующие команды от пользователя root

apt-get update
apt-get upgrade
apt-get install python-setuptools git-core -y
cd ~/src
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install



Далее зайдём в учётную запись через которую будем управлять gitosis'om (назовём её gitadmin), выгрузим дистрибутив и установим его

Настройка:


Теперь нам нужно будет создать пользователя который будет владеть хранилищем(имя может быть любым, но я предпочитаю использовать просто git), к тому же на одном сервере может быть несколько аккаунтов владеющих хранилищами, такому аккаунту не нужен пароль, но необходим действующий shell иначе SSH откажется с ним работать:
P.S. вы конечно можете использовать уже существующую учётную запись, но по соображениям безопасности, крайне не рекомендуется этого делать
Читать дальше →
Total votes 15: ↑9 and ↓6+3
Comments7

кроссдоменный UPLOAD файлов с прогресс баром, без перезагрузки страницы, и без использования флеш

Reading time5 min
Views2.3K
Драсте всем.
Спасибо что решили почитать этот пост.

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

После некоторого времени поиска была найдена система основанная на модуле apc habrahabr.ru/blogs/webdev/17620. Всё бы хорошо, но вешать дополнительный модуль кеша на сервер где кеш технологии уже используеться было безсмысленно. Тогда мне в руки попалась информация о NGINX upload progress module (http://wiki.nginx.org/NginxHttpUploadProgressModule) и это действительно работает… Тем более что на наших серверах установлен именно nginx в качестве fronе-end сервера.

Но самое интересное оказалось впереди.

Обычно загрузка файлов осуществяеться в то место где и лежит сам сайт (на тот же домен), но у нашей компании это не так. Все картинки и видео лежат на одельном сервере, и соответсвенно хорошо если upload был бы сразу на него, что бы не загружать канал сайта.

После конфигурирования nginx с upload progress module и использование примера с wiki.nginx.org/NginxHttpUploadProgressModule прогресс бар загрузки файла заработал.

Для пересылки самого файла на нужный сервер было изменено не много, и сам же сконфигурированных nginx естественно должен находиться на h_t_t_p://STORAGE-SERVER.com.

<
Читать дальше →
Total votes 23: ↑16 and ↓7+9
Comments9

Тюнинг nginx

Reading time8 min
Views96K
Статья написана по материалам моего доклада на CodeCamp 2009.

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

У любого проекта всегда есть что оптимизировать: можно почитать советы по оптимизации на webo.in, установить eaccelerator, memcache, проиндексировать поисковые поля в базе данных. Я предполагаю, что все это уже проделано, а сайт по прежнему тормозит.

Пришло время оптимизировать nginx...

Читать дальше →
Total votes 102: ↑100 and ↓2+98
Comments69

Простой и эффективный метод отразить http DDoS от 50мбит с помощью nginx и iptables

Reading time7 min
Views67K
Здравствуй, Хабр!
Предлагаю твоему вниманию простой и в то же время эффективный метод борьбы с http DDoS. На основе сервера Xeon 2.5GHz / 4Gb RAM / SAS можно отражать атаку примерно до 300 Мбит/с (значение получено методом экстраполяции).

Способ реализация

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

Область применения

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

SEO под DDoS-ом

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

Стоимость и эффективность

На время атаки придется отказаться от некоторых сервисов вашего сайта. Возможно, придется расширить полосу канала, перенести сайт на более мощный сервер. Эффективность достигается максимизацией коэффициента масштабируемости системы. Обеспечивается быстрое наращивание аппаратных ресурсов при увеличении мощности атаки.
Читать дальше →
Total votes 193: ↑179 and ↓14+165
Comments78

Пишем фильтр «плохих» слов

Reading time5 min
Views92K
Многие из вас наверняка не раз бывали в публичных многопользовательских чатах. Будь то форум, вебчат или чат-сервер в локалке провайдера, идеального порядка можно достичь лишь при малом количестве пользователей (не более сотни, на мой взгляд). Когда сообщество разрастается, возникают примерно одни и те же проблемы: мат, спам и флуд — один скучающий индивид каждую минуту постит «Все в кантру!», другой матерится по поводу и без и все в таком духе.

Идеального мат-фильтра до сих пор не изобретено. Но мы этим заниматься и не будем, рассмотрим реализацию необходимого минимума.
Читать дальше →
Total votes 82: ↑61 and ↓21+40
Comments79

Веб-разработка с ChicagoBoss framework

Reading time18 min
Views9.6K
Chicago Boss
«Chicago Boss — бескомпромиссный веб-фреймворк, любимый дизайнерами, инженерами и этим парнем с пейджером.» — © chicagoboss.org

«Erlang — язык для создания отказоустойчивых распределенных приложений. Это — один из немногих функциональных языков, который давно и успешно применяется на практике. Например — в телекомах (Ericsson AXD-301 switch), банковских системах, системах автоматизации, высоконагруженных веб-приложениях (Facebook Chat). При этом Erlang — продукт с открытым исходным кодом и распространяется бесплатно.» — говорит нам сайт русскоязычного сообщества Erlang.

Данный пост предназначен для расширения аудитории Erlang программистов. Если до этого вы считали что функциональное программирование не может быть использовано для бытовых целей, то пора расширить ваш кругозор. Этот пост писался при поддержке моего товарища, лично знакомого с создателем данного фреймворка (Эван Миллер) и последнее время фанатеющего от данного языка.

По заверению обоих разработка веб-приложений на базе этого фреймворка ничуть не медленнее разработки на тех же рельсах (Ruby on Rails). А в чем-то даже быстрее. Я с функциональным программированием до этого особо знаком не был, но под давлением товарища решил попробовать. Хочу сказать, что опыт был весьма удачным и у меня получилось создать мой первый веб-сайт быстрее, чем год назад с тем же Ruby on Rails.

Добро пожаловать под кат
Total votes 88: ↑85 and ↓3+82
Comments57

За гранью Хабра (список изданий)

Reading time2 min
Views2.3K
Этот пост воодушевлен и является логическим продолжением недавно размещенного здесь материала «Хабр vs TechCrunch». Сам я с его авторами никак не связан, но выражаю им большую благодарность за то, что поделились своим опытом.

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

После рассылки у меня на руках остался небольшой список изданий, которым я не могу не поделиться с Хабросообществом. Добро пожаловать под кат!



Читать дальше →
Total votes 104: ↑96 and ↓8+88
Comments12

Автоматизируем социальную активность вашего интернет стартапа с помощью ifttt.com

Reading time5 min
Views5.2K

Начнём с описания ifttt.com



ifttt.com — это очень перспективный стартап, который в двух словах: Lets You Hack Together Web Apps, Without Coding Skills. Если детальнее, то это сервис позволяющий пользователям, без погружения в API огромного количества сервисов и каких либо знаний о разработке\языках программирования смешивать и автоматизировать различную активность друг с другом. В начале 2012 года получили посевные инвестиции в размере $1.5M.

В системе всего несколько сущностей, таких как задачи ( это правила ваших триггеров или реакций на внешнее событие), рецепты (это задачи, которые создали другие и поделились со всеми) и каналы ( это то, что с чем можно пытаться смешивать налаживая разные схемы выполнения задач, каждый канал следует привязать к ifttt.com ).

ifttt main screen
Экран задач выглядит так

Читать дальше →
Total votes 80: ↑65 and ↓15+50
Comments32

Хабр vs TechCrunch

Reading time4 min
Views6.6K
Как опубликовать обзор вашего стартапа на TechCrunch? Что круче — Хабр или TechCrunch? Какой он, TechCrunch effect?

image

В конце прошлого года мы запустили проект TradingView, о чем незамедлительно поставили в известность Хабр. Чуть более месяца назад о нас написал TechCrunch. Под катом детальная информация из первых рук о результатах этих экспериментов и ответы вопросы.

Читать дальше →
Total votes 202: ↑177 and ↓25+152
Comments78

Грамотная настройка сервера отправки почты для скриптов PHP, настройка функции mail()

Reading time8 min
Views273K
В этом топике вы узнаете, как грамотно настроить, сервер исходящей почты и в частности функцию mail() в PHP. Сам являюсь жутким педантом. Люблю, что бы везде было все на своих местах, не терплю халтуры. Увидев один раз полную чушь в заголовках письма со своего сервера я разобрался с этим кардинально и безоговорочно. Под грамотной настройкой я подразумеваю такую, которая удовлетворяет потребности спам фильтров крупных почтовых систем, и просто выглядело красиво и осмысленно.

Как известно протокол SMTP не подразумевает никаких средств защиты от спама и аутентификации пользователя, поэтому крупными и не очень компаниями были придуманы «фиксы» безопасности протокола.
Если вы устанавливаете выделенный сервер с доменом размещенным на нем, очень рекомендуется выполнить данные настройки, что бы все было как надо.

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

Название заголовка выбрал именно такое, так как вначале своего пути я искал что-то вроде этого. Настраивать будем postfix, php, dns (ptr, spf), и другое.

Эта статья будет интересная людям, настраивающим выделеные сервера, но не менее интересна для обычных программистов.
К слову данную инструкцию я использую для своих проектов. Системы автоматизированного получения приглашений и получения виз в страны Шенгена: https://goingrus.com/ru, весь софт крутится на виртуальной машине.

Подробности под катом
Читать дальше →
Total votes 97: ↑71 and ↓26+45
Comments73

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity