Рубрика «Программирование» - 928

Забудьте о глобальности (часть 1)Почему масштабный запуск продукта практически не работает? Как искать первых клиентов стартапа и стоит ли это делать? Нужно ли стремиться завоевать мир на ранней стадии стартапа? Мы подготовили перевод нового эссе Пола Грэма «Do Things that Don’t Scale», которое посвящено заблуждениям основателей стартапов на начальном этапе.

Пришедшим в Y Combinator мы чаще всего советуем не думать о масштабировании. Многие будущие основатели компаний считают, что стартапы либо сразу становятся успешными, либо не добиваются успеха никогда. Нужно создать новый продукт, предложить его на рынке, а дальше всё как обещал Эмерсон: если вам удалось усовершенствовать мышеловку, то люди сами найдут дорогу к вашему дому. А если не найдут, значит, рынок для вашей продукции не существует.1

На самом деле стартап взлетает, если основатели заставляют его взлететь. Исключения бывают, но очень редко. Обычно «разгонять» компанию приходится самостоятельно — совсем как машину до появления электрического стартера. Для запуска двигателя в те времена приходилось крутить железную рукоятку. Когда завёлся, всё в порядке, но если хочешь ехать — сначала покрути!
Читать полностью »

В своей работе мне постоянно приходится копипастить большое количество однотипного кода связанного с разметкой, валидацией, форматированием и т.д. большого количества полей из СУБД. Давно хотелось как то автоматизировать эту задачу.

Генерация повторяющихся блоков кода с помощью плагина для Sublime Text 2

Читать полностью »

День добрый, читатели!

Здесь недавно жаловались, что тема “промышленного программирования” раскрыта недостаточно. Попытаюсь это исправить.
Для наглядности разберем как написать классическую змейку для контроллера семейства Siemens s7-300.

image

Если стало интересно – добро пожаловать под кат.
Внимание – картинки и много кода на подобном ассемблеру языке!
Читать полностью »

Привет хабрахабр!

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

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

Читать полностью »

С момента выхода стандарта С++11 прошло уже больше двух лет. И большинство С++ разработчиков уже знакомы с основными его нововведениями и костылями. Одним из нововведений было добавление в стандартную библиотеку класса std::function.

Классы std::function и boost::function являются высокоуровневыми обертками над функциями и функциональными объектами. Объекты таких классов позволяют хранить и вызывать функции и функторы с заданной сигнатурой, что бывает удобно, например, при создании callback вызовов (например, мы можем регистрировать несколько обработчиков, и это могут быть как обычные функции, так и объекты с определенным оператором =)

©

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

  1. При создании объекта std::function вызывается оператор new, как следствие того, что std::function позволяет сохранять в себя функтор произвольного размера.
  2. std::function имеет семантику копирования, которая, в принципе, редко когда бывает необходима в при действиях с функторами (в связи с появлением move-семантики), но стоит определенных ресурсов CPU.

Как от этого избавиться?
Читать полностью »

Доброго времени чтения, уважаемые участники habrahabr.ru

Не так давно я представил девятиуровневую модель взаимодействия открытых систем ( http://habrahabr.ru/post/176391/ ).

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

Android google maps: создаем infowindow любой формы
Недавно мне понадобилось сделать infowindow для карт google, в котором бэкграунд задавался картинкой, соответственно форма тоже. Сначала я подумал, что придется использовать какие-либо сторонние библиотеки, но делать это не совсем хотелось, поэтому я решил попробовать выполнить задачу стандартными средствами. Как оказалось решается она довольно просто.
Читать полностью »

У программистов есть дети. В этом плане статистика непоколебима.
И эта статья будет интересна как раз тем, у кого есть ребенок в возрасте 5-~9 лет, тем кто уже задумывается или уже задумывался над вопросом как посвятить ребенка в азы программирования.

image
Читать полностью »

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

Ущербный — имеющий изъян, неполноценный. Вредный, недостаточный.

Наследование

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

Читать полностью »

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

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js