[viewBag] title = "Home 2" url = "/home/home-2" layout = "static" is_hidden = 0 navigation_hidden = 0 meta_title = "Welcome to Success Theme" sections[0][section_carouselowl][1][section_carouselowl_type] = "owlimage" sections[0][section_carouselowl][1][section_carouselowl_type_image] = "\/cropped-images/business-team-meeting-boardroom_4460x4460-0-0-0-0-1537797410.jpg" sections[0][section_carouselowl][1][section_carouselowl_type_video] = "" sections[0][section_carouselowl][1][section_carouselowl_title] = "Success Octobercms Theme" sections[0][section_carouselowl][1][section_carouselowl_subtitle] = "Powerful multipurpose Octobercms theme with Page Builder" sections[0][section_carouselowl][1][section_carouselowl_buttonlabel] = "Purchase" sections[0][section_carouselowl][1][section_carouselowl_buttonicon] = "fa fa-shopping-cart" sections[0][section_carouselowl][1][section_carouselowl_buttonlink] = "https://octobercms.com/theme/ketikidis-octobercms-success" sections[0][section_carouselowl][2][section_carouselowl_type] = "owlimage" sections[0][section_carouselowl][2][section_carouselowl_type_image] = "\/cropped-images/making-a-budget-tracking-finances_4460x4460-0-0-0-0-1537797508.jpg" sections[0][section_carouselowl][2][section_carouselowl_type_video] = "" sections[0][section_carouselowl][2][section_carouselowl_title] = "Success Multipurpose Theme" sections[0][section_carouselowl][2][section_carouselowl_subtitle] = "Create unlimited custom pages with page builder and 24 premade blocks" sections[0][section_carouselowl][2][section_carouselowl_buttonlabel] = "Download" sections[0][section_carouselowl][2][section_carouselowl_buttonicon] = "fa fa-download" sections[0][section_carouselowl][2][section_carouselowl_buttonlink] = "https://octobercms.com/theme/ketikidis-octobercms-success" sections[0][section_carouselowl][3][section_carouselowl_type] = "owlvideo" sections[0][section_carouselowl][3][section_carouselowl_type_image] = "" sections[0][section_carouselowl][3][section_carouselowl_type_video] = "https://www.youtube.com/watch?v=clmcu1w_FRs" sections[0][section_carouselowl][3][section_carouselowl_title] = "Modular Theme" sections[0][section_carouselowl][3][section_carouselowl_subtitle] = "Powerful features and settings to create your website fast and easy" sections[0][section_carouselowl][3][section_carouselowl_buttonlabel] = "Purchase" sections[0][section_carouselowl][3][section_carouselowl_buttonicon] = "fa fa-shopping-cart" sections[0][section_carouselowl][3][section_carouselowl_buttonlink] = "https://octobercms.com/theme/ketikidis-octobercms-success" sections[0][section_carouselowl][4][section_carouselowl_type] = "" sections[0][section_carouselowl][4][section_carouselowl_type_image] = "" sections[0][section_carouselowl][4][section_carouselowl_type_video] = "" sections[0][section_carouselowl][4][section_carouselowl_title] = "Modern-Flexible Design" sections[0][section_carouselowl][4][section_carouselowl_subtitle] = "Fast, flexible and easy website development" sections[0][section_carouselowl][4][section_carouselowl_buttonlabel] = "Read More" sections[0][section_carouselowl][4][section_carouselowl_buttonicon] = "fa fa-info-circle" sections[0][section_carouselowl][4][section_carouselowl_buttonlink] = "https://octobercms.com/theme/ketikidis-octobercms-success" sections[0][_group] = "carouselowl" sections[1][section_services1_bg] = "#ffffff" sections[1][section_services1_header] = "WHY SUCCESS THEME?" sections[1][section_services1_subheader] = "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium" sections[1][section_services1][1][section_services1_title] = "Page Builder" sections[1][section_services1][1][section_services1_icon] = "fa fa-square-o" sections[1][section_services1][1][section_services1_desc] = "Create your own page style choosing blocks from theme partial list." sections[1][section_services1][2][section_services1_title] = "Octobercms Power" sections[1][section_services1][2][section_services1_icon] = "fa fa-bullseye" sections[1][section_services1][2][section_services1_desc] = "Using native Octobercms power create your next best web project." sections[1][section_services1][3][section_services1_title] = "Responsive Design" sections[1][section_services1][3][section_services1_icon] = "fa fa-bolt" sections[1][section_services1][3][section_services1_desc] = "You can get the best viewing experience on every mobile device." sections[1][section_services1][4][section_services1_title] = "Bootstrap 4 & HTML5" sections[1][section_services1][4][section_services1_icon] = "fa fa-cog" sections[1][section_services1][4][section_services1_desc] = "Success theme uses latest bootstrap framework and html code." sections[1][_group] = "services1" sections[2][section_about_bg] = "#f6f6f6" sections[2][section_about_image] = "" sections[2][section_about_big][1][section_about_big_title] = "BUILT WITH OCTOBERCMS, A NEW EXPRIENCE" sections[2][section_about_big][1][section_about_big_desc] = "
Now you can create your own design! Add your own blocks on every page you like with the build in Page Builder. You can insert Carousels, Services, Tables, Parallax, Contact forms, and more with easy way without any skills!
" sections[2][section_about_small][1][section_about_small_title] = "Octobercms Partials" sections[2][section_about_small][1][section_about_small_desc] = "New field system with partials, can help you create awesome templates with easy." sections[2][section_about_small][2][section_about_small_title] = "Native Power" sections[2][section_about_small][2][section_about_small_desc] = "Create your static page and add as many blocks you need for your custom page." sections[2][section_about_small][3][section_about_small_title] = "Flexible System" sections[2][section_about_small][3][section_about_small_desc] = "You can change block position, change images, texts or remove them very easily." sections[2][_group] = "about" sections[3][section_tabsskills_bg] = "#ffffff" sections[3][section_tabsskills_header] = "OUR SERVICES" sections[3][section_tabsskills_subheader] = "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium" sections[3][section_tabsskills_tabs][1][section_tabsskills_tabs_title] = "OCTOBERCMS" sections[3][section_tabsskills_tabs][1][section_tabsskills_tabs_icon] = "fa fa-commenting" sections[3][section_tabsskills_tabs][1][section_tabsskills_tabs_subtitle] = "Acsi in letalis metuo nutus obruo proprius quis si venio. Exerci nulla probo quae turpis. Ideo occuro roto scisco." sections[3][section_tabsskills_tabs][1][section_tabsskills_tabs_desc] = "Os saepius typicus ullamcorper vulpes. Ad comis elit eu ideo lucidus quia refero. Aliquam lobortis pala. Accumsan jus laoreet luptatum natu occuro usitas vereor voco. Abbas gilvus haero illum immitto minim mos olim os.
" sections[3][section_tabsskills_tabs][2][section_tabsskills_tabs_title] = "RESPONSIVE DESIGN" sections[3][section_tabsskills_tabs][2][section_tabsskills_tabs_icon] = "fa fa-cog" sections[3][section_tabsskills_tabs][2][section_tabsskills_tabs_subtitle] = "Ideo occuro roto scisco. Acsi in letalis metuo nutus obruo proprius quis si venio. Exerci nulla probo quae turpis." sections[3][section_tabsskills_tabs][2][section_tabsskills_tabs_desc] = "Abdo ad brevitas lenis luctus mauris quadrum. Os saepius typicus ullamcorper vulpes. Ad comis elit eu ideo lucidus quia refero. Aliquam lobortis pala. Accumsan jus laoreet luptatum natu occuro usitas vereor voco. Abbas gilvus haero illum immitto minim mos olim os.
" sections[3][section_tabsskills_tabs][3][section_tabsskills_tabs_title] = "DEVELOPMENT & DESIGN" sections[3][section_tabsskills_tabs][3][section_tabsskills_tabs_icon] = "fa fa-camera" sections[3][section_tabsskills_tabs][3][section_tabsskills_tabs_subtitle] = "Acsi in letalis metuo nutus obruo proprius quis si venio. Exerci nulla probo quae turpis. Ideo occuro roto scisco." sections[3][section_tabsskills_tabs][3][section_tabsskills_tabs_desc] = "Os saepius typicus ullamcorper vulpes. Ad comis elit eu ideo lucidus quia refero. Aliquam lobortis pala. Accumsan jus laoreet luptatum natu occuro usitas vereor voco. Abbas gilvus haero illum immitto minim mos olim os.
" sections[3][section_tabsskills_tabs][4][section_tabsskills_tabs_title] = "PARALLAX BACKGROUND" sections[3][section_tabsskills_tabs][4][section_tabsskills_tabs_icon] = "fa fa-flag" sections[3][section_tabsskills_tabs][4][section_tabsskills_tabs_subtitle] = "Ideo occuro roto scisco. Acsi in letalis metuo nutus obruo proprius quis si venio. Exerci nulla probo quae turpis." sections[3][section_tabsskills_tabs][4][section_tabsskills_tabs_desc] = "Abdo ad brevitas lenis luctus mauris quadrum. Os saepius typicus ullamcorper vulpes. Ad comis elit eu ideo lucidus quia refero. Aliquam lobortis pala. Accumsan jus laoreet luptatum natu occuro usitas vereor voco. Abbas gilvus haero illum immitto minim mos olim os.
" sections[3][section_tabsskills_skills][1][section_tabsskills_skills_title] = "Web Development 91%" sections[3][section_tabsskills_skills][1][section_tabsskills_skills_progress] = 91 sections[3][section_tabsskills_skills][2][section_tabsskills_skills_title] = "HTML/CSS 86%" sections[3][section_tabsskills_skills][2][section_tabsskills_skills_progress] = 86 sections[3][section_tabsskills_skills][3][section_tabsskills_skills_title] = "Web Design 78%" sections[3][section_tabsskills_skills][3][section_tabsskills_skills_progress] = 78 sections[3][section_tabsskills_skills][4][section_tabsskills_skills_title] = "Octobercms 65%" sections[3][section_tabsskills_skills][4][section_tabsskills_skills_progress] = 65 sections[3][_group] = "tabsskills" sections[4][section_banner_header] = "Success - The first Octobercms theme with page builder!" sections[4][section_banner_subheader] = "Native Page Builder to help you create your next project fast and easy!" sections[4][section_banner_image] = "" sections[4][section_banner_buttonicon] = "fa fa-download" sections[4][section_banner_buttonlabel] = "Download" sections[4][section_banner_buttonlink] = "https://octobercms.com/theme/ketikidis-octobercms-success" sections[4][_group] = "banner" sections[5][section_portfolio_bg] = "#f6f6f6" sections[5][section_portfolio_column] = "3column" sections[5][section_portfolio_header] = "OUR PORTFOLIO" sections[5][section_portfolio_subheader] = "Abdo ad brevitas lenis luctus mauris quadrum. Os saepius typicus ullamcorper vulpes" sections[5][section_portfolio][1][section_portfolio_thumbimage] = "" sections[5][section_portfolio][1][section_portfolio_image] = "" sections[5][section_portfolio][1][section_portfolio_title] = "TITLE HERE" sections[5][section_portfolio][1][section_portfolio_subtitle] = "Abdo ad brevitas lenis luctus mauris quadrum. Os saepius typicus ullamcorper vulpes" sections[5][section_portfolio][1][section_portfolio_category] = "Marketing" sections[5][section_portfolio][1][section_portfolio_link] = "#" sections[5][section_portfolio][2][section_portfolio_thumbimage] = "" sections[5][section_portfolio][2][section_portfolio_image] = "" sections[5][section_portfolio][2][section_portfolio_title] = "TITLE HERE" sections[5][section_portfolio][2][section_portfolio_subtitle] = "Abdo ad brevitas lenis luctus mauris quadrum. Os saepius typicus ullamcorper vulpes" sections[5][section_portfolio][2][section_portfolio_category] = "Branding" sections[5][section_portfolio][2][section_portfolio_link] = "#" sections[5][section_portfolio][3][section_portfolio_thumbimage] = "" sections[5][section_portfolio][3][section_portfolio_image] = "" sections[5][section_portfolio][3][section_portfolio_title] = "TITLE HERE" sections[5][section_portfolio][3][section_portfolio_subtitle] = "Abdo ad brevitas lenis luctus mauris quadrum. Os saepius typicus ullamcorper vulpes" sections[5][section_portfolio][3][section_portfolio_category] = "Planning" sections[5][section_portfolio][3][section_portfolio_link] = "#" sections[5][section_portfolio][4][section_portfolio_thumbimage] = "" sections[5][section_portfolio][4][section_portfolio_image] = "" sections[5][section_portfolio][4][section_portfolio_title] = "TITLE HERE" sections[5][section_portfolio][4][section_portfolio_subtitle] = "Abdo ad brevitas lenis luctus mauris quadrum. Os saepius typicus ullamcorper vulpes" sections[5][section_portfolio][4][section_portfolio_category] = "Research" sections[5][section_portfolio][4][section_portfolio_link] = "#" sections[5][section_portfolio][5][section_portfolio_thumbimage] = "" sections[5][section_portfolio][5][section_portfolio_image] = "" sections[5][section_portfolio][5][section_portfolio_title] = "TITLE HERE" sections[5][section_portfolio][5][section_portfolio_subtitle] = "Abdo ad brevitas lenis luctus mauris quadrum. Os saepius typicus ullamcorper vulpes" sections[5][section_portfolio][5][section_portfolio_category] = "Planning" sections[5][section_portfolio][5][section_portfolio_link] = "#" sections[5][section_portfolio][6][section_portfolio_thumbimage] = "" sections[5][section_portfolio][6][section_portfolio_image] = "" sections[5][section_portfolio][6][section_portfolio_title] = "TITLE HERE" sections[5][section_portfolio][6][section_portfolio_subtitle] = "Abdo ad brevitas lenis luctus mauris quadrum. Os saepius typicus ullamcorper vulpes" sections[5][section_portfolio][6][section_portfolio_category] = "Marketing" sections[5][section_portfolio][6][section_portfolio_link] = "#" sections[5][_group] = "portfolio" sections[6][section_services3_bg] = "#ffffff" sections[6][section_services3_header] = "ΤΗΕΜΕ FEATURES" sections[6][section_services3_subheader] = "Abdo ad brevitas lenis luctus mauris quadrum. Os saepius typicus ullamcorper vulpes" sections[6][section_services3][1][section_services3_title] = "Tons of fields" sections[6][section_services3][1][section_services3_icon] = "fa fa-gift" sections[6][section_services3][1][section_services3_desc] = "There are 22 blocks to choose and build your unique website. Change blocks, rename or delete fields fast and easy." sections[6][section_services3][2][section_services3_title] = "Endless posibilites" sections[6][section_services3][2][section_services3_icon] = "fa fa-rocket" sections[6][section_services3][2][section_services3_desc] = "A client friendly multipurpose theme for fast and easy website development. Create your project with Success theme." sections[6][section_services3][3][section_services3_title] = "Modular theme" sections[6][section_services3][3][section_services3_icon] = "fa fa-pencil" sections[6][section_services3][3][section_services3_desc] = "The power in your hands! Unique theme settings to choose from. Easy page builder for your pages and great design!" sections[6][section_services3][4][section_services3_title] = "Great Ideas" sections[6][section_services3][4][section_services3_icon] = "fa fa-diamond" sections[6][section_services3][4][section_services3_desc] = "All the settings and addons is there! Build your next custom Octobercms project with unlimited possibilities and features." sections[6][section_services3][5][section_services3_title] = "Perfect Coding" sections[6][section_services3][5][section_services3_icon] = "fa fa-cog" sections[6][section_services3][5][section_services3_desc] = "The latest technologies on website coding are used! Bootstrap 4, HTML5, Twig code, SCSS and LARAVEL framework." sections[6][section_services3][6][section_services3_title] = "Unique Design" sections[6][section_services3][6][section_services3_icon] = "fa fa-star-o" sections[6][section_services3][6][section_services3_desc] = "Modern design with all the features you will need. 8 predefined colors, Parallax, Animated graphics and many more." sections[6][_group] = "services3" sections[7][section_pricing_header] = "OUR PRICING" sections[7][section_pricing_subheader] = "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium" sections[7][section_pricing_image] = "" sections[7][section_pricing][1][section_pricing_title] = "Free" sections[7][section_pricing][1][section_pricing_price] = 0 sections[7][section_pricing][1][section_pricing_feature1] = "1 domain" sections[7][section_pricing][1][section_pricing_feature2] = "1 website" sections[7][section_pricing][1][section_pricing_feature3] = "Email support" sections[7][section_pricing][1][section_pricing_feature4] = "Free tutorials" sections[7][section_pricing][1][section_pricing_buttonlabel] = "Download" sections[7][section_pricing][1][section_pricing_buttonlink] = "http://success.ketikidis.com/" sections[7][section_pricing][2][section_pricing_title] = "Regular" sections[7][section_pricing][2][section_pricing_price] = 25 sections[7][section_pricing][2][section_pricing_feature1] = "1 domain" sections[7][section_pricing][2][section_pricing_feature2] = "Unlimited websites" sections[7][section_pricing][2][section_pricing_feature3] = "Forum support" sections[7][section_pricing][2][section_pricing_feature4] = "Free tutorials forever" sections[7][section_pricing][2][section_pricing_buttonlabel] = "Buy" sections[7][section_pricing][2][section_pricing_buttonlink] = "https://octobercms.com/theme/ketikidis-octobercms-success" sections[7][section_pricing][3][section_pricing_title] = "Extended" sections[7][section_pricing][3][section_pricing_price] = 874 sections[7][section_pricing][3][section_pricing_feature1] = "Unlimited domains" sections[7][section_pricing][3][section_pricing_feature2] = "Unlimited websites" sections[7][section_pricing][3][section_pricing_feature3] = "Forum support" sections[7][section_pricing][3][section_pricing_feature4] = "Free tutorials forever" sections[7][section_pricing][3][section_pricing_buttonlabel] = "Buy" sections[7][section_pricing][3][section_pricing_buttonlink] = "https://octobercms.com/theme/ketikidis-octobercms-success" sections[7][_group] = "pricing" sections[8][section_team_bg] = "#ffffff" sections[8][section_team_header] = "OUR TEAM" sections[8][section_team_subheader] = "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium" sections[8][section_team][1][section_team_image] = "" sections[8][section_team][1][section_team_name] = "Amy Perez" sections[8][section_team][1][section_team_title] = "WEB DEVELOPER" sections[8][section_team][1][section_team_desc] = "Os persto proprius. Autem pala vicis. Aptent capto ideo obruo plaga refoveo." sections[8][section_team][1][section_team_facebook] = "" sections[8][section_team][1][section_team_twitter] = "" sections[8][section_team][1][section_team_googleplus] = "" sections[8][section_team][2][section_team_image] = "" sections[8][section_team][2][section_team_name] = "John Doe" sections[8][section_team][2][section_team_title] = "VIDEO EDITTING" sections[8][section_team][2][section_team_desc] = "Os persto proprius. Autem pala vicis. Aptent capto ideo obruo plaga refoveo." sections[8][section_team][2][section_team_facebook] = "" sections[8][section_team][2][section_team_twitter] = "" sections[8][section_team][2][section_team_googleplus] = "" sections[8][section_team][3][section_team_image] = "" sections[8][section_team][3][section_team_name] = "Jane Doe" sections[8][section_team][3][section_team_title] = "OCTOBERCMS DEVELOPER" sections[8][section_team][3][section_team_desc] = "Os persto proprius. Autem pala vicis. Aptent capto ideo obruo plaga refoveo." sections[8][section_team][3][section_team_facebook] = "" sections[8][section_team][3][section_team_twitter] = "" sections[8][section_team][3][section_team_googleplus] = "" sections[8][section_team][4][section_team_image] = "" sections[8][section_team][4][section_team_name] = "Ben Berry" sections[8][section_team][4][section_team_title] = "BRANDING DESIGNER" sections[8][section_team][4][section_team_desc] = "Os persto proprius. Autem pala vicis. Aptent capto ideo obruo plaga refoveo." sections[8][section_team][4][section_team_facebook] = "" sections[8][section_team][4][section_team_twitter] = "" sections[8][section_team][4][section_team_googleplus] = "" sections[8][_group] = "team" sections[9][section_facts_header] = "AWESOME NUMBER FACTS" sections[9][section_facts_subheader] = "Os persto proprius. Autem pala vicis. Aptent capto ideo obruo plaga refoveo tamen." sections[9][section_facts_image] = "" sections[9][section_facts][1][section_facts_title] = "Success theme" sections[9][section_facts][1][section_facts_icon] = "fa fa-trophy" sections[9][section_facts][1][section_facts_number] = 125 sections[9][section_facts][2][section_facts_title] = "Page builder" sections[9][section_facts][2][section_facts_icon] = "fa fa-heart-o" sections[9][section_facts][2][section_facts_number] = 22 sections[9][section_facts][3][section_facts_title] = "Custom fields" sections[9][section_facts][3][section_facts_icon] = "fa fa-snapchat-ghost" sections[9][section_facts][3][section_facts_number] = 40 sections[9][section_facts][4][section_facts_title] = "Octobercms theme" sections[9][section_facts][4][section_facts_icon] = "fa fa-picture-o" sections[9][section_facts][4][section_facts_number] = 75 sections[9][_group] = "facts" sections[10][section_testimonials_bg] = "#ffffff" sections[10][section_testimonials][1][section_testimonials_image] = "" sections[10][section_testimonials][1][section_testimonials_name] = "Steve Austin" sections[10][section_testimonials][1][section_testimonials_desc] = "Aliquam lobortis pala. Accumsan jus laoreet luptatum natu occuro usitas vereor voco. Abbas gilvus haero illum." sections[10][section_testimonials][1][section_testimonials_linklabel] = "Mysite.com" sections[10][section_testimonials][1][section_testimonials_link] = "" sections[10][section_testimonials][2][section_testimonials_image] = "" sections[10][section_testimonials][2][section_testimonials_name] = "Chelsey Siltanen" sections[10][section_testimonials][2][section_testimonials_desc] = "Aliquam lobortis pala. Accumsan jus laoreet luptatum natu occuro usitas vereor voco. Abbas gilvus haero illum." sections[10][section_testimonials][2][section_testimonials_linklabel] = "Mysite.com" sections[10][section_testimonials][2][section_testimonials_link] = "" sections[10][section_testimonials][3][section_testimonials_image] = "" sections[10][section_testimonials][3][section_testimonials_name] = "janna Hagan" sections[10][section_testimonials][3][section_testimonials_desc] = "Aliquam lobortis pala. Accumsan jus laoreet luptatum natu occuro usitas vereor voco. Abbas gilvus haero illum." sections[10][section_testimonials][3][section_testimonials_linklabel] = "Mysite.com" sections[10][section_testimonials][3][section_testimonials_link] = "" sections[10][section_testimonials][4][section_testimonials_image] = "" sections[10][section_testimonials][4][section_testimonials_name] = "Pamela Fox" sections[10][section_testimonials][4][section_testimonials_desc] = "Aliquam lobortis pala. Accumsan jus laoreet luptatum natu occuro usitas vereor voco. Abbas gilvus haero illum." sections[10][section_testimonials][4][section_testimonials_linklabel] = "Mysite.com" sections[10][section_testimonials][4][section_testimonials_link] = "" sections[10][section_testimonials][5][section_testimonials_image] = "" sections[10][section_testimonials][5][section_testimonials_name] = "Paul Tweedy" sections[10][section_testimonials][5][section_testimonials_desc] = "Aliquam lobortis pala. Accumsan jus laoreet luptatum natu occuro usitas vereor voco. Abbas gilvus haero illum." sections[10][section_testimonials][5][section_testimonials_linklabel] = "Mysite.com" sections[10][section_testimonials][5][section_testimonials_link] = "" sections[10][_group] = "testimonials" sections[11][section_blog_bg] = "#f6f6f6" sections[11][section_blog_header] = "OUR BLOG" sections[11][section_blog_subheader] = "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium" sections[11][_group] = "blog" sections[12][section_clients_bg] = "" sections[12][section_clients_header] = "OUR CLIENTS" sections[12][section_clients_subheader] = "Ideo occuro roto scisco. Acsi in letalis metuo nutus obruo proprius quis si venio" sections[12][section_clients][1][section_clients_image] = "" sections[12][section_clients][1][section_clients_title] = "Client Title" sections[12][section_clients][2][section_clients_image] = "" sections[12][section_clients][2][section_clients_title] = "Client Title" sections[12][section_clients][3][section_clients_image] = "" sections[12][section_clients][3][section_clients_title] = "Client Title" sections[12][section_clients][4][section_clients_image] = "" sections[12][section_clients][4][section_clients_title] = "Client Title" sections[12][section_clients][5][section_clients_image] = "" sections[12][section_clients][5][section_clients_title] = "Client Title" sections[12][section_clients][6][section_clients_image] = "" sections[12][section_clients][6][section_clients_title] = "Client Title" sections[12][_group] = "clients" ==


A simple Milky Way simulation.
Let's see it!
Just wanted to practice and enhance my development skills and have some fun in the process.
Spectacular Test Runner for JavaScript.


gtrellis_layout.Rd
Initialize genome-level Trellis layout
gtrellis_layout(data = NULL, category = NULL, species = NULL, nrow = NULL, ncol = NULL, n_track = 1, track_height = 1, track_ylim = c(0, 1), track_axis = TRUE, track_ylab = "", ylab_rot = 90, title = NULL, xlab = "Genomic positions", xaxis = TRUE, xaxis_bin = NULL, equal_width = FALSE, compact = FALSE, border = TRUE, asist_ticks = TRUE, xpadding = c(0, 0), ypadding = c(0, 0), gap = unit(1, "mm"), byrow = TRUE, newpage = TRUE, add_name_track = FALSE, name_fontsize = 10, name_track_fill = "#EEEEEE", add_ideogram_track = FALSE, ideogram_track_height = unit(2, "mm"), axis_label_fontsize = 6, lab_fontsize = 10, title_fontsize = 16, legend = list(), legend_side = c("right", "bottom"), padding = unit(c(2, 2, 2, 2), "mm"), remove_chr_prefix = FALSE)
| data | a data frame with at least three columns. The first three columns should be genomic categories (e.g. chromosomes), start positions and end positions. This data frame is used to extract ranges for each genomic category (minimal and maximal positions are taken as the range in the corresponding category). |
|---|---|
| category | subset of categories. It is also used for ordering. |
| species | Abbreviations of species. e.g. hg19 for human, mm10 for mouse. If this value is specified, the function will download |
| nrow | Number of rows in the layout. |
| ncol | Number of columns in the layout. |
| n_track | Number of tracks in each genomic category. |
| track_height | height of tracks. It should be numeric which means the value is relative and will be scaled into percent, or a |
| track_ylim | ranges on y axes of tracks. The value can be a vector of length two which means all tracks share same y ranges, or a matrix with two columns, or a vector of length |
| track_axis | whether show y axes for tracks. The value is logical that can be either length one or number of tracks. |
| track_ylab | labels for tracks on y axes. The value can be either length one or number of tracks. |
| ylab_rot | value can only be 0 or 90. |
| title | title of the plot. |
| xlab | labels on x axes. |
| xaxis | whether show x axes. |
| xaxis_bin | bin size for x axes. |
| equal_width | whether all columns in the layout have the same width. If |
| compact | For the catgories which are put in a same row, will they be put compactly without being aligned by columns. |
| border | whether show borders. |
| asist_ticks | if axes ticks are added on one side in rows or columns, whether add ticks on the other sides. |
| xpadding | padding on x axes in each cell. Numeric value means relative ratio corresponding to the cell width. Use |
| ypadding | padding on y axes in each cell. Only numeric value is allowed currently. |
| gap | 0 or a |
| byrow | arrange categories (e.g. chromosomes) by rows or by columns in the layout. |
| newpage | whether call |
| add_name_track | whether add a pre-defined name track (insert before the first track). The name track is simply a track which only contains text. The default style of the name track is simple, but users can self define their own by |
| name_fontsize | font size for text in the name track. Note the font size also affects the height of name track. |
| name_track_fill | filled color for name track. |
| add_ideogram_track | whether to add a pre-defined ideogram track (insert after the last track). If the cytoband data for specified species is not available, this argument is ignored. The ideogram track simply contains rectangles with different colors, implemented by |
| ideogram_track_height | Height of ideogram track. The value should be a |
| axis_label_fontsize | font size for axis labels. |
| lab_fontsize | font size for x-labels and y-labels. |
| title_fontsize | font size for title. |
| legend | a |
| legend_side | side of the legend |
| padding | padding of the plot. Elements correspond to bottom, left, top, right paddings. |
| remove_chr_prefix | if chromosome names start with 'chr', whether to remove it. |
Genome-level Trellis graph visualizes genomic data conditioned by genomic categories (e.g. chromosomes).
For each genomic category, multiple dimensional data which are represented as tracks describe different features from different
aspects. The gtrellis_layout
function arranges genomic categories on the plot in a quite flexible way. Then users
apply add_track
to add self-defined graphics to the plot track by track.
For more detailed demonstration of the function, please refer to the vignette.
No value is returned.
# There is no example NULL#> NULL


Installing the required packages
To get started with ansible, we need python and python-pip installed. Most linux distros comes with python and pip pre-installed. In case you want to install it grab it from python.org. Also please make sure you have ssh installed on all the machines. Even the target machines. Ansible uses python and ssh in conjunction to configure hosts. So make sure, openssh-server
is installed on all the hosts and the openssh service is running. sudo systemctl start openssh; sudo systemctl enable openssh
.
To check if you have pip installed
$ pip --version
pip 19.0.3 from /usr/lib/python2.7/site-packages/pip (python 2.7)
Once you made sure you have pip installed. You can install ansible using sudo pip install ansible
.
Check if you have ansible installed
ansible localhost -m ping
[WARNING]: Unable to parse /etc/ansible/hosts as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not
match 'all'
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
Ansible is installed. One more package left to install get started with configuring the targets. That is sshpass
. This allows us to ssh in to other machines and provide password to ssh
programatically. On RedHat you would install is like so sudo yum install -y sshpass
.
Now we have installed all the required packages!
Set /etc/hosts
Note: This is an optional step to setup your /etc/hosts
. I did this so i can use the name node[x]
in my inventory files.
My current /etc/hosts
looks like so:
/etc/hosts
<IP_ADDRESS> node1
<IP_ADDRESS> node2
<IP_ADDRESS> node3
Make sure you can ping your target nodes. And it is accessible to you via the network. Also make sure you can ssh into your target node from your control node.
$ ping -c 1 node1
PING node1 (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from node1 (<IP_ADDRESS>): icmp_seq=1 ttl=64 time=0.576 ms
--- node1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.576/0.576/0.576/0.000 ms
Now on to creating a static inventory file.
Creating a static inventory file
~/targets.ini
[targets]
node1 ansible_user='cloud_user' ansible_ssh_pass='LJPV2743xfnm' ansible_become_pass='LJPV2743xfnm' ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
node2 ansible_user='cloud_user' ansible_ssh_pass='LJPV2743xfnm' ansible_become_pass='LJPV2743xfnm' ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
node3 ansible_user='cloud_user' ansible_ssh_pass='LJPV2743xfnm' ansible_become_pass='LJPV2743xfnm' ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
Run ansible against these hosts
$ ansible all -i targets.ini -m ping
node3 | SUCCESS => {
"changed": false,
"ping": "pong"
}
node2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
node1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
Note: Make sure you have generated a pair of ssh public/private key using ssh-keygen
.
Configure targets
Now we can use this inventory file to configure the target hosts. Create the user ansible on the target nodes. Add the control node’s ssh public key into the /home/ansible/.ssh/authorized_keys
for all of the target nodes.
we will add the password we are creating for the ansible user in an encrypted file, using the ansible-vault
.
ansible-vault create passwordfile
For me, this opens up an empty file on vim (after i entered the encryption password). And then i added the following yml syntax.
~/passwordfile
password: mysecretpassword
I saved the encryption password to another file called vault-pass. I used the following playbook to configure the ansible target hosts.
~/configure_targets.yml
---
- hosts: targets
tasks:
- name: include secret password file
include_vars: passwordfile
- name: create user ansible
user:
name: ansible
password: "{{password}}"
become: yes
- name: add control node to authorized keys
authorized_key:
user: ansible
state: present
key: "{{ lookup('file', '/home/ansible/.ssh/id_rsa.pub') }}"
manage_dir: no
become: yes
Run the play book using ansible-playbook --vault-password-file=vault-pass -i targets.ini configure_targets.yml
. That should configure all your targets for you to ssh into them without the credentials.
Now we can disable ssh with passwords. So only users with their public key in the authorized keys list can login to the targets.
~/disable_ssh_password.yml
---
- hosts: targets
tasks:
- name: disable password on ssh
lineinfile:
path: /etc/ssh/ssh_config
regexp: "PasswordAuthentication .*$"
line: "PasswordAuthentication no"
become: yes
- name: restart ssh-server
service:
name: sshd
state: restarted
become: yes
Now the ansible control node is setup. To make sure all this works we will write a new inventory file targets_v2.ini
.
~/targets_v2.ini
[targets]
node1
node2
node3
And then we will use a playbook to check their ipv4 address. This ensures that we dont need to specify all the details like we did for targets.ini
.
~/check_targets_ipv4.yml
- hosts: targets
gather_facts: yes
- hosts: localhost
tasks:
- name: show the ipv4 address of the target machines
debug:
msg: ""
with_items:
- ""
Running that playbook using ansible-playbook -i targets_v2.ini check_targets_ipv4.yml
.
ansible-playbook -i targets_v2.ini check_targets_ipv4.yml
PLAY [targets] ***************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************
ok: [node2]
ok: [node3]
ok: [node1]
PLAY [localhost] *************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************
ok: [localhost]
TASK [show the ipv4 address of the target machines] **************************************************************
ok: [localhost] => (item=node1) => {
"msg": "<IP_ADDRESS>"
}
ok: [localhost] => (item=node2) => {
"msg": "<IP_ADDRESS>"
}
ok: [localhost] => (item=node3) => {
"msg": "<IP_ADDRESS>"
}
PLAY RECAP *******************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0
node1 : ok=1 changed=0 unreachable=0 failed=0
node2 : ok=1 changed=0 unreachable=0 failed=0
node3 : ok=1 changed=0 unreachable=0 failed=0


Task Running Like The Boss
Grunt vs.
Gulp vs.
Others
Tasks are Repetative
Grunt runs tasks
Gruntfile.js Configures Tasks
Dev Tasks
JSHint
CSS Lint
Unit Tests
Build Tasks
Minify
Copy
Deploy
Grunt Notify
Grunt Uglify
Grunt Watch
Grunt Imagemin
Make It Fast
Something Different
Grunt Patch WordPress
Script Everything


At A Glance
Media Type: Game
Platform: Web-based
Released: September 2019
Made for: Personal project
Created with: Twine
Coded in: Twine markup
Developers: Cass Aleatory (solo project)
Media Type: Game
Platform: Web-based
Released: September 2019
Made for: Personal project
Created with: Twine
Coded in: Twine markup
Developers: Cass Aleatory (solo project)
ESCAPE was my first chance to fully cut loose as a game writer. It's the story of a group of middle schoolers trapped in an amusement park by bad luck and circumstance. Not only do they need to find their way out, but they each need to escape from other things that are holding them back. The story is relatively linear, but the choices you make will affect how the characters around you perceive you... and how loyal they'll be to you when the going gets tough. There's only one ending, but you choose how you get there, and who gets there with you.
ESCAPE is an interactive fiction adventure made with the storytelling platform Twine. In other words, it's kinda like a playable Choose Your Own Adventure book. It's told in first person, allowing you to take actions and deliver dialogue from the point of view of the main character.
Creating ESCAPE was super gratifying and exciting! For once, I had a chance to write something without having any outside constraints imposed on me by a class, game jam, or collaborators. Working on ESCAPE provided a valuable lesson in the extent my own capabilities, as well as the game genre's narrative potential. Creating its complex and decision-based structure was a tremendous confidence booster for me, and it also forced me to think critically about some of the classic problems with game stories (ex. how to offer truly meaningful decisions without creating a story tree that grows exponentially).
I ultimately overcame struggles like these by leaning into decisions' abilities to affect characters' perceptions of the player instead of simply using them to alter the course of the plot. Having the players' decisions mostly just affect how characters perceive the player keeps the number of branching possibilities in the story in check without detracting from the player's ability to influence the world around them.
Everything! I wrote the story, designed the game, created the cover art, and programmed it all in Twine.


{% extends 'base.html' %} {% load crispy_forms_tags crispy_forms_filters %} {% block content %} My Quizzes {{ quiz.name }} {{ question.text }}
Old answer: {{ form.instance.text }}
Your question may have at least 2 answers and maximum 10 answers. Select at least one correct answer.


3GS - Tech Demo
VICTORY
Select one of the three procedurally generated mazes.
Maze 1
Maze 2
placeholder
Maze 3
Use WASD to move, and the mouse scroll wheel to raise up and lower the camera.


This quiz will have mulitple choice and fill in the blank questions and you will receive 1 point for each question, so brush up on your JS and when you're ready press start. Have fun!


Steve Jobs
- February 24, 1955
Steven Paul Jobs is born in San Francisco to Joanne Carole Schieble and Abdulfattah Jandali. The then-unmarried couple give up their son to adoption. Paul and Clara Jobs become Jobs' non-biological parents. - 1961
The Jobs family moves to Mountain View, Calif., part of what would later become known as Silicon Valley. - 1968
Jobs calls Bill Hewlett, the co-founder and co-namesake of Hewlett-Packard, looking for spare parts to build a frequency counter. Hewlett gives Jobs the parts, as well as an internship with the company that summer. - 1970
Meets future Apple co-founder Steve Wozniak through a friend. In Wozniak's 2006 autobiography, "iWoz," he notes that the two "hit it off" immediately, despite their four-year age difference. - 1972
Graduates from Homestead High School in Cupertino, Calif., and enrolls at Reed College in Portland, Ore., only to drop out a semester later. Jobs would go on to sit in on classes that interested him, such as calligraphy, despite not getting credit for them. - 1974
Begins a brief stint as an engineer at Atari. Working the night shift, he employs Wozniak to help whittle down the hardware required for a prototype of a single-player version of Pong, the game that would go on to become Breakout. Jobs leaves Atari in the summer to travel through India, only to return to California to live in a commune. - 1976
Co-founds Apple Computer with Wozniak and Ronald Wayne. That same year, the company sells the Apple I in the form of a kit that sells for $666.66. - January 3, 1977
Apple incorporates. - June 5, 1977
Releases the Apple II, the first commercially available personal computer in a plastic case with color graphics--and Apple's first successful personal computer. - December 12, 1980
Apple goes public, putting Jobs' net worth north of $200 million. - January 24, 1984
Two days after the $1.5 million Ridley Scott-directed "1984" Super Bowl commercial airs, introduces the Macintosh to much fanfare during Apple's shareholder meeting. "For the first time ever, I'd like to let Macintosh speak for itself." The computer's voice then says, "Never trust a computer you can't lift." Macintosh becomes the first commercially successful small computer with a graphical user interface. - September 12, 1985
CEO John Sculley engineers Jobs' ouster from Apple. Jobs resigns as Apple chairman, saying in a board meeting, "I've been thinking a lot, and it's time for me to get on with my life. It's obvious that I've got to do something. I'm 30 years old." Soon thereafter, Jobs starts NeXT Computer (which later becomes NeXT Software), funded by selling $70 million of his Apple stock. An "interpersonal" NeXT workstation, sporting a built-in Ethernet port, is used by Tim Berners-Lee at CERN to become the first server of the World Wide Web. - February 3, 1986
For $10 million, buys the Graphics Group division of Lucasfilm that becomes Pixar Animation Studios. - 1988
NeXT Computer releases its first computer. - 1993
NeXT discontinues hardware business, gets into software instead. The company is renamed NeXT Software, Inc - November 29, 1995
Becomes Pixar's president and CEO. Later in the year, Jobs brings Pixar pubic one week after the release of "Toy Story," with Tom Hanks doing the voice of Woody and Tim Allen as Buzz Lightyear. The film earns $192 million at the box office. Its success helps make it quite attractive for celebrities to lend their voices to animated characters. - December 10, 1996
Returns to Apple, as an adviser, after it buys NeXT for $429 million. - July 9, 1997
Becomes CEO, initially as the de facto chief, then as interim chief in September. - August 6, 1997
Announces a $150 million investment from Microsoft, coupled with a partnership on Microsoft Office and Internet Explorer for the Mac. - November 10, 1997
Introduces the Apple Store, which lets consumers custom-order Apple products directly from the company online - January 8, 1998
Apple returns to profitability. - May 6, 1998
Introduces the iMac, which becomes commercially available in August. - January 5, 2000
Drops the "interim" from his CEO title at the Macworld Expo, joking that he would be using the title "iCEO," paying homage to the company's product-naming conventions. Takes a $1 annual salary. Soon terminates projects including Newton and OpenDoc, and changes licensing terms to make Mac-cloning cost-prohibitive. Technologies developed at NeXT ultimately evolve into Apple products such as the Mac OS. - January 9, 2001
Introduces iTunes, then exclusively for Mac users. "iTunes is miles ahead of every other jukebox application, and we hope its dramatically simpler user interface will bring even more people into the digital music revolution." - March 24, 2001
Apple ships the the first version of Mac OS X, code-named Cheetah. - May 19, 2001
Opens Apple's first retail stores in Tysons Corner, Va., and Glendale, Calif. The store designs and personal sales methods proved to be tremendously popular. Apple was running 330 stores worldwide as of July 2011. - October 23, 2001
Introduces the iPod: "With iPod, Apple has invented a whole new category of digital music player that lets you put your entire music collection in your pocket and listen to it wherever you go...With iPod, listening to music will never be the same again." Apple's shipped more than 300 million iPods as of October 2011. - July 17, 2002:
Apple introduces the first Windows-compatible iPods at Macworld. - April 28, 2003
Opens the iTunes Music Store in the United States. Apple sold 10 billion songs via iTunes as of February 24, 2010, and it counted 225 million iTunes accounts with credit cards as of June 2011. - October 16, 2003
Introduces "the day hell froze over," announcing iTunes' compatibility with Windows. - August 1, 2004
Jobs undergoes surgery to remove a cancerous tumor in his pancreas. - January 11, 2005
Apple introduces an iPod Shuffle. "iPod Shuffle is smaller and lighter than a pack of gum and costs less than $100...With most flash memory music players, users must use tiny displays and complicated controls to find their music; with iPod Shuffle you just relax, and it serves up new combinations of your music every time you listen." - June 6, 2005
At WWDC, announces switch from IBM chips to Intel's Core Duo chips with Apple's new MacBook Pro and iMac. - September 7, 2005
Introduces iPod Nano: "iPod Nano is the biggest revolution since the original iPod...iPod Nano is a full-featured iPod in an impossibly small size, and it's going to change the rules for the entire portable music market." - October 12, 2005
Introduces iPod with video: "This is the best music player we've ever made...It's 30 percent thinner and has 50 percent more capacity for the same price, and you get video as a bonus." - January 13, 2006
That year, Apple's market capitalization surpasses Dell's. - January 25, 2006
Disney buys Pixar for $7.4 billion; Jobs joins Disney's board as its top shareholder. As of March 2011, Jobs owns 138 million shares of Disney, an estimated 7.29 percent of the company, and his net worth is estimated to be $8.3 billion. He owns 5.426 million shares of Apple as of February 2011. - February 2, 2006
iTunes sells its billionth song: "I hope that every customer, artist and music company executive takes a moment today to reflect on what we've achieved together during the past three years." - January 9, 2007
Drops "Computer" from Apple's name. Introduces the iPhone: "iPhone is a revolutionary and magical product that is literally five years ahead of any other mobile phone...We are all born with the ultimate pointing device--our fingers--and iPhone uses them to create the most revolutionary user interface since the mouse." Apple owns 19.1 percent of the smartphone market as of August 2011, having shipped 108 million iPhones worldwide as of March 2011. - September 5, 2007
Introduces the iPod Touch: "The iPod Touch is a landmark iPod, ushering in a whole new generation of features based on its revolutionary multitouch interface and built-in Wi-Fi wireless networking...People are going to be amazed at how thin it is and how much it does." - December 5, 2007
Inducted in the California Hall of Fame by Gov. Arnold Schwartzenegger. - January 15, 2008
Introduces the App Store as an update to iTunes. Also introduces the MacBook Air. The App Store facilitated 18 billion app downloads as of October 4, 2011 - June 9, 2008
Unveils MobileMe, Apple's first cloud offering: "Now users who are not part of an enterprise that runs Exchange can get the same push email, push calendars and push contacts that the big guys get." - January 14, 2009
Jobs takes a 6-month leave of absence for medical reasons. - January 27, 2010
Introduces the iPad. Apple sells 500,000 iPads during their first week on the market and gains 84 percent of the tablet market by the end of the year, with an estimated 12.9 million shipped as of December 10, 2010, and 25 million shipped worldwide as of June 2011. That same month, the company discloses that it has sold 200 million iOS devices. - November 16, 2010
Convinces Apple Corps. and EMI Group to make Beatles albums available on iTunes: "We love the Beatles, and are honored and thrilled to welcome them to iTunes...It has been a long and winding road to get here. Thanks to the Beatles and EMI, we are now realizing a dream we've had since we launched iTunes 10 years ago." - January 17, 2011
Goes on medical leave of absence from CEO post nearly two years after the six-month break he took to undergo a liver transplant. - February 10, 2011
Apple starts selling iPhones via Verizon Wireless, officially ending AT&T's exclusive U.S. contract. - February 15, 2011
Launches a media subscription service in the App Store: "Our philosophy is simple--when Apple brings a new subscriber to the app, Apple earns a 30 percent share; when the publisher brings an existing or new subscriber to the app, the publisher keeps 100 percent, and Apple earns nothing." - March 2, 2011
Jobs makes a surprise appearance to take the wraps off the iPad 2 at an invite-only event in downtown San Francisco. It's his first public appearance at a company event since announcing his third medical leave from the company in January. - June 6, 2011
Gives a keynote speech at Apple's Worldwide Developers Conference, it's Jobs' last public appearance at an Apple event. - June 7, 2011
Pitches Cupertino on a new Apple campus. - August 9, 2011
Apple shares edge past those of Exxon Mobil to become the most valuable U.S. company, in terms of market capitalization, at $337.17 billion - August 24, 2011
Resigns from Apple CEO post; becomes chairman. - October 5, 2011
Jobs dies at his Palo Alto, California, home around 3 p.m. (PDT) on October 5, 2011, due to complications from a relapse of his previously treated islet-cell pancreatic neuroendocrine tumor, which resulted in respiratory arrest.

For detailed information on Steve Jobs' life please read Jobs' Wikipedia page.


Section 2.22 File List
Skills Addressed in this Lesson:
Get information about a file.
View other document types.
Determine the order in which files are displayed.
Copy a file.
Move a file.
Rename a file.
Protect or unprotect a file.
Mark one file or all files.
Subsection 2.22.1 Tasks
From a list of files, use space with h to hear all available commands. These items will be reviewed in this lesson.
You can get information about the "pointed to" file in the file list within a folder. Space with i will allow you to get details about the file. You will learn what type of file you are focused on, the file size, when the file was last modified, and if the file is protected or unprotected. Try using space with i when pointed to a variety of files to get an idea of what information you can get.
Use space with x to view other types of files. If you want to view all files in the folder, use space with x until the View All Files option is displayed. Space with x will toggle to the various file types.
You can determine the order in which files are displayed by using space with v. Repeat space with v to change the order in which the files are viewed. Space with v is a toggle. The choices are name order, date order, size order, or type of file order. Explore this option by using space with v to toggle to a different order type. Look at your list of files to see how this impacts how your files are ordered.
To copy the pointed to file, press backspace with y. Try this now. You will need to choose the destination folder for the file to be placed in. However, the file is just being copied. The original will remain in the location it was copied from in the first place.
Backspace with m will "move" a file. If you move a file, it will no longer remain in its original location. Keep in mind that moving a file and copying a file are similar, but not quite the same.
You can rename the "pointed to" file. Press enter with r, then type the new name. Press enter when you finish.
Backspace with p will protect or unprotect a "pointed to" file. When you use this command on a file in the list, you will then need to press p to protect the file, u to unprotect the file, or enter to leave the option unchanged. If you protect a file, when you are actually in the file you will be unable to make changes to the file.
You can mark a file or mark all files. Space with m will mark the pointed to file. Enter with low g will mark all files.
Backspace with m will move marked files if you have any marked. Otherwise, backspace with m will move the pointed to file.
You can copy the marked items or delete the marked items. Backspace with y will copy the marked items. Backspace with dots1 4 will delete the marked items.
As time, use the above commands to become more familiar with how efficient they can be when managing files.
Subsection 2.22.2 Quiz
Answer each question. Items are taken from this lesson only.What command can be used to rename a file?
How can you get information about the pointed to file?
What will space with m do?
How can you protect a file?
What is the command to view other file types?
How can you move a file?
Can a "protected file" be written in?
When moving a file, does the file remain in its original location?


Behavioral analysis documentation¶
Welcome! This is the documentation for data analysis of rodent behavioral task data last updated Aug, 2020.
As a user you do not need to be fluent in Python. You can follow this guide and by respecting the requirementes and file data hirerachy you should be fine!
Rats in lever press task¶
LED detection¶
The LED panel in the experiment chamber captures different events during the experiment such as auditory cue onset, pad contact, reward delivery, etc.
For User:
The LED_detection.py executable file searches the path that you specify for video files. It will take some information about your video frames and it will produce a .csv file in the same directory as your video specifying the state of the LED as a binary (0,1) in each frame of your video.
Here are the steps you have to take:
Download the executable .py file from here and run it in your terminal:
$ python LED_detecion.py Enter the full path under which the video file hierarchy resides:OD (There must not be any videos other than the ones you want analyzed in this directory tree.)
Then input the root directory within which all your videos are as instructed above, for example in an IOS device:
/Users/apple/Desktop/Rat_Lever_experiment Specify the left and right end of the pad and the lever location, resepectively.
A window will pop up showing one frame of one of your videos. Specify the left and right edges of the pad and then the lever center with mouse clicks:
Pad edges (x,y): [153 364] [254 364] Lever location (x,y): [392 184] Press esc when you're done to close the windows.
It will mark your selections and show them as in the image above. Press esc to continue.
Then it will ask you to specify crop edges by mouse click in a new emerged window. Cropping around the LED panel will help not to overflow your memory during frame analysis:
Now specify the upper left and lower right corner for cropping Corners: [ 13 455] [395 511] Press esc when you're done to close the windows.
You will see your selection highlighted in green, as shown below. Press esc to continue.
Lastly, you will have to specify the circles corresponding to LED lights:
Specify the center and one point on the edge for each LED Circle centers and radii ([X, Y, R]): [[ 23 27 14] [ 96 34 14] [173 37 16] [254 40 13] [336 40 12]] Press esc when you're done to close the windows.
It will both show circles drawn around the LEDs (shown below) and report their coordinates for you to evaluate.
Note
Note that the mouse clicks have to be in this particular order :
Far left LED center
Far left LED edge point
Second left center
Second left edge point…
The LEDs change intensity from “off” to “on” state continouesly. Last step is to specify where on the spectrum from minimum to maximum intensity the LED has to be considered switched on. You should input this value as percentage (without the % sign):
Above what percentage of max intensity should be considered switched on? (Either press enter to set the default (25%) or input the percentage value for each LED seperated by spaces.) 30 25 30 40 50 Wait while the LED on-thresholds are set... runtime = 101 sec max intensities = [109 84 173 254 254] min intensities = [13 19 22 21 22] The LED thresholds are as following: [ 42 35 67 114 138]
After the threshold are set. It will ask you if you want to proceed with the analysis of all the videos in the root directory you provided in the beginning. You can confirmas below:
Do you want to proceed with analysis of all video files?(y/n) y
After the analysis is finished, you would be able to see the .csv files in the same directory as each video.
For developer/contributer:
Classes:¶
Video(): grabs each video and captures frames for analysis
Frame(): each captured frame by video grabber becomes an instance of this class for further analysis
LED_class(): stores informations regarding the LED lights, such as their location in the image, intensity and the minimum intensity threshold for on and off state.
Functions:¶
First a few functions to get inputs from user and get things ready for analysis:
build_videoPath_list (path):
input
: full path of the folder containing all videos within directories and subdirectories.
result
: a list of strings returning the full path for each video file in the directory tree.Note
Note that there should not be any other videos in this directory tree since all of them would be extracted with this function.
get_one_frame_from_video (videofile_path):
input
: full path to a video fileresult
: a BW frame of the videocrop (image):
Pops up a window showing a frame of the video and waits for two consecutive mouse clicks. First should be on the left upper corner and second on the right lower corner of the LED panel.
input
: a BW frame of the video containing the LED panelresult
: cropped BW image containing only the LED panelget_pad_and_lever_from_user (image)
Pops up a window with full frame and waits for 3 consecutive mouse clicks. 1) left end of the pad, 2) right end of the lever and 3) center of the lever.
input
: a full BW frame of the videoresult
: an array with 3 entries corresponding to (x,y) coordinates for left and right end of the pad and the center of the lever respectively.get_circles (cropped_image):
Pops up the cropped image and gets the center and one point on the edge of the presumed circle for each LED.
input
: BW image presenting the LED panel onlyresult
: returning a (5,3) size array, with (x,y,radius) for each of the 5 LEDsfind_on_threshold (videoPath_list, X0, X1, Y0, Y1, on_range)
Averages the pixel intensities of each LED in all frames of all videos. LED threshold is set on the first quarter of the max and min range.
input
: videoPath_list is the list of all the full paths of videos. (X0,Y0) is the upper left corner of the cropping rectangle and (X1,Y1) the lower right end. on_range is an array with n_LED elements specifying with what percentage of maximum intensity the LEDs should be considered as on (default is 25% for all).result
: a list containing 5 values as specific thresholds for each LED.
See also
See


- Javascript
- HTML
- CSS
- React
- Node.js
- Bootstrap
- Webpack
- jQuery
- Php
- Python
- Postgres
- Redis
- Loopback Api
- Docker
- AWS
- Git
- Bitbucket
- Scrum
Full stack Software Developer
<EMAIL_ADDRESS>Am an excited life long learning software developer with a get-it-done, on-time spirit. Strong in problem-solving skills integrating design, implementation and maintenance of applications. Skilled in javascript, python, php, databases such Postgres, MySQL, version control, Docker, DevOps technologies such AWS, pipelines, Continuous integration and Continuous Delivery as well as testing.
A modern software product called FADIS that functions as a platform to support farmers to administer farm businesses and link them to agricultural value chain players, which strengthens the position of farmers in the agriculture value chain in order to improve business results in the end improve the farmer’s livelihood.
This is a Ugandan startup that provides a cloud-based micro-finance software for community-level financial entities in Africa. Am privileged to be apart of the team to develop the financial inclusion application called Mobis that is disrupting the banking space.
I founded a side project which is an online business focusing on creative, innovative and goal oriented solutions. From increasing revenue, support, customer support to promoting identity of my clients over the internet.
I have worked as a data entrant to a Farmer Driven Information System called FADIS a tool to strengthen the position of farmers in the agriculture value chain in order to improve business results and in the end ensure the farmer’s livelihood.
An online community of people generously helping each other in form of a mutual Global Fund aid giving a technical basic program which helps millions of participants worldwide to find those in need, and those who are ready to provide help for free. All transactions through BITCOIN to the receipient given by senders own good will.
Bachelors of science in software engineering
Uganda Advanced Certificate Education (UACE)
Uganda Certificate Education (UCE)


50 - 52%
18 - 23%
CIO: 9%
Caucasian/European American: 63%
Hispanic or Latino: 16%
African American: 12%
Asian: 4%
"Other": 5%
?????????
40% less VC funding needed
Statistically more successful initial public offerings
44% more profitable than median in industry
34% greater ROI in IT companies with female directors
http://littlemissgeek.org/facts/
mixed-gender teams' patents cited 26 - 42% more often
the existence of diversity
and the chatroom
and the standup
and the welcome lunch
and the ________.
REPLACE IT WITH "RESPECT FOR MY COLLEAGUES"


Created by James Robinson for Hamilton Re
SELECT * FROM atlantic
WHERE latitude = 28
SELECT * FROM atlantic
WHERE latitude = 28 OR name LIKE 'two'
SELECT * FROM atlantic
WHERE name LIKE '%vey'
Used to create a new permenant table, to avoid confusion use your initials instead of mine when doing any examples in today's session.
CREATE TABLE jpr_big_storms (
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(255),
date DATETIME,
lat FLOAT,
long FLOAT,
max_wind INT
)
Used to add rows to an existing table.
INSERT INTO
jpr_big_storms (name, date, lat, long, max_wind)
VALUES ('ANDREW','1992-08-28',21.5,-42.1,165),
('BILL','1998-09-01',20.3,-46.1,50)
Used to change the values of rows in a table.
UPDATE jpr_big_storms
SET max_wind = 100
WHERE name = 'ANDREW'
Used to remove rows from a table.
DELETE FROM jpr_big_storms
WHERE name = 'ANDREW'
Used to create one table from another.
SELECT Name, Date, Time, Latitude, Longitude, [Maximum Wind]
INTO jpr_big_storms_2
FROM atlantic
WHERE [Maximum Wind] > 100
Used to add rows from one table to another.
INSERT INTO jpr_big_storms_2 (
Name, Date, Time, Latitude, Longitude, [Maximum Wind])
SELECT Name, Date, Time, Latitude, Longitude, [Maximum Wind]
FROM pacific
WHERE [Maximum Wind] > 100
SELECT Name, Date, Time, Latitude, Longitude, [Maximum Wind]
INTO #jpr_big_storms_3
FROM atlantic
WHERE [Maximum Wind] > 100
CREATE TABLE #jpr_big_storms_4 (
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(255),
date DATETIME,
lat FLOAT,
long FLOAT,
max_wind INT
)
INSERT INTO
#jpr_big_storms_4 (name, date, lat, long, max_wind)
VALUES ('ANDREW','1992-08-28',21.5,-42.1,165),
('BILL','1998-09-01',20.3,-46.1,50)
UPDATE #jpr_big_storms_4
SET max_wind = 100
WHERE name = 'ANDREW'
Replacing xyz with you initials, create a table called xyz_places with 2 columns for holding decimals in called lat and long
CREATE TABLE xyz_places (
lat FLOAT,
long FLOAT
)
Add all the latitude and longitudes from the atlantic table to the newly created table.
INSERT INTO xyz_places (lat, long)
SELECT latitude, longitude
FROM atlantic
Create a table with Name, Date, Time, Latitude, Longitude, Maximum Wind, Minimum Pressure from pacific table with a name of your choice.
SELECT Name, Date, Time, Latitude, Longitude, [Maximum Wind], [Minimum Pressure]
INTO jpr_your_name
FROM pacific
Add all the atlantic rows to the previous table.
INSERT INTO jpr_your_name
SELECT Name, Date, Time, Latitude, Longitude, [Maximum Wind], [Minimum Pressure]
FROM atlantic
Change all the minimum pressures that are NULL to 0
UPDATE jpr_your_name
SET [Minimum Pressure] = 0
WHERE [Minimum Pressure] IS NULL
Create a temporary table called xyz_places with 2 columns for holding decimals in called lat and long, and 1 called name
CREATE TABLE #xyz_places (
name VARCHAR(255),
lat FLOAT,
long FLOAT
)
Add all the name, latitude and longitudes from the atlantic table with a maximum wind greater than 105 to the newly created table.
INSERT INTO #xyz_places (name, lat, long)
SELECT name, latitude, longitude
FROM atlantic
WHERE [Maximum Wind] > 100
Create a temporary table with Date, Time and the Low Wind columns from pacific table with a name of your choice where the low wind speed is known.

INSERT INTO #jpr_your_name
SELECT Date, Time, [Low Wind NE], [Low Wind SE], [Low Wind SW], [Low Wind NW]
FROM atlantic
WHERE time = 0
Delete all the rows from the previous table where the time is not midnight
DELETE FROM #jpr_your_name
WHERE Time != 0


Assistant
First – Year Experience, University of North Alabama, March 2018- present
• Assist Director with Word, Excel, etc.
• Send out informational emails to students
• Organize files
Cashier
Sam's Club
(September 2018 - Present)
University of North Alabama:Bachelor of Business Administration in Computer Information Systems, August 2019
Gadsden City High School: Highschool Diploma


Description: Load JSON-encoded data from the server using a GET HTTP request.
url: String A string containing the URL to which the request is sent.
data: PlainObject A map or string that is sent to the server with the request.
success(data, textStatus, jqXHR): Function() A callback function that is executed if the request succeeds.
This is a shorthand Ajax function, which is equivalent to:
$.ajax({
url:
Data that is sent to the server is appended to the URL as a query string. If the value of the data
parameter is an object (map), it is converted to a string and url-encoded before it is appended to the URL.
Most implementations will specify a success handler:
$.getJSON('ajax/test.json', function(data) {
var items = [];
$.each(data, function(key, val) {
items.push('
' + val + '
');
});
$('
', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
});
This example, of course, relies on the structure of the JSON file:
{
"one": "Singular sensation",
"two": "Beady little eyes",
"three": "Little birds pitch by my doorstep"
}
Using this structure, the example loops through the requested data, builds an unordered list, and appends it to the body.
The success
callback is passed the returned data, which is typically a JavaScript object or array as defined by the JSON structure and parsed using the $.parseJSON()
method. It is also passed the text status of the response.
As of jQuery 1.5, the success
callback function receives a "jqXHR" object (in jQuery 1.4, it received the XMLHttpRequest
object). However, since JSONP and cross-domain GET requests do not use XHR, in those cases the jqXHR
and textStatus
parameters passed to the success callback are undefined.
Important: As of jQuery 1.4, if the JSON file contains a syntax error, the request will usually fail silently. Avoid frequent hand-editing of JSON data for this reason. JSON is a data-interchange format with syntax rules that are stricter than those of JavaScript's object literal notation. For example, all strings represented in JSON, whether they are properties or values, must be enclosed in double-quotes. For details on the JSON format, see http://json.org/.
If the URL includes the string "callback=?" (or similar, as defined by the server-side API), the request is treated as JSONP instead. See the discussion of the jsonp
data type in $.ajax()
for more details.
As of jQuery 1.5, all of jQuery's Ajax methods return a superset of the XMLHTTPRequest
object. This jQuery XHR object, or "jqXHR," returned by $.getJSON()
implements the Promise interface, giving it all the properties, methods, and behavior of a Promise (see Deferred object for more information). For convenience and consistency with the callback names used by $.ajax()
, it provides .error()
, .success()
, and .complete()
methods. These methods take a function argument that is called when the request terminates, and the function receives the same arguments as the correspondingly-named $.ajax()
callback.
The Promise interface in jQuery 1.5 also allows jQuery's Ajax methods, including $.getJSON()
, to chain multiple .success()
, .complete()
, and .error()
callbacks on a single request, and even to assign these callbacks after the request may have completed. If the request is already complete, the callback is fired immediately.
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.getJSON("example.json", function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
// perform other work here ...
// Set another completion function for the request above
jqxhr.complete(function(){ alert("second complete"); });
<!DOCTYPE html>

$.getJSON("test.js", function(json) {
alert("JSON Data: " + json.users[3].name);
});
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json) {
alert("JSON Data: " + json.users[3].name);
});


All configuration in Atlas uses java properties style configuration. The main configuration file is atlas-application.properties which is in the conf dir at the deployed location. It consists of the following sections:
Set the following properties to configure JanusGraph to use HBase as the persistence engine. Please refer to link for more details.
atlas.graph.storage.backend=hbase atlas.graph.storage.hostname=<ZooKeeper Quorum> atlas.graph.storage.hbase.table=atlas
If any further JanusGraph configuration needs to be setup, please prefix the property name with "atlas.graph.".
In addition to setting up configurations, please ensure that environment variable HBASE_CONF_DIR is setup to point to the directory containing HBase configuration file hbase-site.xml.
An index search engine is required for ATLAS. This search engine runs separately from the ATLAS server and from the storage backend. Only two search engines are currently supported: Solr and Elasticsearch. Pick the search engine best suited for your environment and follow the configuration instructions below.
Solr installation in Cloud mode is a prerequisite for Apache Atlas use. Set the following properties to configure JanusGraph to use Solr as the index search engine.
atlas.graph.index.search.backend=solr5 atlas.graph.index.search.solr.mode=cloud atlas.graph.index.search.solr.wait-searcher=true # ZK quorum setup for solr as comma separated value. Example: <IP_ADDRESS>:2181,<IP_ADDRESS>:2181 atlas.graph.index.search.solr.zookeeper-url= # SolrCloud Zookeeper Connection Timeout. Default value is 60000 ms atlas.graph.index.search.solr.zookeeper-connect-timeout=60000 # SolrCloud Zookeeper Session Timeout. Default value is 60000 ms atlas.graph.index.search.solr.zookeeper-session-timeout=60000
Elasticsearch is a prerequisite for Apache Atlas use. Set the following properties to configure JanusGraph to use Elasticsearch as the index search engine.
atlas.graph.index.search.backend=elasticsearch atlas.graph.index.search.hostname=<hostname(s) of the Elasticsearch master nodes comma separated> atlas.graph.index.search.elasticsearch.client-only=true
Search APIs (DSL, basic search, full-text search) support pagination and have optional limit and offset arguments. Following configs are related to search pagination
# Default limit used when limit is not specified in API atlas.search.defaultlimit=100 # Maximum limit allowed in API. Limits maximum results that can be fetched to make sure the atlas server doesn't run out of memory atlas.search.maxlimit=10000
Refer http://kafka.apache.org/documentation.html#configuration for Kafka configuration. All Kafka configs should be prefixed with 'atlas.kafka.'
atlas.kafka.auto.commit.enable=false # Kafka servers. Example: localhost:6667 atlas.kafka.bootstrap.servers= atlas.kafka.hook.group.id=atlas # Zookeeper connect URL for Kafka. Example: localhost:2181 atlas.kafka.zookeeper.connect= atlas.kafka.zookeeper.connection.timeout.ms=30000 atlas.kafka.zookeeper.session.timeout.ms=60000 atlas.kafka.zookeeper.sync.time.ms=20 # Setup the following configurations only in test deployments where Kafka is started within Atlas in embedded mode # atlas.notification.embedded=true # atlas.kafka.data=${sys:atlas.home}/data/kafka # Setup the following two properties if Kafka is running in Kerberized mode. #<EMAIL_ADDRESS># atlas.notification.kafka.keytab.location=/etc/security/keytabs/kafka.service.keytab
atlas.client.readTimeoutMSecs=60000 atlas.client.connectTimeoutMSecs=60000 # URL to access Atlas server. For example: http://localhost:21000 atlas.rest.address=
The following properties describe High Availability related configuration options:
# Set the following property to true, to enable High Availability. Default = false. atlas.server.ha.enabled=true # Specify the list of Atlas instances atlas.server.ids=id1,id2 # For each instance defined above, define the host and port on which Atlas server listens. atlas.server.address.id1=host1.company.com:21000 atlas.server.address.id2=host2.company.com:31000 # Specify Zookeeper properties needed for HA. # Specify the list of services running Zookeeper servers as a comma separated list. atlas.server.ha.zookeeper.connect=zk1.company.com:2181,zk2.company.com:2181,zk3.company.com:2181 # Specify how many times should connection try to be established with a Zookeeper cluster, in case of any connection issues. atlas.server.ha.zookeeper.num.retries=3 # Specify how much time should the server wait before attempting connections to Zookeeper, in case of any connection issues. atlas.server.ha.zookeeper.retry.sleeptime.ms=1000 # Specify how long a session to Zookeeper should last without inactiviy to be deemed as unreachable. atlas.server.ha.zookeeper.session.timeout.ms=20000 # Specify the scheme and the identity to be used for setting up ACLs on nodes created in Zookeeper for HA. # The format of these options is <scheme>:<identity>. For more information refer to http://zookeeper.apache.org/doc/r3.2.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl. # The 'acl' option allows to specify a scheme, identity pair to setup an ACL for<EMAIL_ADDRESS># The 'auth' option specifies the authentication that should be used for connecting to Zookeeper<EMAIL_ADDRESS># Since Zookeeper is a shared service that is typically used by many components, # it is preferable for each component to set its znodes under a namespace. # Specify the namespace under which the znodes should be written. Default = /apache_atlas atlas.server.ha.zookeeper.zkroot=/apache_atlas # Specify number of times a client should retry with an instance before selecting another active instance, or failing an operation. atlas.client.ha.retries=4 # Specify interval between retries for a client. atlas.client.ha.sleep.interval.ms=5000
# Set the following property to true, to enable the setup steps to run on each server start. Default = false. atlas.server.run.setup.on.start=false
The following properties can be used to tune performance of Atlas under specific circumstances:
# The number of times Atlas code tries to acquire a lock (to ensure consistency) while committing a transaction. # This should be related to the amount of concurrency expected to be supported by the server. For e.g. with retries set to 10, upto 100 threads can concurrently create types in the Atlas system. # If this is set to a low value (default is 3), concurrent operations might fail with a PermanentLockingException. atlas.graph.storage.lock.retries=10 # Milliseconds to wait before evicting a cached entry. This should be > atlas.graph.storage.lock.wait-time x atlas.graph.storage.lock.retries # If this is set to a low value (default is 10000), warnings on transactions taking too long will occur in the Atlas application log. atlas.graph.storage.cache.db-cache-time=120000 # Minimum number of threads in the atlas web server atlas.webserver.minthreads=10 # Maximum number of threads in the atlas web server atlas.webserver.maxthreads=100 # Keepalive time in secs for the thread pool of the atlas web server atlas.webserver.keepalivetimesecs=60 # Queue size for the requests(when max threads are busy) for the atlas web server atlas.webserver.queuesize=100
To enable performance logs for various Atlas operations (like REST API calls, notification processing), setup the following in atlas-log4j.xml:
<appender name="perf_appender" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/var/log/atlas/atlas_perf.log"/> <param name="datePattern" value="'.'yyyy-MM-dd"/> <param name="append" value="true"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d|%t|%m%n"/> </layout> </appender> <logger name="org.apache.atlas.perf" additivity="false"> <level value="debug"/> <appender-ref ref="perf_appender"/> </logger>


Documentation Is:
[ ] Missing or needed
[ ] Confusing
[ ] Not Sure?
Please Explain in Detail…
Your Proposal for Changes
Example


Εκπαιδευτές
| Id | FirstName | LastName | Subject |
|---|---|---|---|
| 1 | Giwrgos | Kalogyrou | Teaches only Java. |
| 2 | Giannhs | Papadopoulos | Teaches only C#. |
| 3 | Hara | Gkritsi | Teaches Sql and C++. |
| 4 | Kwnstantina | Kopanari | Teaches HTML, CSS and JS. |
| 5 | Dimitrhs | Nikolaou | Teaches Python and Php. |
| Id | FirstName | LastName | Subject |
|---|---|---|---|
| 1 | Giwrgos | Kalogyrou | Teaches only Java. |
| 2 | Giannhs | Papadopoulos | Teaches only C#. |
| 3 | Hara | Gkritsi | Teaches Sql and C++. |
| 4 | Kwnstantina | Kopanari | Teaches HTML, CSS and JS. |
| 5 | Dimitrhs | Nikolaou | Teaches Python and Php. |


Package algorithms.optimization
Class LinearProgramming
- java.lang.Object
-
- algorithms.optimization.LinearProgramming
-
public class LinearProgramming extends java.lang.Object
A program to find the optimal values of x if possible given an objective and constraints in Standard Form. The Simplex Method is used and will return infeasible or unbounded if an optimal Basic feasible solution is not possible. The runtime complexity is exponential at worse, but often performs as a polynomial runtime complexity. (pivot operations can be expensive for large problems, having combinatorial complexity C(m+n, m) at worse. Alternative algorithms are ellipsoid, and interior-point. Interior-point is a class of algorithms that solve linear and nonlinear convex optimization problems in provably polynomial time. https://en.m.wikipedia.org/wiki/Interior-point_method The interior-point algorithms can use linear algebra more effectively for large and sparse problems. Note that in the 4th edition of "Introduction to Algorithms", Cormen, Leiserson, Rivest, and Stein state that ellipsoid algorithms do not appear to be competitive with the simplex method in practice. (TODO: follow up on this with details of number of variables vs number of iterations or another measure of runtime complexity... Karmarkar's is O(N^3.5 * L) iterations where N is the number of variables and L is the number of bits of input to the algorithm) when all variables must be integers, the problem is more specifically, Linear Integer Programming problem and it is NP-hard, no known polynomial time algorithm.The algorithm implements Chap 29 of Cormen, Leiserson, Rivest, and Stein "Introduction to Algorithms" Some definitions: Standard Form: maximization of a linear function subject to linear *inequalities* Slack Form: maximization of a linear function subject to linear *equalities* algebraic solution: write the linear program in slack form which express the equalities in terms of "basic variables" and "nonbasic variables". involves making a basic variable nonbasic and a nonbasic variable basic using "pivot" operations. Simplex Method: Notation: variables x1, x2, ... xn a realization of the variables: xHat0, xHat1, ...xHatn ` Standard Form: real numbers: c1...cn; b1,...bm; and aij for a=1:m and j=1:n. Find numbers x1,...xn: objective : maximize summation_j=1:n(cj*xj) constraints : subject to: summation_j=1:n(aij*xj) .leq. bi for i=1:m constraints : xj .geq. 0 for j=1:n the later is a nonnegativity constraint OR expressed more compactly: A = (aij) = mXn matrix b = (bi) an m-dimensional vector c = (cj) an n-dimensional vector x = (xj) an n-dimensional vector objective : maximize c^T*x constraints : subject to: A*x .leq. b x .leq. 0 A feasible solution is the numbers xHat as x1,...xn that satisfy all constraints. An unfeasible solution fails to satisfy all constraints. The optimal solution is the feasible solution which maximizes the objective. An unbounded solution has feasible solution, but does not have finite optimal objective.
More regarding the Simplex Method runtime complexity: From wikipedia: http://en.wikipedia.org/wiki/Simplex_algorithm '...Analyzing and quantifying the observation that the simplex algorithm is efficient in practice, even though it has exponential worst-case complexity, has led to the development of other measures of complexity. The simplex algorithm has polyxnomial-time average-case complexity under various probability distributions, with the precise average-case performance of the simplex algorithm depending on the choice of a probability distribution for the random matrices. Another approach to studying "typical phenomena" uses Baire category theory from general topology, and to show that (topologically) "most" matrices can be solved by the simplex algorithm in a polynomial number of steps. Another method to analyze the performance of the simplex algorithm studies the behavior of worst-case scenarios under small perturbation – are worst-case scenarios stable under a small change (in the sense of structural stability), or do they become tractable? Formally, this method uses random problems to which is added a Gaussian random vector ("smoothed complexity")....'
NOTE: some Simplex algorithms use a matrix composed of the objective function (c, v) and the constraints (a, b) in a format called the "tableau". The tableau format varies in some implementations.| 1 (-1*objective function coefficients) 0 | | 0 (constraint 1 coefficients) (constraint 1 bound) | | 0 ... through all constraints ... | notes from Linear Programming, CSE 6331 Algorithms Steve Lai: Another form frequently used for Standard Form tableau: | x1 x2 ... xn | ------|---------------------------------------|------------ y1 | a11 a12 ... a1n | .leq. b1 y2 | a21 a22 ... a2n | .leq. b2 ... | ... ... ... ... | ... ym | am1 am2 ... amn | .leq. bm ------|---------------------------------------|------------- |.geq. c1 .geq. c2 .geq. cn |
The written text of the equations is "Dictionary" form.The original linear program before transformations is called "primal". Regarding duality: A Primal Standard Form LP: max: c^T*x subject to: A*x .leq. b and x .geq. 0 A Primal Minimization LP: min: y^T*b subject to: y^T*A .geq. c^T and y .geq. 0 Example: A Primal Standard Form LP | Dual Minimization LP max: x1 + x2 | min: 4*y1 + 12*y2 + y3 subject to: | subject to: x1 + 2*x2 .leq. 4 | y1 + 4*y2 - y3 .geq. 1 4*x1 + 2*x2 .leq. 12 | 2*y1+ 2*y2 + y3 .geq. 1 -x1 + x2 .leq. 1 | x1, x2 .geq. 0 | y1, y2, y3 .geq. 0 | x1 x2 | ------|---------------------------- y1 | 1 2 | .leq. 4 y2 | 4 2 | .leq. 12 ------|-----------------|---------- |.geq. 1 .geq. 1 |
The number of basic solutions is at most C(m+n, m).Basic feasible solutions are extreme points A set C is said to be convex if for all points x1, x2 in C we have lambda*x1 + (1 - lambda)*x2 in C for all 0 .leq. lambda .leq. 1. A point x in a convex set C is called an extreme point if there exist no x1, x2 in C, x1 != x2 , and 0 .lt. lambda .lt. 1, such that x = lambda*x1 + (1 - lambda)*x2. The feasible region of an LP is a convex set. Basic feasible solutions of an LP (in the equality form) are extreme points of the feasible region. If the LP is feasible bounded, then at least one optimum solution occurs at an extreme point.
- Author:
- nichole
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
LinearProgramming.FormTuple
example Standard Form: Find numbers x1,...xn: objective : maximize c^T*x = summation_j=1:n(cj*xj) constraints : subject to: A*x .leq.static class
LinearProgramming.SlackForm
maximization of a linear function subject to linear *equalities*static class
LinearProgramming.StandardForm
maximization of a linear function subject to linear *inequalities*
-
Constructor Summary
Constructors Constructor Description LinearProgramming()
LinearProgramming(long randomSeed)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
chooseEnteringIndex(LinearProgramming.SlackForm slackForm, gnu.trove.set.TIntSet positiveCIndexes)
static LinearProgramming.SlackForm
convertConstraints(LinearProgramming.StandardForm standForm)
given a standard form containing .leq.static LinearProgramming.StandardForm
convertLinearProgramToStandardForm(boolean isMaximization, double[][] a, double[] b, double[] c, int[] constraintComparisons, boolean[] nonnegativityConstraints)
Given a linear program L whose objective is minimization or maximization.protected LinearProgramming.SlackForm
createAuxiliarySlackForm(LinearProgramming.StandardForm standForm)
protected int
findMinIndex(double[] b)
finds the smallest value in b and returns its index; if b.length is 0 or if b contains only Double.POSITIVE_INFINITY, -1 is returned.protected gnu.trove.set.TIntSet
findPositiveCIndexes(LinearProgramming.SlackForm slackForm)
find the indexes eligible to be entering variable indexes.protected LinearProgramming.SlackForm
initializeSimplex(LinearProgramming.StandardForm standForm)
given a linear program in Standard Form if the problem is unfeasible, this method returns a slackform with state set to unfeasible, , else if the problem is unbounded the method returns a slackform with state set to unbounded, else returns a slack form for which a basic solution is feasible.protected LinearProgramming.SlackForm
pivot(LinearProgramming.SlackForm slackForm, int lIdx, int eIdx)
given a slack form and the indices for a leaving and entering variable, the pivot returns another slack form.LinearProgramming.SlackForm
solveUsingSimplexMethod(LinearProgramming.StandardForm standForm)
given a linear program in Standard Form if the problem is unfeasible, this method returns a slackform with state set to unfeasible, else if the problem is unbounded the method returns a slackform with state set to unbounded, else returns a slack form for which a basic solution is feasible and optimal.protected void
sortLHS(int[] bHatIndices, double[] bHat, double[][] aHat)
protected void
sortRHS(int[] nHatIndices, double[] cHat, double[][] aHat)
-
-
-
Method Detail
-
solveUsingSimplexMethod
public LinearProgramming.SlackForm solveUsingSimplexMethod(LinearProgramming.StandardForm standForm)
given a linear program in Standard Form if the problem is unfeasible, this method returns a slackform with state set to unfeasible, else if the problem is unbounded the method returns a slackform with state set to unbounded, else returns a slack form for which a basic solution is feasible and optimal.The method is implemented from pseudocode in Section 29.3 of Cormen, Leiserson, Rivest, and Stein Some definitions: A feasible solution is the numbers xHat as x1,...xn that satisfy all constraints. An unfeasible solution fails to satisfy all constraints. The optimal solution is the feasible solution which maximizes the objective. An unbounded solution has feasible solution, but does not have finite optimal objective.
NOTE: the random picking of the entering variable in the pivot of LinearProgramming, occasionally leads to a solution which is not optimal. TODO: consider a pattern for try again or at least document it for the user.- Parameters:
standForm
-- Returns:
-
initializeSimplex
protected LinearProgramming.SlackForm initializeSimplex(LinearProgramming.StandardForm standForm)
given a linear program in Standard Form if the problem is unfeasible, this method returns a slackform with state set to unfeasible, , else if the problem is unbounded the method returns a slackform with state set to unbounded, else returns a slack form for which a basic solution is feasible.The method is implemented from pseudocode in Section 29.3 of Cormen, Leiserson, Rivest, and Stein
- Parameters:
standForm
-- Returns:
-
pivot
protected LinearProgramming.SlackForm pivot(LinearProgramming.SlackForm slackForm, int lIdx, int eIdx)
given a slack form and the indices for a leaving and entering variable, the pivot returns another slack form. Its the geometrical operation of moving from a basic feasible solution to an adjacent basic feasible solution. https://en.m.wikipedia.org/wiki/Simplex_algorithmThe method is implemented from pseudocode in Section 29.3of Cormen, Leiserson, Rivest, and Stein
- Parameters:
slackForm
-lIdx
- the leaving index of x. the "leaving variable" is the basic variable in the constraint, on the lhs (so it's an index in bIndices).eIdx
- the exiting index of x. the "entering variable" is the non-basic variable in the constraint, on the rhs (so it's an index in nIndices).- Returns:
-
sortRHS
protected void sortRHS(int[] nHatIndices, double[] cHat, double[][] aHat)
- Parameters:
nHatIndices
-cHat
-aHat
-
-
sortLHS
protected void sortLHS(int[] bHatIndices, double[] bHat, double[][] aHat)
- Parameters:
bHatIndices
-bHat
-aHat
-
-
findMinIndex
protected int findMinIndex(double[] b)
finds the smallest value in b and returns its index; if b.length is 0 or if b contains only Double.POSITIVE_INFINITY, -1 is returned.- Parameters:
b
- an array of double numbers.- Returns:
- returns the index of the smallest value in b, but if b.length is 0 or if b contains only Double.POSITIVE_INFINITY, -1 is returned.
-
convertLinearProgramToStandardForm
public static LinearProgramming.StandardForm convertLinearProgramToStandardForm(boolean isMaximization, double[][] a, double[] b, double[] c, int[] constraintComparisons, boolean[] nonnegativityConstraints)
Given a linear program L whose objective is minimization or maximization. and which has constraints that are .leq., .eq., or .geq. the constants in b, convert L into standard maximum form. Standard form has a maximization objective, nonnegative constraints on all x_j's, and constraints which are all .leq. b_i's. The program implements material from Section 29.1 of Cormen, Leiserson, Rivest, and Stein "Introduction to Algorithms"Example Linear Program for minimization from Cormen, Leiserson, Rivest, and Stein, Chap 29. minimize: -2*x1 + 3*x2 subject to constraints: x1 + x2 .eq. 7 x1 - 2*x2 .leq. 4 nonnegativity constraints: x1 .geq. 0 Converted to a Standard Form: maximize: 2*x1 - 3*x2 + 3*x3 subject to constraints: x1 + x2 - x3 .leq. 7 -x1 - x2 + x3 .leq. -7 x1 - 2*x2 + 2*x3 .leq. 4 nonnegativity constraints: x1, x2, and x3 .geq. 0
- Parameters:
a
- constraint coefficientsb
- the constants in each constraint.c
- objective coefficientsconstraintComparisons
- an index of size c.length containing indicators for whether the constraint is .leq., .eq., or .geq.. -1 is used for .leq., 0 for .eq. and +1 for .geq.e.g. constraints: x1 + x2 .eq. 7 x1 - 2*x2 .leq. 4 would have constraintComparisons = [0, -1]
isMaximization
- true if the linear program goal is to maximize the objective, else false if the goal is to minimize the objective.nonnegativityConstraints
- indicates whether x_j has a non-negativity constraint- Returns:
-
convertConstraints
public static LinearProgramming.SlackForm convertConstraints(LinearProgramming.StandardForm standForm)
given a standard form containing .leq. inequalities expressed by standForm.a and standForm.b, convert the problem to a SlackForm of equality constraints and their slack variables. NOTE that the slack form 'a' matrix will have sign conventions that are the same as the signs of standForm.a. The slack form constraints are slack variable = b_i - summation_j=1:n(a_i_j * x_j), and so the negative sign read in the written slack form is not present in the matrix 'a'.- Parameters:
standForm
- a linear program with an objective of maximization, subject to constraints that are inequality constraints of the form .leq. and non-negativity constraints on x.- Returns:
-
createAuxiliarySlackForm
protected LinearProgramming.SlackForm createAuxiliarySlackForm(LinearProgramming.StandardForm standForm)
- Parameters:
standForm
-- Returns:
-
chooseEnteringIndex
protected int chooseEnteringIndex(LinearProgramming.SlackForm slackForm, gnu.trove.set.TIntSet positiveCIndexes)
- Parameters:
slackForm
-positiveCIndexes
-- Returns:
-
findPositiveCIndexes
protected gnu.trove.set.TIntSet findPositiveCIndexes(LinearProgramming.SlackForm slackForm)
find the indexes eligible to be entering variable indexes. They are found as the indexes of the c coefficients which are still positive.- Parameters:
slackForm
-- Returns:
-
-


Guinevere ***
rated R Miramax Films 104 minutes starring Sarah Polley, Stephen Rea, Jean Smart, Gina Gershon, Paul Dooley, Francis Guinan, Jasmine Guy written and directed by Audrey Wells
The seamstress down the hall has seen it several times before. A young girl, usually in her early twenties, walks into the room of the 50 year old man. Before long, she has brought her belongings and moved in. In a few weeks, she emerges screaming, frustrated, angry. We never see all these women come and go, but in `Guinevere', Audrey Wells' transfixing directorial debut, we know it all from one look at the seamstress, an inconsequential character without a single line.
The 50 year old man is Connie Fitzpatrick (Stephen Rea), an Irish photographer who is hired to document a wedding for an upscale family of San Franciscan lawyers. During the proceedings, he meets Harper Sloane (Sarah Polley), a family member who has been accepted to Harvard Law, but has neither the self esteem nor the will to attend.
Later in the week, Harper goes to Connie's apartment/development lab to pick up the wedding photos, and she falls deeply under the spell of this seductive older man. Harper, who is admittedly camera-shy, is admitted to Connie's exclusive school for young women, in which he shares his wisdom and art in exchange for love. Harper is a naive nymphet, and she moves in with him.
As we learn through Harper's voice-over, Connie was the worst and the greatest man she ever knew. For reasons which she doesn't know, Connie refers to her as Guinevere.
However, when Harper visits with an old friend of Connie's, she realizes that she isn't the only Guinevere who was drawn in to this world of romance and photography, and she begins to fear the mysterious older man. But Connie's seductive charms lure her back, and this Lolita romance continues on. There is a scene, later in the film, when Harper's affluent mother (Jean Smart) finds out about the improper relationship, and she addresses the two with blunt honesty. It is one of the more powerful scenes of `Guinevere', and it is from that point that the romance, and the film itself, begins to wind down.
Audrey Wells, who wrote `The Truth About Cats a nd Dogs', has crafted a beautiful, clever film that manages an entirely new spin on a May-December relationship. However, `Guinevere's' final third is amateurish, and the conlusion is unsatisying compared to what has preceeded it.
With `Guinevere', Sarah Polley finally has the leading role she deserves, after star-making turns in Atom Egoyan's `The Sweet Hereafter' and Doug Liman's `Go'. To Harper, she brings the right mix of naivete and experience, and her character grows to become three dimensional. Stephen Rea is eerily good as Connie, and Jean Smart has a small but vital role as Harper's mother.
Despite being excellent for most of its running time, `Guinevere's' wildly uneven conclusion is weird and depressing. Wells doesn't know when to end the film, and the result is like a bad dream.
However, Audrey Wells instills enough chemistry between Polley and Rea to make `Guinevere' is still a very pleasant surprise. To me, Sarah Polley is one of the leaders of a group of young actresses destined for superstardom (Chloe Sevigny is another one). She has the range to be choosy, and she can bring depth to any role.
In `Guinevere', subtlety plays the biggest role, and maybe on a second viewing, I can see more through the seamstress' eyes. In the end, `Guinevere' does falter, but it does so beautifully.
a review by Akiva Gottlieb<EMAIL_ADDRESS>http://cinemania.8m.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


I'm Alekhya Devi Manne. I'm from Andhra Pradesh, from a city called Visakhapatnam. I've completed my undergraduation in Computer Science and Engineering stream, in Raghu Engineering College. I worked as a Technical Support Associate in IBM for five months. And then I planned to do my Masters in USA.
I'm currently pursuing my Masters in Northwest Missouri State Univesity, in Applied Computer Science major. During my studies, I would either like to do an internship during my summer break or a part time on campus parallel to my studies. Apart from this I want to develop my technical skills throughout my course work and implement them in my future projects.I'm interested in Web designing as well.
Some of the programming languages that I'm interested in are C and JAVA.I would like to do my future projects using these languages and also using some Web designing techniques, if required.Besides these,some of my personal interests include:
Where do you stay?
On Campus
**The above calculations are done based on the following conditions:


Field notes help you to keep track of insect identification, date and location information in a data sheet like format. Keep a summary of your bug collecting!
End of notes.


All looks lost for the Rebellion against the Empire as they learn of the existence of a new super weapon, the Death Star. Once a possible weakness in its construction is uncovered, the Rebel Alliance must set out on a desperate mission to steal the plans for the Death Star. The future of the entire galaxy now rests upon. . .


HOME
PRODUCT
SHIRT
PANTS
GLASSES