http___blog.nediko.info_2014_12_1.xml
https___www.svtransitusers.org_tag_watchdog.xml
1.1 1.2 2.1 3.1 3.2 4.1 5.1 5.2 5.3 6.1 7.1 8.1 9.1 10.1 10.2 10.3 10.4 11.1 11.2 11.3 11.4 11.5 12.1 13.1 13.2 14.1 15.1 16.1 17.1 18.1 19.1 20.1 20.2 21.1 22.1 22.2 22.3 23.1 24.1 25.1 26.1 26.2 26.3 30.1 30.2 30.3 30.4 31.1 32.1 33.1 33.2 34.1 35.1 39.1 39.2 40.1 41.1 42.1 43.1 44.1 45.1 46.1 47.1 48.1 49.1 50.1 51.1 52.1 52.2 52.3 53.1 53.2 54.1 54.2 55.1 55.2 56.1 56.2 57.1 57.2 58.1 59.1 60.1 60.2 60.3 60.4 60.5 60.6 61.1 61.2 61.3 62.1 62.2
Имам една идея за автоматична смяна на цветната схема на Bootstrap-базиран сайт. За целта ми трябва просто извличане на цветовете от картинка с php-скрипт. За базови цветове създавам проста картинка с квадратчета, като тази: За да извлека цветовете от отделните квадратчета използвам php-функцията imagecolorat, която взима цвета на пиксел при зададени кооординати. Координатната система е нулирана в горния ляв ъгъл: Примерен скрипт в който използвам извличане цвета на пиксел, който се намира горе-долу по средата на всеки правоъгълник: Ще се опитам да напиша един урок за просто проектиране, моделиране и програмиране на мебели в Blender. Програмата поддържа езика за програмиране Python, който разполага с безкрайни възможност за създаване и управление на обекти. Ще се постарая да се изразявам максимално простичко и ясно. Необходими инструменти: Молив Лист хартия Blender 3D – по възможност версия 2.67 или по-нова Първо да скицираме някакъв по-простичък обект (мебел), който искаме да проектираме. Аз ще създам проста етажерка за окачване на стена. За да улесня максимално процеса, моята етажерка ще е от 4 детайла – 2 еднакви по размер страници + 2 една по размер елемента, които ще са гръб и под. Ето как изглежда моята етажерка: Сега е време да се сблъскаме с назъбения интерфейс на моделера Blender. Програмата е малко плашеща за нови потребители. Но има голямо комюнити и много уроци, които помагат за овладяването и. Лично аз много харесвам тази програма и използвам предимно базовите и фукнции, които често ми олесняват живота. Нека да започнем със забавата. Стартираме програмата и натискаме Delete бутона от клавиатурата, за да изтрием куба, който се зарежда под дефолт. Старайте се да не кликате никъде с мишката, докато не разберете каква е логиката на програмата. Кликовете с мишока са: – Левия клик поставя 3Д-курсора в точката на кликане – десния клик върху обект го селектира – Скролирането в 3D фрейма зумва – Натиснат среден бутон върти 3Д-фрейма – среден бутон + задържан Shift мести 3Д-фрейма Има и доста допълнителни команди, но за тях по-късно. Сега, докато не сме почнали с експериментите, нека разгледаме координатната система. Намира се долу в ляво: Сега да помислим как да си разположим елементите от нашата етажерка: Важно е да се отбележи, че ще използваме метричната система. Това трябва да му го кажем на Blender, иначе ще прави глупости. За целта правим следните настройки: Елементите, които трябва да създадем в 3Д са: – 2 броя страници: 18x240x222mm – 2 броя плоскости за гръб и под: 850x222x18mm Тези елементи по-късно ще ги добавим в нашия програмен код. Размерите на всеки елемент могат да се групират в масив. Примерно такъв: Можем да ги създадем по поне 10 начина, но аз ще ви покажа един много нестандартен подход, който често се оказва най-оптимален и бърз вариант. Ще използвам много просто програмиране на Python. За целта трябва да отворим редактора за въвеждане на Python скриптове. Това също може да стане по много начини, но аз ще използвам предефинираните полета на Blender: Кликнете бутона Choose Screen layout и изберете Scripting Кликнете на бутона +New Супер важно: Старайте се курсора на мишката винаги да е във фрейма в който работите. Примерно, ако искате да въвеждате текст в текстовия редактор, курсора ви трябва да е в този прозорец (фрейм). В текстовия редактор пейстнете следния код: import bpy # създаваме 2-те страници. Те лежат в едно направление # и можем да използваме цикъл for x in range(2): # изпълни 2 пъти bpy.ops.mesh.primitive_cube_add(radius=1) bpy.context.object.dimensions=strani # създаваме гръб bpy.ops.mesh.primitive_cube_add(radius=1) bpy.context.object.dimensions=gryb # създаваме пода bpy.ops.mesh.primitive_cube_add(radius=1) bpy.context.object.dimensions=dyno Прозореца със скрипта трябва да изглежда така: Командите: са въведени в API-интерфейса на Blender. Всяка версия на програмата има документация в която са описани всички команди, които могат да се изпълняват от програмата. Как лесно да разберем коя команда как се ползва ще опиша някой друг път. Сега трябва да изпълним кода. Натискаме Text->Run Script: От тук насетне следва местене и рендване в Blender. Действията, които съм извършил в програмата, могат да се видят в по-долното видео: Преди доста време бях правил видео за редактора Vim. Направих го за мен, а и заради едни приятели от форум, който посещавах. Скоро ми се наложи пак да ползвам Vim editor на едно Linux дистро и бях малко като пате в кълчища. За това качвам урока, та другият път да изкарам един бърз курс, ако ми се наложи. This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptRead More Privacy & Cookies Policy Privacy Overview This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience. Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information. Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
1.1 1.2 1.3 1.4 1.5 1.6 2.1 2.2 2.3 3.1 3.2 3.3 4.1 4.2 5.1 5.2 5.3 6.1 7.1 7.2 7.3 7.4 8.1 9.1 9.2 9.3 10.1 10.2 10.3 11.1 12.1 12.2 12.3 13.1 14.1 15.1 15.2 15.3 15.4 15.5 15.6 16.1 16.2 16.3 17.1 17.2
Tried to take a Santa Clara Valley Transportation Authority (VTA) lately? Ever been left stranded due to the bus being at its safe capacity limits? You’re not alone. The chart above shows nearly 1,400 riders per day are stranded by full VTA buses who pass them. That’s enough to fill two sections of the where the Sharks, 49ers, or Earthquakes play at. Bus lines like the 22, 25, 66, and 68 are just some examples where we’ve read reports of riders left stranded. VTA has the money, courtesy of the Federal government, to fix this NOW. They also have the money to help improve safety on its bus and light rail fleet NOW. Here’s details on how YOU, me, and our fellow riders can make VTA make it happen… There is something for just about everyone at tonight’s Santa Clara Valley Transportation Authority (VTA) Board meeting. It all starts at 5:30pm at the County Supervisors’ Chambers, 70 W. Hedding St., in San Jose. Here are directions by transit or automobile on getting there. The Valley Transportation Authority (VTA) Board Chair will see some of his managers this week. San Jose Mayor Sam Liccardo – also VTA Board Chair this year – will be our guest at our group’s upcoming meeting this Thursday in San Jose. TIME/DATE: Thursday, April 26 at 6pm PLACE: San Jose Peace & Justice Center, 48 S. 7th Street (between Santa Clara and San Fernando Streets), San Jose GETTING THERE: Many VTA bus lines like the 22, 522 Rapid, 72, 73 and Highway 17 Express stop near the Peace and Justice Center. There is limited bicycle and automobile parking behind the building, so it’s advisable to take public transit to and from the building. There is also wheelchair access behind the building. The agenda and a toll-free dial-in number to the meeting follow… San Jose Mayor Sam Liccardo wants to repeat failed history. In his first Chairperson’s Report at the January 4 Santa Clara Valley Transportation Authority (VTA) Board Of Directors’ meeting, he advocated for further reductions in VTA transit service to help close a $20 million operating deficit this fiscal year, and a $26 million operating deficit in 2019. He announced the formation of a committee to address VTA’s structural operating deficit, and provide solutions. The gist of Mayor Liccardo’s comments start at the 2:00 mark of the audio clip above. Learn more about how this service cut strategy fails to resolve any VTA operating deficit – and what YOU can proactively do to change history in your favor – below. Last month, I wanted to experiment with providing a brief summary of a Santa Clara Valley Transportation Authority (VTA) Board Of Directors meeting. Your feedback demanded more information be provided for such summaries. So, in the future, more detail will be provided for such summaries. That said, the September 7 VTA Board Of Directors Meeting and follow-up workshops revealed a potential conflict of interest in a formed sales tax measure watchdog group. They also confirmed routing for two bus lines, once the BART extension to Milpitas and Berryessa comes online. Finally, conflict was revealed between VTA and BART over how a tunnel for BART in downtown San Jose should be built. Detailed information on all of this (in chronological order) is below. This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. AcceptRejectRead More Privacy & Cookies Policy Privacy Overview This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience. Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information. Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.