Search
Write a publication
Pull to refresh
28
0.2
Михаил @Flammar

Java (+Javascript) fullstack developer

Send message

Отладка javascript на мобильных устройствах

Reading time3 min
Views20K
Недавно возникла у меня необходимость создать небольшое html5 приложение для смартфонов.
Почему html5? Все предельно просто: при наличии мобильной версии, сайт можно за пару дней допилить до необходимого состояния или же написать с нуля (что не так важно) и в дальнейшем заниматься поддержкой только одной версии кода, не распыляясь на различные платформы.
Отлаживаем наше приложение в телефоне

Некоторые ошибки при написании регэкспов

Reading time4 min
Views14K
По мотивам переведенной статьи

Впервые я увидел регэкспы еще в школе в перле, и в общем полюбил их с первого взгляда, конечно после того как разобрался что это такое :). И с превеликим энтузиазмом принялся все регэкспить. Конечно, при этом, понабивал себе шишек на мозг, но любить их не перестал. Со временем любая искренняя любовь взрослеет и перерастает в глубокую привязанность, с понимаем того, что объект твоего чувства может быть несовершенным, но от этого не менее любимым.

Итак, несколько способов предохраниться от разочарования в этом мощном и прекрасном инструменте…

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

280 кроказябл или взрывная мощь регулярных выражений

Reading time4 min
Views18K
В общем, наверное, как и другой любой начинающий JavaScript прогрммист (2 года назад), мне хотелось все реализовать своими руками. Так возникло ужасающее очень быстрое регулярное выражение из 280 символов.

Немного истории


Приблизительно полтора года назад, я узнал о библиотеке yass, которая была самым быстрым инструментом для поиска DOM элементов в JavaScript по CSS селекторам (ссылка на тесты).
И тут у меня возник ужасный интерес. Я захотел придумать способ, который будет еще быстрее. В то время я как раз читал книгу «Регулярные выражения Библиотека программиста» второе издание от Дж. Фридла. И вот… Это было лето, я еще был студентом и у меня была масса времени. Работа закипела…
Читать дальше →

Примитивное сравнение производительности search и indexOf в Javascript

Reading time2 min
Views7.1K
Я постоянно встречаю рекомендацию использовать, когда это разумно, обычный поиск вместо регулярных выражений, поскольку последние сильно медленнее. Но никогда не видел насколько медленнее и когда они становятся эффективнее. Но зуд покоя не дает и я решил сравнить их и посмотреть какие циферки можно увидеть в реальности…
Читать дальше →

Мобильная разработка: Какую платформу выбрать начинающему разработчику из стран бывшего СССР

Reading time4 min
Views11K
Многие разработчики хотят иметь дополнительный заработок и если все пойдет нормально, то вообще начать работать самостоятельно. Очень перспективное сейчас направление это мобильная разработка. Я хотел бы рассказать с какими сложностями вы можете столкнуться, когда захотите заработать на своей программе, если вы живете в одной из стран бывшего СССР (я живу в Белоруссии). Для россиян этих трудностей как правило нет, но я думаю им эта информация тоже будет интересна.
Читать дальше →

Литьё по моделям напечатанным на 3D-принтере

Reading time3 min
Views266K

Jeshua Lacock пишет:
Эта страница описывает мою первую и успешную попытку отлить алюминиевые детали напрямую с моделей напечатанных PLA на 3D-принтере. Процесс практически идентичен литью с восковой модели, но вместо выжигания воска я выжигал пластик PLA (био-пластик)
Читать дальше →

Через тернии к Haskell (перевод). 2/2

Reading time18 min
Views46K
Только хардкор, только монады

Функциональное программирование на Javascript

Reading time15 min
Views129K


Краткое содержание:

Возьмем немного функций высшего порядка, добавим частичное применение функций, приправим fold с map-ом и получим Javascript DSL для работы с DOM.

Человеческим языком:
Простое и понятное введение в функциональное программирование на чистом и понятном Javascript.

В отличие от «Через тернии к Haskell» все разжевано (возможно даже слишком) и разложено по полочкам.

Прочтение статьи развоплотит миф о неприменимости ФП в реальной жизни. Вы сможете смотреть на решение одной и той же задачи с разных точек зрения. Прямо как на картинке.

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

Удивительно простой, но красивый CSS-эффект

Reading time4 min
Views67K
Наткнулся на очень простой в реализации, но интересный rollover-эффект для кнопок на CSS. Автор — некий японец ksk1015.



Демонстрация эффекта и процесс написания.
Читать дальше →

В Firefox 16 заработает инкрементальный сборщик мусора

Reading time2 min
Views17K
16-я версия браузера Firefox, релиз которой намечен на 9 октября, содержит серьёзное обновление движка JavaScript. Сборщик мусора перейдёт от стратегии «stop-the-world», когда на время уборки полностью замораживается работа скриптов, к инкрементальной стратегии, когда сборка мусора происходит в несколько этапов. Хотя в целом работа сборщика мусора будет отнимать немного больше времени, отзывчивость браузера существенно улучшится, так как элементы интерфейса, анимация и игры не будут больше подвисать на несколько сотен миллисекунд на время уборки.
Читать дальше →

Лекция №02: MSP430. Города и регистры

Reading time11 min
Views30K
Примечание переводчика: Не так давно, мне пришел заказанный мною LaunchPad. Единственное что мне тогда хотелось, это сразу же начать мигать светодиодиками. Так я столкнулся с первой проблемой — у меня Linux. Почитав про основные IDE для разработки под эту платформу, я понял, что ничего хорошего мне тут не светит. А использовать Energia, просто напросто не позволяла религия. Имею привычку(не знаю, хорошую или нет) не работать с подобными инструментами «повышенной абстракции» пока не изучу подноготную того с чем работаю. Поэтому, Energia быстро отсеялась из возможных вариантов. Осталось только одно — собрать тулчейн gcc-msp430, включающий в себя все необходимое. Ноутбук у меня очень слабый, поэтому собирался этот тулчейн аж полдня. Что никак не радовало меня, так как я уже хотел МИГАТЬ. Когда собрал, столкнулся со следующей сложностью. Очень мало русскоязычной литературы и справки по этому микроконтроллеру. Что-то поспрашивал среди хабровчан, что-то кое-как смог вытащить из примеров кода от TI, но проблема оставалась — я слабо понимал все то что делаю. Продолжалось это ровно до тех пор, пока я не набрел на один замечательный англоязычный блог в котором хоть и на английском языке, но довольно доступно объяснялись все основы. Его я и принялся читать и переводить. Признаюсь честно, перевод я этот писал не столько для хабры, сколько для себя, чтобы на все 100% понять изложенный материал. Сказать что понял все на 100% — немного соврать. Скажу честно — от электроники я далёк, на момент получения лаунчпада я обладал нулевыми знаниями в этой сфере. Поэтому некоторые моменты перевода, могут, наверное, заставить плакать кровавыми слезами более серьезных разработчиков. К примеру — Vcc и Vss или PxREN. Идею я понимаю, но я сомневаюсь что перевел технически грамотно. Тем не менее, переводить я старался так, чтобы было понятно такому же нулю как я. В общем, если что — не обессудьте. Как мог. Кроме того, в переводах есть абзацы которые написаны чисто от себя, чтобы немного более подробно разжевать материал.
Ах да, начал переводить с лекции 02, так как в первой «Вводной» лекции содержится слишком много воды, которой и так море и на просторах хабры, да и вообще интернета. Мы же хотим сразу же работать, а не читать о том, как хорошо поступили TI выпустив дешевые LaunchPad'ы.
Читать дальше →

Транзакции в MongoDB

Reading time5 min
Views57K
image MongoDB — замечательная база данных, которая становится все популярнее в последнее время. Все больше людей с SQL опытом начинают её использовать, и один и первых вопросов, который у них возникает: MongoDB transactions?.

Если поверить ответам со stackoverflow, то все плохо.

MongoDB doesn't support complex multi-document transactions. If that is something you absolutely need it probably isn't a great fit for you.
If transactions are required, perhaps NoSQL is not for you. Time to go back to ACID relational databases.
MongoDB does a lot of things well, but transactions is not one of those things.
Но мы не поверим и реализуем транзакции (ACID*) основанные на MVCC. Ниже будет рассказ о том, как эти транзакции работают, а тем, кому не терпится посмотреть код — добро пожаловать на GitHub (осторожно, java).

Пост не о MongoDB, а о том, как использовать compare-and-set для создания транзакций, а durability обеспчивается ровно в той степени, в которой её обеспечивает хранилище.
Читать дальше →

Все что вы хотели знать об имплантируемых метках, но боялись спросить

Reading time5 min
Views78K
По следам предыдущего топика. В комментариях подняли очень много вопросов, которые заинтересовали и меня в том числе. Постараюсь на них ответить.


Вопрос:

Что, блин, это такое?

Ответ:

Это Rfid-метка, которые используются в пропусках, метро, домофоах и т.д. Только маленькая, и выполненная из стекла, которое не мешает организму.



Вопрос:

Там внутри что-то ядовитое? Радиоактивное? Там капсула с ядом, чтоб убить меня со спутника?

Ответ:

Нет. Нет. Нет. Там просто микросхема, и много-много очень тонкого медного провода, выполняющего роль антенны.



Вопрос:

Какие бывают чипы?
Читать дальше →

Raspberry Pi. Передача видео для дистанционного управления

Reading time6 min
Views111K
Передача видео для дистанционного управления может использоваться во многих проектах связанных с управление различными устройствами. То есть это можно прикрутить к колесной базе, к квадрокоптеру, к телу гуманоидного робота и тд. Raspberry Pi(далее малина) в данном смысле удобна тем что позволяет использовать для этого не какие то специализированные устройства типа FPV, а обычные устройства которые у многих уже имеются в наличии, а так же упрощает и схемы их включения и сложность написания программ для них, не говоря уже о стоимости проектов.



Подключение вебкамеры, wi-fi адаптера. Настройка передачи видеопотока

Новое в CSS3: многоколоночность, flexbox, сеточная разметка

Reading time2 min
Views92K
Веб развивается, появляются все новые возможности разметки страниц для верстальщиков, в том числе в этом помогают новые свойства в CSS. В этой статье я описал некоторые из них: многоколоночность, flexbox и сеточная разметка.

Поддержку новых функций браузерами можно проверить на сайте caniuse.com:



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

Самый богатый айтишник на этой улице

Reading time5 min
Views291K
На одной улице в Бердичеве жили трое портных. У первого была вывеска: “Лучший портной в городе”, у второго — “Лучший портной в мире”, а третий написал: “Лучший портной на этой улице”.

Одно лишь странно повышенное количество статей про рецепты для богатых айтишников не сподвигло меня на написание очередного эпизода в этом хабра-сериале, если бы рецепты оставались в невинно-нейтральном варианте вида “лучше быть богатым, чем больным”. Любой лозунг, любая идея, пусть даже самая расплывчатая, действительно может воодушевить кого-то на размышление, на действие, а там, глядишь, и очередной миллионер появится. Но глядя на все новые и новые “практические” советы, я рискну публично возразить. Дело уже дошло до экономии на покупках в супермаркете и следовании популярным книжкам. Самое время вмешаться: вдруг кому-то удастся избежать ненужных и даже глупых телодвижений.

Вы никогда, НИКОГДА не станете богатым от экономии на покупках в супермаркете!
Сотни миллионов людей в мире экономят как на покупках, так и на самих супермаркетах, не говоря уже о миллионах голодных, “экономящих” на еде вообще. Можно предположить, что достаточно большая часть экономящих людей попадается на удочку относительно больших чисел, получаемых умножением грошей на 20-30-40 лет… без какого-либо положительного финансового эффекта. Причина элементарна: экономический план на десятки лет — это оксюморон. Такой план не учитывает множество факторов, влияние которых весьма значительно и на более короткие сроки, поэтому он может называться мечтой, фантазией, как угодно еще, только не финансовым планом. Кризисы, биржевые скачки, инфляция, изменения в жизни, в работе, в уровне доходов, политической обстановке… да одна только кратковременная флюктуация в курсе валют может мгновенно уничтожить нажитое непосильным трудом (как и наоборот, кстати). Вы не разбогатеете за 20 лет, отказывая себе в шоколадках, или не тратя деньги на сигареты, или “собирая бутылки”. Вернее, не так. Ваш шанс разбогатеть за NN лет совершенно не зависит от ваших сегодняшних действий и еще меньше зависит от мелочей. А все потому, что
Читать дальше →

Разработка простого Eclipse RCP приложения

Reading time9 min
Views70K
В данной статье я хотел рассказать о том, как создавать приложения при помощи Eclipse RCP (Rich Client Platform). Поводом для написания послужил тот факт, что на Хабре абсолютно отсутствуют статьи, описывающие данную платформу. В качестве примера мы создадим пользовательскую форму ввода; корректность данных будет проверяться при помощи JFace Data Binding framework. Для затравки приведу ниже скриншот с тем, что у нас должно получиться.



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

Lockitron: самый умный в мире дверной замок

Reading time2 min
Views65K
Снабжённый WiFi, Bluetooth, NFC и собственной страничкой в интернете, замок Lockitron использует Android- или iOS-совместимый телефон вместо ключа, сообщает хозяину, когда кто-то его открывает или просто стучит в дверь, позволяет открывать и закрывать дверь, находясь за тысячи километров от неё и раздавать цифровые ключи доступа друзьям или сотрудникам, чтобы те могли открыть его своим телефоном.

При этом он соответствует достаточно строгим требованиям отказоустойчивости, обратной совместимости и безопасности — при отсутствии интернета, электричества, Bluetooth, NFC, батареек и телефона его можно открыть обычным ключом. Причём ключ даже можно не менять при установке замка — его можно поставить буквально поверх старого за пару минут.

Как он устроен? Lockitron выглядит как обычный врезной замок с накладной коробкой с внутренней стороны двери. Эта коробка может быть установлена отдельно, при условии механической совместимости ручки старого замка и исполнительного механизма Lockitron. Штатный режим работы — по WiFi (в комплект входит мини-сервер).
В этом режиме доступен максимум функций — дистанционное управление, уведомления, контроль доступа для гостей или родственников. Если подключиться по WiFi не удаётся — отключили электричество или интернет в доме, или недоступен сервер — можно открыть замок, если телефон поддерживает Bluetooth или NFC. Причем можно запрограммировать его так, чтобы он открывался автоматически, как только телефон хозяина появится в зоне видимости сети. То есть войти в дом можно будет, не вынимая телефон из кармана.
Читать дальше →

Каталог сервисов для поиска контактов заказчиков и исполнителей на free-lance.ru

Reading time2 min
Views91K

картинку предоставили free-free-lance.com

Сразу после объявления администрацией free-lance.ru запрета на публикацию контактных данных заказчиков и фрилансеров на сайте, начали появляться проекты, позволяющие обойти этот бредовый запрет. Пока я знаю три таких сайта:

free-lance-contacts.ru — запустился раньше всех, включает в себя базу в 17 тыс. контактов, собранных из открытого доступа в августе. Есть функционал добавления своих контактов, аппрув (чтобы левые люди не выдавали себя за раскрученных фрилансеров) посредством личного сообщения автору проекта на фрилансе.

free-free-lance.com — разработка бывших сотрудников free-lance.ru, есть функционал добавления своих контактов. База пополняется самими фрилансерами. Работает верификация аккаунтов с помощью кодовой фразы, которую выбирает пользователь.

freelancecontacts.net — запустились, сайт пополняется данными фрилансеров после верификации.

freefreelance.ru — не хватает верификации аккаунтов

find-freelancer.pro — отличается наличием открытого каталога фрилансеров, поиск фрилансеров работает по собственной базе и популярным биржам фриланса (например, если контакты пользователя закрыты на free-lance.ru, вы сможете связаться с ним на weblancer — очень удобно).

free-lance-surveys.ru — сервис обмена отзывами и поиска контактов фрилансеров.

Заказчики, работодатели, не проходите мимо! Упростите жизнь фрилансерам и себе. По своему опыт могу сказать, что фрилансеры часто гуглят тех, чьи заказы заинтересовали — поэтому не ленитесь, добавляйте свои контакты в эти базы. Давайте уже дадим понять некоторым любителям грести всё под себя, что опускать железные занавесы на вебе — бесполезно.
Читать дальше →

Information

Rating
4,813-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity