Search
Write a publication
Pull to refresh
0
Husniddin @husniddinkamolovread⁠-⁠only

User

Send message

Сюрреализм на JavaScript. Советы по разработке на NodeJS

Reading time9 min
Views41K
Привет, Хабра!

Пол года назад я подумал: «А может книгу написать?», и таки написал.



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

Техническая сторона Supl.biz

Reading time3 min
Views16K
Добрый день. Меня зовут Алексей Красноперов и я являюсь основателем и техническим директором проекта Supl.biz — торговой площадки для малого и среднего бизнеса. Хочу рассказать, как устроен проект изнутри.

Общая архитектура проекта


Техническая сторона Supl.biz
Читать дальше →

Атомный реактор в каждый сайт

Reading time9 min
Views23K
Все слышали о том, что PHP создан, чтобы умирать. Так вот, это не совсем правда. Если захотеть — PHP может не умирать, работать асинхронно, и даже поддерживает честную многопоточность. Но не всё сразу, в этот раз поговорим о том, как сделать чтобы он жил долго, и поможет нам в этом атомный реактор!


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

PHP создан, чтобы умирать

Reading time8 min
Views157K
Дисклеймер: у меня за спиной более десяти лет разработки на PHP. Я начал использовать его, когда PHP4 был совсем малышом, а PHP5 — только мечтой компании Zend. С помощью него я сделал многое, я любил его, проклинал и не без стыда наблюдал за тем, как он растёт и развивается. Я всё ещё использую его в некоторых доставшихся по наследству проектах, но предпочитаю больше его не применять. Также хочу отметить, что я не сотрудничаю с создателями фреймворков или инструментов, упомянутых в статье.

TL;DR (англ. too long; didn't read. Так, в частности, говорят, когда лень читать статью целиком — прим. пер.): если ваш проект основан на функциях фоновых процессов (фоновых служб, демонов — прим. пер.), избегайте PHP.

По-моему, в большинстве случаев ненавистники PHP упускают один весьма важный момент: PHP создан, чтобы умирать. Это не значит, что довольно способный (в какой-то степени) язык программирования исчезнет в никуда; это всего лишь означает, что ваш PHP код не может выполняться вечно. В настоящее время, спустя 13 лет после первого официального релиза в 2000 году, эта мысль до сих пор кажется мне вполне обоснованной.
Читать дальше →

API в реальной жизни: Как облегчить задачу создания сайтов для поиска и покупки автозапчастей

Reading time6 min
Views37K
image

В ходе работы над платформой для создания интернет-магазинов автозапчастей abcp.ru мы столкнулись с необходимостью разработки API.

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

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

Как мы делали сервис на WebRTC

Reading time5 min
Views49K


Статей про WebRTC уже достаточно много и в интернетах, и на Хабре (здесь и здесь), повторять их ещё раз не имеет особого смысла, поэтому тут приведем наш личный опыт и впечатления, полученные при разработке live.pics.io.

Идея



Live.pics.io позволяет создавать приватные сессии для совместного просмотра и обсуждения изображений голосом. Это могут быть любые изображения: от фотографий, до макетов дизайна и презентаций. Pазрабатывая pics.io, мы достаточно хорошо научились работать с разными raw форматами в браузере, поэтому можно не заморачиваться с конвертацией и закидывать фотографии сразу после съемки (будут рады владельцы Canon’ов и Nikon’ов, остальные камеры пока требуют конвертации в DNG).

Очень коротко о webRTC


На самом деле, использовать WebRTC — это практически то же самое, что использовать сокеты. Но немного по-другому (совсем чуть-чуть). Нам нужно передавать изображение и звук. Берем RTCPeerConnection для соединения между пирами, MediaStream для трансляции аудио и RTCDataChannel для передачи изображений. Еще, для того, чтобы все это заработало, понадобится небольшой серверсайд для соединения пиров и передачи управляющих инструкций. Но об этом чуть позже.

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

Как я поехал учиться в Сингапур бесплатно

Reading time3 min
Views31K
Привет, я студент совместной программы Национального Университета Сингапура (13 место по версии Times Higher Education) и Университета Иннополис по направлению Информационная и коммуникационная безопасность. В данной заметке хочу рассказать о том, как я попал на эту программу, о моих первых впечатлениях о Сингапуре и обучении там. Если интересно, добро пожаловать под кат [много фото!].


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

Основы Linux от основателя Gentoo. Часть 1 (1/4): BASH, основы навигации

Reading time6 min
Views255K

Предисловие


Об этом руководстве


Добро пожаловать в первую из четырех частей обучающего руководства по основам Linux, разработанного чтобы подготовить вас к сдаче экзамена Linux Professional Institute 101. В нем вы познакомитесь с bash (стандартной оболочкой командного интерпретатора в Linux), узнаете о большинстве возможностей таких стандартных команд Linux, как ls, cp и mv, разберетесь в инодах, жестких и символьных ссылках, и многом другом. К концу этого руководства у вас сформируется некий фундамент знаний, и вы будете готовы к изучению основ администрирования Linux. К концу всего курса (8 частей), у вас будет достаточно навыков, чтобы стать системным администратором Linux и пройти сертификацию LPIC Level 1 от Linux Professional Institute, если конечно захотите.



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


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

7 правил написания программ, которые не умрут вместе с вами

Reading time5 min
Views59K
Ваши программы – это ваше наследие. Решайте сами, как долго оно будет существовать.

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

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

Что можно получить, выдавая хороший код? Разве не имеет права на жизнь подход в обучении под названием «двигайся быстрее, ломая всё на своём пути?» Нет. Обучиться писать код – это навык, это доступно каждому. Обучиться писать хороший код – это искусство. Это требует усилий, времени и целеустремлённости.
Читать дальше →

О бесполезности геймификации в обучении

Reading time4 min
Views43K


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

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

От редакции блога: в посте отражено мнение о геймификации, отличающееся от широко распространённого.
Читать дальше →

Триггеры в MySQL

Reading time2 min
Views304K
Триггер — это хранимая процедура, которая не вызывается непосредственно, а исполняется при наступлении определенного события ( вставка, удаление, обновление строки ).
Поддержка триггеров в MySQL началась с версии 5.0.2
Читать дальше →

Обучение программированию. Точка зрения преподавателя и его же советы

Reading time8 min
Views11K

Сначала пару слов о себе


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

Всё время делал какие-то программы, облегчающие жизнь мне и моим коллегам. В первую очередь на C++Builder (замечу, что пользовался лицензионной версией). Некоторые из программ, типа программного комплекса по анализу качества работы базовой подсистемы 2G и 3G, используется до сих пор (PHP+JS, «фишка» там больше не в программировании, а в использовании множества алгоритмов для поиска проблемных элементов), хотя на момент написания этой статьи я уже 2 года как не работаю в сотовой связи.
Читать дальше →

Философия программирования — трёхнаправленное программирование

Reading time11 min
Views105K
Программирование рассматривается как процесс создания компьютерных программ. Слово процесс в этом определении не лишнее. Обычно рассуждают в духе «посмотрите, какую замечательную структуру данных можно описать на данном языке программирования». Философия программирования подразумевает оглянуться по сторонам, да и в глубь копнуть.

Собственно разделение на кодирование, и создание алгоритмов это уже специфика, сначала идёт жизнь, то есть человек опирается на некую мысль вроде «напишу-ка я фреймворк с такими-то свойствами». И вот это начальное направление это вопрос философии. Проблема в том, что часто жена программиста лучше его самого знает, на философском уровне, что он делает и почему. Элементарные философские категории: мышление, сознание, обусловленность программисту неведомы. И это странно, если сравнить способность программиста мыслить, например, читая статьи по функциональному программированию или алгоритмам поиска, вперемешку со статьями видных русских или европейских философов, окажется, что собственно навык мышления у программистов развит не меньше, а то и больше. Вот только язык программиста очень богат пока он рассуждает о паттерн-матчинге и жалок и органичен когда ему надо выйти из своей песочницы, оторваться от IDE и файлового менеджера.
Читать дальше →

Философия программирования 4 — Технология «Шапито»

Reading time8 min
Views30K
Представьте себе конвейер с программистами: сели люди за одним круглым столом, один огромный монитор во всю стену, и у каждого ещё свой обычный.

Первый: тоном капитана звездолёта, — нужна функция connectToDB() в главном файле.
Второй: — открываю — открывает нужный файл, находит функцию.
Первый: — что здесь происходит?
Третий: — запускаю — ставит брейкпойнт, запускает приложение, в момент останова произносит: — dbinstance в порядке — выводит значение на экран --, remotePort равен 8999, — это значение тоже видно на экране.
Первый: — странно, надо бы профилировать этот вызов.
Третий: — ок — диктует четвёртому — новая строка 123 console.time(), 125 console.timeEnd()
Четвёртый: набирает, — готово.
Читать дальше →

Собрание ваших сочинений на Angular.js

Reading time4 min
Views20K
Данный пост будет посвящён вопросу сборки Angularjs приложений. Я рассмотрю возможные пути решения и объясню, почему в итоге решил написать несколько собственных плагинов.

Итак, а как вообще принятно решать проблему сборки в последнее время? Grunt/Gulp плагины, require.js, browserify — самые популярные варианты.

Но есть нюанс. Когда вы имеете дело с Angular-приложением, вы сталкиваетесь с необходимостью декларирования зависимостей между модулями для их правильной сборки. Поясню на примере.

Если у вас простейшее приложение, которое состоит из нескольких файлов:

app.js
controllers.js
services.js
directives.js
filters.js

То никаких проблем нет. Вы можете вручную прописать порядок их подключения в том же Grunt/Gulp.

Но, допустим, если вы захотите реализовать такую архитектуру, при которой каждый отдельный сервис, контроллер, директива и т. д. находятся в отдельных файлах, то есть:

app.js
controllers/
	FirstCtrl.js
	SecondCtrl.js
services/
	FirstSrv.js
	SecondSrv.js

То вы столкнётесь с рядом трудностей. Главным образом, трудности будут с тем, как сшить все файлы так, чтобы при этом Angular работала без ошибок. Итак, что можно сделать?
Читать дальше →

Валидация динамически добавлемых полей в Yii

Reading time2 min
Views16K
Все началось с новой работы, на которой пришлось отказать от Zend и перейти на Yii. При создании личного кабинета для сайта потребовались динамическое добавление полей в форме. После ковыряния в интернете пришло такое решение. Поехали:
Читать дальше →

Go-дайджест: июнь 2014

Reading time3 min
Views12K
image

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

Новости

  • Вышел Go 1.3 — Версия 1.3 была выпущена 18 июня, спустя шесть месяцев после версии 1.2, и она не содержит изменений в языке. Основная работа была произведена над реализацией, что обеспечило точную сборку мусора, рефакторинг тулчейна, результатом которого стала более быстрая сборка, особенно больших проектов, и значительное улучшение производительности. Прочитать о новом релизе подробнее можно здесь [ru], и еще подробнее — на официальном сайте [en] и в коротком обзоре [en].
  • Поддержка Android в Go 1.4 [en] — Скорее всего, в новой версии языка появится поддержка Android, причем биндинги для OpenGL и Java позволят писать игры на Go и использовать свой код на мобильной платформе.
  • Dropbox отдали в open source свои библиотеки для Go [en] — Как стало известно, хотя в Dropbox и продолжают разрабатывать большую часть функционала на Python, но критические для производительности компоненты уже мигрировали на Go. В связи с чем компания написала несколько своих «велосипедов», которые многим будут полезны. Выложенные компоненты предназначены для работы с кэшированием и Memcache, построением SQL-запросов, улучшенным выводом ошибок и улучшенным алгоритмом хэширования.
  • Состоялась встреча Golang Moscow — Видеозаписи докладов с московской встречи гоферов, состоявшейся 21 июня, можно посмотреть по ссылке.
  • На прошедшей Google I/O 2014 было несколько докладов про Golang — И их записи будут доступны в виде скринкастов несколько позже.
  • Cayley, открытая графовая база данных от Google, написанная на Go — Работает как надстройка над LevelDB или MongoDB. Есть обзор и видео.
  • juju — Крутой DevOps-инструмент для управления облаками от Ubuntu — теперь и на Github.
  • Релиз beego 1.3 — Новый релиз фреймворка для быстрой разработки веб-приложений и API на Go
  • Релиз отличного менеджера зависимостей gpm v1.2.3

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

MongoDB для разработчиков

Reading time3 min
Views38K
Всемирно известная компания 10gen, разрабатывающая опенсорсную базу данных MongoDB, представляет уникальный курс по MongoDB для разработчиков. Вы научитесь всему необходимому для создания вашего приложения на основе MongoDB. Курс позволит вам овладеть навыками установки, работы с JSON, созданием схем, запросов, сохранения данных, индексации и работы с языковыми драйверами. В процессе курса вы будете строить платформу для блога, основанного на MongoDB.
Shut up, and take my money!

Язык Go для начинающих

Reading time9 min
Views504K
Gopher

Цель этой статьи — рассказать о языке программирования Go (Golang) тем разработчикам, которые смотрят в сторону этого языка, но еще не решились взяться за его изучение. Рассказ будет вестись на примере реального приложения, которое представляет из себя RESTful API веб-сервис.
Читать дальше →

Еще один дайджест (теперь Go)

Reading time4 min
Views19K
image Привет всем фанатам и интересующимся Go. Это 6-й выпуск дайджеста ссылок и новостей о набирающем популярность языке. Не сочтите за наглую попытку пропиарить ресурс, на котором я регулярно публикую новости все о том же Go. Все последующие выпуски «тулзовин и хреновин» будут публиковаться именно на 4gophers.com. Кроме того, по просьбам трудящихся, теперь есть подписка на рассылку.

Тема этого выпуска — GopherCon 2014. Это самая большая Go-конференция в этом году. Возможно, кто-то из читателей лично присутствовал и может рассказать о своих впечатлениях. Все найденные в сети доклады и материалы я стараюсь собрать в этом посте.

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

Information

Rating
Does not participate
Location
Ташкент, Ташкентская обл., Узбекистан
Date of birth
Registered
Activity