| [ Team LiB ] |
7.1 Module ObjectsA module is a Python object with arbitrarily named attributes that you can bind and reference. The Python code for a module named aname normally resides in a file named aname.py, as covered in Section 7.2 later in this chapter. In Python, modules are objects (values) and are handled like other objects. Thus, you can pass a module as an argument in a call to a function. Similarly, a function can return a module as the result of a call. A module, just like any other object, can be bound to a variable, an item in a container, or an attribute of an object. For example, the sys.modules dictionary, covered later in this chapter, holds module objects as its values. 7.1.1 The import StatementYou can use any Python source file as a module by executing an import statement in some other code. import has the following syntax: import modname [as varname][,...] The import keyword is followed by one or more module specifiers, separated by commas. In the simplest and most common case, modname is an identifier, the name of a variable that Python binds to the module object when the import statement finishes. In this case, Python looks for the module of the same name to satisfy the import request. For example: import MyModule looks for the module named MyModule and binds the variable named MyModule in the current scope to the module object. modname can also be a sequence of identifiers separated by dots (.) that names a module in a package, as covered in later in this chapter. When as varname is part of an import statement, Python binds the variable named varname to the module object, but the module name that Python looks for is modname. For example: import MyModule as Alias looks for the module named MyModule and binds the variable named Alias in the current scope to the module object. varname is always a simple identifier. <IP_ADDRESS> Module bodyThe body of a module is the sequence of statements in the module's source file. There is no special syntax required to indicate that a source file is a module; any valid source file can be used as a module. A module's body executes immediately the first time the module is imported in a given run of a program. During execution of the body, the module object already exists and an entry in sys.modules is already bound to the module object. <IP_ADDRESS> Attributes of module objectsAn import statement creates a new namespace that contains all the attributes of the module. To access an attribute in this namespace, use the name of the module object as a prefix: import MyModule a = MyModule.f( ) or: import MyModule as Alias a = Alias.f( ) Most attributes of a module object are bound by statements in the module body. When a statement in the body binds a variable (a global variable), what gets bound is an attribute of the module object. The normal purpose of a module body is exactly that of creating the module's attributes: def statements create and bind functions, class statements create and bind classes, assignment statements bind attributes of any type. You can also bind and unbind module attributes outside the body (i.e., in other modules), generally using attribute reference syntax M.name (where M is any expression whose value is the module, and identifier name is the attribute name). For clarity, however, it's usually best to bind module attributes in the module body. The import statement implicitly defines some module attributes as soon as it creates the module object, before the module's body executes. The _ _dict_ _ attribute is the dictionary object that the module uses as the namespace for its attributes. Unlike all other attributes of the module, _ _dict_ _ is not available to code in the module as a global variable. All other attributes in the module are entries in the module's _ _dict_ _, and they are available to code in the modules as global variables. Attribute _ _name_ _ is the module's name, and attribute _ _file_ _ is the filename from which the module was loaded, if any. For any module object M, any object x, and any identifier string S (except _ _dict_ _), binding M.S=x is equivalent to binding M._ _dict_ _['S']=x. An attribute reference such as M.S is also substantially equivalent to M._ _dict_ _['S']. The only difference is that when 'S' is not a key in M._ _dict_ _, accessing M._ _dict_ _['S'] directly raises KeyError, while accessing M.S raises AttributeError instead. Module attributes are also available to all code in the module's body as global variables. In other words, within the module body, S used as a global variable is equivalent to M.S (i.e., M._ _dict_ _['S']) for both binding and reference. <IP_ADDRESS> Python built-insPython offers several built-in objects (covered in Chapter 8). All built-in objects are attributes of a preloaded module named _ _builtin_ _. When Python loads a module, the module automatically gets an extra attribute named _ _builtins_ _, which refers to either module _ _builtin_ _ or to _ _builtin_ _'s dictionary. Python may choose either, so don't rely on _ _builtins_ _. If you need to access module _ _builtin_ _ directly, use an import _ _builtin_ _ statement. Note the difference between the name of the attribute and the name of the module: the former has an extra s. When a global variable is not found in the current module, Python looks for the identifier in the current module's _ _builtins_ _ before raising NameError. The lookup is the only mechanism that Python uses to let your code implicitly access built-ins. The built-ins' names are not reserved, nor are they hardwired in Python itself. Since the access mechanism is simple and documented, your own code can use the mechanism directly (in moderation, or your program's clarity and simplicity will suffer). Thus, you can add your own built-ins or substitute your functions for the normal built-in ones. You can restrict an untrusted module by controlling what built-ins the untrusted module sees (as covered in Chapter 13). The following example shows how you can wrap a built-in function with your own function (_ _import_ _ and reload are both covered later in this chapter): # reload takes a module object; let's make it accept a string as well import _ _builtin_ _ _reload = _ _builtin_ _.reload # save the original built-in def reload(mod_or_name): if isinstance(mod_or_name, str): # if argument is a string mod_or_name = _ _import_ _(mod_or_name) # get the module instead return _reload(mod_or_name) # invoke the real built-in _ _builtin_ _.reload = reload # override built-in with wrapper <IP_ADDRESS> Module documentation stringsIf the first statement in the module body is a string literal, the compiler binds that string as the module's documentation string attribute, named _ _doc_ _. Documentation strings are also called docstrings. See Section 4.10.3 for more information on docstrings. <IP_ADDRESS> Module-private variablesNo variable of a module is really private. However, by convention, starting an identifier with a single underscore (_), such as _secret, indicates that the identifier is meant to be private. In other words, the leading underscore communicates to client-code programmers that they should not access the identifier directly. Development environments and other tools rely on the leading-underscore naming convention to discern which attributes of a module are public (i.e., part of the module's interface) and which ones are private (i.e., to be used only within the module). It is good programming practice to distinguish between private and public attributes by starting the private ones with _, for clarity and to get maximum benefit from tools. It is particularly important to respect the convention when you write client code that uses modules written by others. In other words, avoid using any attributes in such modules whose names start with _. Future releases of the modules will no doubt maintain their public interface, but are quite likely to change private implementation details. 7.1.2 The from StatementPython's from statement lets you import specific attributes from a module into the current namespace. from has two syntax variants: from modname import attrname [as varname][,...] from modname import * A from statement specifies a module name, followed by one or more attribute specifiers separated by commas. In the simplest and most common case, attrname is an identifier that names a variable that Python binds to the attribute of the same name in the module named modname. For example: from MyModule import f modname can also be a sequence of identifiers separated by dots (.) that names a module within a package, as covered later in this chapter. When as varname is part of a from statement, Python binds the variable named varname to the attribute, but the module attribute from which the variable gets its value is attrname. For example: from MyModule import f as foo attrname and varname are always simple identifiers. Code that is directly inside a module body (not in the body of a function or class) may use an asterisk (*) in a from statement: from MyModule import * The * requests that all attributes of module modname be bound as global variables in the importing module. When the module has an attribute named _ _all_ _, the attribute's value is the list of the attributes that are bound by this type of from statement. Otherwise, this type of from statement binds all attributes of modname except those beginning with underscores. Since from M import * may bind an arbitrary set of global variables, it can have unforeseen and undesired side effects, such as hiding built-ins and rebinding variables you still need. Thus, you should use the * form of from very sparingly and only from modules that are explicitly documented as supporting such usage. In general, the import statement is a better choice than the from statement. I suggest you think of the from statement, and particularly from M import *, as conveniences meant only for occasional use in interactive Python sessions. If you always access module M with the statement import M, and always access M's attributes with explicit syntax M.A, your code will be slightly less concise, but far clearer and more readable. from is a good idea only for modules whose documentation explicitly specifies from support (such as module Tkinter, covered in Chapter 16). Another good use of from is to import specific modules from a package, as we'll discuss in Section 7.3 later in this chapter. |
| [ Team LiB ] |


Connecting...
[HOME]
Transmitter Test
test.html Version: 0.8 - 29 Jul 2020
Battery: ?
Temp: ?
Disconnected
Updating...
Sync
Fox Frequency
DEC
INC
Waiting for MAC Address


TravisCIBlog
Example Project for the Travis CI Blog: How to automate CI for any iOS Project
YAML File
language: objective-c
osx_image: xcode10.1
xcode_workspace: TravisCIBlog.xcworkspace
xcode_scheme: TravisCIBlog
xcode_destination: platform=iOS Simulator,OS=12.1,name=iPhone X
before_install:
- pod install
Documentation
Documentation for the project can be found here
Information on how the documentation was generated and hosted can be found in the blog: Generate & Host your iOS Documentation


Magically (and with the power of regular expressions) attach labels to your github repository issues.
http://slowbackspace.github.io/pygithub-labeler/
**Webhook Setup:**
Webhooks allow you to build or set up integrations which subscribe to certain events on GitHub.com.
When one of those events is triggered, Github will send a HTTP POST payload to the webhook's configured URL.
Env variables:
PORT - port of the web server
DEBUG - Enable/disable debug mode (true/false)
webhook_token - Secret token for a webhook
Usage: run.py [OPTIONS] COMMAND [ARGS]...
Options:
--authconfig TEXT Configuration file. Default auth.cfg
--repo TEXT Repository in 'owner/name' format. Default
slowbackspace/testrepo
--scope TEXT Scope - issue_body, issue_comments, pull_requests, all.
Default all
--rules TEXT Rules configuration file
--interval INTEGER Interval [seconds]. Default 5
--label TEXT Fallback label. Default wonfix
--help Show this message and exit
Commands:
console Run the cli app
web Run the web app


(This tool is not perfect, but it will give you a percentage based on your answers! Proceed with caution...)
You will not be able to change the option once selected. So, Be carefull!


History of Ipoh
Home
About Ipoh
Recognized by LonelyPlanet to be one of the best places for retirement, Ipoh is a lovely town that is rich for its history and gastronomic delights. Best known for its food, most tourists stop by and stay a day or two to fill themselves up here. The easiest way to tell which store would be best, "the dodgier the restaurant, the better it is!"
Lou Wong
The name ‘Bean Sprout Chicken’ often confuses, leading people to think that those two ingredients are jointly used in a dish. In fact, the chicken and bean sprout are cooked separately in two equally mouth-watering dishes.
The steamed chicken skin is smooth and chewy, while the flesh is tender yet firm; whereas the bean sprouts are fat and crunchy. You can choose to have them with rice, or sweet and fresh kuey teow soup.
- Address: 49, Jalan Yau Tet Shin, 30300 Ipoh, Perak, Malaysia.
- Opening Hours: Daily for lunch and dinner.
Funny Mountain Soy Bean
Tau fu fah (soybean pudding) is a type of Chinese snack made of very soft tofu. Possibly one of the best Tau Fu Fah can be found in Funny Mountain, deemed the best in the world by 8TV. Bathed in a sugary concoction, the tau fu fah is warm and so smooth that it will slide down your throat.
- Price: RM2.50/bowl
- Address: Jalan Theatre, 30300 Ipoh, Perak, Malaysia.
- Opening Hours: Daily from 10:30am to 7:30pm (subject to availability)
Thean Chun
A delightful blend of sweet, fragrant prawn broth and shredded chicken, this Ipoh spin of the traditional kuey tiaw soup leaves an amazing aftertaste in your mouth. Before you know it, you'd have emptied the whole bowl of noodles.
- Price: RM6/bowl
- Address: 73, Jalan, Bandar Timah, 30000 Ipoh, Perak, Malaysia
- Opening Hours: Fri to Wed 9.30am until late lunch | Closed on Thursday
Dai Shu Geok
They have a wide selection of yong tau fu, priced around RM0.80 each. The fish paste used is amazing, allowing the yong tau fu to be packed with flavours without having any fishy taste. You can choose to devour the yong tau fu with asam laksa, curry or clear broth noodles.
- Address: 652, Jalan King, Pasir Pinji, 31650 Ipoh, Perak, Malaysia.
- Opening Hours: Thurs to Tues 8.30am to 5.30 pm | Closed on Wednesdays.
K10 Claypot Chicken Rice
Although it’s called Claypot Chicken Rice, you have the option of having your soy-infused rice with chicken, pork or salted fish, in any combination. Every mouthful of this savoury goodness will have you craving for more.
- Address: 576, Lorong Bercham 4, Kampung Bercham, 31400 Ipoh, Perak, Malaysia.
- Opening Hours: Fri to Wed from 5:30pm to 11pm | Closed on Thursdays
- Contact: +60125171116
Tong Sui Kai
Upon arriving at Tong Sui Kai, walk past the less crowded areas and head toward Stall 41 for their to-die-for Mixed Fruit Shaved Ice with Ice Cream. The shaved ice is covered with fruits such as dragon fruit, longan, mango watermelon, honeydew; and also nuts, sago and ice-cream. An ideal frozen treat to beat the sweltering Malaysian heat.
- Price: RM6/bowl
- Address: Jalan Sultan Ekram Taman Jubilee, 30300 Ipoh, Perak, Malaysia
- Opening Hours: Daily from 6pm to 2am
Sin Yoon Leong
Sin Yong Loong is one of the earliest traditional Hainanese coffee shops, and the original white coffee outlet in Ipoh! You can’t visit Ipoh without having a taste of Ipoh’s famed drink. The white coffee here is fragrant, rich and frothy, with a slightly bitter aftertaste that is uniquely Nanyang.
- Price: From RM2
- Address: 15A, Jalan Bandar Timah, 30000 Ipoh, Perak, Malaysia.
- Opening Hours: Daily from 6.30am to 5.30pm


This Privacy Policy describes how Hackwell ("Dynamic Hack", "we", "our" or "us") collect, use, and share information in connection with your use of our website (including sit.ac.in ), services, and applications (collectively, the "Services"). This Privacy Policy (the "Privacy Policy") does not apply to information our customers may process when using our Services.
We may collect and receive information about users of our Services ("users", "you", or "your") from various sources, including: (i) information you provide through your team details on the Services (your "Account") if you register for the Services; and (ii) your use of the Services.
We recommend that you read this Privacy Policy in full, to ensure you are fully informed. If you have any questions about this Privacy Policy or Hackwell's data collection, use, and disclosure practices, please contact us at<EMAIL_ADDRESS>1. Account Registration: When you register for the event, we may ask for your contact information, including items such as name, college name, address, email address, and telephone number.
2. Communications: If you contact us directly, we may receive additional information about you such as your name, email address, phone number, the contents of the message and/or attachments you may send us, and any other information you may choose to provide. We may also receive a confirmation when you open an email from us.
The personal information that you are asked to provide, and the reasons why you are asked to provide it, will be made clear to you at the point we ask you to provide your personal information.
We use the information we collect in various ways, including to:
1. Provide, operate, and maintain our Services.
3. Improve, personalize, and expand our Services.
3. Understand and analyze how you use our Services.
4. Develop new products, services, features, and functionality.
5. Communicate with you, either directly or through one of our partners, including for customer service, to provide you with updates and other information relating to the Service, and for marketing and promotional purposes.
6. Send you text messages and push notifications.
7. Find and prevent fraud.
8. For compliance purposes, including enforcing our Terms of Service, or other legal rights, or as may be required by applicable laws and regulations or requested by any judicial process or governmental agency.
Hackwell is committed to protecting your information. To do so, we employ a variety of security technologies and measures designed to protect information from unauthorized access, use, or disclosure. The measures we use are designed to provide a level of security appropriate to the risk of processing your personal information. However, please bear in mind that the Internet cannot be guaranteed to be 100% secure.
We retain personal information we collect from you where we have an ongoing legitimate business need to do so (for example, to provide you with a service you have requested or to comply with applicable legal, tax, or accounting requirements).
When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize it or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.
This Privacy Policy may be modified from time to time, so please review it frequently. Changes to this Privacy Policy will be posted on our websites. If we materially change the ways in which we use or share personal information previously collected from you through our Services, we will notify you through by email, or other communication.
If you have any questions or concerns about this Privacy Policy, please feel free to email us at dynamicspoc19.sit@gmail.com.


radare2
A set of reverse engineering tools.
More information: home page
- Open a file in write mode without parsing the file format headers:
radare2 -nw path/to/binary
- Debug a program:
radare2 -d path/to/binary
- Run a script before entering the interactive CLI:
radare2 -i path/to/script.r2 path/to/binary
- Show help text for any command in the interactive CLI:
> radare2_command?
- Run a shell command from the interactive CLI:
> !shell_command
- Dump raw bytes of current block to a file:
> pr > path/to/file.bin


--- layout: post title: The Best of JEPS Bulletin in 2013 date: 2013-12-26 21:26:39.000000000 +01:00 type: post published: true status: publish categories: - JEPS tags: - APA style - ethics - how to read an article - qualitative research - replication studies - visual methodologies meta: _wpas_done_all: '1' _edit_last: '2710' editInHTML: 'off' author: login: Pedro Almeida email<EMAIL_ADDRESS>display_name: Pedro Almeida first_name: Pedro last_name: Almeida ---
Throughout this year, the JEPS Bulletin brought to you a number of research stories and experiences that hopefully served to deepen our knowledge of psychological research and scientific publishing. Allow me, then, to point out a handful of the favorite Bulletin posts of 2013. Although it’s a shame to miss out on any of our contributors’ exceptional work, please make sure you don’t overlook this baker’s dozen, which are ranked among the favorite posts of the year.
10) Lorna Ruse: A Change of View Using Visual Methods to Explore Experience in Qualitative Research
The relevance of qualitative methods for psychological reserarch and, in particular, visual methodology.
9) Sina Scherer: How to Collect Data Effectively: An Overview of the Best Online Survey Providers
The pros and cons of some of the best online survey providers.
8) Shane McLoughlin: On the Importance of Behavioral Research
A critical approach of paradigms in psychologycal research, in particular the influence of cognitivism in the way research is conducted.
7) Magdalena Kossowska: How to design effective figures for journal articles
Tips on how to skillfully design and present data on a visual medium.
6) Ezra Bottequin: Hunting for Significant Results: Don’t Do It
The drawback of chasing a significant p-value.
5) Laura Rai: Unpaid Psychology Sositions: A Graduate’s Perspective
The issues the job market poses for psychology students and how can they gain field experience.
4) Chris Noone: Replication Studies: It’s Time to Clean Up Your Act, Psychologists!
About the purpose and importance of replication studies and how can we, psychology students, help to overcome this issue.
3) Etien Benov: APA’s Five General Principles of Ethics
An overview of the general ethical considerations when conducting psychological research.
2) Magdalena Kossowska: How to Read and Get the Most Out of a Journal Article
Tips on how to critically evaluate and profit from scientific articles.
1) Martin Vasilev: What Are the Most Common APA Style Mistakes Done by Students
A survey of the most frequent mistakes when writing a scientific article in terms of referencing, formatting and citing sources.


{{vm.product.description}}
These choices are all free! Enjoy!
Choices with an (*) after the name count as 2.


Messages are the main method for providing system feedback in the product user interface. There are varius kind of message notifications: confirmations, notices, warnings, info and errors
{Core Components}
Example
With HTML
Toaster Messages the main method fro providing immediate feedback in response to a user action. The messages are shown at the top of the page and like html messages stay for few seconds.
{Core Components}
Required : JQuery
Variations (type): info(default), success, danger, warning
Example


This chapter will guide you through creating your first project with ScalaRelational. For the sake of simplicity we will use an in-memory H2 database.
The first thing you need to do is add ScalaRelational’s H2 module to your sbt project:
libraryDependencies += "org.scalarelational" %% "scalarelational-h2" % "1.3.0"
If you’d prefer to use another database instead, please refer to the chapter Databases.
You will need the following imports:
import org.scalarelational.column.property.{AutoIncrement, ForeignKey, PrimaryKey, Unique}
import org.scalarelational.h2.{H2Datastore, H2Memory}
import org.scalarelational.table.Table
The next thing you need is the database representation in Scala. The schema can map to an existing database or you can use it to create the tables in your database:
object GettingStartedDatastore extends H2Datastore(mode = H2Memory("getting_started")) {
object suppliers extends Table("SUPPLIERS") {
val name = column[String]("SUP_NAME", Unique)
val street = column[String]("STREET")
val city = column[String]("CITY")
val state = column[String]("STATE")
val zip = column[String]("ZIP")
val id = column[Int]("SUP_ID", PrimaryKey, AutoIncrement)
}
object coffees extends Table("COFFEES") {
val name = column[String]("COF_NAME", Unique)
val supID = column[Int]("SUP_ID", new ForeignKey(suppliers.id))
val price = column[Double]("PRICE")
val sales = column[Int]("SALES")
val total = column[Int]("TOTAL")
val id = column[Int]("COF_ID", PrimaryKey, AutoIncrement)
}
}
Our Datastore contains Tables and our Tables contain Columns. As for the Datastore we have chosen an in-memory H2 database. Every column type must have a DataType associated with it. You don’t see it referenced above because all standard Scala types have predefined implicit conversions available [1]. If you need to use a type that is not supported by ScalaRelational, please refer to Defining a custom type.
Now that we have our schema defined in Scala, we need to create the tables in the database:
import GettingStartedDatastore._
withSession { implicit session =>
create(suppliers, coffees)
}
Output:3
All database queries must take place within a session.
You’ll notice we imported ExampleDatastore. in an effort to minimise the amount of code required here. We can explicitly write it more verbosely like this:
GettingStartedDatastore.withSession { implicit session =>
GettingStartedDatastore.create(
GettingStartedDatastore.suppliers,
GettingStartedDatastore.coffees
)
}
For the sake of readability importing the datastore is generally suggested. Although if namespace collisions are a problem you can import and alias or create a shorter reference like this:
def ds = GettingStartedDatastore
ds.withSession { implicit session =>
ds.create(ds.suppliers, ds.coffees)
}
ScalaRelational supports type-safe insertions:
import GettingStartedDatastore._
import suppliers._
withSession { implicit session =>
acmeId = insert(name("Acme, Inc."), street("99 Market Street"), city("Groundsville"), state("CA"), zip("95199")).result
superiorCoffeeId = insert(id(49), name("Superior Coffee"), street("1 Party Place"), city("Mendocino"), state("CA"), zip("95460")).result
}
If we don’t call result, we will just create the query without ever executing it. Please note that result must be called within the session.
There is also a shorthand when using values in order:
import GettingStartedDatastore._
withSession { implicit session =>
theHighGroundId = insertInto(suppliers, 150, "The High Ground", "100 Coffee Lane", "Meadows", "CA", "93966").result
}
The database returns -1 as the ID is already known.
If you want to insert multiple rows at the same time, you can use a batch insertion:
import GettingStartedDatastore._
import coffees._
withSession { implicit session =>
insert(name("Colombian"), supID(acmeId), price(7.99), sales(0), total(0)).
and(name("French Roast"), supID(superiorCoffeeId), price(8.99), sales(0), total(0)).
and(name("Espresso"), supID(theHighGroundId), price(9.99), sales(0), total(0)).
and(name("Colombian Decaf"), supID(acmeId), price(8.99), sales(0), total(0)).
and(name("French Roast Decaf"), supID(superiorCoffeeId), price(9.99), sales(0), total(0)).result
}
Output:List(1, 2, 3, 4, 5)
This is very similar to the previous insert method, except instead of calling result we’re calling and. This converts the insert into a batch insert and you gain the performance of being able to insert several records with one insert statement.
You can also pass a Seq to insertBatch, which is useful if the rows are loaded from a file for example:
import GettingStartedDatastore._
import coffees._
withSession { implicit session =>
val rows = (0 to 10).map { index =>
List(name(s"Generic Coffee ${index + 1}"), supID(49), price(6.99), sales(0), total(0))
}
insertBatch(rows).result
}
Output:List(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
The DSL for querying a table is similar to SQL:
import GettingStartedDatastore._
import coffees._
withSession { implicit session =>
val query = select (*) from coffees
query.result.map { r =>
s"${r(name)}\t${r(supID)}\t${r(price)}\t${r(sales)}\t${r(total)}"
}.mkString("\n")
}
Output:Colombian 1 7.99 0 0
French Roast 49 8.99 0 0
Espresso 93966 9.99 0 0
Colombian Decaf 1 8.99 0 0
French Roast Decaf 49 9.99 0 0
Generic Coffee 1 49 6.99 0 0
Generic Coffee 2 49 6.99 0 0
Generic Coffee 3 49 6.99 0 0
Generic Coffee 4 49 6.99 0 0
Generic Coffee 5 49 6.99 0 0
Generic Coffee 6 49 6.99 0 0
Generic Coffee 7 49 6.99 0 0
Generic Coffee 8 49 6.99 0 0
Generic Coffee 9 49 6.99 0 0
Generic Coffee 10 49 6.99 0 0
Generic Coffee 11 49 6.99 0 0
Although that could look a little prettier by explicitly querying what we want to see:
import GettingStartedDatastore.{coffees => c, _}
withSession { implicit session =>
val query = select (c.name, c.supID, c.price, c.sales, c.total) from c
query.map {
case (name, supID, price, sales, total) => s"$name $supID $price $sales $total"
}.result.mkString("\n")
}
Output:COFFEES(COF_NAME: Colombian, SUP_ID: 1, PRICE: 7.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: French Roast, SUP_ID: 49, PRICE: 8.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Espresso, SUP_ID: 93966, PRICE: 9.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Colombian Decaf, SUP_ID: 1, PRICE: 8.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: French Roast Decaf, SUP_ID: 49, PRICE: 9.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 1, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 2, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 3, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 4, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 5, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 6, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 7, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 8, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 9, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 10, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
COFFEES(COF_NAME: Generic Coffee 11, SUP_ID: 49, PRICE: 6.99, SALES: 0, TOTAL: 0)
Joins are supported too. In the following example we query all coffees back filtering and joining with suppliers:
import GettingStartedDatastore._
withSession { implicit session =>
val query = (select(coffees.name, suppliers.name)
from coffees
innerJoin suppliers on coffees.supID === suppliers.id
where coffees.price < 9.0)
query.result.map { r =>
s"Coffee: ${r(coffees.name)}, Supplier: ${r(suppliers.name)}"
}.mkString("\n")
}
Output:Coffee: Colombian, Supplier: Acme, Inc.
Coffee: French Roast, Supplier: Superior Coffee
Coffee: Colombian Decaf, Supplier: Acme, Inc.
Coffee: Generic Coffee 1, Supplier: Superior Coffee
Coffee: Generic Coffee 2, Supplier: Superior Coffee
Coffee: Generic Coffee 3, Supplier: Superior Coffee
Coffee: Generic Coffee 4, Supplier: Superior Coffee
Coffee: Generic Coffee 5, Supplier: Superior Coffee
Coffee: Generic Coffee 6, Supplier: Superior Coffee
Coffee: Generic Coffee 7, Supplier: Superior Coffee
Coffee: Generic Coffee 8, Supplier: Superior Coffee
Coffee: Generic Coffee 9, Supplier: Superior Coffee
Coffee: Generic Coffee 10, Supplier: Superior Coffee
Coffee: Generic Coffee 11, Supplier: Superior Coffee
You may have noticed the striking similarity between this code and Slick’s introductory tutorial. This was done purposefully to allow better comparison of functionality between the two frameworks.
An auto-incrementing ID has been introduced into both tables to better represent the standard development scenario. Rarely do you have external IDs to supply to your database like Slick represents.
See the `DataTypeSupport` trait for more information ↩
Generated with MetaDocs v0.1.1


A simple way to connect to job seekers and job posters
Jobayan.com is a product of Openovate Labs, a full stack technology company that develops apps, companies and game changers.
We made Jobayan.com as an alternative channel for technology based companies, startups, and overall, non-corporate companies like our own, to simply and quickly find fresh and savvy talent. We took a deep look on how our sister companies Galleon and Aces Call Center Jobs acquire talent as well as other similar industries, tech, and startups alike. We have been collecting data on the hiring process for over a year and wanted to translate our findings through this website.
To our brothers and sisters at Startup PH (Philippines) community and the PHackers (Philippines) community, this one is for you.
Job and talent matching without the hassle. Other job boards, are very corporate; its process is corporate; its timelines is corporate; its revenue is corporate; and its results are well … corporate. Jobayan.com is a simple form, auto matching and removes the awkwardness in networking.


Write an invoice creation page. It will let user's create invoices under /users/{ID}/invoices. These invoices will be world-readable but only writeable by the user that created it and an admin user who will mark it complete after processing the payment. That admin user's id will be hardcoded into Firebase's rule set.
List invoices on this dashboard. Enable the user to do some basic inline edit as create and delete. Full edits will probably go back to the same template that the invoice creator uses, but instead of "create" it will have a "save" button.
Create an invoice payment view. It will display the invoice and provide a place to input credit card details. When the server processes the payment, it will mark the invoice as paid, at which point the rule set will not allow any more writing to that invoice. Reading will not be affected.
Next steps include enabling users to save credit cards to be used for payments on site. This will involve tracking payments made and the associated invoices, thereby enabling users to pay each others' invoices with saved payment information.
| Date | Project | Number | Total | Recipient | Status | Action |
|---|---|---|---|---|---|---|
| {{ invoice.date | date }} | {{ invoice.project }} | {{ invoice.number }} | {{ invoice.total }} | {{ invoice.email }} | {{ invoice.state }} | View |


Go to the folder where you unzipped FEdit, and double-click on "fgui.bat":
This screen will display:
Enter the hostname of the FTP server for your website.
Enter the username and password for your FTP.
If you have Microsoft FrontPage or another website authoring program, enter the path to it int the html Editor and .htm Editor textboxes. Otherwise, enter the path to Notepad, which is probably either C:\Windows\Notepad.exe or C:\WINNT\Notepad.exe.
Click "Save Changes".
You have now setup FEdit. You don't need to do this again.
Eventually, a list if files will come up, like this:
To edit a file, just double-click it. The file will be downloaded and an editing program will start.
To change directories, just double-click the directory name.


Class: ActiveRecord::Result
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Instance Chain:
|
|
| Inherits: | Object |
| Defined in: | activerecord/lib/active_record/result.rb |
Overview
This class encapsulates a result returned from calling #exec_query on any database connection adapter. For example:
result = ActiveRecord::Base.connection.exec_query('SELECT id, title, body FROM posts')
result # => #<ActiveRecord::Result:0xdeadbeef>
# Get the column names of the result:
result.columns
# => ["id", "title", "body"]
# Get the record values of the result:
result.rows
# => [[1, "title_1", "body_1"],
[2, "title_2", "body_2"],
#...
]
# Get an array of hashes representing the result (column => value):
result.to_a
# => [{"id" => 1, "title" => "title_1", "body" => "body_1"},
{"id" => 2, "title" => "title_2", "body" => "body_2"},
#...
]
# ActiveRecord::Result also includes Enumerable.
result.each do |row|
puts row['title'] + " " + row['body']
end
Constant Summary
-
EMPTY =
private
# File 'activerecord/lib/active_record/result.rb', line 195new([].freeze, [].freeze, {}.freeze).freeze
-
EMPTY_ASYNC =
private
# File 'activerecord/lib/active_record/result.rb', line 198FutureResult::Complete.new(EMPTY).freeze
Class Method Summary
- .new(columns, rows, column_types = {}) ⇒ Result constructor
- .empty(async: false) Internal use only
Instance Attribute Summary
- #column_types readonly
- #columns readonly
-
#empty? ⇒ Boolean
readonly
Returns true if there are no records, otherwise false.
- #rows readonly
::Enumerable
- Included
| #many? | Returns |
Instance Method Summary
- #[](idx)
-
#each(&block)
Calls the given block once for each element in row collection, passing row as parameter.
-
#includes_column?(name) ⇒ Boolean
Returns true if this result set includes the column named
name
- #initialize_copy(other)
-
#last(n = nil)
Returns the last record from the rows collection.
-
#length
Returns the number of elements in the rows array.
-
#to_a
Alias for #to_ary.
-
#to_ary
(also: #to_a)
Returns an array of hashes representing each row record.
- #column_type(name, index, type_overrides) private
- #hash_rows private
- #cancel Internal use only
- #cast_values(type_overrides = {}) Internal use only
- #freeze Internal use only
- #result Internal use only
::Enumerable
- Included
| #compact_blank | Returns a new |
| #exclude? | The negative of the |
| #excluding | Returns a copy of the enumerable excluding the specified elements. |
| #in_order_of | Returns a new |
| #including | Returns a new array that includes the passed elements. |
| #index_by | Convert an enumerable to a hash, using the block result as the key and the element as the value. |
| #index_with | Convert an enumerable to a hash, using the element as the key and the block result as the value. |
| #maximum | Calculates the maximum from the extracted elements. |
| #minimum | Calculates the minimum from the extracted elements. |
| #pick | Extract the given key from the first element in the enumerable. |
| #pluck | Extract the given key from each element in the enumerable. |
| #sole | Returns the sole item in the enumerable. |
| #without | Alias for Enumerable#excluding. |
| #as_json |
::ActiveSupport::EnumerableCoreExt::Constants
- Included
Constructor Details
.new(columns, rows, column_types = {}) ⇒ Result
# File 'activerecord/lib/active_record/result.rb', line 49
def initialize(columns, rows, column_types = {}) @columns = columns @rows = rows @hash_rows = nil @column_types = column_types end
Class Method Details
.empty(async: false)
# File 'activerecord/lib/active_record/result.rb', line 41
def self.empty(async: false) # :nodoc: if async EMPTY_ASYNC else EMPTY end end
Instance Attribute Details
#column_types (readonly)
[ GitHub ]#columns (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/result.rb', line 39
attr_reader :columns, :rows, :column_types
#empty? ⇒ Boolean
(readonly)
Returns true if there are no records, otherwise false.
# File 'activerecord/lib/active_record/result.rb', line 79
def empty? rows.empty? end
#rows (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/result.rb', line 39
attr_reader :columns, :rows, :column_types
Instance Method Details
#[](idx)
[ GitHub ]# File 'activerecord/lib/active_record/result.rb', line 90
def [](idx) hash_rows[idx] end
#cancel
# File 'activerecord/lib/active_record/result.rb', line 103
def cancel # :nodoc: self end
#cast_values(type_overrides = {})
# File 'activerecord/lib/active_record/result.rb', line 107
def cast_values(type_overrides = {}) # :nodoc: if columns.one? # Separated to avoid allocating an array per row type = if type_overrides.is_a?(Array) type_overrides.first else column_type(columns.first, 0, type_overrides) end rows.map do |(value)| type.deserialize(value) end else types = if type_overrides.is_a?(Array) type_overrides else columns.map.with_index { |name, i| column_type(name, i, type_overrides) } end rows.map do |values| Array.new(values.size) { |i| types[i].deserialize(values[i]) } end end end
#column_type(name, index, type_overrides) (private)
[ GitHub ]# File 'activerecord/lib/active_record/result.rb', line 146
def column_type(name, index, type_overrides) type_overrides.fetch(name) do column_types.fetch(index) do column_types.fetch(name, Type.default_value) end end end
#each(&block)
Calls the given block once for each element in row collection, passing row as parameter.
Returns an Enumerator
if no block is given.
#freeze
# File 'activerecord/lib/active_record/result.rb', line 140
def freeze # :nodoc: hash_rows.freeze super end
#hash_rows (private)
[ GitHub ]# File 'activerecord/lib/active_record/result.rb', line 154
def hash_rows @hash_rows ||= begin # We freeze the strings to prevent them getting duped when # used as keys in ActiveRecord::Base's @attributes hash columns = @columns.map(&:-@) length = columns.length template = nil @rows.map { |row| if template # We use transform_values to build subsequent rows from the # hash of the first row. This is faster because we avoid any # reallocs and in Ruby 2.7+ avoid hashing entirely. index = -1 template.transform_values do row[index += 1] end else # In the past we used Hash[columns.zip(row)] # though elegant, the verbose way is much more efficient # both time and memory wise cause it avoids a big array allocation # this method is called a lot and needs to be micro optimised hash = {} index = 0 while index < length hash[columns[index]] = row[index] index += 1 end # It's possible to select the same column twice, in which case # we can't use a template template = hash if hash.length == length hash end } end end
#includes_column?(name) ⇒ Boolean
Returns true if this result set includes the column named name
# File 'activerecord/lib/active_record/result.rb', line 57
def includes_column?(name) @columns.include? name end
#initialize_copy(other)
[ GitHub ]# File 'activerecord/lib/active_record/result.rb', line 133
def initialize_copy(other) @columns = columns.dup @rows = rows.dup @column_types = column_types.dup @hash_rows = nil end
#last(n = nil)
Returns the last record from the rows collection.
#length
Returns the number of elements in the rows array.
# File 'activerecord/lib/active_record/result.rb', line 62
def length @rows.length end
#result
# File 'activerecord/lib/active_record/result.rb', line 99
def result # :nodoc: self end
#to_a
Alias for #to_ary.
# File 'activerecord/lib/active_record/result.rb', line 88
alias :to_a :to_ary
#to_ary Also known as: #to_a
Returns an array of hashes representing each row record.
# File 'activerecord/lib/active_record/result.rb', line 84
def to_ary hash_rows end


Password Strength Validator
Check on Github
Enter the Password
Password
This symbol is not allowed!
Add 9 charachters or more, lowercase letters, uppercase letters, numbers and symbols to make the password really strong!
Submit


Functions and Jordan canonical forms of Riordan matrices¶
Symbolic stuff on top of the Python language to support a recently submitted paper (formerly, collecting my work to support Numerical methods for simulation course, taught by prof. Luigi Brugnano @ University of Florence).
Notebooks¶
- theory of matrices functions applied to a pure symbolic Riordan array (view);
- Fibonacci numbers generation matrix and function \(f(z)=z^{r}\) (view);
- Jordan canonical forms of triangles of binomials, catalan and Stirling (II kind) numbers (view);
- matricial decomposition of Hermite interpolating polynomials (view);
- functions applied to the triangle of binomial numbers (view);
- functions applied to the triangle of Catalan numbers (view);
- functions applied to the triangle of Stirling (II kind) numbers (view);
- Riordan arrays constructors (view);
More stuff about the general theory to be inlined into the first notebook above:


This inspection reports "unboxing", e.g. explicit unwrapping of wrapped primitive values.
Unboxing is unnecessary under Java 5.0, and can be safely removed.
For safety, this inspection is disabled unless the project uses JDK 5.0.
Powered by InspectionGadgets


When reception is open
When GPs see patients
Book an appointment with a GP
What patients say about this surgery
GPs at this surgery
Services at this surgery
Parking and accessibility
Register as a patient


[ ]Example array file layout
[ ]Example local array filetype for process 1 Assume we are writing out a 100x100 2D array of double precision floating point numbers that is distributed among 4 processes such that each process has a block of 25 columns (e.g., process 0 has columns 0-24, process 1 has columns 25-49, etc.; see Figure 16 ). To create the filetypes for each process one could use the following C program:
double subarray[100][25]; MPI_Datatype filetype; int sizes[2], subsizes[2], starts[2]; int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); sizes[0]=100; sizes[1]=100; subsizes[0]=100; subsizes[1]=25; starts[0]=0; starts[1]=rank*subsizes[1]; MPI_Type_create_subarray(2, sizes, subsizes, starts, MPI_ORDER_C, MPI_DOUBLE, &filetype);Or, equivalently in Fortran:
double precision subarray(100,25) integer filetype, rank, ierror integer sizes(2), subsizes(2), starts(2) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror) sizes(1)=100 sizes(2)=100 subsizes(1)=100 subsizes(2)=25 starts(1)=0 starts(2)=rank*subsizes(2) call MPI_TYPE_CREATE_SUBARRAY(2, sizes, subsizes, starts, & MPI_ORDER_FORTRAN, MPI_DOUBLE_PRECISION, & filetype, ierror)The generated filetype will then describe the portion of the file contained within the process's subarray with holes for the space taken by the other processes. Figure 17 shows the filetype created for process 1.


---
layout: post
title: ''
date: '2012-12-07T22:35:45-08:00'
tags:
tumblr_url: http://alexhwilliams.tumblr.com/post/37460390304/macklemore-tells-a-story-about-baseball-and-the
---
Macklemore tells a story about baseball and the love for his city. The memories of the game, the sawdust on the bat and the voices on the radio that might as well be gods delivering the message that any young fan dreams of. A play at the plate in extra innings to win the pennant.


View the statistics of USDA Risk Management Agency Cause of Loss Historical Data Files
View national data
View states data


{% extends 'mail/_base.html' %} {% block content %}
Hello {{ registration.first_name }},
Thank you for submitting your video audition! We will review it soon and let you know in which level you have been placed.
All the best,
Smokey Feet Crew
{% endblock %}


©AnandOrigin Press and contributors 2019. All Rights Reserved.We'are a not-for-profit organisation that provides simple yet reliable information regarding diet and habitual convention for betterment of general public.


WITNESS LIST Economic Development Committee April 20, 2001-8:00A HB 3452 On: Barron, Dr. Glenda (Texas Higher Education Coordinating Board)


We need your help.
Join our team! Fill out the form below to join the mailing list. You'll gain access to the drive when you come to a meeting.
You can also sign this peition to show your support for green practices on campus! If you see something that you would like addressed, email us. We'll build a team together to tackle the issue.
Form |
Petition


作者Refauth (山丘上的長號手)
看板Gossiping
標題[新聞] 澳洲凱恩斯市八名兒童死於家中被人發現
時間Fri Dec 19 21:04:04 2014
http://tinyurl.com/kb4g2wh
'An unspeakable crime' --
Eight children found dead at home in Cairns, Australia (CNN)
Eight children, the youngest of them only 18 months old, have been found dead
at a suburban home in the northeastern Australian city of Cairns in a case
that the country's Prime Minister has called "an unspeakable crime."
八名兒童，其中最小只有18個月大，被人發現死於凱恩斯市家中。
澳洲總理說這是難以言喻的罪行。
A woman who the police believe is the mother of the seven of the children is
in a hospital suffering from serious injuries.
其中七名兒童的母親目前因傷勢嚴重正在醫院治療。
The discovery of the bodies added to a traumatic week for Australia after a
deadly hostage-taking in Sydney only days ago.
這些遺體的發現令這一週才發生雪梨人質挾持事件的澳洲更感傷痛。
Police said they were called to the property in the Manoora area of Cairns on
Friday morning after reports of an injured woman.
警方表示他們因為收到嚴重受傷婦女的報告而前往探查住宅。
"During an examination of the residence, police located the bodies of the
children, all aged between 18 months and 15 years," the Queensland Police
Service said in a statement.
根據現場採證，警方確認死亡的兒童們，年齡分別在18個月到15歲間不等。
"They're only babies," Lisa Thaiday, a relative of the family, told CNN
affiliate Seven Network. She said the horrendous scene had been discovered by
a 20-year-old brother of the children.
家屬表示，這可怕的謀殺現場最早是被殺兒童的20歲大哥發現的。
"He got off the bus and he found his mother and siblings," she said.
"他下了公車後回到家就看到他母親與兄弟姊妹們被殺害"。
Seven Network reported that the children were part of the local community of
Torres Strait Islanders, an indigenous people from the region.
這些遇害的兒童都是當地原住民社區的一份子。
'A tragic, tragic event'.
Police so far have no formal suspects in the case, said Detective Inspector
Bruno Asnicar, but he sought to allay fears among local residents about the
deaths.
目前警方並沒有特定的嫌疑犯，當地人深感害怕。
"There's no need for the public to be concerned about this other than it's a
tragic, tragic event," he told reporters near the crime scene, adding that
the area is under control. he said police were "looking at anybody who's had
any involvement."
警方表示他們還在查找一切可能涉案的人士。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
澳洲這幾天是怎樣.........
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: <IP_ADDRESS>
※ 文章網址: http://www.ptt.cc/bbs/Gossiping/M.1418994247.A.0E4.html
→ cytotoxic: 要聖誕節了 澳洲一直出這種新聞.... 12/19 21:04
推 widec: 有點扯... 12/19 21:05
推 daueing: 八仙飯店 12/19 21:05
推 HiranoMiu: 是被砍死的 12/19 21:05
→ aggressorX: 澳洲要升天了嗎 12/19 21:06
推 sky79717: 好慘 12/19 21:06
→ tinkatinka: 刺傷 凶器還在找 12/19 21:08
→ sam0886449: RIP 12/19 21:10
→ SE4NLN415: 種族歧視者大概把皮膚黑的都誤認成恐怖份子了 12/19 21:13
推 pubupig: 12/19 22:06


Testing parsing and transformation possibilities
[No canvas support]
[No canvas support]
[No canvas support]
[No canvas support]


[gecode-users] order in calls to status and commit...
Sébastien Mouthuy
smouthuy at gmail.com
Mon May 28 14:01:56 CEST 2007
Hello,
I have one question related to the one I posted before (thank you for
the fast reply :) ).
Could you tell me what is exactly the order in which the functions
status and commit are called ?
For me it should be
call to status with space S. if it returns true, then copy S. let's call
the copy Sc. Then call commit() with S and a=0. when we will have
backtracked, commit will be called with Sc and a=1.
I ask this question because I post a branching in the commit function of
another branching. Then I catch the following exception:
terminate called after throwing an instance of
'Gecode::SpaceNoBranching'
what(): Space::commit: Attempt to commit with no branching
I don't understand exactly the problem nor its solution. Could you bring
me any help ?
Thanks a lot,
sebastien
More information about the gecode-users
mailing list


Once we have a frequency table with relative frequency, we can create a pie chart. To create a pie chart, divide the circle into wedges, where each wedge takes up some percentage of the total circle. Those percentages should match the relative frequencies in your frequency table. Making a pie chart by hand can be tricky, because you need to estimate what different percentages of the circle would be.
in-context


I started my career as an electronic engineer. Over the years I gradually started discovering my passion for software development.
I see myself as quite a versatile engineer having worked in a wide variety of environments, cultures and technologies. I love learning and growing and therefore also completed my masters degree in Software Engineering through the University of Witwatersrand in 2017. More recently I also completed my AWS Cloud Practitioner certification.
Over the years I have carefully crafted my soft skills and improved my leadership abilities. I have been commended a few times for my good communication skills and emotional intelligence in my current working environment.


| Package | Description |
|---|---|
| io.parallec.core.actor |
Actors to execute parallel task and return responses.
|
| io.parallec.core.actor.poll |
Classes for handling Async APIs with polling progress APIs
with success / failure criteria
|
| io.parallec.core.commander.workflow.ssh |
Work flow utilities on ssh.
|
| Modifier and Type | Field and Description |
|---|---|
(package private) com.ning.http.client.ListenableFuture<ResponseOnSingeRequest> |
HttpWorker.responseFuture
The response future.
|
private java.util.concurrent.Future<ResponseOnSingeRequest> |
SshWorker.responseFuture
The response future.
|
private java.util.concurrent.Future<ResponseOnSingeRequest> |
PingWorker.responseFuture
The response future.
|
| Modifier and Type | Method and Description |
|---|---|
ResponseOnSingeRequest |
SshWorker.SshTask.call() |
ResponseOnSingeRequest |
PingWorker.PingTask.call() |
ResponseOnSingeRequest |
HttpWorker.onComplete(com.ning.http.client.Response response)
On complete.
|
ResponseOnSingeRequest |
HttpWorker.HttpAsyncHandler.onCompleted(com.ning.http.client.Response response) |
| Modifier and Type | Method and Description |
|---|---|
java.util.concurrent.Future<ResponseOnSingeRequest> |
SshWorker.getResponseFuture()
Gets the response future.
|
java.util.concurrent.Future<ResponseOnSingeRequest> |
PingWorker.getResponseFuture()
Gets the response future.
|
| Modifier and Type | Method and Description |
|---|---|
private void |
OperationWorker.handleHttpWorkerResponse(ResponseOnSingeRequest respOnSingleReq)
Handle http worker response.
|
void |
SshWorker.onComplete(ResponseOnSingeRequest sshResponse)
On complete.
|
void |
PingWorker.onComplete(ResponseOnSingeRequest pingResponse)
On complete.
|
| Modifier and Type | Method and Description |
|---|---|
void |
SshWorker.setResponseFuture(java.util.concurrent.Future<ResponseOnSingeRequest> responseFuture)
Sets the response future.
|
void |
PingWorker.setResponseFuture(java.util.concurrent.Future<ResponseOnSingeRequest> responseFuture)
Sets the response future.
|
| Modifier and Type | Method and Description |
|---|---|
double |
HttpPollerProcessor.getProgressFromResponse(ResponseOnSingeRequest myResponse)
Gets the progress from response.
|
java.lang.String |
HttpPollerProcessor.getUuidFromResponse(ResponseOnSingeRequest myResponse)
Gets the uuid from response.
|
boolean |
HttpPollerProcessor.ifTaskCompletedSuccessOrFailureFromResponse(ResponseOnSingeRequest myResponse)
If task completed success or failure from response.
|
boolean |
HttpPollerProcessor.ifThereIsErrorInResponse(ResponseOnSingeRequest myResponse)
If there is error in response.
|
| Modifier and Type | Method and Description |
|---|---|
ResponseOnSingeRequest |
SshProvider.executeAndGenResponse(com.jcraft.jsch.ChannelExec channel)
Seems there are bad naming in the library the sysout is in
channel.getInputStream(); the syserr is in
((ChannelExec)channel).setErrStream(os);
|
ResponseOnSingeRequest |
SshProvider.executeSshCommand()
finally: will close the connection.
|
ResponseOnSingeRequest |
SshProvider.genErrorResponse(java.lang.Exception t)
Gen error response.
|


This section describes the basic architecture of an SCM plugin.
This page was out-of-date, but is being updated! The pollChanges API has been deprecated in favor of a new API that can track multiple changes coming in while a build is waiting in the quiet period. You can find more info in the SCM javadoc hudson.scm.SCM and see Subversion Plugin for a sample implementation https://svn.jenkins-ci.org/trunk/hudson/plugins/subversion.
The SCM class
All SCM plugins are subclasses of hudson.scm.SCM. This class has a few methods that an SCM implementation will want to override:
- public PollingResult compareRemoteRevisionWith(Job<?,?> project, Launcher launcher, FilePath workspace, TaskListener listener, SCMRevisionState baseline) throws IOException, InterruptedException
- public void checkout(Run<?,?> build, Launcher launcher, FilePath workspace, TaskListener listener, File changelogFile, SCMRevisionState baseline) throws IOException, InterruptedException
- public SCMRevisionState calcRevisionsFromBuild(Run<?,?> build, FilePath workspace, Launcher launcher, TaskListener listener) throws IOException, InterruptedException
Including createChangeLogParser
which is abstract and has to be overridden:
- public abstract ChangeLogParser createChangeLogParser()
The basic means of interaction between the plugin and the rest of hudson are the compareRemoteRevisionWith
and checkout
methods, which are used, respectively, to poll the SCM for changes and to check out updated files. The createChangeLogParser
method is supposed to return something that can parse an XML file with change set information.
Create the configuration options as normal fields, by adding fields to the SCM class they will be persisted when Hudson is stopped and started. If you have a field that should not be persisted to XML it should be marked as transient
.
public class TeamFoundationServerScm extends SCM { private boolean cleanCopy; private String server; private String project; private String workspaceName; private String username; private String password; private String domain; ... }
Methods
The following sections describe the methods of the SCM class in more detail.
constructor
Create a constructor that takes non-transient fields, and add the annotation @DataBoundConstructor
to it. Using the annotation helps the Stapler class to find which constructor that should be used when automatically copying values from a web form to a class.
@DataBoundConstructor public TeamFoundationServerScm(String server, String project, boolean cleanCopy, String username, String password, String domain, String workspaceName) { // Copying arguments to fields }
compareRemoteRevisionWith
The compareRemoteRevisionWith
method is expected to return if there has been any changes on the SCM repository or not in the form of a PollingResult
object. It is up to the plug-in developer to create a new SCMRevisionState
from the remote repository, and compare this with the baseline SCMRevisionState
to determine whether there are changes (which lets Jenkins know it should checkout and build or not). It is also up to the developer to extend the SCMRevisionState
class with details specific to the SCM system, and to provide a way to compare objects of this class. This example shows what a very basic compareRemoteRevisionsWith
might look like if SCMRevisionState
is extended by class MyCustomRevisionState
which has method isNewerThan
for comparing two MyCustomRevisionState
.
@Override public PollingResult compareRemoteRevisionWith(Job<?,?> project, Launcher launcher, FilePath workspace, TaskListener listener, SCMRevisionState _baseline) throws IOException, InterruptedException ... MyCustomRevisionState currentRemoteState = new MyCustomRevisionState(remoteVersionNumberOrSomething); // Compare cached state with latest polled state Boolean changes = currentRemoteState.isNewerThan(baseline); // Return a PollingResult to tell Jenkins whether to checkout and build or not return new PollingResult(baseline, currentRemoteState, changes ? Change.SIGNIFICANT : Change.NONE); }
checkout
The checkout
method is expected to check out modified files into the project workspace. As a checkout is generally the first step for a build, the build
object is made available. Also, the former SCMRevisionState, baseline
is made available.
@Override public void checkout(Run<?,?> build, Launcher launcher, FilePath workspace, TaskListener listener, File changelogFile, SCMRevisionState baseline) throws IOException, InterruptedException
While calcRevisionsFromBuild
is designed to generate the SCMRevisionState
, there is also the option of having checkout
generate this state and having calcRevisionsFromBuild
returning null
. This is particularly useful if the generation of the SCMRevisionState
overlaps with the checkout process and you want to optimize performance.
Simply set calcRevisionsFromBuild
to return null, and add your SCMRevisionState to build
during checkout
:
@Override public void checkout(Run<?,?> build, Launcher launcher, FilePath workspace, TaskListener listener, File changelogFile, SCMRevisionState baseline) throws IOException, InterruptedException { // Checkout Stuff // Create your own SomethingRevisionState() object (make sure to create a class that extends SCMRevisionState) LRTRevisionState newBaselineState = new MyRevisionState(stateOfWorkspace); // Add your SCMRevisionState to your build as an action. Jenkins stores this value, so next time {{compareRemoteRevisionWith}} executes, _baseline will be this object build.addAction(newBaselineState); } @Override public SCMRevisionState calcRevisionsFromBuild(Run<?,?> build, FilePath workspace, Launcher launcher, TaskListener listener) throws IOException, InterruptedException { return null; }
Since you have access to your build, you can even add build parameters to your build during checkout. This is useful if you want to pass some information (like a version number) acquired during the polling process to a build job.
// add a line like this to checkout() build.addAction(new ParametersAction(new StringParameterValue("myParameterName", "myParameterValue")));
calcRevisionsFromBuild
This method is called after checkout
and generates and returns a SCMRevisionState, presumably based on the state of the workspace. Alternatively, this method can be set to return null
and checkout can add SCMRevisionState to the build as an action.
createChangeLogParser
The checkout
method should, besides checking out the modified files, write a changelog.xml
file that contains the changes for a certain build. The changelog.xml
file is specific for each SCM implementation, and the createChangeLogParser
returns a parser that can parse the file and return a ChangeLogSet
. See below section for more information.
getDescriptor
Returns the ScmDescriptor<?> for the SCM object. The ScmDescriptor is used to create new instances of the SCM. For more information see next section.
@Override public SCMDescriptor<TeamFoundationServerScm> getDescriptor() { return PluginImpl.TFS_DESCRIPTOR; }
The Descriptor class
The relationship of Descriptor and SCM (the describable) is akin to class and object. What this means is that the descriptor is used to create instances of the describable. Usually the Descriptor is an internal class in the SCM class named DescriptorImpl
. The Descriptor should also contain the global configuration options as fields, just like the SCM class contains the configurations options for a job. The @Extension
annotation tells Jenkins to register the descriptor.
public class TeamFoundationServerScm extends SCM { ... @Extension public static class DescriptorImpl extends SCMDescriptor { private String tfExecutable; protected DescriptorImpl() { super(TeamFoundationServerScm.class, null); load(); } ... } }
Methods
Methods that will be overriden
public String getDisplayName()
public boolean configure(StaplerRequest req) throws FormException
getDisplayName
Returns the name of the SCM, this is the name that will show up next to CVS and Subversion when configuring a job.
@Override public String getDisplayName() { return "Team Foundation Server"; }
configure
The method is invoked when the global configuration page is submitted. In the method the data in the web form should be copied to the Descriptor's fields. To persist the fields to the global configuration XML file, the save()
method must be called. Data is defined in the global.jelly
page.
@Override public boolean configure(StaplerRequest req, JSONObject json) throws FormException { tfExecutable = Util.fixEmpty(req.getParameter("tfs.tfExecutable").trim()); save(); return true; }
Jelly files
The jelly files for the Descriptor go into the src/main/resources/hudson/plugins/$plugin-name/$PluginScm/
folder where $plugin-name
is the name of your plugin and $PluginScm
is the plugin's SCM class implementation. For the Team Foundation Server plugin this path is /src/main/resources/hudson/plugins/tfs/TfsScm
. The jelly files are the configuration view for the SCM class.
global.jelly
Contains global configuration that is displayed in system configuration page. Typical configuration parameters that is going to be used by all Hudson jobs, for example the path to the SCM tool.
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> <f:section title="Team Foundation Server"> <f:entry title="TF command line executable" help="/plugin/tfs/tfExecutable.html"> <f:textbox name="tfs.tfExecutable" value="${descriptor.tfExecutable}" checkUrl="'${rootURL}/scm/TeamFoundationServerScm/executableCheck?value='+escape(this.value)"/> </f:entry> </f:section> </j:jelly>
The field tfs.tfExecutable
will be populated with the string from DescriptorImpl.getTfExecutable()
. The method should return "tfs" by default.
public String getTfExecutable() { if (tfExecutable == null) { return "tfs"; } else { return tfExecutable; } }
The field tfs.tfsExecutable
will also validate the entered tool path through checkUrl
. When the user has entered a path (and moves the focus away from field) Hudson will call DescriptorImpl.doExectuableCheck
to validate that the path can be found.
public FormValidation doExecutableCheck(@QueryParameter String value) { return FormValidation.validateExecutable(value); }
config.jelly
Contains configuration for one Hudson job. Typical configuration parameters that used in a job, such as server URL, etc. The fields in the jelly file should correspond to the fields in the SCM class.
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> <f:entry title="Server URL" help="/plugin/tfs/server.html"> <f:textbox name="tfs.server" value="${scm.server}"/> </f:entry> <f:entry title="Name of project" help="/plugin/tfs/project.html"> <f:textbox name="tfs.project" value="${scm.project}" checkUrl="'/fieldCheck?errorText=${h.jsStringEscape(h.encode('%Project is mandatory.'))}&value='+encode(this.value)"/> </f:entry> <f:advanced> <f:entry title="Clean copy"> <f:checkbox name="tfs.cleanCopy" checked="${scm.cleanCopy}"/> If checked, Hudson will delete the directory and all its contents before downloading the files from the repository for every build. </f:entry> <f:entry title="Workspace name" help="/plugin/tfs/workspacename.html"> <f:textbox name="tfs.workspaceName" value="${scm.workspaceName}"/> </f:entry> </f:advanced> </j:jelly>
As with the Descriptor the web form fields are populate from the SCM object through properties, the value for "tfs.server" is retrieved from the TeamFoundationServerScm.getServer()
method.
public String getServer() { return server; } public boolean isCleanCopy() { return cleanCopy; } ....
The tfs.project
field is mandatory and will display an error text below it if the field is empty. The error text is defined by the checkUrl
attribute, and can be also used to validate numbers. The checkUrl
can be used for more advanced validating such as testing the server if it exists and needs credentials.
HTML Help files
For each entry in a jelly file that has a help
attribute Hudson will display a help icon to the right. When the icon is clicked the named HTML page will be inlined just below the entry field. The HTML page must reside in the src/main/webapp
folder.
<div> <p> The name or URL of the team foundation server. If the server has been registered on the machine then it is only necessary to enter the name. </p> </div>


Hi! My name is Leonel Serra and I am a Multimedia Developer currently living in Cork, Ireland.
I'm a graduate on Computer Graphics and Multimedia and have over 10 years of experience developing web sites, research projects, Rich Media, Games and recently Mobile applications.
I have a wide range of skills that comprehend front end development, back end as well as database knowledge.
I'm always looking to improve myself by a challenging environment where I can develop my work and stimulate my knowledge base along with evolving best practices.


| Key Combination | Behavior |
|---|---|
| Click | Select the clicked entity. A selected entity can be deleted or resized. |
| Shift + Click | Add the clicked entity to a group selection. |
| Drag & Drop | Move the entity to a new position on the canvas. |
| Delete Key | Delete the selected entity or entities. |
| Control Key + Click | Add the entity selected in the panel to the canvas. |
| Control Key + Shift Key + Drag | Add several copies of the entity selected in the panel to the canvas. |


{{ datepickerTitle }}
{{ customMessage }} {{ selectedDay }} {{ monthNames[localdate.getMonth()] }} {{ localdate.getDate() }}, {{ localdate.getFullYear() }}
{{ currentMonthName() }} {{ currentViewDate.getFullYear() }}
{{ day.short }}
{{ day.daydate }}
9:00AM
10:00AM
11:00AM
12:00PM
1:00PM
2:00PM
3:00PM
4:00PM
CANCEL
SCHEDULE


---
layout: default
---
Sustainability Innovator. Community Impact Designer Collaboration Enabler
Recognized change agent in the sustainability space and circular economy
and key innovator in sustainable tourism.
Conceptualize new program and build the structure and flow/process map for a new program. Design process & enable system design for a set of problems.
Engage with communities in ensuring they get activated to create impact. .
Design innovation for process/ technology/platform. .
Strategy to Envision, Inspire, Configure, Orchestrate and Transform a Product using Innovation process.
Advisor for Govt of Karnataka in Cycling and Cycle Tourism and Sustainable Tourism ,
{% include advisory-section.html %}Recognized leader in Start up Space, Sustainability & Innovation
Recognized leader in Community Collaborations
{% include collaboration-section.html %} {% include work-process-section.html %} {% include competency-section.html %}


May 7th - Problem solving... and a bit about arrays
All about a time when I got blocked on a simple problem and solved it in an elegant way
This sounds like a job interview question! I always struggle to filter through my junk pile of life events for stuff like this, but wouldn't you know that the best example happened today?
As we've progressed through Phase 0 we've slowly built our sites on these very blog pages. The longer that's gone on, the more annoying it's become to have to go through each blog page and add a link every time we write a new one. I knew at some point I'd know enough Javascript to overcome this, and now I know that I do - the link menu to the right of this very post was built using a script I wrote today.
I tried a few techniques: some rubber ducky-ing to my wife at the start, followed by a bit of pseudocode. I did a whole lot of just "trying something" (this is my dominant method) with reading errors and console logging thrown in. I did need to google a little bit but I figured it out mostly on my own and I'm pretty pleased about that.
I felt like I had a good handle on the problem and what I'd need to do, so I was pretty confident and calm the whole time (unlike with the racer game...). I learnt that my initial idea - while simple - was actually too complex and the solution is very very simple indeed. I'm finding that quite often that's the case.
How I feel about problem solving techniques and process
-
Pseudocode: I haven't done this much, but I did do it today and it seemed to help. Once I'd laid out my pseudocode I worked out my problem backwards from the end.
-
Trying something: This is pretty much my default option, for better or worse. In those worse times, the other techniques will help, I'm sure.
-
Rubber ducky method: I've only used this a couple of times, but I think most people are aware of how similar methods can work well in day-to-day life, so I plan to use it more.
-
Reading error messages: Where would I be without these?! I hate the sight of 'em, but I also love 'em.
-
Console.logging: Just getting used to this, but it can be hugely valuable to see the output of your code at any given point.
-
Googling: Yeah, I do this. A lot.
-
Asking my peers for help: I've been doing this a bit the last couple of weeks. It's a bit of a handicap having so few people in our cohort, so I'll have to get used to leaning on the others in the code-help-desk channel.
-
Asking coaches for help: This is a weakness. I've tended to always rely totally on myself and assume others can't or won't help me. I need to get much better at putting my hand up for teacher.
-
Improving my process with reflection: I find myself doing this without really realising I'm doing it. The ironic thing is that this tends to happen when I'm at my least mindful...
What these functions do
So, my non-technical friends: before we get into this, I should explain what an array is. It's basically an object used to store data, very much like a table or a spreadsheet. They can contain data in the forms of numbers, strings of words, or expressions like true and false. Arrays can have any number of rows and columns and programs can add to, remove, and search the data within.
-
.map() takes the values in an existing array and uses a small piece of code called a function to manipulate those values in some way, and create a new array with the new values. The .map() method could be used by a function to take some numbers out of one array, multiply all those numbers by two, and then put the results inside a new array. This is a very basic example.
-
.filter() is similar to the .map() method. The difference is that when the function looks through the existing array, it creates the new array only with values that pass a test. Some examples: it may look through some names and return those that start with a particular letter; or it may only return values that are greater than 100. It will then put the values it finds in a new array - it doesn't actually change the values as .map() does.
-
.reduce() takes the values in an array and reduces them to a single value. It can do this with numbers by adding them all together (or any calculation that uses two or more values). It can take an array with a bunch of smaller arrays inside it, take the values out of those and turn all of them into one big array. It can also take words inside an array and stick them all together in a big sentence. The beauty of .reduce() is that it simplifies a lot of the sort of basic coding that would spit out a single value anyway.


Letter of the Day: Climate change deniers sit as MLAs
by Reader LettersLetter to the editor from Russell Charlton
Multiple peer-reviewed studies have looked at the scientific literature and concluded that at least 97 per cent of climate scientists agree that humans are causing global warming.
Climate scientists have given us clear warnings that we must act urgently to avoid widespread catastrophe. As such, it is unacceptable and dangerous to have members of our Legislative Assembly calling climate change a hoax or saying that those who recognize the scientific consensus “can go back to the Flat Earth Society,” while dismissing those concerned about climate change as “the end-of-the-world-crowd.”
However, those are recent comments from Sask. Party MLAs Warren Michelson and Hugh Nerlien.
I can understand members of the public being confused about climate change, given that companies have poured millions of dollars into deceiving people. The misinformation and manipulation of the climate change denial movement has now been well documented.
Nerlien and Michelson are not simply members of the public, though. As MLAs, they are responsible to respect the rights of everyone in our society, including the rights of the children who will live with the consequences of their actions.
We cannot afford to have our climate policies being determined by those who get their scientific information from conspiracy theory websites. Their remarks present a clear call to look seriously at Sask. Party climate policies. How could those policies possibly be sufficient if climate change deniers feel at home in that party and if the party has not even denounced their remarks?
Russell Charlton
Cochin
SHARE YOUR VIEWS
The StarPhoenix welcomes letters, which are limited to 250 words and must include the writer’s name, street address and phone number.
Submissions will be verified and edited before publication.
We publish the names and community of all letter writers.
Do not send email attachments.
Writing more than one letter a month is discouraged and “open” letters are not accepted.
Send to: 204 Fifth Ave. N., Saskatoon, Sask., S7K 2P1
Fax:<PHONE_NUMBER>
Email: letters@thestarphoenix.com


If the press notices [of Austin Osman Spare's first West End gallery show] were calculated to put many visitors off, there was something about them that would prove positively attractive to a few. Among them was the so-called Wickedest Man in the World, the self-styled Beast 666; and so it was that Aleister Crowley came striding through the door of number 13 Bruton Street, grandly announcing himself to the shy and awkward artist as the “Vicegerent of God upon Earth”… Spare thought he looked more like “an Italian ponce out of work”, or so he told a friend years later. Perhaps with the benefit of four decades of hindsight, he said this was what he had told Crowley at the time.
From Austin Osman Spare : The Life And Legend Of London's Lost Artist by Phil Baker (2011)


As mentioned previously, the lifecycle methods for the {@link oaj.microservice.Microservice} class are explicitly
defined as non-final so that they can be overridden by subclasses.
In addition to this support, an interface for defining event listeners for your microservice:
- {@link oaj.microservice.Microservice.Builder}
- {@link oaj.microservice.Microservice.Builder#listener(MicroserviceListener) listener(MicroserviceListener)}
- {@link oaj.microservice.MicroserviceListener}
- {@link oaj.microservice.MicroserviceListener#onStart(Microservice) onStart(Microservice)}
- {@link oaj.microservice.MicroserviceListener#onStop(Microservice) onStop(Microservice)}
- {@link oaj.microservice.MicroserviceListener#onConfigChange(Microservice,ConfigEvents) onConfigChange(Microservice,ConfigEvents)}
- {@link oaj.microservice.BasicMicroserviceListener}
This listener API can be used for listening for and reacting to configuration changes on the file system.
| public class MyMicroserviceListener extends BasicMicroserviceListener {
|
| @Override /* MicroserviceListener */
| public void onConfigChange(Microservice microservice, ConfigEvents events) {
|
| // Restart the microservice if anything was modified in one of our sections
| if (events.isSectionChanged("MySection"))
| microservice.stop().start();
| }
| }
Note that the {@link oaj.microservice.Microservice#onConfigChange(ConfigEvents)} method can also be overridden
to react to configuration changes as well:
| public class MyMicroservice extends Microservice {
|
| @Override /* MicroserviceListener */
| public void onConfigChange(ConfigEvents events) {
|
| // Restart the microservice if anything was modified in one of our sections
| if (events.isSectionChanged("MySection"))
| this.stop().start();
| }
| }


Automator Actions
Permanent Eraser comes with the following Automator Actions to aid in automating your tasks to erase files.
- Erase Free Space: Erase the free space on a selected disk.
- Erase Selected Items: Erase the selected files.
- Erase Trash: Erase the files in the Trash.
See also
Enabling the Erase Service Plug-In


I will not go down under the ground
'Cause somebody tells me that death's coming 'round
And I will not carry myself down to die,
When I go to my grave, my head will be high.
Let me die in my footsteps before I go down under the ground.
There's been rumors of war and wars that have been,
The meaning of the life has been lost in the wind,
And some people thinking that the end is close by,
'Stead of learning to live, they are learning to die.
Let me die in my footsteps before I go down under the ground.
I don't know if I'm smart, but I think I can see
When someone is pulling the wool over me,
And, if this war comes and death's all around,
Let me die on this land 'fore I die underground.
Let me die in my footsteps before I go down under the ground.
There's always been people that have to cause fear,
They've been talking about a war now for a-many long years.
I have read all their statements and I've not said a word,
But, now, lord God, let my poor voice be heard.
Let me die in my footsteps before I go down under the ground.


{{ if .IsNamedParams }} Sorry, your browser doesn't support embedded videos, but don't worry, you can download it and watch it with your favorite video player! {{ else }} Sorry, your browser doesn't support embedded videos, but don't worry, you can download it and watch it with your favorite video player! {{ end }}


import os
from setuptools import setup, find_packages
REQUIREMENTS = open("requirements.txt").readlines()
setup(
name="enso",
version="0.1.4",
import os
from setuptools import setup, find_packages
REQUIREMENTS = [
"pandas>=0.20.3",
"seaborn>=0.8.1",
"tqdm>=4.19.4",
"IndicoIo>=1.1.5",
"scikit-learn>=0.18.0",
"numpy>=1.13.1",
"click>=6.7",
"bs4>=0.0.1",
]
setup(


{% extends "bootstrap/base.html" %} {% block title %}Kan Zhou's Search Engine{% endblock %} {%import "bootstrap/wtf.html" as wtf%} {% block content %}
{{wtf.quick_form(form)}}


{% extends 'layout.html' %} {% load i18n %} {% load staticfiles %} {% block wrap %} {% url 'tickets:new' as new_ticket %}
{% blocktrans trimmed with new_ticket as new_ticket %} We're not able to chat all the time for now. If we don't reply, please open a support ticket and we will get back to you as soon as possible! {% endblocktrans %}


I had skipped out on flipping some burgers and went to my friends house for another mindless session of getting 'fucked' up. I passed on the nitrous and marijuana- went straight for the salvia. Sitting down now, taking in the first two hits. I feel more aware and alert. Also a new feeling of being able to learn alot of information in a very short amount of time, just a very pleasant familiar feeling. deja vu? Now about 30 seconds later I smoked the last two hits, which will do-me-in quite quickly.
With a table in front of me, three or four 2 dimensional figures dance and float on top and over, comming back again. I take note of their very cartoon like colors. All of this happened in about 15 seconds after the last hit. Then, not thinking logically, I want to join them in their 'dance'. As I get up, my head and eyes separate from my vision and I find my self seeing thru a third person perspective.
By now I lost all logical thought and everything seems so playful and easy. In this very simple world with no depth and flat, 2 dimensional surroundings, no one could harm me. I won whatever prize there was to win, I conquered the frenzy of giants and basically I was 'it'. I was on-top of the world. Well, that was until an unknown being came to me. In the form of sound. I couldn't see anything at all. My vision cut out. It took my hand as we turned many corners. It felt like we were spinning, going around and around these sharp but turn-able corners made out of this noise, a very loud noise.
 Holding on to an unknown object I float about aimlessly until the object melts onto my body and weights me down, like gravity. Now I'm walking around in this world with a tint of red. I'm walking with a man whose telling/giving me, like a gift of some sort, knowledge. Knowledge that I feel that I shouldn't know.  Everything he speaks just keeps 'topping' the last, getting more and more interesting and intense, until it all builds up and he speaks of something so profound and forbidden that everything including me just collapses and fold into it's self.
I feel like I don't exist anymore, in-fact, at this point, nothing exists anymore. There is nothing at all. Not even a void or something that would be recognized as something. It had no name, because it can't. It was absolute nothing. That's as best as I can explain it. From then on, it faded out, getting less and less intense, like the end of a movie almost. I got back rational thought and my vision. I was still just sitting there, holding my pipe.
----------------------------------------------------------
This is probably the most intense and memorable salvia experience I've had. The whole thing clocked in at about 15 - 20 minutes. After that is another story because I was smoking cannabis and 5meo dmt, a little nitrous too. Anyway, all-in-all it was great and a very good way to kick everything off that day.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Dynamo - Dynamic Swift Web Server
Dynamo is a high performance, minimal, Swift implementation of a Web server supporting SSL that
can also be used in Objective-C applications. Dynamic content can be provided in what you could
call swiftlets
which are dynamically loadable bundles in your document root. These bundles
hot-swap when modified using method Swizzling so the server does not have to be restarted.
To see dynamic loading in action, run the DynamoApp target and browse to http://localhost:8080 and select either the Simple Game TickTackToe or the Number Guesser example. Modify the souces in their bundle projects and build the project. The changes should take effect without having to restart the server or affecting the object’s state.
Testing with (JMeter)[http://jmeter.apache.org/] as shown Dynamo can serve 12,000 requests per minute and 6,000 requests per minute for an SSL server. For further information about the classes and protools that make up Dynamo you consult the jazzy docs here.
Incorporating the DynamoWebServer in your web server or application is simple. The initialiser
takes a port number and a list of processors
(applications or document processors)
that will each be presented the incoming requests in the order specified and have the
option of processing them. The basic code pattern for initialisation in your app delegate is:
// create non-SSL server/proxy on 8080
let serverPort: UInt16 = 8080
DynamoWebServer( portNumber: serverPort, processors: [
DynamoLoggingProcessor( logger: dynamoTrace ),
exampleTableGeneratorApp,
tickTackToeGame,
DynamoSSLProxyProcessor( logger: logger ),
DynamoProxyProcessor( logger: logger ),
DynamoSwiftServerPagesProcessor( documentRoot: documentRoot ),
DynamoDocumentProcessor( documentRoot: documentRoot )
] )
webView.mainFrame.loadRequest( NSURLRequest( URL: NSURL( string: "http://localhost:\(serverPort)" )! ) )
See OSX/AppDelegate.swift or iOS/AppDelegate.m in the example project for
further details. A processor runs in it’s own thread and
implements the DynamoProcessor
protocol that has the following signature:
@objc public enum DynamoProcessed : Int {
case
NotProcessed, // does not recognise the request
Processed, // has processed the request
ProcessedAndReusable // "" and connection may be reused
}
@objc public protocol DynamoProcessor {
@objc func process( httpClient: DynamoHTTPConnection ) -> DynamoProcessed
}
A subclass of DynamoApplicationProcessor, DynamoHTMLAppProcessor
provides
functions to generate balanced HTML tags easily using functions. for example:
out.print( html( nil ) + head( title( "Table Example" ) +
style( "body, table { font: 10pt Arial" ) ) + body( nil ) )
if parameters["width"] == nil {
out.print( h3( "Quick table creation example" ) )
out.print(
form( ["method":"GET"],
table(
tr( td( "Width: " ) + td( input( ["type":"textfield", "name":"width"] ) ) ) +
tr( td( "Height: " ) + td( input( ["type":"textfield", "name":"height"] ) ) ) +
tr( td( ["colspan":"2"], input( ["type": "submit"] )) )
)
)
)
}
Design
DynamoWebServer has been implemented using BSD sockets rather than Apple’s CFSocket for simplicity and speed. This should also help in any eventual port to Linux. There is an alternate NSStream based version of DynamoHTTPConnection but it didn’t seem to cope at all well with many simultaneous connections. Besides, it is heavily dependant on the foundation NSRunLoop unlikely to prove portable.
One thing CFSocket/NSStreams does provide however is support for an SSL connection so a way had to be found
to turn the push
of CFSockets to the pull
of the Dynamo code. The solution was to run a separate CFSocket
based SSL server as a proxy relaying decrypted data to a surrogate
Dynamo server on localhost satisfying both
architectures. The code to generate the required certificates in DDKeychain.[nm], slightly modified from
robbiehanson’s CocoaHTTPServer under the following license:
Software License Agreement (BSD License)
Copyright (c) 2011, Deusty, LLC
All rights reserved.
Redistribution and use of this software in source and binary forms,
with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above
copyright notice, this list of conditions and the
following disclaimer.
* Neither the name of Deusty nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior
written permission of Deusty, LLC.

Dynamic content can be coded entirely in Swift and one interesting use case is that it
can be used inside an iOS or OS X app. This allows you to write a lag free
portable web
interface connecting to the embedded server on the local device rather than a remote server.
This is shown in the two examples included in the release.
As ever, announcements of major commits to the repo will be made on twitter @Injection4Xcode.
Enjoy!
MIT License
Copyright © 2015 John Holdsworth
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the Software
), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


I did monthly update to my sites, adding information to my travel schedule and to my CV
I fussed around for a while (still) trying to get the Open Graph Protocol to work on all my sites, and fiddled with a bunch of things across the various projects I run
Invoicing. Ugh. Why don’t people pay freelancers on time?!
Therapy!
One month sober!
Reading and Viewing
I watched Spotlight, Creed, and season 1 of Fear the Walking Dead
I read The Politics of Bitcoin: Software as Right-Wing Extremism


Reports problems found in Comparator.compare()
implementations:
- Warns if parameter is not used. Most likely this is the result of a typing mistake and one parameter is compared
with itself or the method is not implemented correctly.
- Warns if it's evident that comparator does not return 0 for the same elements. Such comparator violates the contract
and result of sorting could be unpredictable if equal elements are encountered. In particular,
sorting method may fail with exception on some data sets.
Sample of the code that will be reported:
Comparator<String> lambda = (a, b) -> (a.length() > b.length() ? 0 :
Math.random() > 0.5 ? (-1) : (1));


{# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -#} {% extends "manage/manage_base.html" %} {% set user = request.user %} {% set title = gettext("Set up 2FA with an authentication application (TOTP)") %} {% set active_tab = 'account' %} {% block title %} {% if provision_totp_form.errors %}{% trans %}Error processing form{% endtrans %} –{% endif %} {{ title }} {% endblock %} {# Hide mobile search on manager pages #} {% block mobile_search %}{% endblock %} {% block main %}
{% trans trimmed href='https://en.wikipedia.org/wiki/Time-based_One-time_Password_algorithm', title=gettext('External link') %}
PyPI supports any application that follows the TOTP standard.
{% endtrans %}
{% trans trimmed href=request.route_path('help', _anchor='totp') %}
Visit PyPI's help page for a list of compatible applications.
{% endtrans %}
{% trans %}Scan the QR code with the authentication application of your choice.{% endtrans %} {% trans %}For security reasons, you can only associate one authentication application per PyPI account.{% endtrans %}
{% trans %}No QR scanner? Manually enter the code instead:{% endtrans %}
{{ provision_totp_secret }}


I've learnt that I need to take on a lot less and focus on what I need to get done rather than trying to do everything, which is somewhat something that I realised early on as well. I've also learnt that just knowing code isn't enough to work around problems. I've learnt that looking at problems for what they rather than just trying to code my way around them is not enough. The ego is a fragile thing, and mine is no different, so coming up against a brick wall can be incredibly humbling. But pushing through and persisting is not only satisfying but feels like real growth for me.
I feel that these values are important and are real sign of growing emotional intelligence. Really understanding who I am can help me work well myself, but give me a sense of how well I can learn and programme with others.
The depth of insight into both neuroplasticity and emotional intelligence deepened what I already thought I understood about both of things. Also the different aspects of the growth and fixed mindsets. I hadn't really thought about their definitions before and what they meant at their core, so I found that interesting. I really hope that things like this are built upon in the bootcamp :)
Digging deep within yourself to admit a lot of things about how I learn can be very confronting, raw and sobering. Not being the most vocal person as well as being quite the introvert, I find it a little exhausting doing things like this and in the past have written many of these kind of activites off as a necessary evil. But with this I felt like it was more focussed and something I looked forward to doing for each sprint. With that though came a lot of learning about stuff I haven't thought about in the past.
I think you have mentioned it quite frequently yourselves. It's really an important part of (not only) software development companies and acquiring the the kind of people that they want. It takes more than just dudes who know how to code. Being able to work alone and in a group, functioning as cohesive units and getting along with one another with empathy and emotional intelligence prevents projects and teams failing, people not getting along and people staying on board because they know themselves and others enough to get along and contribute positively.
I'm not going to lie and say it was all super useful stuff that I get down on my hands and knees and thank the heavens for this content...
Some of it I was happy to blast through so I could catch up on my programming. But even online, I had some of the most enjoyable parts listening
& looping and talking about some of the hardships of learning code with my colleagues. I never would have experienced that if not for the core
content.
As I said though, even things like the the Learning plan (which as of this blog post I have yet to finish off for the course beginning), I
could take or leave, but that is mainly because I do a lot of written and typed plans, but struggle to stick with and (to the chagrin of my partner)
leave lying around the house, unutilised.


Port Tides
About
Settings & About
Porthmadog Tide Times App
Author
James Bithell
Base
Onsen UI 2, Adobe PhoneGap & JQuery
Settings
Welsh Version coming soon
Loading contact information...
Loading copyright information...