Pull to refresh
0
Sokoloff @Sokoloffread⁠-⁠only

User

Send message

Структуры данных в картинках. ArrayList

Reading time3 min
Views879K
Приветствую вас, хабралюди!

Взбрело мне в голову написать несколько статей, о том как реализованы некоторые структуры данных в Java. Надеюсь, статьи будут полезны визуалам (картинки наше всё), начинающим java-визуалам а также тем кто уже умеет писать new ArrayList(), но слабо представляет что же происходит внутри.



Сегодня поговорим о ArrayList-ах

ArrayList — реализует интерфейс List. Как известно, в Java массивы имеют фиксированную длину, и после того как массив создан, он не может расти или уменьшаться. ArrayList может менять свой размер во время исполнения программы, при этом не обязательно указывать размерность при создании объекта. Элементы ArrayList могут быть абсолютно любых типов в том числе и null.

Поверить на слово
Total votes 89: ↑82 and ↓7+75
Comments66

Raspberry Pi: измеряем влажность и температуру с помощью DHT11/DHT22

Reading time5 min
Views222K
На Хабре уже публиковалась статья о подключении датчика температуры DS18B20 к Raspberry Pi. В нашем новом проекте, который строится на Raspberry Pi, понадобилось измерять не только температуру, но и влажность. Я расскажу, как подключить недорогие китайские датчики влажности к Raspberry Pi. Просмотрев несколько вариантов различных датчиков, остановился на двух наиболее массовых на рынке датчиков. Это DHT11, который привлек своей ценой $3 (с доставкой) и датчик DHT22 (около $10 с доставкой).
Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments33

Пол Грэм: Как найти идею для стартапа (часть четвертая)

Reading time6 min
Views26K

Это четвертая часть, она же заключительная, перевода статьи Пола Грэма, основателя YCombinator — одного из самых успешых стартап акселераторов -, о том, как найти свою идею для стартапа. Первая, вторая и третья части по ссылке.
Так же хочу скромно анонсировать свой небольшой некоммерческий проект — 42Startups.ru,- блог, где вы можете найти другие переведенные с английского языка статьи о стартапах. Лучшие, из тех, что мне попадаются и которые, на мой взгляд, достойны внимания русскоязычной аудитории. Подписывайтесь! А пока продолжим:


Рецепты


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

Остаток эссе я посвящу уловкам, которые помогают найти стартап-идею по требованию.
Читать дальше →
Total votes 36: ↑25 and ↓11+14
Comments10

Пол Грэм: Как найти идею для стартапа (часть третья)

Reading time6 min
Views86K

Продолжение статьи Пола Грема о поиске идеи для стартапа. Первая и вторая части тут. Без лишних слов продолжаем:

Университет


Вместо того, чтобы пытаться научиться «предпринимательству», я бы посоветовал студентам колледжей следующее: предпринимательство — это навык, который лучше всего приобретается «в бою». Примеры самых успешных фаундеров тому доказательство. В колледже стоит тратить время на перемещение себя в будущее. И колледж в этом смысле — бесподобная возможность. Какое упущение, пожертвовать возможностью решить сложную часть задачи запуска стартапа — стать тем типом людей, у которых есть органические идеи, — потратив время на изучение простой части. Особенно, если принять во внимание, что вы даже сильно ничему не научитесь. Не больше того, что можно узнать о сексе, сидя в классе. Все, что вы учите, — слова.
Читать дальше →
Total votes 55: ↑46 and ↓9+37
Comments30

Пол Грэм: Как найти идею для стартапа (часть вторая)

Reading time7 min
Views106K

Данный пост является продолжением первой части перевода одной большой статьи Пола Грэма о том, как найти свою стартап-идею. Это не пошаговая инструкция, а скорее глубокое философское эссе Грема, основанное на его богатом опыте в качестве основателя YCombinator — самом успешном стартап-акселераторе. Продолжаем:

Сознание


Но как определить, есть ли путь «наружу» у идеи? Как понять, является ли это зачатком большой компании или всего лишь продуктом, обреченным на узкую нишу? Часто это не возможно сделать. Фаундеры AirBnb не осознавали в начале, на рынок какого масштаба они покусились. Изначально у них была более узкая идея. Они собирались позволить владельцам сдавать свое пространство во время выставок, конференций. Они не предвидели экспансию этой идеи; она сама себя навязывала постепенно. Все что они знали в начале, что на крючке какая-то рыба. Возможно, это столько же, сколько знали изначально Билл Гейтс и Марк Цукерберг.
Читать дальше →
Total votes 52: ↑42 and ↓10+32
Comments25

Пол Грэм: Как найти идею для стартапа (часть первая)

Reading time5 min
Views188K

Недавно вышла статья Пола Грэма о поиске идеи для стартапа. Грем — сам по себе культовая личность Кремниевой долины и уже только поэтому достоин внимания. Но на мой взгляд, эта статья одна из лучших в своем роде. Да, о Customer Development и Lean Startup сейчас не пишет разве что ленивый, но она отличается глубокой внутренней философией Грема и обобщает его богатый опыт в качестве основателя YCombinator, общающегося с тысячами стартаперов в год.
Статья очень длинная, поэтому я взял на себя смелость разбить ее на 5 частей, дабы никого не утомить. Поехали:


Лучший способ найти идею для стартапа — не думать о ней. Найдите проблему, и лучше — если она есть у вас самого.
Читать дальше →
Total votes 66: ↑60 and ↓6+54
Comments32

Раскрываем магию MySQL или о строгости и мягкости MySQL

Reading time15 min
Views138K
Очень часто в интернете встречаюсь со статьями, в которых приводят кучу примеров с якобы странным поведением MySQL по сравнению с другими БД. Чтобы стало понятно, о чём я говорю, приведу несколько примеров:
1. Деление на ноль возвращает NULL вместо ошибки
2. Выход за диапазон допустимых значений неявно приводит число к допустимому значению, а не к ошибке и откату транзакции
3. Вставка неверного типа данных также приводит к неявному преобразованию и успешному выполнению операции
Таких примеров я могу привести огромное число, но цель статьи не сделать очередное собрание высосанных из пальца примеров, а объяснить, почему происходит то или иное действие. Вся эта мистика MySQL давно описана в документации и легко объяснима, в чём вы сможете убедиться сами, прочитав статью до конца.
Для меня эта первая статья на хабре, поэтому я старался писать дотошно подробно. Уверен, что она будет полезна всем, кто работает с MySQL. Большую помощь в написании статьи оказала подготовка к сдаче на сертификат разработчика MySQL, а точнее книга «MySQL Certification Study Guide».
Итак, мой друг, начнём!
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments13

Светодиодная лента в качестве освещения комнаты

Reading time15 min
Views1.3M
Изначально для основного освещения одной из комнат, где шёл капитальный ремонт, планировалась обычная люстра. Но недавно мне на глаза попалась суперяркая светодиодная лента Ultra 5000 со светодиодами smd 5630 торговой марки Arlight. Решение было принято быстро, окончательно и бесповоротно — хочу такую ленту в качестве основного света в комнате.



О реализации светодиодного периметра освещения далее
Total votes 420: ↑415 and ↓5+410
Comments329

JavaScript: от начала до конца

Reading time6 min
Views189K
TL;DR
Эта обзорная статья. Такое себе "краткое содержание предыдущих серий". Она будет полезна для новичков, или тех, кто не следил за отраслью в последнее время. Для новичков это будет первый шаг во "Вселенную JavaScript", бывалые смогут освежить свои знания.

У JavaScript очень удивительная судьба. Он преодолел путь от самого не понимаемого до самого удивительного языка. У него было тяжелое детство:
Изначально Автор хотел написать функциональный язык. Но менеджеры хотели получить, «обычный» объектно-ориентированный. И чтобы было легко искать разработчиков для новоиспеченного языка синтаксис решили сделать похожим на Java и даже название сделали похожим.
Но на этом история не заканчивается. Java, JavaScript это торговые марки Sun (а теперь Oracle). Microsoft не мог воспользоваться именем JavaScript (Netcape и Sun дружили против Microsoft). В результате Microsoft решил сделать реверс инжиниринг JavaScript и назвал его JScript. Сделали реверс инжиниринг, и сделали его настолько хорошо, что даже содрали все баги в реализации. Позже решили сделать стандарт и назвали его ECMAScript.
Читать дальше →
Total votes 127: ↑114 and ↓13+101
Comments116

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

Reading time3 min
Views59K
В моём прошлом посте про поступление в магистратуру без бакалавриата читатели очень интересовались как перебраться в Европу без диплома.

Итак, мне 26 лет, я веб-разработчик в Берлине и я никогда не учился в университете.
5 составляющих успеха
Total votes 123: ↑109 and ↓14+95
Comments113

Оптимизация размещения купюр в банкоматах

Reading time6 min
Views81K
Внутри у среднего банкомата лежит от 1 до 3 миллионов рублей. Они разложены по 4 кассетам, в каждой из которых – купюры своего номинала. Замена кассет похожа на замену картриджей в принтере: модуль вынимается (и неважно, сколько там осталось денег — инкассаторы этого даже не знают по правилам безопасности), а на его место вставляется другой модуль точно по стрелке, указывающей, какой стороной и как это делать.

Инкассация — дорогая и достаточно рискованная с точки зрения безопасности процедура, поэтому любое обслуживание банкомата обходится довольно дорого. Естественное желание банка – уменьшить количество инкассаций. Получается классическая задача распределения ресурсов: с одной стороны, в банкомате всегда должны быть деньги для клиентов, с другой — в идеале банк хочет, чтобы ровно перед инкассацией из ящика уходила последняя купюра.
Читать дальше →
Total votes 106: ↑101 and ↓5+96
Comments155

Обзор алгоритмов кластеризации числовых пространств данных

Reading time10 min
Views42K
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.

В этой статье приведён краткий обзор методов кластеризации числовых пространств данных. Она будет полезна тем, кто только начинает изучать Data Mining и кластерный анализ и поможет сориентироваться в многообразии современных алгоритмов кластеризации и получить о них общее представление. Статья не претендует на полноту изложения материала, напротив, описание алгоритмов в ней максимально упрощено. Для более подробного изучения того или иного алгоритма рекомендуется использовать научную работу, в которой он был представлен (см. список литературы в конце статьи).
Читать дальше →
Total votes 45: ↑41 and ↓4+37
Comments10

Продуктивная работа с MySQL в командной строке

Reading time3 min
Views39K
Даже если Вы используете GUI-инструменты для работы с MySQL, однажды Вам предстоит столкнуться с командной строкой. Поэтому полезно знать некоторые трюки, которые облегчают работу.

Примечание: эти команды работают только для Unix/Linux.
Читать дальше →
Total votes 109: ↑103 and ↓6+97
Comments18

Разукрашиваем вывод mysql-client в консоли

Reading time4 min
Views30K
Цвет и звук — это те небольшие радости, которые могут разукрасить и облегчить будние администратора при постоянной работе с консолью. Вывод цветовой информации регулируется так называемым escape-последовательностями, определяющими среди прочего цвет текста и цвет фона.

Общий вид: \033[Xm, где X — это значение параметра (цифра). Например, echo -ne "\033[34mHELLO" выведет синим цветом «HELLO». Таблицу цветов и других доступных параметров (подчеркивание, мигание и т.п.) можно получить в документации man console_codes в разделе «ECMA-48 Set Graphics Rendition». Обычно поддержка цвета интегрирована в само приложение, но mysql-client не входит в число таких программ.

В интернете не раз был встречен вопрос о разукрашивании консоли mysql, но нигде не нашлось рецепта. Только общие слова «может быть состряпать обертку» или «посмотрите в исходном коде». Такой вопрос на StackOverflow жил без ответа более 2 лет! «Жил» было специально употреблено в прошедшем времени, потому что ответ нашелся.

Поможет нам утилита grc. Она доступна в большинстве дистрибутивов и о ней многие знают. Но как обернуть в нее вывод mysql-client?


Читать дальше →
Total votes 103: ↑102 and ↓1+101
Comments30

Как работают экспертные системы оптимизации цепочек поставок на практике

Reading time5 min
Views28K

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

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

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

Есть три проблемы:
  • Логистика у нас настолько сложная и разветвлённая, что сейчас над ней работают десятки людей: кто-то занимается распределением майфунов, кто-то раскидывает по магазинам обложки, а производственники просчитывают оптимальные пути сбора комплектующих на заводах со всего мира.
  • При этом хочется сэкономить на логистической схеме: вы подозреваете, что умный анализ всех потоков позволит принять решения, например, о месте открытия нового производства или организации дополнительного склада, что в итоге даст вам выгоду.
  • И при этом ваши люди постоянно ошибаются с отправлениями – а хочется сделать так, чтобы ничего и нигде не забывалось, всё работало как часы и товары приходили на точки вовремя. Это тоже экономия, но уже за счёт своевременности поставок и отсутствия ошибок.
Читать дальше →
Total votes 36: ↑31 and ↓5+26
Comments12

MapReduce 2.0. Какой он современный цифровой слон?

Reading time10 min
Views28K


Если ты ИТшник, то нельзя просто так взять и выйти на работу 2-го января: пересмотреть 3-ий сезон битвы экстрасенсов или запись программы «Гордон» на НТВ (дело умственных способностей вкуса).
Нельзя потому, что у других сотрудников обязательно будут для тебя подарки: у секретарши закончился кофе, у МП — закончились дедлайны, а у администратора баз данных — амнезия память.
Оказалось, что инженеры из команды Hadoop тоже любят побаловать друг друга новогодними сюрпризами.

2008


2 января. Упуская подробное описание эмоционально-психологического состояния лиц, участвующих в описанных ниже событиях, сразу перейду к факту: поставлен таск MAPREDUCE-279 «Map-Reduce 2.0». Оставив шутки про число, обращу внимание, что до 1-ой стабильной версии Hadoop остается чуть менее 4 лет.

За это время проект Hadoop пройдет эволюцию из маленького инновационного снежка, запущенного в 2005, в большой снежный com ком, надвигающийся на ИТ, в 2012.
Ниже мы предпримем попытку разобраться, какое же значение январский таск MAPREDUCE-279 играл (и, уверен, еще сыграет в 2013) в эволюции платформы Hadoop.
...
Total votes 39: ↑33 and ↓6+27
Comments11

Ликбез по типизации в языках программирования

Reading time12 min
Views511K
image

Эта статья содержит необходимый минимум тех вещей, которые просто необходимо знать о типизации, чтобы не называть динамическую типизацию злом, Lisp — бестиповым языком, а C — языком со строгой типизацией.

В полной версии находится подробное описание всех видов типизации, приправленное примерами кода, ссылками на популярные языки программирования и показательными картинками.
Читать дальше →
Total votes 239: ↑232 and ↓7+225
Comments180

Компьютерное преступление: тогда и теперь

Reading time6 min
Views47K
Я уже описывал моё коротенькое юношеское баловство с незаконной стороной информатики в её виде на конец 1980-ых. Но было ли это преступлением? Был ли я настоящим преступником? Не думаю. Говоря начистоту, я не был достаточно одарен, чтобы представлять хоть какую-нибудь угрозу, да и сейчас не представляю.

Есть две классические книги, описывающие деятельность обладавших уникальным талантом хакеров в конце 80-ых, талантом, который поднимал их опасность до признания в качестве криминальной угрозы.
Читать дальше →
Total votes 85: ↑78 and ↓7+71
Comments22

Установка зашифрованной (TrueCrypt) Windows при Ubuntu по умолчанию

Reading time6 min
Views62K
Нужно: поставить на одну машину одновременно Windows и Ubuntu таким образом, чтобы нельзя было посмотреть содержимое Windows, не имея пароля. CD-ROM'а нет, USB Only.
Работа с виртуалкой из под Ubuntu не понравилась по многим причинам, основная — существенные проблемы производительности.
Решено: ставить параллельно 2 операционки (Windows & Ubuntu) таким образом, что по умолчанию грузится Ubuntu, а Windows размещается на загрузочном разделе.
Читать дальше →
Total votes 66: ↑59 and ↓7+52
Comments28

Information

Rating
Does not participate
Location
Украина
Registered
Activity