Pull to refresh
1
0

User

Send message

Не заставляйте (не)равенства в JavaScript выглядеть хуже, чем они есть

Reading time3 min
Views27K
Время от времени я встречаю публикации, где рассказывается о том, какие из значений оператора == эквивалентны (как, например, здесь). Часто при этом оговаривается, что приведённые в таблице данные не очень хорошо организованы.

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



Кошмар, товарищи!.. Как по мне, так здесь бóльший беспорядок в очерёдности строк/столбцов.
Читать дальше →
Total votes 72: ↑65 and ↓7+58
Comments67

Анализ и визуализация реальных табличных данных в R

Reading time13 min
Views26K
Материал будет полезен тем, кто осваивает язык R в качестве инструмента анализа табличных данных и хочет увидеть сквозной пример реализации основных шагов обработки.
Ниже демонстрируется загрузка данных из csv-файлов, разбор текстовых строк с элементами очистки данных, агрегация данных по аналитическим измерениям и построение диаграмм.
В примере активно используется функциональность пакетов data.table, reshape2, stringdist и ggplot2.

В качестве «реальных данных» взята информация о выданных разрешениях на осуществление деятельности по перевозке пассажиров и багажа легковым такси в Москве. Данные предоставлены в общее пользование Департаментом транспорта и развития дорожно-транспортной инфраструктуры города Москвы. Страница набора данных data.mos.ru/datasets/655
Исходные данные имеют следующий формат:
ROWNUM;VEHICLE_NUM;FULL_NAME;BLANK_NUM;VEHICLE_BRAND_MODEL;INN;OGRN
1;"А248УЕ197";"ООО «ТАКСИ-АВТОЛАЙН»";"017263";"FORD FOCUS";"7734653292";"1117746207578"
2;"А249УЕ197";"ООО «ТАКСИ-АВТОЛАЙН»";"017264";"FORD FOCUS";"7734653292";"1117746207578"
3;"А245УЕ197";"ООО «ТАКСИ-АВТОЛАЙН»";"017265";"FORD FOCUS";"7734653292";"1117746207578"
```

1. Загрузка первичных данных
Данные можно загружать непосредственно с сайта. В процессе загрузки сразу переименуем колонки удобным образом.
url <- "http://data.mos.ru/datasets/download/655"
colnames = c("RowNumber", "RegPlate", "LegalName", "DocNum", "Car", "INN", "OGRN", "Void")
rawdata <- read.table(url, header = TRUE, sep = ";",
             colClasses = c("numeric", rep("character",6), NA),
             col.names = colnames,
             strip.white = TRUE,
             blank.lines.skip = TRUE,
             stringsAsFactors = FALSE,
             encoding = "UTF-8")
Теперь можно приступать к анализу и визуализации…
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments0

Как начать учитывать коммунальные услуги с комфортом

Reading time3 min
Views37K
Я никогда не считал себя дисциплинированным человеком в вопросах, связанных с учетом коммунальных услуг: показания счетчиков снимал нерегулярно, оплату по квитанциям каждый раз откладывал на потом, которое наступало месяца через 3-4. Из-за этого приходилось переплачивать, т.к. начислялись различные пенни, да и сложно было перепроверить управляющую компанию, а правильно ли они начисляют. Периодические попытки начать учитывать показания счетчиков и платежей по ним подручными средствами ни к чему не приводили: листки с записями показаний терялись, excel-файл забывал заполнять. А тут еще в ноябре прошлого года наша УК учудила и прислала мне и другим жильцам нашего дома квитанции с непонятно большими суммами на оплату по отоплению, просто перестав учитывать показания счетчиков тепла, объясняя это большими теплопотерями дома и совершенно не прозрачными формулами расчета, по которым даже у них самих «дебет с кредитом не сходился».

Жильцы нашего дома, в том числе и я, сильно возмутились такому хамскому отношению и, в страстном порыве восстановить справедливость, начали объединяться в ТСЖ, я же задумался об удобном способе учета показаний счетчиков со всевозможными анализами данных, отчетами, напоминалками, а также обмене полезной информацией со своими соседями.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments39

Модификация стоковых прошивок для Android. Часть 1

Reading time9 min
Views288K
Здравствуй Хабр!

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

Каково же было мое разочарование, когда я приобрел телефон из поднебесной, где заводскими настройками было запрещено использование Google, Skype, Facebook и других приложений. В принципе, на некоторые вещи можно было закрыть глаза, но когда мой телефон не подразумевал использование учетной записи Google — я взял с себя обещания обязательно разобраться во что бы мне это не стало.

Прошло пол года и мои кастомные прошивки с успехом используются по всему миру.

В данной серии статей пойдет речь о том, как делать reverse программирование для Android, реализовывать патчи, твики и моды.
Читать дальше →
Total votes 93: ↑87 and ↓6+81
Comments31

Устанавливаем Linux-программы на смартфон под управлением Android

Reading time11 min
Views179K


Многие владельцы Android-фонов испытывают трудности с запуском настоящего Linux-софта на своих девайсах. По всем законам он вроде должен здесь работать, да вот только для его установки почему-то нужны права root, сам он распространяется в каких-то самодельных инсталляторах, а выбор программ сильно ограничен. Эта статья предложит ответ на вопрос, почему так получилось, и подскажет решение — удобный способ установки и запуска почти любого Linux-софта в Android.
Подробности
Total votes 110: ↑93 and ↓17+76
Comments41

Модификация стоковых прошивок для Android. Часть 4

Reading time21 min
Views50K
Здравствуй Хабр!

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

На прошлых скриншотах были следующие меню в моем самодельном твикере и вызвало множество приватных вопросов о реализации.

Предпочтительный слот
Выберите SIM карту на которой использовать передачу данных
Уведомление о соединении
Запретить оповещение об интернет подключении
Автоматическая запись звонков
Все звонки будут записаны стандартным диктофоном согласно его настройкам
Запретить энергосбережение
Запретить иконку энергосбережения в слайдере и статус баре
Запретить выключатели
Отключение в слайдере статус бара
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments14

Запрет запуска копии стороннего приложения

Reading time4 min
Views26K
Робот сжигающий копии блокнотаМногие программисты программного обеспечения сталкивались с задачей запрета запуска копий приложения. Это делается с различными целями и зависит от ситуации. Существует даже отдельный термин для решения данной задачи — Mutex.

Также данная задача иногда возникает перед системными администраторами с тем отличием, что приложение стороннее (разработано другой организацией). Эта статья описывает относительно простой способ решения проблемы запрета запуска копий стороннего приложения.
Читать дальше →
Total votes 19: ↑11 and ↓8+3
Comments24

Как научить сканеры сканировать молча по кнопкам без окон и костылей?

Reading time6 min
Views144K
Как заставить сканеры вообще (речь пойдет про Canoscan LIDE 210) молчаливо по кнопке сканировать файл с нужными параметрами в требуемую папку?

image


По-моему, это самая распространенная задача и для ее решения производитель нам дает самые нераспространенные решения.
В следующих версиях производители ну наверняка добавят в свой софт что-то вроде «отправить скан в facebook» или «поделиться в Twitter» но чтобы сделать тихий режим, настроить раз и сканировать без каких либо окон… до этого мы не доживем.

В конце статьи готовая утилита, позволяющая производить сканирование с любой кнопки любого сканера в любую папку без какого либо проявления на экране. А теперь начнем с того, каким же образом это удалось реализовать…
Сканировать
Total votes 45: ↑36 and ↓9+27
Comments45

Приветствуем Mozilla Location Service

Reading time1 min
Views14K
Сегодня в блоге Mozilla появилась новость о запуске пилотного проекта Mozilla Location Service, цель которого — обеспечение геолокации с помощью WiFi и базовых станций сотовых операторов.
image

Хотя уже существуют подобные коммерческие решения вроде геолокации от Гугла, нет ни одного действительно крупномасштабного и при этом открытого сервиса. Именно это и собрались исправить в Mozilla foundation.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments17

Тестирование инсталляторов: Автоматизируем вход в Windows

Reading time2 min
Views8K
Допустим, мы выбрали удовлетворяющий нас инструмент(и тут я имею в виду не только ту штуку из прошлой статьи, но и вменяемые инструменты навроде TFS etc), даже заставили его делать какую-то часть работы за нас. Мы смогли автоматизировать установку продукта и вот уже казалось, что счастье, оно — вот, протяни руку и… обнаружь, что на последнем этапе инсталляции нам необходимо пережить перезагрузку системы. А может быть даже в последствии загрузиться под ограниченной учетной\доменной\прочей записью. А если не повезло настолько, что Ваш продукт — изменяет msgina.dll, то… да-да, я имею в виду, что нам надо влезть под winlogon и автоматизировать вход учетной записи.
идти глубже
Total votes 13: ↑9 and ↓4+5
Comments2

Материалы летней школы по биоинформатике

Reading time9 min
Views37K
Этим летом в Москве прошла первая летняя школа по биоинформатике. В ней приняло участие более 100 человек, которые приехали из различных уголков России и СНГ и были разделены на два потока: «информатики» и «биологи». Организовал мероприятие Институт биоинформатики в сотрудничестве с СПбАУ РАН, МГУ, ИППИ РАН и программой GameChangers.

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

Если вы впервые слышите про биоинформатику, то советую в первую очередь посмотреть вводную лекцию Аллы Лапидус, которая расставит всё на свои места. Сейчас Алла занимает ведущие позиции в центре геномной биоинформатики СПбГУ и в лаборатории алгоритмической биологии СПбАУ РАН, а ранее долгое время руководила геномными проектами в DOE Joint Genome Institute (Калифорния).



Под катом можно посмотреть список всех прошедших лекций, включая их краткие описания, которые помогут вам сориентироваться, а также полные видеозаписи на русском.
Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments4

Танцующий Бендер на CSS3

Reading time1 min
Views38K
Хабр, я понимаю, что сегодня еще далеко не пятница — но увиденное при себе держать нет сил.

Танцующий Бендер Родригес на чистом CSS3

image

Создан или вручную, или при помощи Sencha Animator.

Для всех, кому понравится: вот более сложные примеры того, что может быть сделано при помощи CSS3 (и рассказ о них с концеренции CSSConf.eu).
Total votes 86: ↑71 and ↓15+56
Comments29

Как я выбирал СЭД — о чем молчат вендоры

Reading time10 min
Views161K
Недавно хорошие знакомые попросили помочь им выбрать систему документооборота со словами «ну ты же занимаешься этой всякой автоматизацией».

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

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

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

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

Этим мы сейчас и займёмся. Копнём на полную глубину и посмотрим, почему так происходит и как в таких условиях вести себя покупателю, чтобы таки увидеть то, что скрыто.
Поехали?
Total votes 35: ↑32 and ↓3+29
Comments56

Хотите распределить элементы, привязавшись к их количеству, на одних стилях? Да запросто

Reading time3 min
Views24K
Альтернативное название статьи – «почти :child-count(n)». Потому что именно так оно все и работает. На голом CSS и без каких-либо дата-атрибутов или чего-либо еще в верстке.

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

Конечно же, если у вас четыре элемента, а третий вы сделали во всю ширину – последний будет свешиваться в конце. Поэтому нужно применять такую красивую и бесполезную вещь только в том случае, если количество элементов кратно трем. А если их нечетное число(но не кратное трем) — нужно делать, например, последний элемент во всю шинину.
Вот так, например:



Как же это сделать?
Total votes 51: ↑43 and ↓8+35
Comments19

I2P: Прозрачный доступ из любого браузера

Reading time2 min
Views374K


В последнее время, количество новостей связанных с блокировками зашкаливает.

Но куда уходить людям?

Что бы был доступ к информации, свобода слова и соблюдались хотя бы те правила, которые есть в конституции?

Mesh сети не подходят, Tor — тоже не может обеспечить требуемого, остается I2P.

Сегодня мы поговорим как настроить прозрачный доступ в I2P, с помощью которого каждая домохозяйка сможет открыть любой сайт в этой сети.
Читать дальше →
Total votes 129: ↑115 and ↓14+101
Comments174

Быстрые треки на google maps

Reading time11 min
Views32K
Я работаю над визуализацией парапланерных соревнований — пишу плеер просмотра гонки для Airtribune.com. В процессе работы мне попадаются интересные и нестандартные задачи. Одна из них — задача быстрой отрисовки маркеров и треков на карте google maps.

Масштабы такие: есть ~200 трекеров в довольно ограниченной области (50x50км), каждый передает данные о своем положении раз в 10 секунд. Нужно их все отрисовать на карте и плавно перемещать при изменении координат. За каждым маркером должен отрисовываться трек. Картинка примерно следующая:



Скоро обнаружилось, что встроенные объекты — google.maps.Marker и google.maps.Polyline — для данной задачи работают слишком медленно. Была куча идей по оптимизации, и в результате получилось решение на canvas-е, которое работает со скоростью 40fps даже на тысяче маркеров. Впрочем, fps вы можете померить сами — я собрал тестовое приложение для сравнения 4-х движков, в котором на лету можно подключать разные фишки и смотреть на скорость работы.

Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments13

Как Сбербанк распространяет ваши личные данные

Reading time1 min
Views173K
Я дал знакомому номер моей карты, чтобы он мог перевести мне деньги.
Знакомый сделал перевод и получил квитанцию.
В его квитанции оказались указаны мои паспортные данные (см. скан квитанции под катом).

Я сообщил о проблеме на странице www.facebook.com/sberbank, получил рекомендацию написать на адрес zabota@sberbank.ru

17 сентября я отправил на этот адрес описание истории и вопрос:

«Сообщите пожалуйста, почему и как в квитанции оказались мои паспортные данные и, таким образом, произошла передача моих персональных данных третьему лицу?»

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

Я считаю, что важно, чтобы максимальное количество клиентов Сбера узнало о том, как банк относится к их личным данным.

UPDATE — NB: А в Альфа-клике Альфа-Банка оказывается можно узнать ФИО и номер счёта клиента, зная лишь имейл или телефон (откройте печатную форму после перевода). Гуляй, Рассея!

UPDATE — Сбербанк:Сотрудник банка сообщил, что это и ошибка оператора и ошибка в софте:
beskov, как и обещал, возвращаюсь с результатами. Уже сейчас можно сказать, что Ваш отзыв оказался очень полезным для Сбербанка. В результате тщательного анализа этого случая нам удалось выявить не только ошибку операциониста, но и дефект ПО, устранение которого позволит предотвратить возможность возникновения таких случаев. Поэтому позвольте еще раз поблагодарить Вас за сигнал.


Читать дальше →
Total votes 281: ↑266 and ↓15+251
Comments271

Увидеть невидимое, или немного о секретах mail.ru

Reading time5 min
Views152K
Всем привет :)
В этой теме я предлагаю поговорить о скрытых возможностях сайтов.
Не о «пасхальных яйцах» — сюрпризах и секретах, которые разработчики оставляют для особо дотошных и любопытных пользователей, а о тех тех возможностях, появление которых разработчики не планировали и о существовании которых они не всегда знают. Думаю, такие возможности есть на всех больших сайтах с давней историей. Пример такой возможности на хабре — удаление поста в песочнице, при отзыве инвайта. Об этом говорили здесь. Но на хабре я недавно, и знаю о нём совсем немного. В этом посте пойдёт речь о другой большой социальной сети — mail.ru.

Сама идея поста появилась после того, как на глаза попалось последнее издание известной книги «Новейшая энциклопедия. Компьютер и Интернет», в которой автор как о малоизвестном факте рассказывает о наличии нескольких доменов на сайте mail.ru. Но если не все знают о существовании на mail.ru нескольких доменов, хотя возможность выбора домена предлагается при регистрации аккаунта, а затем каждый раз при авторизации, то о других особенностях сайта и вовсе мало кто догадывается. В этом посте пойдёт разговор о вещах, знание которых определяется не так наблюдательностью и заинтересованностью пользователя, как временем и опытом нахождения на сайте. Какие-то из них более-менее очевидны, о других догадаться сложно и заметить их можно только случайно.
Первая часть поста посвящена информации, которую майл предоставляет о своих пользователях.
Читать дальше →
Total votes 28: ↑14 and ↓140
Comments0

История открытых данных и Хакатон Яндекса

Reading time14 min
Views17K
14 — 15 сентября в Москве пройдёт первый Хакатон Яндекса, участники которого будут два дня и две ночи создавать проекты на основе открытых государственных данных с помощью технологий Яндекса.

Я уже много лет занимаюсь тем, чтобы у российских разработчиков рос интерес к работе с открытыми данными. Именно для этого создан конкурс Apps4Russia, организованный некоммерческим партнерством «Информационная культура». В этом году в нем появилась номинация для тех, кто создает приложения на отрытых данных и технологиях Яндекса. Эти события подтолкнули систематизированно рассказать здесь об истории открытых данных, их источниках, примерах использования и многих других важных вещах.

image

Это график из ЖЖ eugenyboger. То, что сейчас мы можем узнать подробные результаты выборов по каждому участку, — это норма, а еще совсем недавно это было не так даже в очень развитых странах.
Читать дальше →
Total votes 68: ↑65 and ↓3+62
Comments9

Домашний сервер на Windows 8 Pro

Reading time12 min
Views161K
Приветствую!

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

В один из чудесных осенних дней меня тоже посетила эта мысль. Дело в том, в доме «развелось» слишком много устройств, которые захотелось объединить во что-то структурированное. Было принято решение поднять домашний сервер. В качестве ОС сначала хотелось использовать Windows Server 2012 Essentials, в состав которого вошли такие продукты, как Windows Home Server и Windows Small Business Server, но после нескольких часов работы с ней я понял, что использовать Windows Server 2012 в домашних условиях слишком «жирно». Тогда я решил использовать ОС попроще, а именно Windows 8 Pro, лицензия на которую лежала без дела.

Предупреждение. Я прекрасно понимаю, что поднять домашний сервер на Unix-подобных ОС, возможно, было бы и проще, но в данном материале я хочу рассказать, как поднять такой сервер на клиентской ОС Windows 8 Профессиональная обычному пользователю ПК (ну, или почти обычному), который никогда не имел опыта общения с Unix.
Вот моя история...
Total votes 86: ↑53 and ↓33+20
Comments78

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity