В метро по дороге в мегу я придумал как быстро в голове переводить (разумно) любое двоичное число в десятичное, если его диктуют по поразрядно, начиная со старшего, разумеется никуда не записывая и не подглядывая.
Например 101100.
Delivering things – from code to product
В метро по дороге в мегу я придумал как быстро в голове переводить (разумно) любое двоичное число в десятичное, если его диктуют по поразрядно, начиная со старшего, разумеется никуда не записывая и не подглядывая.
Например 101100.
Так получилось, что очень давно не писал в блог. Количество задач которые нужно решить требуют значительно больше времени чем есть в сутках.
Если очень коротко - год прошёл под символом startup.
Год для меня выдался решающим во многих вещах. Поменялось мировозрение, понятия. В целом он прошёл под знаком стартапа. Кажется теперь я вижу на много больше чем раньше - стоило всего лишь убрать рамки, но это не самая простая задача. Требуется пересмотреть машинальное поведение, долгое время навязываемое окружением - оно еще долго будет приследовать меня, ровно как и кривые взгляды людей, которые не привыкли видеть не машинальную реакцию. Иначе: стараюсь перейти из группы имитаторов, коих 95% в группу инициаторов, которых всего 5%. Эти простые истины открыла для меня книга "Психология влияния".
Несомненно, очень большой отпечаток оставили семинары бизнес-инкубатора "Ингрия", поездка на форум Селигер, а так же анализ поведения одногрупников(сложно поверить, но мотивирует).
Кстати о мотивации - со временем получается превращать негативные факторы в мотивирующие. Я осознаю, что это само-программирование(ы, я ж программист:)), но так проще выполнять задачи. Это неизбежно - если есть какая-то цель и желание её реализовать, то это желание как правило, сконцентрированно на какой то ее части, остальное же приходится делать "через силу".
Научился надеюсь понимать, когда я не могу сделать из-за причин, мало от меня зависящих или от нежелания покинуть зону комфорта. Весь год бьюсь чтоб не попадать туда, одногрупники показали как это опасно и туда засасывает :)
В этом году количество новых контактов, интересных знакомств просто зашкаливает! Я чувствую, что мне это действительно нравится. Наконец-то я увидел, что есть другие люди, которые хотят и развиваются. У которых есть Цели в жизни(в том числе и не материальные). Их очень очень мало, и они концентрируются вместе. На примере ивентов - практически одни и те же лица посещают мероприятия. Так мы и познакомились с Виктором(проект HappyPartner).
Что касается селигера...............
Ах да, еще есть университет. Там я даже учился - за весенний семестр все 5, но додумался не сдать зачет по матведу, а еще и практику(!), которую я действительно проходил на электронстандарте, в отличии от того как и где проходили мои мотивирующие отдногрупники.
------------
UPD@27 Oct 2018
Интересный факт, этот пост был написал в 2010 году, в самом начале стартап пути, а опубликован только в 2018. За это время поменялось неверотяно много, проваленно и закрыто много проектов и понимание бизнеса всё ещё кристализируется
На случай кто не знает - это РЕКУРСИВНОЕ УДАЛЕНИЕ ВСЕГО БЕЗ ПОДТВЕРЖДЕНИЯ!
Если вам приходиться часто работать с коммандной строкой и удалять папки будьте внимательны. Наверняка каждый использует прокрутку истории комманд(стрелками вверх-вниз) для более быстрой работы в консоле, если ненароком выберите нечто вроде rm -rf ./ ожидая например что будет ifconfig eth0 и по инерции нажмёте <enter> - останется только надеятся что текущая папка не корень и не домашняя. Особенно, если вы работаете под root.
Для себя взял на заметку простое правило: никогда не писать одиночные ./, ../ и тому подобные в аргументе rm -rf , как бы не хотелось, по возможности записывать относительный путь, например apache/www/site - чем больше букв в пути[=сложнее путь], тем меньше вероятности того, что в случае не внимательного ввода вы удалите нужную информацию.
Мне с другом понадобились сверхяркие RGB светодиоды - достали мы их почти без проблемм - на юноне по 200р. Речи о поиске даташита по названию не может быть - производитель NONAME, о чём признались сами продавцы, всё чем они смогли помочь - дать сфотографировать кусок их цветастого каталога.
Kohana - в первую очередь фреймворк, т.е. каркас приложений, и не обязательно для Web. Результатом работы Веб приложения может быть не только гипертекст(HTML) но и JSON, XML, изображения, простой текст, так и вовсе ничего.
Понятно, что в зависимости от размера проекта и назначения проекта иногда приходиться писать демоны, которые занимаются рассылкой почты, бэкапами бд, различными пересчётами, транскодингом и много чем ещё...
Всё-таки оказалось, что kohana сильно ориентирован на вэб, хотя казалось бы, компоненты должны быть отдельно друг от друга.
Для написания консольного приложения(впрочем как и "демона") на основе Kohana нужно немного "допилить" контроллер. По-прежнему всю логику будет выполнять именно он, за одним исключением - если приложение и будет что то выводить - то это сообщения для отладки.
Важным моментом в этом является отлавливание ошибок. Стандартный отлов ошибок и исключений будет работать по-прежнему, но при малейшем E_NOTICE у вас в консоль отобразиться как минимум строк сто HTML кода - страница ошибки. Рано или поздно надоест прокручивать вверх и разбираться в коде - почему бы не представить ошибку в более понятном и читаемом виде?
Предлагаю необычный способ построения дерева меню из объектов любой степени вложенности, используя преимущества php5 и вызов методов цепочкой
Нашёл в черновиках, 3 года спустя - вдруг кому пригодиться современные ubuntu сами находят драйвер, устанавливают его и все работает на ура
Извращенцам Любителям ретро версий линуксов, которые нужно собирать ручками посвящается:
Помимо не высокой стоимости принтера и нечипованному тонеру у него есть ещё один плюс - это отличная совместимость с линуксом, о чём говориться на OpenPrinting и на оффициальном сайте xerox
Надо отметить, что вместе с принтером на диске есть драйвера под линь :)
Запускается просто - под рутом выполнить скрипт в корне CD диска
[cc lang="bash" line_numbers="false"]
# ./autorun
[/cc]
На этом месте начинаются проблеммы :) Или у вас гном(вернее гтк) столетней давности? :)
При запуске выдаёт:
/root/.setup5893: error while loading shared libraries: libgtk-1.2.so.0: cannot open shared object file: No such file or directory
Уже давным-давно не используется эта библиотека, ей на смену пришла 2.0. Это не важно, ибо всё равно принтер то надо настраивать, причём хочется с гуем, дабы ощутить полноценную поддержку от вендора :D.
Собираем gtk 1.2:
# emerge =gtk+-1.2*
соберётся 2 библиотеки в новый слот. Если ваш дистрибутив не генту - нужно поискать в пакетном менеджере эту библиотеку(например в ASP/RedHat: yum install libgtk-1.2.so.0)
Снова запускаем - появляется окошечко с мастером установки. Кстати, я предполагаю что у вас cups уже установлен(если нет то срочно: включить cups в USE флаги и emerge cups, после чего запускаем демон /etc/init.d/cupsd start). Выбераем expert install. Ни в коем случаем не ставим галку на установку этого древнего cups 1.1, можно изменить пути - по вкусу :).
Когда откроется окошко настройки жмём кнопку Add printer и если принтер уже подключён как в моём случае он сам определяет его. Если хочется можно поменять настройки.
Заходим на http://localhost:631/(web-интерфейс cups), ищем наш принтер и тыкаем кнопку пробная печать.
*барабанная дробь*
Ан нет! ещё рано! Не печатает :(. В заданиях написанно - Остановленно, попытка перезапуска ни к чему не приводят. Смотрим логи:
I [..] Started "/usr/libexec/cups/cgi-bin/jobs.cgi" (pid=2661) E [..] [CGI] Saw EOF, expected '}'! I [..] Started "/usr/libexec/cups/cgi-bin/jobs.cgi" (pid=2666) E [..] Unable to execute /usr/libexec/cups/filter/ppmtospl2: No such file or directory E [..] [Job 3] Unable to start filter "ppmtospl2" - No such file or directory. E [..] [Job 3] Stopping job because the scheduler could not execute a filter. I [..] Started "/usr/libexec/cups/cgi-bin/printers.cgi" (pid=2669) E [..] [CGI] Saw EOF, expected '}'! I [..] Saving job cache file "/var/cache/cups/job.cache"...
Что то много ругательств. Начнём с /usr/libexec/cups/filter/ppmtospl2. Посмотрим папку в которую установщик(не могу удержаться от слов как он выглядит!! лучше бы в текстовом режиме сделали - меньше зависимостей потянулиб). Смотрим папку которую вы указали для установки пакета, по дефолту было /usr/local/linuxprinter. Просмотря содержимое этой папки можно найти то самое - filter/ppmtospl2.
Делаем симлинки(сразу для всех файлов):
ln -s /usr/local/linuxprinter/filters/* /usr/libexec/cups/filter/
Не перегружая капсов, тем более системы :), пробуем перезапустить задние с пробной страницей
Допустим корневой объект который нужно обойти задан так:
[cc lang='javascript' ]
var myobj =
{
"city": "spb",
"user": {
"name": "misha",
"age": 30,
"props": {
"enabled": 1,
"guest": 1
}
},
"browser": "lynx"
};
[/cc]
Обновил наконец в сквизе мускул, и вот что вылезло:
Настраивается пакет mysql-server-5.1 (5.1.37-2) ... Устанавливается новая версия файла настройки /etc/init.d/mysql ... * Stopping MySQL database server mysqld [ OK ] * Starting MySQL database server mysqld [fail] * Please take a look at the syslog
Мне поставили задачу распарсить один крупный иностранный сайт скандинавского аукциона. Время на страницах выглядит так: "Aug-24-2009 at 12:04 PDT", а нужно перевести его в стандартный unix timestamp.