001/* 002 * Copyright (c) 2010-2021 Mark Allen, Norbert Bartels. 003 * 004 * Permission is hereby granted, free of charge, to any person obtaining a copy 005 * of this software and associated documentation files (the "Software"), to deal 006 * in the Software without restriction, including without limitation the rights 007 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 008 * copies of the Software, and to permit persons to whom the Software is 009 * furnished to do so, subject to the following conditions: 010 * 011 * The above copyright notice and this permission notice shall be included in 012 * all copies or substantial portions of the Software. 013 * 014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 017 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 018 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 019 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 020 * THE SOFTWARE. 021 */ 022package com.restfb.scope; 023 024import com.restfb.annotation.GraphAPI; 025 026/** 027 * Please check the permission dependencies 028 * here 029 */ 030public enum FacebookPermissions { 031 /** 032 * Provides access to a subset of items that are part of a person's public profile. 033 * 034 * A person's public profile refers to the following properties on the user object by default: 035 *
 036 *
id
 037 *
name
 038 *
first_name
 039 *
last_name
 040 *
link
 041 *
gender
 042 *
locale
 043 *
timezone
 044 *
updated_time
 045 *
verified
 046 *
 047 * 048 * On the web, public_profile is implied with every request and isn't required, although the best practice is to 049 * declare it. On iOS and Android, you must manually request it as part of your login flow.
 050 *
 051 * 052 * gender & locale can only be accessed if: 053 * 054 *
 055 *
The person queried is the person using the app.
 056 *
The person queried is using the app, and is a friend of the person using the app.
 057 *
The person queried is using the app, is not a friend of the person using the app, but the app includes either 058 * an app access token or an appsecret_proof argument with the call.

 059 * Review Your app may use this permission without review from Facebook. 060 */ 061 PUBLIC_PROFILE("public_profile", Category.PUBLIC), // 062 063 /** 064 * Provides access to a person's personal description (the 'About Me' section on their Profile) through the bio 065 * property on the User object. 066 * 067 *
 068 * This permission does not give access to a person's public profile data. A person's name, profile picture, locale, 069 * age range and gender are included by default with the public_profile permission. 070 * 071 *
 072 * Review 073 * 074 *
 075 * If your app requests this permission Facebook will have to review how your app uses it. 076 * 077 * @deprecated since breaking change on 4 April, 2018 078 */ 079 @Deprecated 080 USER_ABOUT_ME("user_about_me", Category.USER_DATA), // 081 082 /** 083 * Provides access to all common books actions published by any app the person has used. This includes books they've 084 * read, want to read, rated or quoted. 085 * 086 *
 087 * Review 088 * 089 *
 090 * If your app requests this permission Facebook will have to review how your app uses it. 091 * 092 * @deprecated since breaking change on 4 April, 2018 093 */ 094 @Deprecated 095 USER_ACTIONS_BOOKS("user_actions.books", Category.EVENTS_GROUPS_PAGES), // 096 097 /** 098 * Provides access to all common Open Graph fitness actions published by any app the person has used. This includes 099 * runs, walks and bikes actions. 100 * 101 *
 102 * Review 103 * 104 *
 105 * If your app requests this permission Facebook will have to review how your app uses it. 106 * 107 * @deprecated since breaking change on 4 April, 2018 108 */ 109 @Deprecated 110 USER_ACTIONS_FITNESS("user_actions.fitness", Category.EVENTS_GROUPS_PAGES), // 111 112 /** 113 * Provides access to all common Open Graph music actions published by any app the person has used. This includes 114 * songs they've listened to, and playlists they've created. 115 * 116 *
 117 * Review 118 * 119 *
 120 * If your app requests this permission Facebook will have to review how your app uses it. 121 * 122 * @deprecated since breaking change on 4 April, 2018 123 */ 124 @Deprecated 125 USER_ACTIONS_MUSIC("user_actions.music", Category.EVENTS_GROUPS_PAGES), // 126 127 /** 128 * Provides access to all common Open Graph news actions published by any app the person has used which publishes 129 * these actions. This includes news articles they've read or news articles they've published. 130 * 131 *
 132 * Review 133 * 134 *
 135 * If your app requests this permission Facebook will have to review how your app uses it. 136 * 137 * @deprecated since breaking change on 4 April, 2018 138 */ 139 @Deprecated 140 USER_ACTIONS_NEWS("user_actions.news", Category.EVENTS_GROUPS_PAGES), // 141 142 /** 143 * Provides access to all common Open Graph video actions published by any app the person has used which publishes 144 * these actions. This includes videos they've watched, videos they've rated and videos they want to watch. 145 * 146 *
 147 * Review 148 * 149 *
 150 * If your app requests this permission Facebook will have to review how your app uses it. 151 * 152 * @deprecated since breaking change on 4 April, 2018 153 */ 154 @Deprecated 155 USER_ACTIONS_VIDEO("user_actions.video", Category.EVENTS_GROUPS_PAGES), // 156 157 /** 158 * Provides access to a person's age range. 159 * 160 *
 161 * Review 162 * 163 *
 164 * If your app requests this permission Facebook will have to review how your app uses it. 165 */ 166 @GraphAPI(since = "3.0") 167 USER_AGE_RANGE("user_age_range", Category.USER_DATA), // 168 169 /** 170 * Access the date and month of a person's birthday. This may or may not include the person's year of birth, dependent 171 * upon their privacy settings and the access token being used to query this field. 172 * 173 *
 174 * Please note most integrations will only need age_range which comes as part of the public_profile permission. 175 * 176 *
 177 * Review 178 * 179 *
 180 * If your app requests this permission Facebook will have to review how your app uses it. 181 */ 182 USER_BIRTHDAY("user_birthday", Category.USER_DATA), // 183 184 /** 185 * Provides access to a person's education history through the education field on the User object. 186 * 187 *
 188 * Review 189 * 190 *
 191 * If your app requests this permission Facebook will have to review how your app uses it. 192 * 193 * @deprecated since breaking change on 4 April, 2018 194 */ 195 @Deprecated 196 USER_EDUCATION_HISTORY("user_education_history", Category.USER_DATA), // 197 198 /** 199 * Provides read-only access to the Events a person is hosting or has RSVP'd to. 200 * 201 *
 202 * Review 203 * 204 *
 205 * If your app requests this permission Facebook will have to review how your app uses it. 206 */ 207 USER_EVENTS("user_events", Category.EVENTS_GROUPS_PAGES), // 208 209 /** 210 * Provides access the list of friends that also use your app. These friends can be found on the friends edge on the 211 * user object. 212 * 213 *
 214 * In order for a person to show up in one person's friend list, both people must have decided to share their list of 215 * friends with your app and not disabled that permission during login. Also both friends must have been asked for 216 * user_friends during the login process. 217 * 218 *
 219 * Review 220 * 221 *
 222 * Your app may use this permission without review from Facebook. 223 */ 224 USER_FRIENDS("user_friends", Category.USER_DATA), // 225 226 /** 227 * Provides access to read a person's game activity (scores, achievements) in any game the person has played. 228 * 229 *
 230 * Review 231 * 232 *
 233 * If your app requests this permission Facebook will have to review how your app uses it. 234 * 235 * @deprecated since breaking change on 4 April, 2018 236 */ 237 @Deprecated 238 USER_GAMES_ACTIVITY("user_games_activity", Category.USER_DATA), // 239 240 /** 241 * Provides access to a person's gender. 242 * 243 *
 244 * Review 245 * 246 *
 247 * If your app requests this permission Facebook will have to review how your app uses it. 248 */ 249 @GraphAPI(since = "3.0") 250 USER_GENDER("user_gender", Category.USER_DATA), // 251 252 /** 253 * Provides access to a person's hometown location through the hometown field on the User object. This is set by the 254 * user on the Profile. 255 * 256 *
 257 * Review 258 * 259 *
 260 * If your app requests this permission Facebook will have to review how your app uses it. 261 */ 262 USER_HOMETOWN("user_hometown", Category.USER_DATA), // 263 264 /** 265 * Provides access to the list of all Facebook Pages and Open Graph objects that a person has liked. This list is 266 * available through the likes edge on the User object. 267 * 268 *
 269 * Review 270 * 271 *
 272 * If your app requests this permission Facebook will have to review how your app uses it. 273 */ 274 USER_LIKES("user_likes", Category.USER_DATA), // 275 276 /** 277 * Provides access to the Facebook profile URL for another user of the app. 278 * 279 *
 280 * Review 281 * 282 *
 283 * If your app requests this permission Facebook will have to review how your app uses it. 284 */ 285 @GraphAPI(since = "3.0") 286 USER_LINK("user_link", Category.USER_DATA), // 287 288 /** 289 * Provides access to a person's current city through the location field on the User object. The current city is set 290 * by a person on their Profile. 291 * 292 *
 293 * The current city is not necessarily the same as a person's hometown. 294 * 295 *
 296 * Review 297 * 298 *
 299 * If your app requests this permission Facebook will have to review how your app uses it. 300 */ 301 USER_LOCATION("user_location", Category.USER_DATA), // 302 303 /** 304 * Enables your app to read the Groups a person is an admin of through the groups edge on the User object. 305 * 306 *
 307 * This permission does not allow you to create groups on behalf of a person. It is not possible to create groups via 308 * the Graph API. This does not let you read the groups a user is just a member of. 309 * 310 *
 311 * This permission is being deprecated as Groups is moving to a new permission model for apps. Please continue to use 312 * {@code user_managed_groups} for testing your apps in dev mode. However, when submitting for review, please select 313 * the reviewable feature Groups API, and do not submit this {@code user_managed_groups} in your review. 314 * 315 *
 316 * Limited use: for testing only 317 */ 318 USER_MANAGED_GROUPS("user_managed_groups", Category.EVENTS_GROUPS_PAGES), // 319 320 /** 321 * Provides access to the photos a person has uploaded or been tagged in. This is available through the photos edge on 322 * the User object. 323 * 324 *
 325 * Review 326 * 327 *
 328 * If your app requests this permission Facebook will have to review how your app uses it. 329 */ 330 USER_PHOTOS("user_photos", Category.USER_DATA), // 331 332 /** 333 * Provides access to the posts on a person's Timeline. 334 * 335 *
 336 * Includes their own posts, posts they are tagged in, and posts other people make on their Timeline. 337 * 338 *
 339 * Review 340 * 341 *
 342 * If your app requests this permission Facebook will have to review how your app uses it. 343 * 344 * @since 1.10.0 345 */ 346 USER_POSTS("user_posts", Category.USER_DATA), // 347 348 /** 349 * Provides access to a person's relationship interests as the interested_in field on the User object. 350 * 351 *
 352 * Review 353 * 354 *
 355 * If your app requests this permission Facebook will have to review how your app uses it. 356 * 357 * @deprecated since breaking change on 4 April, 2018 358 */ 359 @Deprecated 360 USER_RELATIONSHIP_DETAILS("user_relationship_details", Category.USER_DATA), // 361 362 /** 363 * Provides access to a person's relationship status, significant other and family members as fields on the User 364 * object. 365 * 366 *
 367 * Review 368 * 369 *
 370 * If your app requests this permission Facebook will have to review how your app uses it. 371 * 372 * @deprecated since breaking change on 4 April, 2018 373 */ 374 @Deprecated 375 USER_RELATIONSHIPS("user_relationships", Category.USER_DATA), // 376 377 /** 378 * Provides access to a person's religious and political affiliations. 379 * 380 *
 381 * Review 382 * 383 *
 384 * If your app requests this permission Facebook will have to review how your app uses it. 385 * 386 * @deprecated since breaking change on 4 April, 2018 387 */ 388 @Deprecated 389 USER_RELIGION_POLITICS("user_religion_politics", Category.USER_DATA), // 390 391 /** 392 * Provides access to the Places a person has been tagged at in photos, videos, statuses and links. 393 * 394 *
 395 * Review 396 * 397 *
 398 * If your app requests this permission Facebook will have to review how your app uses it. 399 */ 400 USER_TAGGED_PLACES("user_tagged_places", Category.USER_DATA), // 401 402 /** 403 * Provides access to the videos a person has uploaded or been tagged in. 404 * 405 *
 406 * Review 407 * 408 *
 409 * If your app requests this permission Facebook will have to review how your app uses it. 410 */ 411 USER_VIDEOS("user_videos", Category.USER_DATA), // 412 413 /** 414 * Provides access to the person's personal website URL via the website field on the User object. 415 * 416 *
 417 * Review 418 * 419 *
 420 * If your app requests this permission Facebook will have to review how your app uses it. 421 * 422 * @deprecated since breaking change on 4 April, 2018 423 */ 424 @Deprecated 425 USER_WEBSITE("user_website", Category.USER_DATA), // 426 427 /** 428 * Provides access to a person's work history and list of employers via the work field on the User 429 * object. 430 * 431 *
 432 * Review 433 * 434 *
 435 * If your app requests this permission Facebook will have to review how your app uses it. 436 * 437 * @deprecated since breaking change on 4 April, 2018 438 */ 439 @Deprecated 440 USER_WORK_HISTORY("user_work_history", Category.USER_DATA), // 441 442 /** 443 * Provides the ability to both read and manage the ads for ad accounts you have access to. Please see 444 * Ads Management for details. 445 */ 446 ADS_MANAGEMENT("ads_management", Category.EVENTS_GROUPS_PAGES), // 447 448 /** 449 * Provides the access to Ads 450 * Insights API to pull ads report information for ad accounts you have access to. 451 */ 452 ADS_READ("ads_read", Category.EVENTS_GROUPS_PAGES), // 453 454 /** 455 * Provides access to the person's primary email address via the email property on the user object. 456 * 457 *
 458 * Do not spam users. Your use of email must comply with both Facebook policies and with the CAN-SPAM Act. 459 * 460 *
 461 * Note, even if you request the email permission it is not guaranteed you will get an email address. For example, if 462 * someone signed up for Facebook with a phone number instead of an email address, the email field may be empty. 463 * 464 *
 465 * Review 466 * 467 *
 468 * Your app may use this permission without review from Facebook. 469 */ 470 EMAIL("email", Category.USER_DATA), // 471 472 /** 473 * Enables your app to retrieve Page Access Tokens for the Pages and Apps that the person administrates. 474 * 475 *
 476 * Review 477 * 478 *
 479 * If your app requests this permission Facebook will have to review how your app uses it. You can grant this 480 * permission on behalf of people listed within the Roles section of your App's Dashboard without review by Facebook. 481 */ 482 @Deprecated 483 MANAGE_PAGES("manage_pages", Category.EVENTS_GROUPS_PAGES), // 484 485 /** 486 * The {@code pages_manage_ads} permission allows your app the ability to manage ads associated with the Page. 487 * 488 *
 489 * You can use this permission to create and manage ads for the Page. 490 * 491 *
 492 * Review 493 * 494 *
 495 * If your app requests this permission Facebook will have to review how your app uses it. 496 */ 497 PAGES_MANAGE_ADS("pages_manage_ads", Category.EVENTS_GROUPS_PAGES), // 498 499 /** 500 * The {@code pages_manage_metadata} permission allows you to subscribe and receive webhooks about activity on the 501 * Page, and to update settings on the Page. 502 * 503 *
 504 * You can use this permission if you need it to help the Page Admin administer and manage the Page. 505 * 506 *
 507 * Review 508 * 509 *
 510 * If your app requests this permission Facebook will have to review how your app uses it. 511 */ 512 PAGES_MANAGE_METADATA("pages_manage_metadata", Category.EVENTS_GROUPS_PAGES), // 513 514 /** 515 * The {@code pages_read_engagement} permission allows your app the ability to read content (posts, photos, videos, 516 * events) posted by the Page, read followers data including name, PSID, and profile picture, and read metadata and 517 * other insights about the Page. 518 * 519 *
 520 * You can use this permission if you need it to help the Page Admin administer and manage the Page. 521 * 522 *
 523 * Review 524 * 525 *
 526 * If your app requests this permission Facebook will have to review how your app uses it. 527 */ 528 PAGES_READ_ENGAGEMENT("pages_read_engagement", Category.EVENTS_GROUPS_PAGES), // 529 530 /** 531 * The {@code pages_read_user_content} permission allows your app the ability to read User generated content on the 532 * Page, such as posts, comments, and ratings by Users or other Pages, and to delete User comments on Page posts. 533 * 534 *
 535 * It also allows your app to read posts that the Page is tagged in. 536 * 537 *
 538 * You can use this permission to read Users and other Page’s content posted on the Page if you need it to help manage 539 * the Page. 540 * 541 *
 542 * Review 543 * 544 *
 545 * If your app requests this permission Facebook will have to review how your app uses it. 546 */ 547 PAGES_READ_USER_CONTENT("pages_read_user_content", Category.EVENTS_GROUPS_PAGES), // 548 549 /** 550 * Provides the access to manage call to actions of the Pages that you manage. 551 * 552 *
 553 * Review 554 * 555 *
 556 * If your app requests this permission Facebook will have to review how your app uses it. 557 */ 558 @GraphAPI(since = "2.5") 559 PAGES_MANAGE_CTA("pages_manage_cta", Category.EVENTS_GROUPS_PAGES), // 560 561 /** 562 * Lets your app manage Instant Articles on behalf of Facebook Pages administered by people using your app. 563 * 564 *
 565 * Review 566 * 567 *
 568 * If your app requests this permission Facebook will have to review how your app uses it. 569 */ 570 @GraphAPI(since = "2.5") 571 PAGES_MANAGE_INSTANT_ARTICLES("pages_manage_instant_articles", Category.EVENTS_GROUPS_PAGES), // 572 573 /** 574 * Provides access to manage leads retrieved from Lead Ads of the Pages that you manage. 575 * 576 *
 577 * Review 578 * 579 *
 580 * If your app requests this permission Facebook will have to review how your app uses it. 581 */ 582 @GraphAPI(since = "2.3") 583 PAGES_MANAGE_LEADS("pages_manage_leads", Category.EVENTS_GROUPS_PAGES), // 584 585 /** 586 * This allows you to send and receive messages through a Facebook Page. 587 * 588 *
 589 * This permission cannot be used to send promotional or advertising content. Conversations through this API can only 590 * begin when someone indicates—through a Messenger plugin or directly messaging you—that they want to receive 591 * messages from you. 592 * 593 *
 594 * Review 595 * 596 *
 597 * If your app requests this permission Facebook will have to review how your app uses it. 598 */ 599 @GraphAPI(since = "2.6") 600 PAGES_MESSAGING("pages_messaging", Category.MESSAGING), // 601 602 /** 603 * This allows you to send and receive messages through a Facebook Page. 604 * 605 *
 606 * This permission cannot be used to send promotional or advertising content. Conversations through this API can only 607 * begin when someone indicates—through a Messenger plugin or directly messaging you—that they want to receive 608 * messages from you. 609 * 610 *
 611 * Review 612 * 613 *
 614 * If your app requests this permission Facebook will have to review how your app uses it. 615 */ 616 @GraphAPI(since = "2.6") 617 PAGES_MESSAGING_PHONE_NUMBER("pages_messaging_phone_number", Category.MESSAGING), // 618 619 /** 620 * Provides the access to show the list of the Pages that you manage. 621 * 622 *
 623 * Review 624 * 625 *
 626 * If your app requests this permission Facebook will have to review how your app uses it. 627 */ 628 @GraphAPI(since = "2.5") 629 PAGES_SHOW_LIST("pages_show_list", Category.EVENTS_GROUPS_PAGES), // 630 631 /** 632 * Provides access to publish Posts, Open Graph actions, achievements, scores and other activity on behalf of a person 633 * using your app. 634 * 635 *
 636 * Because this permission lets you publish on behalf of a user please read the Platform Policies to ensure you 637 * understand how to properly use this permission. 638 * 639 *
 640 * Your app does not need to request the publish_actions permission in order to use the Feed Dialog, the Requests 641 * Dialog or the Send Dialog 642 * 643 *
 644 * Review 645 * 646 *
 647 * If your app requests this permission Facebook will have to review how your app uses it. 648 * 649 * @deprecated this permission is deprecated and it is not possible to publish anything to the user feed via Graph API 650 * since April 2018 651 */ 652 @Deprecated 653 PUBLISH_ACTIONS("publish_actions", Category.USER_DATA), // 654 655 /** 656 * Gives your app the ability to post, comment and like as any of the Pages managed by a person using your app. 657 * 658 *
 659 * Publishing as an individual personal account is not possible with this permission. To post as an individual, please 660 * see the publish_actions permission. 661 * 662 *
 663 * Review 664 * 665 *
 666 * If your app requests this permission Facebook will have to review how your app uses it. 667 */ 668 @GraphAPI(since = "2.3") 669 @Deprecated 670 PUBLISH_PAGES("publish_pages", Category.EVENTS_GROUPS_PAGES), // 671 672 /** 673 * The {@code pages_manage_posts} permission allows your app the ability to create, edit, and delete your Page posts. 674 * 675 *
 676 * If you have access to {@code pages_read_user_content}, you can also use {@code pages_manage_posts} to delete Page 677 * posts created by a User. 678 * 679 *
 680 * You can use this permission to create and delete content on the Page. 681 * 682 *
 683 * Review 684 * 685 *
 686 * If your app requests this permission Facebook will have to review how your app uses it. 687 */ 688 PAGES_MANAGE_POSTS("pages_manage_posts", Category.EVENTS_GROUPS_PAGES), // 689 690 /** 691 * The {@code pages_manage_engagement} permission allows your app the ability to create, edit, and delete comments 692 * posted on the Page. 693 * 694 *
 695 * If you have access to {@code pages_read_user_content}, you can also use {@code pages_manage_engagement} to delete 696 * comments posted by other Pages. 697 * 698 *
 699 * It also allows your app the ability to create and delete your own Page's likes to Page content. 700 * 701 *
 702 * You can use this permission if you need it to help manage and moderate content on the Page. 703 * 704 *
 705 * Review 706 * 707 *
 708 * If your app requests this permission Facebook will have to review how your app uses it. 709 */ 710 PAGES_MANAGE_ENGAGEMENT("pages_manage_engagement", Category.EVENTS_GROUPS_PAGES), // 711 712 /** 713 * Gives an app the ability to post content into a group on behalf of a user who has granted the app this permission. 714 * 715 *
 716 * Review 717 * 718 *
 719 * If your app requests this permission Facebook will have to review how your app uses it. 720 */ 721 @GraphAPI(since = "3.0") 722 PUBLISH_TO_GROUPS("publish_to_groups", Category.EVENTS_GROUPS_PAGES), // 723 724 /** 725 * Grants an app permission to publish live videos to the app User's timeline. 726 * 727 *
 728 * Review 729 * 730 *
 731 * If your app requests this permission Facebook will have to review how your app uses it. 732 */ 733 @GraphAPI(since = "3.1") 734 PUBLISH_VIDEO("publish_video", Category.LIVE_VIDEO), // 735 736 /** 737 * Gives your app the ability to receive member-related data on group content when a member has granted the app 738 * permission to do so. 739 * 740 *
 741 * Review 742 * 743 *
 744 * If your app requests this permission Facebook will have to review how your app uses it. 745 */ 746 @GraphAPI(since = "3.0") 747 GROUPS_ACCESS_MEMBER_INFO("groups_access_member_info", Category.EVENTS_GROUPS_PAGES), // 748 749 /** 750 * Provides read-only access to the Audience Network Insights data for Apps the person owns. 751 * 752 *
 753 * Review 754 * 755 *
 756 * If your app requests this permission Facebook will have to review how your app uses it. 757 */ 758 @GraphAPI(since = "2.4") 759 READ_AUDIENCE_NETWORK_INSIGHTS("read_audience_network_insights", Category.OTHER), // 760 761 /** 762 * Provides access to the names of custom lists a person has created to organize their friends. This is useful for 763 * rendering an audience selector when someone is publishing stories to Facebook from your app. 764 * 765 *
 766 * This permission does not give access to a list of person's friends. If you want to access a person's friends who 767 * also use your app, you should use the user_friends permission. 768 * 769 *
 770 * This permission will also not help you invite a person's friends to use your app. 771 * 772 *
 773 * Review 774 * 775 *
 776 * If your app requests this permission Facebook will have to review how your app uses it. 777 * 778 * @deprecated not usable since Graph API 2.3, use READ_CUSTOM_FRIENDLISTS instead. If you use the Graph 779 * API before 2.3 ignore the deprecation warning 780 */ 781 @Deprecated 782 @GraphAPI(until = "2.2") 783 READ_FRIENDLISTS("read_friendlists", Category.OTHER), // 784 785 /** 786 * Provides access to the names of custom lists a person has created to organize their friends. 787 * 788 *
 789 * This is useful for rendering an audience selector when someone is publishing stories to Facebook from your app. 790 * 791 *
 792 * This permission does not give access to a list of person's friends. If you want to access a person's friends who 793 * also use your app, you should use the user_friends permission. 794 * 795 *
 796 * This permission will also not help you invite a person's friends to use your app. 797 * 798 *
 799 * This permission was called read_friendlists before v2.3. 800 * 801 *
 802 * Review 803 * 804 *
 805 * If your app requests this permission Facebook will have to review how your app uses it. 806 * 807 * @deprecated since breaking change on 4 April, 2018 808 */ 809 @Deprecated 810 @GraphAPI(since = "2.3") 811 READ_CUSTOM_FRIENDLISTS("read_custom_friendlists", Category.OTHER), // 812 813 /** 814 * Provides read-only access to the Insights data for Pages, Apps and web domains the person owns. 815 * 816 *
 817 * Review 818 * 819 *
 820 * If your app requests this permission Facebook will have to review how your app uses it. 821 */ 822 READ_INSIGHTS("read_insights", Category.OTHER), // 823 824 /** 825 * Provides the ability to read from the Page Inboxes of the Pages managed by a person. This permission is often used 826 * alongside the manage_pages permission. 827 * 828 *
 829 * This permission does not let your app read the page owner's mailbox. It only applies to the page's mailbox. 830 * 831 *
 832 * Review 833 * 834 *
 835 * If your app requests this permission Facebook will have to review how your app uses it. 836 */ 837 READ_PAGE_MAILBOXES("read_page_mailboxes", Category.EVENTS_GROUPS_PAGES), // 838 839 /** 840 * Provides the ability to set a person's attendee status on Facebook Events (eg attending, maybe, or declined). 841 * 842 *
 843 * This permission does not let you invite people to an event. 844 * 845 *
 846 * This permission does not let you update an event's details. 847 * 848 *
 849 * This permission does not let you create an event. There is no way to create an event via the API as of Graph API 850 * v2.0. 851 * 852 *
 853 * Review 854 * 855 *
 856 * If your app requests this permission Facebook will have to review how your app uses it. 857 */ 858 RSVP_EVENT("rsvp_event", Category.EVENTS_GROUPS_PAGES), // 859 860 /** 861 * Read and write with Business Management API 862 * 863 *
 864 * Review 865 * 866 *
 867 * If your app requests this permission Facebook will have to review how your app uses it. 868 */ 869 BUSINESS_MANAGEMENT("business_management", Category.EVENTS_GROUPS_PAGES), // 870 871 /** 872 * Grants your app the ability to create, read, update, and delete business owned product catalogs that the user is an 873 * admin of. This permission grants access to related endpoints. By default, your app may only access product catalogs 874 * that are owned by admins of the app when in developer mode. 875 * 876 *
 877 * Review 878 * 879 *
 880 * If your app requests this permission Facebook will have to review how your app uses it. 881 */ 882 CATALOG_MANAGEMENT("catalog_management", Category.EVENTS_GROUPS_PAGES), // 883 884 /** 885 * Grants your app permission to retrieve all the information captured within a 886 * lead. 887 * 888 *
 889 * Review 890 * 891 *
 892 * If your app requests this permission Facebook will have to review how your app uses it. 893 */ 894 @GraphAPI(since = "3.1") 895 LEADS_RETRIEVAL("leads_retrieval", Category.EVENTS_GROUPS_PAGES), // 896 897 /** 898 * This allows you to send and receive messages through a Facebook Page out of the 24h window opened by a user action. 899 * 900 *
 901 * This permission cannot be used to send promotional or advertising content. 902 * 903 *
 904 * Review 905 * 906 *
 907 * If your app requests this permission Facebook will have to review how your app uses it. 908 */ 909 @GraphAPI(since = "2.6") 910 PAGES_MESSAGING_SUBSCRIPTIONS("pages_messaging_subscriptions", Category.MESSAGING), // 911 912 /** 913 * This allows you to charge users in Messenger conversations on behalf of pages. 914 * 915 *
 916 * Intended for tangible goods only, not virtual or subscriptions. 917 * 918 *
 919 * Review 920 * 921 *
 922 * If your app requests this permission Facebook will have to review how your app uses it. 923 */ 924 @GraphAPI(since = "2.6") 925 PAGES_MESSAGING_PAYMENTS("pages_messaging_payments", Category.MESSAGING), 926 927 // Instagram Platform permissions 928 929 /** 930 * Provides the ability to read Instagram accounts you have access to. 931 * 932 *
 933 * Please see Instagram's Getting Started 934 * Guide for details. 935 * 936 *
 937 * Review 938 * 939 *
 940 * If your app requests this permission Facebook will have to review how your app uses it. 941 */ 942 @GraphAPI(since = "2.5") 943 INSTAGRAM_BASIC("instagram_basic", Category.INSTAGRAM), 944 945 /** 946 * Provides the ability to read Instagram accounts you have access to. 947 * 948 *
 949 * Please see Instagram's Getting Started 950 * Guide for details. 951 * 952 *
 953 * Review 954 * 955 *
 956 * If your app requests this permission Facebook will have to review how your app uses it. 957 */ 958 @GraphAPI(since = "2.5") 959 INSTAGRAM_MANAGE_COMMENTS("instagram_manage_comments", Category.INSTAGRAM), 960 961 /** 962 * Provides the ability to read insights of Instagram account you have access to. 963 * 964 *
 965 * Please see Instagram's Getting Started 966 * Guide for details. 967 * 968 *
 969 * Review 970 * 971 *
 972 * If your app requests this permission Facebook will have to review how your app uses it. 973 */ 974 @GraphAPI(since = "2.5") 975 INSTAGRAM_MANAGE_INSIGHTS("instagram_manage_insights", Category.INSTAGRAM), 976 977 /** 978 * Provides the ability to publish content to Instagram account you have access to. 979 * 980 *
 981 * Please see Instagram's 982 * reference for details. 983 * 984 *
 985 * Review 986 * 987 *
 988 * If your app requests this permission Facebook will have to review how your app uses it. 989 */ 990 @GraphAPI(since = "2.5") 991 INSTAGRAM_CONTENT_PUBLISH("instagram_content_publish", Category.INSTAGRAM), 992 993 /** 994 * Provides the ability to read and/or manage WhatsApp business assets you own or have been granted access to by other 995 * businesses through this permission. 996 * 997 * These business assets include WhatsApp business accounts, phone numbers, and message templates. 998 * 999 *
 1000 * Please see Whatsapps's 1002 * reference for details. 1003 * 1004 *
 1005 * Review 1006 * 1007 *
 1008 * If your app requests this permission Facebook will have to review how your app uses it. 1009 */ 1010 WHATSAPP_BUSINESS_MANAGEMENT("whatsapp_business_management", Category.WHATSAPP); 1011 1012 private final String permissionString; 1013 1014 private final Category category; 1015 1016 FacebookPermissions(String facebookPermissionString, Category category) { 1017 this.permissionString = facebookPermissionString; 1018 this.category = category; 1019 } 1020 1021 public String getPermissionString() { 1022 return this.permissionString; 1023 } 1024 1025 public Category getCategory() { 1026 return this.category; 1027 } 1028 1029 public enum Category { 1030 PUBLIC, USER_DATA, EVENTS_GROUPS_PAGES, OTHER, MESSAGING, INSTAGRAM, LIVE_VIDEO, WHATSAPP 1031 } 1032}


What's up with th@? Adding an Operator to CPython
01:15 PM - 01:40 PM on August 16, 2015, Room 702John Hergenroeder
- Audience level:
- intermediate
- Watch:
- http://youtu.be/dQF1hBuQYZE
Description
How do you add an operator to CPython? We'll use the recent addition of the '@' operator in 3.5a1 to answer that question and dig into the CPython internals in the process, touching on how the interpreter goes from source to execution.
Abstract
We'll start by considering our goal: adding a new operator to the CPython implementation of Python. As a case study, we'll use the new infix matrix multiplication operator, '@', which debuted in the release of 3.5a1. In the process, we'll dig into how CPython goes from source code to execution and touch on the tools that the standard library provides for investigating the compilation and interpretation process. Our investigation will also illustrate what it takes to experiment with your own changes to the Python language and cPython.
Adding a new operator requires a broad understanding of how the CPython interpreter runs Python code, going from source code text to tokens, to a parse tree, to an abstract syntax tree (AST), to bytecode, and finally to execution. We'll talk about each of those steps briefly before looking at the changeset that was merged for the operator's inclusion in 3.5.
While the changeset is substantial, we can separate it into four broad changes: updating the grammar used for lexing and parsing, adding a new node type for the AST, extending the internal type object to support matrix multiplication operation definitions, and finally defining and implementing the new bytecodes the interpreter will execute. After walking through those changes, we'll take a moment to note some of the neat tools you can use to investigate CPython on your own.


Model View Controller |
returns | Description |
|---|---|---|
| testException | text | Spring @RestController Exception Advice |
| testNullPointer | text | Spring @Controller Null Pointer Exception Advice |
| missingTemplate | text | Missing thymeleaf template |
| malformedTemplate | text | malformedTemplate thymeleaf template. ALL elements must be terminated |
| addSessionVar | text | Spring MVC with session variable; note embedded tomcat can optional persist over restarts, or distribute for stateless containers via redis |
| testAclFailure | html | Spring Security - verify ACL deny message |
Service Locator |
returns | Description |
|---|---|---|
| hello | text | Invoke instance in current JVM |
| helloWithRestAcl | text | Invoke instance in current JVM protected with userid and password |
| hello: remote random | text | Invoke instance in remote JVM, *Best Distribution |
| hello: remote round robin | text | Invoke instance in remote JVM, iterates available instances |
| hello: remote low Cpu | text | Invoke instance in remote JVM, lowest cpu usage of available instances |
| hello: remote low load | text | Invoke instance in remote JVM, lowest cpu load of available instances |


Horus
Welcome to Sustaingineering App. Our engines are running as fast as they can, so sit tight while we get you everything setup.
click me
Kicking off engines..
Powered By


Links to operations to edit a person:
Add a person
Info about all persons
Info about person with ID 12345
Delete person with ID 12345


s
|
Nana C++ Library An open-source C++ framework project The Programmer's Guide |
||||||||||||
|
nana::threads::pool Description A thread pool manages a group threads for a large number of tasks processing. Model of None Public base classes None Members
File nana/threads/pool.hpp Notes 1, The signal()/wait_for_signal() provide a method to wait for tasks to finish. void foo() {} void foo2() { nana::system::sleep(1000); std::cout<<"This is foo2"<<std::endl; } int main() { nana::threads::pool pool; for(int i = 0; i < 10; ++i) pool.push(foo); pool.signal(); //Make a signal and the signal will be triggered when the //tasks which are pushed before it are finished. pool.push(foo2); pool.wait_for_signal(); //Wait until the signal is triggered. The wait might be finished //before finish of foo2, because the signal is made before pushing foo2. } See also pool_pusher, A Method to prevent UI from blocking while busy. Move to The Nana Programmer's Guide Main Page |
||||||||||||


--- layout: default title: How FromJS works rel_canonical: http://www.mattzeunert.com/2016/10/04/how-from-js-works.html ---
document.createElement
and also uses Babel to replace
some JavaScript language features with function calls. This makes it possible to capture a stack trace
when a string is modified. The stack trace and other origin data are then stored on the string.
When inspecting a page with FromJS you can find the JavaScript code that’s responsible for a particular part of the UI. This article explains how that works.
We’ll take a look at this example. If you’re on Chrome Desktop you can try it online.
Inspecting the final body HTML leads us back to the source code:
The user has selected an element from the DOM. Its outerHTML looks like this, and the “H” in “Hello World!” is selected.
The outerHTML came about as the combination of two events:

in the initial page HTMLinnerHTML
assignment in JavaScriptSince the user clicked on the “H” character in the tag content it’s straightforward which event we’ll need to look at in more detail: the innerHTML
assignment.
To track where in the code the innerHTML
assignment happened we need to run some code every time innerHTML
is updated.
This is possible by adding a property setter to the innerHTML
property of Element.prototype
.
Now, the downside is that we are no longer actually updating the innerHTML
of our element, because we overwrote the original setter function that did that.
We want to call this native setter function in addition to running our tracking code. The details of a property - such as its getter, setter, or whether it’s enumerable - are stored in something called a property descriptor. We can obtain the descriptor of a property using Object.getOwnPropertyDescriptor
.
Once we have the original property descriptor we can call the old setter code in the new setter. This will restore the ability to update the DOM by assigning to innerHTML
.
Now, in the setter we want to record some metadata about the assignment. We put that data into an __innerHTMLOrigin
property that we store on the DOM element.
Most importantly, we want to capture a stack trace so we know where the assignment happened. We can obtain a stack trace by creating a new Error
object.
Let’s run the “Hello World!” example code from earlier after overwriting the setter. We can now inspect the #welcome
element and see where its innerHTML
property is assigned:
We now have a starting point in our quest to find the origin of the “H” character in the #example
div. The __innerHTMLOrigin
object above will be the first step in on this journey back to the “Hello” string declaration.
The __innerHTMLOrigin
object keeps track of the HTML that was assigned. It’s actually an array of inputValues
- we’ll see why later.
Unfortunately, the assigned value is a plain string that doesn’t contain any metadata telling us where the string came from. Let’s change that!
This is a bit trickier than tracking the HTML assignments. We could try overriding the constructor of the String
object, but unfortunately that constructor is only called when we explicitly run new String("abc")
.
To capture a call stack when the string is created we need to make changes to the source code before running it.
Babel is usually used to compile ES 2015 code into ES5 code, but you can also write your own Babel plugins that contain custom code transformation rules.
Strings aren’t objects, so you can’t store metadata on them. Therefore, instead of creating a string literal we want to wrap each string in an object.
Rather than running the original code:
We replace every string literal with an object:
You can see that the object has the same structure we used to track the innerHTML
assignment.
Putting an object literal in the code is a bit verbose and generating code in Babel isn’t much fun. So instead of using an object literal we instead write a function that generates the object for us:
We do something similar for string concatenation.
greeting += " World!"
becomes greeting = f__add(greeting, " World!")
. Or, since we’re replacing every string literal, greeting = f__add(greeting, f__StringLiteral(" World!"))
.
After this, the value of greeting
is as follows:
greeting
is then assigned to our element’s innerHTML property. __innerHTMLOrigin.inputValues
now stores a tracked string that tells us where it came from.
We can now track the character “H” character in “Hello World!” from the innerHTML
assignment back to the JavaScript string literal.
Starting from the div’s __innerHTMLOrigin
we navigate through the metadata objects until we find the string literal. We do that by recursively looking at the inputValues
, until inputValues
is an empty array.
Our first step is the innerHTML
assignment. It has only one inputValue
- the greeting
value shown above. The next step must therefore be the greeting += " World!"
string concatenation.
The object returned by f__add
has two input values, “Hello” and “ World!”. We need to figure out which of them contains the “H” character, that is, the character at index 0 in the string “Hello World!”.
This is not actually difficult. “Hello” has 5 characters, so the indices 0-4 in the concatenated string come from “Hello”. Everything after index 4 comes from the “ World!” string literal.
The inputValues
array of our object is now empty, which means we’ve reached the final step in our origin path. This is what it looks like in FromJS:
If you actually tried running the code above, you’d notice that it breaks the innerHTML
assignment. When we call the native innerHTML setter, rather than setting the content to the original string, it’s set to “[object Object]”.
That’s because innerHTML
needs a string and all Chrome has is an object, so it converts the object into a string.
The solution is to add a toString method to our object. Something like this:
When we assign an object to the innerHTML property, Chrome calls toString
on that objects and assigns the result.
Now when we call code that’s unaware of our string wrappers the calls will still (mostly) work.
I won’t go into too much detail about this, but the example below should give you a basic idea of how this works.
Babel allows you to specify “visitors” for certain types in the JavaScript parse tree. The function below is called for every string literal that Babel finds in the source code.
Because Chrome runs the compiled code rather than the original source code, the line and column numbers in the call stack will refer to the compiled code.
Luckily Babel generates a source map that lets us convert the stack trace to match the original code. FromJS uses StackTrace.JS to handle the source map logic.


Soulspike Devourer
Level 20 Elite Soldier (Leader)
Huge shadow humanoid (undead)
45,000
Senses
Perception +15
darkvision
Soulspike Ward
aura 10; the soulspike devourer and all
allies in the aura gain a bonus to all defenses equal to one-half the
number of soulspiked spirits impaled on the creature
Will
34
see also soulspike ward above
Vulnerable
10 radiant
(when the soulspike devourer takes radiant damage, its newest soulspiked spirit gets a saving throw to escape)
Reach 3; +26 vs AC; 2d8 + 9 damage. If the attack reduces a
humanoid living target to 0 hit points or fewer, the target disappears
and becomes a soulspiked spirit impaled on the devourer (see soulspiked
spirit).
Soul Shatter
(standard; recharges when the soulspike devourer uses a devour spirit) Necrotic
Cloud burst 3; +24 vs Will; 5d8 + 8 necrotic damage, and the
target is stunned until the end of the soulspike devourer's next term.
Aftereffect: Target is weakened (save ends).
Devour Spirit
(standard; at-will) Healing
The soulspike devourer instantly kills the oldest soulspiked
spirit and regains 75 hit points. A creature's dead body appears in a
space adjacent to the devourer.
The soulspiked devourer begins the encounter with one
soulspiked spirit and impale up to four soulspiked spirits. A
soulspiked spirit can take no action and escapes when the devourer is
destroyed. When a creature's spirit escapes, its body appears in an
unoccupied space adjacent to the devourer, in the same state is was when
it disappeared.
Alignment
Evil
Languages
Common
Equipment
Longsword of Doom


Are you sure you would like to mark this board for deletion? Delete will not take effect until the changes are saved.
WARNING: Deleting this board will delete all threads and posts in this board.
Are you sure you would like to mark this category for deletion? Delete will not take effect until the changes are saved.
All boards under this category will be moved to the 'Uncategorized Boards' section.


Matt Moocarme
Learn to play your favorite new songs
Learning how to play instruments is hard.
You're motivated to play songs you enjoy listening to, but they're often out of your skill level
The solution is
Jamify recommends songs based on listening preference AND skill level
2.4Gb subset of the Million Song Dataset
Latent semantic analysis to quickly perform cosine similarity via singular value decomposition
Music notation scraped from over 1 million webpages
Logistic Regression trains on ~36.0% labelled set into novice, intermediate, & advanced
10-fold cross-validated logistic regression to classify the music notations into difficulty levels
The main advantage is interpretable results
| Instrument | Accuracy |
|---|---|
| Guitar | 76.9% |
| Ukulele | 77.7% |
| Bass | 58.9% |
| Guitar Tabs | 52.5% |
| Drums | 45.4% |
Coefficients for "novice"
C predicted easy
Abm7 not predicted easy
D-A-Bm-G
Journey-Don't Stop Believin'
MGMT-Kids
A-Ha - Take On Me
Lady Gaga - Paparazzi
Jason Mraz - I'm Yours
Random = 1.7424e-6
Random = 1.7424e-6
Trained on 20,000 Guitar Tabs
| Model | 5-fold CV Accuracy | Test Accuracy |
|---|---|---|
| Logistic Regression - L1 penalty | 43.063 ± 10.614% | 47.618% |
| Logistic Regression - L2 penalty | 48.025 ± 5.789% | 52.512% |
| Nearest Neighbours | 49.788 ± 1.449% | 50.800% |
| Linear SVM | 49.940 ± 2.034% | 49.266% |
| RBF SVM | 57.712 ± 2.420% | 57.052% |
| Decision Trees | 57.871 ± 0.806% | 56.733% |
| Random Forest | 58.573 ± 1.457% | 58.807% |
| Adaboost | 59.331 ± 1.326% | 60.179% |
| Naive Bayes | 50.850 ± 2.180% | 51.659% |
| Quadratic Discriminant | 47.618 ± 9.749% | 50.479% |
Random = 1.7424e-6
Recommendation Using SVD with Rank 1
Marvin Sease - Show me what you got


my name's nada alabdullah and i'm studing programming that is one of the fastest growing professions. i want to became an expert in a technology, or language such as Performance, Machine Learning, or Javascript and i hope to get to a specific job title, such as senior engineer , CTO, or full stack developer.
-
Education
Software Development
Code Fellows and ASAC Amman- Jordan Since April 2021 -
Experience
-Bachelor Degree of Computer And Network Engineering
Al-Balqa' Applied University From Augest 2011 to October 2016
-LTUC Software Developer 2021 - PRESENT, Amman-Jordan
( This is the Top-Ten of things that i will using it in this course ) :
- Git and GitHub
- Unix
- Node.js
- MongoDB
- JSDoc
- Text Editor
- React
- Express
- ESLint
- Redux


The dplyr package from the tidyverse introduces functions that perform some of the most common operations when working with data frames and uses names for these functions that are relatively easy to remember. For instance, to change the data table by adding a new column, we use mutate
. To filter the data table to a subset of rows, we use filter
. Finally, to subset the data by selecting specific columns, we use select
.
dplyr is a grammar of data manipulation, providing a consistent set of verbs that help you solve the most common data manipulation challenges:
mutate()
adds new variables that are functions of existing
variablesselect()
picks variables based on their names.filter()
picks cases based on their values.summarise()
reduces multiple values down to a single summary.arrange()
changes the ordering of the rows.These all combine naturally with group_by()
which allows you to
perform any operation “by group”. You can learn more about them in
vignette("dplyr")
. As well as these single-table verbs, dplyr also
provides a variety of two-table verbs, which you can learn about in
vignette("two-table")
.
dplyr is designed to abstract over how the data is stored. That means as
well as working with local data frames, you can also work with remote
database tables, using exactly the same R code. Install the dbplyr
package then read vignette("databases", package = "dbplyr")
.
If you are new to dplyr, the best place to start is the data import chapter in R for data science.
Copy and Run the sample code in your Rstudio to install dplyr package.
# NOT RUN
# PLEASE COPY THE CODE IN YOUR RSTUDIO.
# Install a dplyr package
install.packages("dplyr")
# Look up the functions in the 'dplyr' package.
library(help=dplyr)


Jacques Lacan shared a link
- 31 mins ago
- Near Wellington
- 2 hours ago
- Auckland
Great weekend had by all 😄
After picnicking in Tuolume Meadows in Yosemite national park we drove west to catch the sun, sand and waves.
David Chalmers
- What are your thoughts on the human condition?
- Nothing is more suprising than the easiness with which the many governed by the few
- Very true Dave
- The rules of morality are not the conclusion of our reason
- That's deep bro


The ZEUS-2 Calibration Pipeline
When you install the pip module, you automatically get the calibration_pipeline script available for use. You can either run it directly with:
$ calibration_pipeline
which will automatically look for the configuration file settings.ini
, load it, and reduce the data described by it, or with:
$ calibration_pipeline custom_ini_file.ini
so that you can specify the exact configuration file to use.
The Process
First we calibrate each reduction from Bo’s pipeline, multiplying by the flux of the flat file and dividing by atmospheric transmission. This value is also divided by the telescope efficiencies. Then we shift each reduction to match the line pixels, and finally we do a weighted average of the spectra.
Configuration
The calibration pipeline requires a settings file to tell it what to do. This is in the form of a .INI file, which is a plain text file. Each line in this file can be one of three things:
A section declaration, like
[REDUCTION1]
. This starts a new section, and any variables declared after the heading belong to that section (until the next section heading)A variable declaration, like
pwv = 0.3
. Everything before the equals sign is the variable name, and everything after is the variable content. In this program it should be pretty clear which variables should be numbers and which should be text.A comment, like
# The variable "pwv" specifies the precipitable water vapor during the observation
The [GLOBAL]
section
This section defines variables that don’t change while observing one source. Below are the required variables that need to be defined, example values, and descriptions of each.
- lambda_line_px = 205.564
Wavelength in microns of observed spectral line
- px_delta_lambda = 0.17
Spectral width of a pixel in microns. I usually determine it from the calculator spreadsheet by parking two adjacent pixels at the same wavelength, but there should be a better way.
- spat_pos = 7
Spatial position to extract from Bo’s reduction file. Usually 7 for 200 micron observations, 2 for 450 micron observations, and 1 for 350 micron observations.
- pt_src_coupling = 0.33
During calibration, the flux value is divided by pt_src_coupling,
- telescope_efficiency = 1
The flux value is also divided by telescope efficiency.
- cabin_temp = 288
Temperature in K of the cabin
- sky_temp = 270
Temperature in K of the sky. This and the cabin temp value are used to calibrate Jy/sr of the flat field.
- beam_size_steradian = 9.588e-10
Used to convert from Kelvins (brightness temperature, converts to Jy/sr) to just Janskies. This beam size is what I used for the 200 um array. It represents our 6” beam size. I calculated it using 2*pi*ln(2)*(6”/2)^2 but I’m not completely confident that’s right. I think the ln(2) has something to do with Airy
- do_contsub = false
Whether or not to apply continuum subtraction. This will (weighted) average all the non-line-pixels and subtract a constant from all pixels. Let me know if you would enjoy seeing an option for linear continuum subtraction.
- where_is_line_flux = 0,1
defines pixels relative to the spec_pos_of_line (below) where you are finding line flux used to decide which pixels to ignore when adding up the continuum.
- do_calib = true
if do calib is false, then we return a spectrum in flat fraction. If this is false we ignore most values like efficiency, temperatures, beam size, lambda, and atm trans. Turning this off works best with exactly 1 reduction, because averaging unscaled data is confusing.
- unflatten = false
if unflatten is true, then we return a spectrum in data numbers. If this is true we ignore the value of do_calib, and the program will ignore all the things it ignores if do_calib is false. Best used with exactly 1 reduction, because averaging raw data numbers is meaningless
- output_filename = ngc4945mosaic_50_7
We produce a .csv file containing the spectrum for Gordon to mess around with. We also produce a plot and a copy of this .ini file for posterity. Now we also produce .png files with rough spectra.
The reduction sections
Now we ask you to define each observing chunk. You’ll need the name of the file that
Bo’s pipeline created (usually ends in _final_spec.npz
), the atmospheric transmission at the time,
and which spectral position the line was placed on.
For each observing chunk you can put whatever you want in the brackets besides [GLOBAL]
.
and you can have as many sections like this as you need.
for example, you can add a [REDUCTION3]
section or a section called [NGC4945dec02]
.
- path = path_to_final_spec.npz
The location of the beam that you want to process.
- atm_transmission = 0.097
TODO: take in pwv and altitude and query the APEX atmosphere calculator MEGA-TODO: put all that info into the .hk file or something
- spec_pos_of_line = 6
Which spectral position is the line in for this reduction?
- min_spec_px=0
define the range of pixels you want to include in the plot. Useful to avoid atmospheric features.
- max_spec_px=15
same as above
The following sections are only needed if you want to read in individual beams, and the exact details are not yet worked out:
- use_beamspec = True
Turn this to True if we are using the beam spec file reated by bo’s program. If this is true, you need the following two values also:
- beamspec_array_number = 1
If use_beamspec is True, ask bo which arr_# you need to be using. This refers to the set of 3 arrs arr_0 is always the array map, arr_1-3 might be only after dead pixel subtraction (array_number=0) arr_4-6 might be desnaking and dead pixel, etc. (array_number =1)
- beam_number = 25
If use_beamspec is True, this tells us which beam to extract.


Data Warehouse is a data storage area that has been tested for security, so you can store your data here safely but not be afraid of being stolen by others.
Conheça melhorThe place to store various data that you can access at any time through the internet and where you can carry it. This very flexible storage area has a high level of security. To enter into your own data you must enter the password that you created when you registered in this Data Warehouse.
Some of the features and advantages that we provide for those of you who store data in this Data Warehouse.


We would want the Front end to be a great experience for you, rather than Big.
Places are strictly limited to ensure everyone can learn and meet others in a relaxed and comfortable environment. We release tickets in batches and increase the ticket price as the event approaches, so you could save money by booking early.
You could leave us with your details, a little bit about your background and the number of tickets you would need. We will get back to you and help you with the registration.


We're sorry but hxui-vue doesn't work properly without JavaScript enabled. Please enable it to continue.


I want to pass the Cross Cultural Management quiz at the start of the first lecture.
Action verbs to keep in mind:
reach, achieve, implement, define, build, create, etc.
Now it's your turn:


When Your Worlds Are Many But Your Home Is Your Own World
Island
Scorced Earth
Abberation
Ark Surival Evolved
The World Of ARK
There are many islands that exixt within and around the planet that what is called the ark and the ark is like Noahs ark it holds all creatures that have ever exist
The Island
Island is one of the first worlds that the surviver wakes up inn, like anyother islands it holds trees folige and founa animals and so on it is the most common places to start your surviver playthrough since it helps to teach you for the worst of the ARKs
Scorced Earth
Second Island or world that the surviver ends up it is a scorced world that holds more dangers then the island it holds death worms giant mantis and most inportant animal there The Wyverns or dragons, or just what ever you want to call them they are strong flyers fast as well faster then quetzal but the most iconic boss is the manticore
Abberation
A broken world and a place of pure darkness and in someplaces where the light can never reach, and full of radiation and places that holds the most deadly animals, I would not even call them animals, you cant step out of into the world since if you do you will die from radiation and more from the outside


--- layout: default ---
Chicago's weekly event to build, share & learn about civic tech
Join us every Tuesday from 6-10pm on the 8th floor of the Merchandise Mart to hear from interesting speakers, learn from each other and work on civic projects. Non-techies are very welcome!
{{ post.description }}
{% endif %}The Chi Hack Night (formerly known as the Open Gov Hack Night) is a free, weekly event in Chicago to build, share and learn about tools to create, support, and serve the public good.
We are a group of thousands of designers, academic researchers, data journalists, activists, policy wonks, web developers and curious citizens who want to make our city more just, equitable, transparent and delightful to live in through data, design and technology. More about us »
The Chi Hack Night is organized by members of Open City, hosted at Braintree and documented by Smart Chicago Collaborative.
Our awesome sponsors provide food every week.


Interested to learn how to create a website like this? Check out this course.
Web development is the work involved in developing a Web site for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex Web-based Internet applications, electronic businesses, and social network services.
Web development skills are in high demand worldwide and well paid too – making development a great career option. It is one of the easiest accessible higher paid fields as you do not need a traditional university degree to become qualified.
In this course you will learn how to create a website using HTML, CSS, JavaScript, jQuery, JSON, PHP, AJAX, XML, XSL, NodeJS, MongoDB.
Pre-requisite: None
The syllubus of this course is given below.
| S.no. | Module | Description | Duration |
|---|---|---|---|
| 1 | Introduction to internet | Web development is the work involved in developing a Web site for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex Web-based Internet applications, electronic businesses, and social network services. | 2 hrs |
| 2 | Introduction to internet | Web development is the work involved in developing a Web site for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex Web-based Internet applications, electronic businesses, and social network services. | 2 hrs |
| 3 | Introduction to internet | Web development is the work involved in developing a Web site for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex Web-based Internet applications, electronic businesses, and social network services. | 2 hrs |
| 4 | Introduction to internet | Web development is the work involved in developing a Web site for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex Web-based Internet applications, electronic businesses, and social network services. | 2 hrs |
Some of the best project ideas for this course is given below.
Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae.
View projectTemporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae.
View projectTemporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae.
View projectSome useful tips for you regarding the course!...Enjoy!


--- layout: post title: You've Got Mail! categories: [] tags: - email - geek - work status: publish type: post published: true meta: _original_post_id: '' _original_import_author: John Duprey author: ---


SQL Injection
November 4th, 2014
A couple of weeks ago I was watching the documentary “Hackers Wanted” and remember being particularly blown away by one of the hackers they profiled. His name is Adrian Lamo. In 2003 he was arrested for hacking big well known companies such as Yahoo, AOL Time Warner, Microsoft, and the New York Times.
There were two things that really fascinated me about Adrian. He never maliciously hacked any of the sites he visited. He simply has an insatiable curiosity for how things work and enjoys exploiting security breaches when he finds them and then telling the companies that they need to fix these breaches. The more amazing thing is how he hacked these sites. I always thought that hacking required super sophisticated algorithms and top of the line hardware, but Adrian, also known as “the homeless hacker”, would go to a local Kinkos and hack the site by simply clicking around and finding security holes.
I now realize he was probably using a technique called SQL injection. SQL injection is a code injection technique, used to attack data-driven applications, in which malicious SQL statements are inserted into an entry field for execution (e.g. to dump the database contents to the attacker). I am new to SQL, but I am going to do my best to explain how SQL injection works in an extremely non-technical kind of way.
SQL injection was first discussed publicly in 1998. In a 2012 study, security company Imperva reported that the average web application received 4 attack campaigns per month. In 2013 SQL injection was rated the number one attack on the OWASP (Open Web Application Security Project) top 10.
SQL is a database language that can be used to display data on a web page. Since SQL statements are text only, it is easy to write a little bit of computer code to dynamically change SQL statements to provide the user with selected data. This data can include sensitive information such as passwords and credit card numbers.
There are several different ways SQLI can be executed, but I am going to try my best to explain one of the easier to understand cases which is SQL Injection Based on 1=1 is Always true. First let’s discuss what we know about SQL. SQL stores its data in tables, and each table has an id column that gives each instance a unique primary key value. If a hacker can access these id values they can gain access to the entire table.
The following example is from W3Schools:
Lets break down the SQL code here:
- SELECT * -- select all files
- FROM Users -- from the database table named Users
- WHERE UserId = 105 or 1=1 -- return all instances of column UserId that have a value of 105 or 1=1
Since 1=1 is always true, this will return all rows from the table Users. If the table has other columns of information such as Password or credit card number, this information would be included in the rows that are returned.
The only proven way to protect a website from SQL injection attacks is to use SQL parameters. These are values that are added to an SQL query at execution time, in a controlled manner. The SQL engine checks each parameter to ensure that it is correct for its column and are treated literally, and not as part of the SQL to be executed. Here is another example from W3Schools:
That covers the very basics of one of the top website vulnerabilities and how to avoid it. Hopefully this blog post has sparked some curiosity in SQL and SQL injection, and you continue to explore this rather complicated topic.
Thanks for reading.


Customer sign-up: Please enter your billing information
Company name is required.
Max length is {{ lengths._name }}.
Mr
Miss
Mrs
Ms
First name is required.
Max length is {{ lengths.firstName }}.
Max length is {{ lengths.middleName }}.
Last name is required.
Max length is {{ lengths.lastName }}.
Address is required.
Max length is {{ lengths.address1 }}.
Max length is {{ lengths.address2 }}.
City is required.
Max length is {{ lengths.city }}.
{{state}}
State is required.
Zip is required.
Max length is {{ lengths.zipCode }}.
{{currency}}
Currency is required.