Тогда этот блокнотик из нашей деревни вам актуален:
Оригинал этой записи в личном блоге.
а остров в Индонезии, где активно растят кофе.
Так теперь есть не только JavaScript, а и CoffeeScript, который не совсем самостоятельный язык, а как раз компилируется в JavaScript..
Оригинал этой записи в личном блоге.
Обнаружилось, что в питоне стандартно поддерживаются не только обычные числа, но и комплексные. Я раньше об этом совершенно не знал. Только в качестве суффикса мнимой части вместо обычного i (означающего квадратный корень от -1) используется j или J:
$ python Python 2.7.13 (default, Nov 24 2017, 17:33:09) >>> a=1+2j >>> b=3+5J >>> a (1+2j) >>> b (3+5j) >>> a+b (4+7j) >>> a*2 (2+4j) >>> a*b (-7+11j) >>> a/b (0.3823529411764706+0.029411764705882346j)
Оригинал этой записи в личном блоге.
На входе: строчка из n букв (в основном, русских), например: “абук”, и дополнительное число m, например, 3.
Задача: сгенерировать из букв той строки ВСЕ возможные комбинации длиной m.
Количество этих комбинаций может быть достаточно велико: на первом месте одна из n букв, потом на втором одна из остальных n-1, потом одна из остальных n-2, и т.д.
Всего получается n!/(n-m)! . В вышеуказанном примере – 24 варианта, а если, например, 10 букв, из которых надо сгенерировать 5-буквенные комбинации, то их будет уже 30240.
Оригинал этой записи в личном блоге.
вполне может помнить и это:
и это:
и т.д.
( Read the rest of this entry » )Оригинал этой записи в личном блоге.
Предыдущая пара постов в DW и ЖЖ не имеет ссылок на мой собственный блог, потому что он не смог кросспостить их в DW, и пришлось скопировать руками.
В вордпрессе стала вылезать идиотская ошибка: Something went wrong - -32300 : transport error - HTTP status code was not 200
Видать, что-то поменялось в DW’шном API, но, блин, хотя бы полученный по HTTP код ответа можно было показать, а не просто рассказывать, что он не 200 :(
Похоже, пора переходить на свой блоговый движок. Хотя я его ещё не полностью дописал, но кросспостинг там уже вполне работает, и ошибку там удалось увидеть гораздо яснее: код 307 – пересылка с http://www.dreamwidth.org/interface/xmlrpc на https: . Поменял в настройках DW’шного урла http на https, всё заработало.
dmarck, похоже, ты прав, нынче все переезжают с http на https. Но в том же ЖЖ это только на веб-сайтах приделали, а API там продолжает работать по http.
Попробовал в вордпрессовском плагине livejournal-crossposter-remake так же поменять урл, но нифига не помогло: Something went wrong - -32300 : transport error: http_request_failed Couldn't resolve host 'https'
Пришлось копаться в коде, оказалось, что там используется IXR_Client из этого самого вордпресса, который https не умеет в принципе. Вот щас поменял IXR_Client на WP_HTTP_IXR_CLIENT, посмотрю, поможет ли.
Но нафиг нужен такой похапешный софт, который не понимает явно указанный в урле протокол.. Выходит, это тот самый случай, когда проще самому написать, чем копаться в чужом коде. Только там ещё некоторые другие вещи дописать надо.
А в этом livejournal-crossposter-remake ещё и коты нашлись..
( Read the rest of this entry » )Оригинал этой записи в личном блоге.
Часто бывает трудно выдумать не совпадающие с ранее использованными, но при этом легко запоминаемые названия для переменных в программе, для новых проектов, баз данных, доменов, и т.п.
Можно зайти на этот сайт, он такие названия генерирует..
Оригинал этой записи в личном блоге.
Сегодня ночью опять долго и глубоко спал, показали очередные сюжеты из альтернативного мира:
1. На работе начальник ушёл в отпуск, и некоторым сотрудникам выдал срочные задания.
Мне выдал очень необычное: написать программу, в которой можно было бы выбрать некоторые приготавливаемые пищевые продукты, указать количество потребителей, а программа бы посчитала нужное количество исходных компонентов и выдала последовательности процессов приготовления с указанием затрачиваемого времени. Причём если продуктов выбрано несколько, то процессы приготовления должны комбинироваться – то есть, пока что-то варится/жарится, было бы указано на другой компонент, который можно заготовить за это время.
Оригинал этой записи в личном блоге.
Один из разработчиков сегодня пожаловался, что у него есть два скрипта, цепляющихся по API к одному и тому же серверу, так один работает, а второй вообще соединиться не может. Разница в функциях: в одном используется fsockopen
, а в другом socket_connect
.
Причём когда он их цепляет не к тому серверу, а к своему тестовому (на его же ноутбуке в докер-контейнере), то оба нормально работают. Вот и решил у меня поинтересоваться, нет ли каких проблем в сетевых соединениях к серверу, или каких затыков в файрволах..
Хотя вроде бы кажется, что если один скрипт успешно подключается, значит, проблем в сети нет. Но.. случаи же разные бывают. Может, где-то есть ограничение на количество соединений с одного клиентского адреса, или у самого сервера ограниченное количество соединений, или ещё что.. Так что первым делом я попросил его посоединяться туда telnet’ом. Он попробовал, нормально получается.
Значит, что-то не так в самом скрипте. Попросил показать мне кусок кода, который осуществляет это соединение. А там вместо двух строчек (создать сокет и подцепить его к серверу socket_connect
‘ом) внезапно оказалсь целая страница.. И не просто функция, а целый класс, который умеет соединяться и по IPv4, и по IPv6, и после запуска соединения несколько секунд в цикле проверяет ошибки сокета, пока не убедится, что соединение нормально установилось, или пока счётчик не кончится. И если не получилось, будет попробовать следующий сервер, если их в списке больше одного.
Оказалось, что это он не сам написал, а скачал из интернетов готовую реализацию того API, стал её проверять, а вот она с сервером не соединяется.
Ну я этот кусок кода скопировал, выкинул оттуда все внутриклассовые ссылки, вписал параметры конкретного сервера, запустил – и он нормально соединился. И тут… разработчик сообщил, что у него тоже заработало!
Что, эффект присутствия?! Ну, в каком-то смысле да. Ибо, когда я попросил прислать этот кусок кода, он его не просто прислал, а ещё и сам почитал, и нашёл, в чем была засада.
Мораль: показывая кому-то программу, а особенно, рассказывая, как она работает, сам гораздо лучше начинаешь это понимать. Заодно и ошибки можешь найти и исправить. Ну и кто уже догадался, что было не так в этой программе??
( Read the rest of this entry » )Оригинал этой записи в личном блоге.
Придуман был в 2009 году, называется CoffeeScript.
Язык компилируемый, но не в исполняемый код, а в JavaScript, который потом подсовывается в обычный джаваскриптовый интерпретатор.
Авторы считают, что их язык проще, потому писать на нём удобнее, а скомпилированный из него JS читабельнее и работает быстрее, чем написанный вручную. Но я в этом смысла не вижу, ибо хороший программист на любом языке может писать нормально, а плохой на любом же может написать кривую фигню.
Оригинал этой записи в личном блоге.
Это такая система для аналитических запросов к гигантским базам данных, обновляемым в реальном времени. Изначально разрабатывалась для работы с Яндекс.Метрикой.
Брать тут, статья на хабре: https://m.habr.com/en/company/yandex/blog/303282/
P.S. Посмотрев на первую ссылку, я внезапно узнал, что у Яндекса уже почти два года как есть собственный домен первого уровня: yandex. У гугла, кстати, тоже: google. Это такая новая мода?
Оригинал этой записи в личном блоге.
- У моего сына сегодня день рождения.
– И сколько ему исполняется?
– 1024 дня.
Сын приходит из школы.
Отец:
– Ну, как диктант?
– Да так, всего две ошибки… Но в общем, скомпилировался!
– Пап, а что, в каменном веке всё было из камня?
– Да, сынок.
– И даже компьютеры?
Оригинал этой записи в личном блоге.
Для тех, кто не в курсе: кобол – это один из самых древних языков программирования, разработанный ещё в 1959 году. С тех пор на нём было написано множество программ, некоторые из которых используются до сих пор, в основном финансовыми учреждениями..
Оригинал этой записи в личном блоге.
Странно, что xml-программистов ещё не ищут..
Для тех, кто в танке: SQL (Structured Query Language) — это язык запросов. А XML и HTML — языки разметки. Они все языки, но прямого отношения к программированию не имеют. На них самих никакие программы написать невозможно, не предназначены они для этого.
Хотя многие реализации SQL-серверов поддерживают хранимые процедуры, но ни их создание, ни вызовы, ни языки, на котором эти процедуры пишутся, не стандартизованы в SQL, и если речь идёт о них, то стОит уточнить, о какой именно разновидности идёт речь.
Оригинал этой записи в личном блоге.
Когда не хочется заморачиваться загрузкой файла, ибо на серверной стороне из него нужна одна строчка, и вдобавок пользователь может захотеть эту строчку вписать копипастой, потому что у него в локальных файлах её вообще нет, она где-нибудь на другой машине хранится..
Конкретный пример – загрузка публичного ключа от ssh.
Делаем так: в основной форме для этой строчки используем обычный input типа text, который можно заполнить руками. А чтобы прочитать в него строчку из файлика, встраиваем рядышком (или даже прямо внутрь основной формы) дополнительную форму с input типа file и обработчиком на JS, который читает файлик сразу после его выбора в браузере и засовывает нужный контент в поле основной формы:
( Read the rest of this entry » )Оригинал этой записи в личном блоге.
Вы ранее привлекались за хранение данных в глобальных переменных?
В своём резюме вы указали знание php. вам не стыдно?
Перед вами кисть, холст и мольберт. Напишите компилятор.
Вы моете руки перед правкой кода на продакшне?
Вас раньше обвиняли в попытках программирования?
Каким вы видите свой код через пять лет?
Как вы относитесь к легализации курения мануалов?
Остальное тут: https://pastebin.com/Uq5B2f2V
Оригинал этой записи в личном блоге.
В одной базе данных есть две таблицы, связанные отношением 1:M. Скажем, в одной лежат посты из блога, а в другой комментарии, привязанные к постам по id.
Задача: перетащить их все в другую базу, в которой идентификаторы у постов изменятся (потому что там уже есть другие посты с теми же id, что в первой базе), но при этом сохранить привязку к ним комментариев.
С постами понятно, SELECT из первой базы и INSERT во вторую.
А вот как быть с комментариями?
Мне пока пришли в голову три идеи, но все неэффективные.
1) Для каждого поста сразу после помещения его во вторую базу, когда уже известны и старый, и новый id, найти в первой базе все комментарии по старому id и сложить их во вторую базу с новым id. Но это отдельный SQL-запрос на каждый пост, а их там дофига.
2) Сначала перенести все посты, попутно составляя табличку со старыми и новыми id, а потом переносить комментарии, заменяя id постов по этой табличке. Но если табличку держать в памяти, она получится очень нефигового размера. А в базах её создавать нельзя, правов не хватает.
3) Извлечь вместе с постами сразу все их комментарии путём LEFT OUTER JOIN. Но тогда каждый пост извлечётся целиком много раз, с каждым своим комментарием, это дикий перерасход памяти в SQL-сервере.
Как бы это сделать поэффективнее?
Оригинал этой записи в личном блоге.
“<rexim> Утилита rm при указании флага -r (от слова refactor) начинает выполнять эффективный рефакторинг.”
Тоже отсюда: http://ibash.org.ru/quote.php?id=16155
Оригинал этой записи в личном блоге.