| DOSE: T+ 0:00 |
2 hits |
oral |
LSD |
(liquid) |
| T+ 1:00 |
1 hit |
oral |
LSD |
(liquid) |
About me:
I'm a 21 year old musician, chess player, and psychonaut. I'd say I have an intermediate experience with hallucinogens having done mushrooms more times than I can count and acid a dozen times. I have no family or personal history of mental illness, I smoke marijuana daily, and I generally have my life together.
This particular event took place when my main band decided to ingest acid together for the first time with some new liquid we had aquired. I had broken up with my girlfriend the night before but I felt that I was in a peaceful enough mindset to be okay with the planned trip.
The Trip:
T+0:00: The guitarist and I have taken acid together since the beginning, the drummer a few times, and it was the first time for our singer. 'Guitar', 'Drums', and I took 2 hits each, and 'Singer' took 1 to test the waters. We decided to listen to some music while we waited to feel the effects.
T+1:00: An hour later Drums and Singer were starting to feel the effects while we were listening to The Doors. Guitar and I were not impressed with the new acid and passed it off as weak. We each took another hit.
T+1:05: The first two hits started to take hold for me and I looked at Guitar. He was looking back at me with the same, 'Oh my god, what have we done?' look on his face. We laughed and decided to get ready for an awesome trip.
T+1:30: We were listening to Portugal The Man's new album and I was watching the ceiling warp and change while the lyrics took me to a faraway place in my mind. (This CD would set the tone for my battle to come. If you have heard the album then you already understand.) I was having the time of my life and I believe I can safely say the same for Guitar and Singer. Drums was slowly spiraling downward into his own introspection and wasn't liking what he was seeing. We could feel the bad trip across the room.
T+2:00: Everyone was full blown tripping at this point. We had planned out most of the trip and it was time to listen to our new release to get inspiration for new music.
As we listened to our CD I closed my eyes and let my mind wander. I imagined a woman dressed in a cloak from the future placing an object on a pillar. I couldn't see what it was because the item was bright like the sun. She placed it on the pillar and the light grew until it was brighter than the sun and in an instant it was gone. Teleported back in time where it would be safe.
To me, that object was our music and we had somehow found it. I knew it as a powerful weapon that could be used to destroy the world or bring it to glory. It was all ours. I suddenly knew myself as a guardian of an ancient relic, my band mates were my fellow warriors.
The CD ended and I opened my eyes. I was feeling the third hit and the world was entirely new. Our house had become an ancient land. The music room was a treasure room where we kept our precious weapon. The rest of the house was an itracate series of tunnels in a cave designed to confuse those who would come to steal it.
I looked at Guitar, the silent assassin. He was smart, calculating, and precise. Singer was a noble knight, a bit loud and arrogant, his intentions to change the world were righteous. He was our leader. I am the biggest and strongest of the group and I felt like the muscle. My bass was a weapon of power, I had to be careful where I put the notes because I could change the edge of our weapon altogether if I wasn't careful. Then I looked at Drums.
Drums was having a terrible trip. I looked into his eyes and saw for a brief moment something I've never seen before. A demon...I knew then that a demon had possessed Drums in order to get close to the weapon. He wanted to get close to us so he could use the weapon to destroy the world.
To make matters worse he kept saying Demon-like things. 'We're going to become great and take over the world!' I 'knew' that my fellow warriors would not be fooled by such trickery but I couldn't call him out on being possessed or we could be killed. Now was the time for calm moves.
T+3:00: After listening to our release and taking a quick break, we piled into our music room and hooked up our equipment. My bass felt new. For the first time I appreciated the smooth edges, the way the strings felt in my hands, the weight of the bass on my shoulders. I was one with this weapon and I wondered briefly if somebody would find this ancient relic and use it's power someday for good.
Drums asked in a demonic fashion, 'If you could play one last song before you died, what would it be?' So this was how it was going to end. The demon was going to kill us after he learned the secret of the weapon.
We started playing one of our old songs. I felt that the three of us were battling with the demon through music. It was like a video game, every well played note seemed to hit the demon and every misplayed note made the demon stronger.
Drums was terrible. The drum parts were inconsistant, the tempos kept changing, and I figured it was because demons didn't understand how to use the weapon correctly. I couldn't let this get to me, we had to destroy this demon.
After the intro was over and the song really picked up I closed my eyes as if being forced by an unknown entity. No matter how I tried I could not bring myself to open them. I played my parts on instinct and feeling.
Suddenly, I felt our souls being transported into Hell. The music was distorted and alien. All of the evil in the entire universe had surrounded us.
At the moment it was clear, we weren't fighting for just our souls. We were fighting for the souls of the entire world. This was the time to fight back. The fate of the world and its inhabitants depended on us.
T+3:04: I have never played the song so well and with so much passion. Could the souls of 3 men defeat the entire army of evil? Does love really conquer all? I wasn't sure, but I would be damned if I didn't try.
The song was nearing the finish. I felt like we were losing, it was just too hard to play against the drums that were consistantly wrong. I started to lose faith. This could be it, the world would be destroyed because we toyed with a weapon far too powerful for mere mortals.
It was only a matter of time, the song was almost over. Evil was winning. I perceived the temperature in the room rising by potentially thousands of degrees.  I had to try, I had to fight, what else could I do? I loved the world! I couldn't let it be destroyed.
The outro began, the part where I do back up vocals. As I shouted my back up lyrics I felt a strange sensation. Love was coming out of my chest and filling the room. It wasn't just from me, I could feel the love coming out of Guitar and Singer's chests as well. I could even feel it from Drums. The weapon wasn't sent from the future, it wasn't kept in the music room, and it couldn't be stolen by evil.
The weapon was love and we each had a piece of it in our hearts. I heard the demons start to scream. I could feel them clawing at the walls and trying to escape. We were killing them off! We could actually beat this!
The song ended and my eyes opened. The room felt cool, calm, and peaceful. Drums looked up and said, 'I feel like I just woke up.'
'Welcome back.' I said with a smile. We turned off our instruments and separated into our own rooms.
T+3:05 onward: I spent the next several hours in my room playing online chess while still tripping. I felt sober compared to the events that happened in our music room and in truth I won most of my games before falling asleep for several hours.
I stopped feeling the effects of the acid completely around T+10:00
While the trip was intense and intricate, the lesson I learned that day was very simple and I believe it to this day: Fight for what you love. If you go down in the name of love at least you tried.
Cheers.
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.


The Quiver Quantitative Corporate Lobbying dataset provides QuiverLobbyings, QuiverLobbying, and QuiverLobbyingUniverse objects.
QuiverLobbyings objects have the following attributes:
QuiverLobbying objects have the following attributes:
QuiverLobbyingUniverse objects have the following attributes:


Name:
Age:
Breed:
Gender:
Service: Select Service Shower Nails Cut Full service
Owner's Name:
Contact Phone:


Understanding Crash Dump {: .doctitle}
Once NW.js crashed, a minidump
file (.dmp
) will be generated on disk. Users can include it in the bug report. You can decode the minidump
file to get the stack trace when crashed. So it’s helpful to find out what’s wrong with NW.js in certain cases.
To extract the stack trace from the minidump
file, you need three things: the minidump (.dmp
) file generated from the crash, symbols file of NW.js binary and the minidump_stackwalk
tool.
Find Minidump File
The minidump file will be generated in the following default directories when NW.js crashed:
- Linux:
~/.config/<name-in-manifest>/Crash\ Reports/
- Windows: System temporary directory
- Mac:
~/Library/Application\ Support/<name-in-manifest>/CrashPad/
The <name-in-manifest>
is the name
field of Manifest file.
Strip Headers from Linux Minidump File
Minidump file generated on Linux has additional headers in text format. They have to be stripped off before decoding. The real content of minidump file starts with MDMP
followed by unreadable binaries. So simply delete the text before MDMP
.
Organize Symbol Files
Packages of symbol files for released NW.js can be found within the same folder of NW.js download folder. The symbol files (.sym) can be extracted from the downloaded packages.
Then you have to organize the symbol files in a correct path with correct file name in order be used by minidump_stackwalk
tool. minidump_stackwalk
uses simple symbol supplier to find symbol files. Following is the way of how it finds the symbol files.
The tool will try to search the .sym
file as in following pattern:
{SYMBOLS_ROOT}/{DEBUG_FILE_NAME}/{DEBUG_IDENTIFIER}/{DEBUG_FILE_NAME_WITHOUT_PDB}.sym
{SYMBOLS_ROOT}
is the root folder of all symbol files. You can put all versions / platforms of NW.sym
files in a same folder.{DEBUG_FILE_NAME}
,{DEBUG_IDENTIFIER}
and{DEBUG_FILE_NAME_WITHOUT_PDB}
can be obtained from the first line of.sym
file which typically looks likeMODULE Linux x86_64 265BDB6BE043D5C70D3A1E279A8F0B1A0 nw
.265BDB6BE043D5C70D3A1E279A8F0B1A0
is{DEBUG_IDENTIFIER}
nw
is{DEBUG_FILE_NAME}
.{DEBUG_FILE_NAME_WITHOUT_PDB}
can be converted from{DEBUG_FILE_NAME}
by removing.pdb
extension which is only necessary for Windows.
Decode Minidump with minidump_stackwalk
minidump_stackwalk
can be built with NW.js or from breakpad source code directly on Mac and Linux. Or you can install prebuilt from Cygwin on Windows.
To get the stack trace from minidump
file, run following command:
minidump_stackwalk minidump_file.dmp /path/to/symbols_root 2>&1
If the symbol files were not organized correctly, you still can get call stack from this tool. But you will not see symbols and there will be a warning in last section of output - “Loaded modules” like this:
0x00240000 - 0x02b29fff nw.exe ??? (main) (WARNING: No symbols, nw.exe.pdb, 669008F7B6EE44058CBD5F21BEB5B5CFe)
Trigger Crash for Testing
To test the crash dump feature, you can trigger the crash on purpose with APIs provided by NW.js: App.crashBrowser()
and App.crashRenderer()
. They crash the browser process and the renderer process respectively.
References
- http://www.chromium.org/developers/decoding-crash-dumps
- http://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad


New Years resolutions, a clean slate. However every year a lot of us make the same resolutions, why are they so difficult to stick to? Is it lack of motivation? Not putting in the required effort? Or are the resolutions just unrealistic? I believe it’s the latter, we assume a year is a long time, but it’s not.
Breaking it down there are 12 months in a year, 52 weeks, 365 days. In this perspective a year isn’t long at all, but motivation doesn’t last 21 days never mind 365. We set goals: I want to learn a new instrument, a new language, I want to lose weight, run a 10k, whatever it may be, we start with good intentions and with great energy and enthusiasm. As the days go on this motivation dies away, this is human nature. Our resevoir of motivation is being used up and drained, without being replenished. I think that it’s the way we view these resolutions, they should be considered a life style change and not just a new fad. The key is consistency and understanding, understand there are gonna be set backs, but it’s dealing with these setbacks accordingly that defines our success.
To begin, the resolution shouldn’t be a massive unrealistic goal, I want to lose 15Kg or I want to run a marathon, instead it should be broken down into lifestyle changes e.g. I want to eat better, run more, train more, practice more. How far can you get within one year with one hour of practice a day, thats 1/24th of your entire day, in one year you would rack up 365 hours of practice. One hour of running, cycling, walking, in the gym, reading, doing yoga, practicing or reading.
Setting realistic smaller goals, which are related to our resolutions is important and of course reward yourself accordingly. I always found that spending time in a steam room was relaxing for me and sometimes that reward would actually force me to get up and go to the gym. If you begin to eat healthier, set the goal of losing 0.5Kg a week, after 4 weeks it might be time to reward yourself, however you can’t overindulge 3 days of the week and eat healthy the other 4 and reward yourself, be honest about your progression. Setting smaller goals breaks down the challenge into smaller milestones and with results, we replenish that little resevoir or motivation, 4 weeks of 0.5Kg is 2Kg, over 12 months this consistency would result in 24Kg, clearly this is unrealistic so factor in a margin of error and with the potential to lose 24Kg a 10Kg weight loss (which is amazing) is entirely plausible.
The conclusion is to be realistic, honest with yourself and be consistent.


Click on an entry on the left to browse it. Click the reload button at the bottom right to update from the remote data.
Note: To simulate changing the server, open samplefeed.xml and edit one of the title elements.
samplefeed.xml


Toggle navigation
Project Name
VIRENDRA
Dashboard
Charts
Flot Charts
Morris.js Charts
Tables
Forms
UI Elements
Panels and Wells
Buttons
Notifications
Typography
Icons
Grid
Multi-Level Dropdown
Second Level Item
Second Level Item
Third Level
Third Level Item
Third Level Item
Third Level Item
Third Level Item
Sample Pages
Blank Page
Login Page
Blank


{{ workshop.title }}
{{ workshop.about }}
{{ workshop.abstract|markdown:"trusted" }}{% include "workshops/partials/workshop_flags.html" %} {% if workshop.extra_info %} {{ workshop.extra_info|markdown:"trusted" }} {% endif %} {% if workshop.sold_out %}
Tickets will be available soon.
Subscribe to our newsletter
below to be notified when tickets become available.
{% for applicant in workshop.applicants.all %} {% include "talks/partials/speaker.html" with applicant=applicant %}
{% endfor %}
The organizer reserves the right to cancel the workshop in case of unforseen circumstances such as speaker illness. In this case the tickets will be fully refunded.
By buying a ticket you agree to follow our Code of Conduct.


Highlights
- Promoted to Associate Professor with tenure at UBC (2016).
- NSERC Discovery Accelerator Supplement (DAS) Award for 2016-2019. "The DAS Program provides
substantial and timely resources to researchers who have a superior research program that is highly rated in terms of
originality and innovation, and who show strong potential to become international leaders within their field.”
- Leaders of Tomorrow: Future of Software Engineering, invited vision paper and talk titled,
Software Analysis for the Web: Achievements and Prospects.
-
Best Full Paper Award at ESEM 2015 for our work on JavaScript callback characterization.
-
ACM Distinguished Paper Award at ICSE 2014 for our paper on understanding JavaScript event-based interactions.
- Best Paper Award at ICWE 2013 for our empirical study on client-side hidden-web.
- Awarded an NSERC Strategic Project Grant (2012-2015).
- Licensed as a Professional Engineer (P.Eng.) with the APEGBC (2011).
- Appointed assistant professor in Software Engineering, department of Electrical and Computer Engineering, UBC (2011).
- Recipient of a VENI research grant (2010) from The Netherlands Organisation for Scientific Research (NWO).
- Visiting Researcher, Fujitsu Laboratories of America, Sunnyvale, USA. (2010).
- ACM Distinguished Paper Award at ICSE 2009, with Arie van Deursen, for our work on automated testing of Ajax-based web applications.
- Post-doctoral researcher in the Software Engineering Research Group (2009-2010).
- Obtained the PhD degree cum laude (with honors) in Computer Science (2009) from Delft University of Technology, advised by prof. dr. Arie van Deursen and titled "Analysis and Testing of Ajax-based Single-Page
Web Applications"
- Software engineer at West (2001-2005)


Web Developer
Full stack developer and design enthusiast with a sensitivity to the user experience. Creative technologist who inspires and motivates others to achieve success. Laser-focused commitment to meet and exceed goals to develop responsive and functional web applications.
See the Pen Combining Ideas by Andy (@kimandy703) on CodePen.
See the Pen Simple Hover Form by Andy (@kimandy703) on CodePen.
See the Pen qEEdvd by Andy (@kimandy703) on CodePen.
The latest in markup language and visual presentation.
Full-stack web applications with ruby and streamlined database creation.
Front End foundations, animations, and lightweight frameworks.
Advance Photoshop and Illustrator works to manipulate photo or create original svg vector image.


Welcome to our grocery store, John Apricot (from default messages)!
Today is: February 18, 2016
Please select an option
Now you are looking at a working web application.


{% include 'partials/headtags.html' %}
Privacy policy
Privacy policy
This application does not collect any personal information.


arcgis.widgets module¶
MapView¶
-
class
arcgis.widgets.
MapView
(gis=None, item=None, mode='2D', **kwargs)¶ Bases:
ipywidgets.widgets.domwidget.DOMWidget
Mapping widget for Jupyter Notebook and JupyterLab.
Argument
Description
gis
The active GIS() instance you want this map widget to use.
item
A WebMap or WebScene item instance that you want to visualize
mode
Whether to construct a ‘2D’ map or ‘3D’ map. See the mode property for more information.
-
add_layer
(item, options=None)¶ Adds the specified layer or item to the map widget.
Argument
Description
item
Required object. You can specify Item objects, Layer objects such as FeatureLayer, ImageryLayer, MapImageLayer etc., FeatureSet and FeatureCollection objects.
options
Optional dict. Specify visualization options such as renderer info, opacity, definition expressions. See example below
# USAGE EXAMPLE: Add a feature layer with smart mapping renderer and # a definition expression to limit the features drawn. map1 = gis.map("Seattle, WA") map1.add_layer(wa_streets_feature_layer, {'renderer':'ClassedSizeRenderer', 'field_name':'DistMiles', 'opacity':0.75})
-
property
basemap
¶ What basemap you would like to apply to the widget (‘topo’, ‘national-geographic’, etc.). See basemaps for a full list
-
basemaps
= ['dark-gray', 'dark-gray-vector', 'gray', 'gray-vector', 'hybrid', 'national-geographic', 'oceans', 'osm', 'satellite', 'streets', 'streets-navigation-vector', 'streets-night-vector', 'streets-relief-vector', 'streets-vector', 'terrain', 'topo', 'topo-vector']¶ A list of possible basemaps to set .basemap with
-
property
center
¶ A property that represents the map widget’s center.
getter
A dict that represents the JSON of the map widget’s center.
setter
A [lat, long] list, or a dict that represents the JSON of the map widget’s center.
-
clear_graphics
()¶ Clear the graphics drawn on the map widget. Graphics are shapes drawn using the ‘draw()’ method.
-
display_message
(msg)¶ Displays a message on the upper-right corner of the map widget. You can only send one message at a time, multiple messages don’t show.
-
draw
(shape, popup=None, symbol=None, attributes=None)¶ Draws a shape on the map widget. You can draw anything from known geometries, coordinate pairs, FeatureSet objects.
Argument
Description
shape
Required object. Known geometries: Shape is one of [“circle”, “ellipse”, “polygon”, “polyline”, “multipoint”, “point”, “rectangle”, “triangle”]. Coordinate pair: specify shape as a list of [lat, long]. Eg: [34, -81] FeatureSet: shape can be a FeatureSet object. Dict object representing a geometry.
popup
Optional dict. Dict containing “title” and “content” as keys that will be displayed when the shape is clicked. In case of a FeatureSet, “title” and “content” are names of attributes of the features in the FeatureSet instead of actual string values for title and content.
symbol
Optional dict. symbol is specified in json format as described at http://resources.arcgis.com/en/help/arcgis-rest-api/index.html# //02r3000000n5000000. A default symbol is used if one is not specified. Tip: a helper utility to get the symbol format for several predefined symbols is available at http://esri.github.io/arcgis-python-api/tools/symbol.html
attributes
Optional dict. Specify a dict containing name value pairs of fields and field values associated with the graphic.
-
property
end_time
¶ This feature is not supported in >v1.5.
-
export_to_html
(path_to_file, title='Exported ArcGIS Map Widget', credentials_prompt=False)¶ Takes the current state of the map widget, and exports it to a standalone HTML file that can be viewed in any web browser.
By default, only publically viewable layers will be visible in any exported html map. Specify credentials_prompt=True to have a user be prompted for their credentials when opening the HTML page to view private content.
Warning
Follow best security practices when sharing any HTML page that prompts a user for a password.
Note
You cannot successfully authenticate if you open the HTML page in a browser locally like file://path/to/file.html. The credentials prompt will only properly function if served over a HTTP/HTTPS server.
Argument
Description
path_to_file
Required string. The path to save the HTML file on disk.
title
Optional string. The HTML title tag used for the HTML file.
credentials_prompt
Optional boolean, default False. If set to True, will display a credentials prompt on HTML page load for users to authenticate and view private content.
-
property
extent
¶ A property representing the map widget’s extent.
getter
A dict that represents the JSON of the map widget’s extent.
setter
A [[xmin, ymin], [xmax, ymax]] list, Spatially Enabled Data Frame full_extent, or a dict that represents the JSON of the map widget’s extent.
Examples for each: web_map.extent = [[-124.35, 32.54], [-114.31, 41.95]] web_map.extent = data_frame.spatial.full_extent web_map.extent = {
“xmin”: -124.35, “ymin”: 32.54, “xmax”: -114.31, “ymax”: 41.95
}
-
property
gallery_basemaps
¶ View your portal’s custom basemap group
-
heading
¶ For 3D mode, the compass heading of the camera in degrees. Heading is zero when north is the top of the screen. It increases as the view rotates clockwise. The angles are always normalized between 0 and 360 degrees. Note that you can NOT set heading in 2D mode. 2D mode uses the ‘rotation’ property.
-
hide_mode_switch
¶ When set to ‘True’ will hide the 2D/3D switch button from the widget. Note that once the button is hidden, it cannot be made visible again: you have to create a new MapView instance.
-
jupyter_target
¶ A readonly string that is either ‘lab’ or ‘notebook’: represents if this widget is drawn in a Jupyter Notebook environment, or a JupyterLab environment
-
property
layers
¶ A list of the JSON representation of layers added to the map widget using the add_layers() method
-
legend
¶ If set to True, will display a legend in the widget that will describe all layers added to the map. If set to False, will hide the legend. Default: False.
-
mode
¶ The string that specifies whether the map displays in ‘2D’ mode (MapView) or ‘3D’ mode (SceneView). Possible values: ‘2D’, ‘3D’.
Note that you can also toggle between '2D' and '3D' mode by pressing the icon in the widget UI.
-
on_click
(callback, remove=False)¶ Register a callback to execute when the map is clicked. The callback will be called with one argument, the clicked widget instance.
Argument
Description
remove
Optional boolean. Set to true to remove the callback from the list of callbacks.
-
on_draw_end
(callback, remove=False)¶ Register a callback to execute when something is drawn. The callback will be called with two arguments: the clicked widget instance, and the geometry drawn
Argument
Description
remove
Optional boolean. Set to true to remove the callback from the list of callbacks.
-
print_service_url
¶ Note
Note: this property is obselete as of >v1.6 of the Python API, since the underlying JavaScript code ran during a take_screenshot() Python call has been has been changed to MapView.takeScreenshot() instead of calling a Print Service URL. Any value you set to this property will be ignored (2D screenshots will still be taken successfully).
-
ready
¶ A readonly bool that represents if the map widget has been drawn in the notebook
-
remove_layers
(layers=None)¶ Removes the layers added to the map widget. You can get the list of layers added to the widget by querying the ‘layers’ property.
Argument
Description
layers
Optional list. Specify the list of layers to be removed from the map widget. You can get the list of layers on the map by querying the ‘layers’ property. If not specified, it removes all layers added to the widget.
- Returns
True if layer is successfully removed. Else, False.
-
rotation
¶ For 2D mode, the clockwise rotation of due north in relation to the top of the view in degrees. Note that you can NOT set rotation in 3D mode. 3D mode uses the ‘heading’ property.
-
save
(item_properties, mode=None, thumbnail=None, metadata=None, owner=None, folder=None)¶ Save the map widget object into a new web map Item or a new web scene item in your GIS.
Note
If you started out with a fresh map widget object, use this method to save it as a the webmap/webscene item in your GIS. If you started with a map widget object from an existing webmap/webscene object, calling this method will create a new item with your changes. If you want to update the existing item with your changes, call the update() method instead.
Note
Saving as a WebScene item only works in a Jupyter environment: the map must be visually displayed in the notebook before calling this method.
Argument
Description
item_properties
Required dictionary. See table below for the keys and values.
mode
Optional string. Whether to save this map instance as a 2D WebMap, or a 3D WebScene. Possible strings: “2D”, “webmap”, “3D”, or “webscene”.
thumbnail
Optional string. Either a path or URL to a thumbnail image.
metadata
Optional string. Either a path or URL to the metadata.
owner
Optional string. User object corresponding to the desired owner of this item. Defaults to the logged in user.
folder
Optional string. Name of the folder where placing item.
Key:Value Dictionary Options for Argument item_properties
Key
Value
typeKeywords
Optional string. Provide a lists all sub-types, see URL 1 below for valid values.
description
Optional string. Description of the item.
title
Optional string. Name label of the item.
tags
Optional string. Tags listed as comma-separated values, or a list of strings. Used for searches on items.
snippet
Optional string. Provide a short summary (limit to max 250 characters) of the what the item is.
accessInformation
Optional string. Information on the source of the content.
licenseInfo
Optional string. Any license information or restrictions regarding the content.
culture
Optional string. Locale, country and language information.
access
Optional string. Valid values are private, shared, org, or public.
commentsEnabled
Optional boolean. Default is true, controls whether comments are allowed (true) or not allowed (false).
culture
Optional string. Language and country information.
URL 1: http://resources.arcgis.com/en/help/arcgis-rest-api/index.html# //02r3000000ms000000 :return:
Item object corresponding to the new web map Item created.
USAGE EXAMPLE: Save map widget as a new web map item in GIS map1 = gis.map("Italy") map1.add_layer(Italy_streets_item) map1.basemap = 'dark-gray' italy_streets_map = map1.save({'title':'Italy streets', 'snippet':'Arterial road network of Italy', 'tags':'streets, network, roads'})
-
classmethod
set_js_cdn
(js_cdn)¶ Call this function before the creation of any MapView object, and each instantiated object will use the specified js_cdn parameter as the ArcGIS API for JavaScript CDN URL instead of the default http://js.arcgis.com/4.X/. This functionality is necessary in disconnected environments if the portal you are connecting to doesn’t ship with the minimum necessary JavaScript API version.
You may not need to call this function to view the widget in disconnected environments: if your computer cannot reach js.arcgis.com, and you have a GIS() connection to a portal, the widget will automatically attempt to use that portal’s JS API that it ships with.
-
set_time_extent
(start_time, end_time)¶ This feature is not supported in >v1.5.
-
property
start_time
¶ This feature is not supported in >v1.5.
-
tab_mode
¶ This string property specifies the 'default' behavior of toggling a new window in a JupyterLab environment, whether that is called by pressing the icon in the widget UI, or by calling toggle_window_view() function without arguments.
Note that after a widget is ‘seperated’ from the notebook, you can drag it, split it, put it in a new tab, etc. See the JupyterLab guide pages for more information.
Value
Description
‘auto’
The default tab_mode: will move the widget to a split-right view if there are no other open windows besides the current notebook, otherwise will place the widget in a new tab.
‘split-top’
Will move the widget above the current notebook instance.
‘split-bottom’
Will move the widget below the current notebook instance.
‘split-left’
Will move the widget to the left of the current notebook instance.
‘split-right’
Will move the widget to the right of the current notebook instance.
‘tab-before’
Will move the widget to a new tab ‘before’ the tab that represents the current notebook instance.
‘tab-after’
Will move the widget to a new tab ‘after’ the tab that represents the current notebook instance.
-
take_screenshot
(output_in_cell=True, set_as_preview=True, file_path='')¶ Takes a screenshot of the current widget view. Only works in a Jupyter Notebook environment.
Argument
Description
output_in_cell
Optional bool, default True. Will display the screenshot in the output area of the cell where this function is called.
set_as_preview
Optional bool, default True. Will set the screenshot as the static image preview in the cell where the map widget is being displayed. Use this flag if you want the generated HTML previews of your notebook to have a map image visible.
file_path
Optional String, default “”. To output the screenshot to a .png file on disk, set this String to a writeable location file path (Ex. file_path = “/path/to/documents/my_screenshot.png”).
In all notebook outputs, each image will be encoded to a base64 data URI and wrapped in an HTML <img> tag, like <img src=”base64Str”>. This means that the data for the image lives inside the notebook file itself, allowing for easy sharing of notebooks and generated HTML previews of notebooks.
Note
This function acts asyncronously, meaning that the Python function will return right away, with the notebook outputs/files being written after an indeterminate amount of time. Avoid calling this function multiple times in a row if the asyncronous portion of the function hasn’t finished yet.
-
tilt
¶ For 3D mode, the tilt of the camera in degrees with respect to the surface as projected down from the camera position. Tilt is zero when looking straight down at the surface and 90 degrees when the camera is looking parallel to the surface. Note that you can NOT set tilt in 2D mode.
-
toggle_window_view
(title='ArcGIS Map', tab_mode=None)¶ In a JupyterLab environment, calling this function will separate the drawn map widget to a new window next to the open notebook, allowing you to move the widget it, split it, put it in a new tab, etc. If the widget is already seperated in a new window, calling this function will restore the widget to the notebook where it originated from. See the JupyterLab guide pages for more information.
Note that this functionality can also be achieved by pressing the icon in the widget UI.
Argument
Description
title
What text will display as the widget tab. Default: “ArcGIS Map”.
tab_mode
The ‘tab mode’ that this window will open in. Will use this MapView instance’s tab_mode property if not specified. Possible values: “auto”, “split-top”, “split-left”, “split-right”, “split-bottom”, “tab-before”, “tab-after”
-
update
(mode=None, item_properties=None, thumbnail=None, metadata=None)¶ Updates the WebMap/Web Scene item that was used to create the MapWidget object. In addition, you can update other item properties, thumbnail and metadata.
Note
If you started out a MapView object from an existing webmap/webscene item, use this method to update the webmap/webscene item in your with your changes. If you started out with a fresh MapView object (without a webmap/webscene item), calling this method will raise a RuntimeError exception. If you want to save the map widget into a new item, call the save() method instead. For item_properties, pass in arguments for only the properties you want to be updated. All other properties will be untouched. For example, if you want to update only the item’s description, then only provide the description argument in item_properties.
Note
Saving as a WebScene item only works in a Jupyter environment: the map must be visually displayed in the notebook before calling this method.
Argument
Description
item_properties
Optional dictionary. See table below for the keys and values.
mode
Optional string. Whether to save this map instance as a 2D WebMap, or a 3D WebScene. Possible strings: “2D”, “webmap”, “3D”, or “webscene”.
thumbnail
Optional string. Either a path or URL to a thumbnail image.
metadata
Optional string. Either a path or URL to the metadata.
Key:Value Dictionary Options for Argument item_properties
Key
Value
typeKeywords
Optional string. Provide a lists all sub-types, see URL 1 below for valid values.
description
Optional string. Description of the item.
title
Optional string. Name label of the item.
tags
Optional string. Tags listed as comma-separated values, or a list of strings. Used for searches on items.
snippet
Optional string. Provide a short summary (limit to max 250 characters) of the what the item is.
accessInformation
Optional string. Information on the source of the content.
licenseInfo
Optional string. Any license information or restrictions regarding the content.
culture
Optional string. Locale, country and language information.
access
Optional string. Valid values are private, shared, org, or public.
commentsEnabled
Optional boolean. Default is true, controls whether comments are allowed (true) or not allowed (false).
URL 1: http://resources.arcgis.com/en/help/arcgis-rest-api/index.html# //02r3000000ms000000 :return:
A boolean indicating success (True) or failure (False).
USAGE EXAMPLE: Interactively add a new layer and change the basemap of an existing web map. italy_streets_item = gis.content.search("Italy streets", "Web Map")[0] map1 = MapView(item = italy_streets_item) map1.add_layer(Italy_streets2) map1.basemap = 'dark-gray-vector' map1.update(thumbnail = './new_webmap.png')
-
zoom
¶ What level of zoom you want to apply: the higher the number, the more zoomed in you are.
-
zoom_to_layer
(item, options={})¶ Snaps the map to the extent of provided item or items.
Argument
Description
item
The item at which you want to zoom your map to. This can be a single or a list of Items, layers, DataFrame, FeatureSet, FeatureCollection.
options
Optional set of arguments.
-


Carriacou like approximately 40nm north east of the main island of Grenada.
Tyrell Bay is on the western end of the island and is an attractive anchorage. It is the yachting centre for the island of Carriacou.
Hillsborough lies on the north western shore.
Position 12°27'12" N, 61°29'14"W (Tyrell Bay)
Position 12°29′N, 61°28′W (Hillsborough)
See Grenada Formalities for detailed information on clearing into and out of Grenada, including downloadable forms.
A new office has opened in Tyrell Bay to process clearance for yachts. This is at Carriacou Marine (the old Yacht Club) and is open 7 days a week - but extra charges apply at weekends and holidays.
The Hillsborough office is still clearing yachts and latest reports are that there are no plans to close it. Officials are reported to be friendly.
Last updated December 2015.
Tyrell Bay: This is a good, protected anchorage and is the one usually used by yachts. It has a good selection of restaurants/cafes as well as boatyard services, provisions and transport into town.
Hillsborough: Not a particularly sheltered anchorage and subject to swell. Anchor away from the commercial concrete dock which is used by the ferries to Grenada and other islands. There is a dinghy dock on the south side of the concrete pier.
Sandy Island: At the Sandy Island/Oyster Bed Marine Protected Area (SIOBMPA), which encompasses Sandy Island and the mangrove lagoon in Carriacou, an anchoring area has been designated and marked at the four corners with buoys, with the possibility of additional anchoring areas to come. The mooring balls have all been checked and renewed if necessary, and pick-up lines lengthened. Park rangers collect a $10 per day fee for staying here. Yacht with questions should contact SIOBMPA at<EMAIL_ADDRESS>Yachtsmen are cautioned to check moorings for reliability.
Duty free fuel (Diesel & Gasoline) plus water are available at the new fuel dock at the Boatyard on the south side of Tyrell Bay.
Gas refills at the Shell Garage in Hillsborough.
Security - Tyrell Bay
June 2016: A dinghy/outboard hoisted on the port side was stolen overnight from an occupied yacht. It was not locked to the yacht.
December 2011: An armed boarding and robbery took place, the first of its kind here (and thankfully nothing since). Read report here.
Last updated June 2016.


Fully funded:
1st generation
-
norethisterone 500µg + ethinylestradiol 35µg
-
Brevinor (no sugar)
-
Norimin
-
-
norethisterone 1mg + ethinylestradiol 35µg
- Brevinor-1
2nd generation
-
Levonorgestrel 100 + ethinylestradiol 20
-
Ava20
-
Microgynon
-
-
Levonorgestrel 125µg + ethinylestradiol 50ug
- Microgynon 50
-
Levonorgestrel 150µg + ethinylestradiol 50µg
-
Ava 30
-
Levlen ED
-
Microgynon 30 (SA)
-
Monofeme
-
Nordette
-
Roxanne (SA)
-
3rd generation
-
cyproterone acetate 2mg + ethinylestradiol 35µg:
-
Ginet
-
use contraceptive (code = “O”)
-
can then use 6 months supply
-
-
-
drosgestrel 150µg + ethinylestradiol 20µg
- Mercilon (part)
-
drosgestrel 150µg + ethinylestradiol 30µg
- Marvelon (part)
Vaginal ring
-
Ethinylestradiol 15µg/24hrs + etonogestrel 120/24hrs
-
NuvaRing
-
can have 4 rings
-
keep at room temp
-
-
Mechanism of action
-
inhibit ovulation: HPO axis
- decrease LH & FSH via -ve feedback
-
+ change cervical mucous & endometrium
-
1st 7 pills inhibit ovulation
-
remaining 14 maintain ovulation
-
7 placebo -> withdrawal bleed
- endometrial shedding
-
safe for extended use
-
tricycling
-
7 pill free after 3rd packet
-
Efficacy
-
failure rate = 0.3% with perfect use
-
typical use = 9% failure rate
-
COC effective regardless of BMI
-
unscheduled bleeding less common with CHC than with progestogen-only
-
cycle control better with COC containing 30-35
History and exam
-
assess medical eligibility
-
migraine
-
cardiovascular risk factors:
-
smoking
-
obesity
-
HTN
-
thombophilia
-
VTE
-
dyslipidaemia
-
-
BP, weight, BMI: for first prescription
UKMEC - UK Medical Eligibility Criteria
-
evidence based recommendations
Migraine
-
COC contraindicated in migraine with aura
- discontinued if develop migraine with aura
-
if develop migraine without aura while on COC
-
should be stopped
-
especially ≥35yo
-
-
Pre-existing migraine without aura \<35 not CI to COC
VTE
-
higher risk of VTE
-
CI current/past history
-
avoid:
-
obesity
-
smoking
-
fhx ≤45
-
Smokers
- heavy smokers ≥35yo not advised
Starting pill
-
conception most likely = Day of ovulation or preceeding 24hours
-
risk of pregnancy in 1st 3/7 very unlikely
-
started up to and including D5 without need for additional contraception
-
beyond D5 can start if reasonably certain not pregnant
not pregnant:
no symptoms or signs pregnancy + any:
has not had intercourse since last menses
using reliable method of contraception (reliably + correct)
within first 7 days of a normal menstrual period
within 4 weeks post-partum for non-lactating women
wihin first 7 days post-abortion or miscarriage
full/nearly fully breastfeeding, amenorhoeic, and less than 6/12 post partum
pregnancy test adds weight but only if ≥3 weeks since last UPSI
-
additional precautions for next 7 days
-
post partum and not breast feeding:
- start d21 if no VTE rxfx
Quick starting
if pregnancy excluded/reasonably certain not pregnant
Extra contraception:
D 1-5: no
D ≥ 6 or after Progesterone only emergency contraceptive: 7d
After ulipristal EC: 14d
Switching pills
-
COC - COC:
-
start on day after last active pill
-
no extra
-
-
POP/LNG-IUS:
-
started imediately
-
7 day rule
-
-
implant/depot
-
start any time up to when repeat injection/implant due
-
no extra
-
COC suppresses ovulation by time inhibition of 1st method worn off
-
Missed pills
-
pill that is completely omitted
- >24 hours passed since pill was due(48hours since last pill)
-
ovulation may occur as inhibitory effects on ovary reduced
-
7 consecutive pills prevents ovulation
- therefore if 7 taken: theoretically up to 7 can be missed without any effect on contracptive efficacy
-
weeks 2/3 are unlikely to result in loss of efficacy
-
follicular activity resumes during pill free week
One pill being missed:
-
missed pill taken as soon as remembered
-
remaining pills continued at usual time
-
EC not usually required
- consider if pills have been missed earlier in the packet or in the last week of previous packet
Two or more pills missed (>72h since last pill, >48hrs late):
-
most recent missed pill should be taken ASAP
-
remianing pills ocntinued
-
7 day rule
- over cautious in 2/3 week
Minimising risk of pregnancy
First week: 1-7
-
EC should be considered if unprotected sex ocured in:
-
pill-free interval or
-
in the first week of pill-taking
-
Second week: 8-14
- no indication for EC if pills in preceeding 7 days have been taken
Third week: 15-21
- omit the pills-free interval
Drug interactions
Antibiotics:
-
additional precautions are not required when using non-enzyme inducint abx
-
unless vomiting or diarrhoea
-
however: BPAC
-
colonic bacterial disturbance may inhibit enterohepatic circulation of oestrogen (progestegen not affected)
-
evidence = weak
-
short courses \<3w use additional for 7d after abx stopped and 7 active pills
-
after 3w gut flora resistance means that safe
-
Enzyme inducing drugs:
-
increase the metabolism of oestrogens/progesterogens
-
reduce contraceptive efficacy
-
ideally switch to method that is unaffected
-
additional precautions
-
COC ≥ 30µg EE
-
consider omitting/shortening pill-free or ≥ 50µg for short term use
-
use alternative method
Lamotrigine:
-
serum levels of lamotrigine are reduced by CHC
-
increased sideeffects on cessation of CHC
-
increase lamotrigine levels during pill-free week
Risks
VTE:
risks per 100 000
Non contracetive and not pregnant: 5/year
COC (1st gen = norethsterone, 2nd gen = levonorgestrel): 15/year
COC (desogestrel, drospirenone, cypterone): 25/year
Pregnancy: 60/year
Immediate post-partum: 300-400
-
4-5/10 000 women-years in those who do not use oral contraceptives
-
risk = twice that == 9-10/10 000 women-years
-
desogestrel, cyproterone > levonorgestrel, orethisterone
-
greatest in first few months of starting
-
returns to that of non-users wihin weeks of discontinuation
-
pregnancy = 29/10 000 women-years
-
immediate post partum = 300-400/10 000 women-years
-
family history = poor indicator
- first degree relative with VTE \< 45 as UKMEC 3
Cardiovascular disease and stroke:
-
women ≥35 who smoke \<15 = UKMEC 3
-
women ≥35 who smoke >15 = UKMEC 4
-
≥ 1 year after giving up ≥ 35 then risk UKMEC 2
-
risk of stroke increased in COC with migraine compared to without migraine
-
migraine with aura
- COC increases risk of ischaemic stroke
-
hypertension
-
≥150mmHg sBP or ≥95mmHg dBP = UKMEC4
-
controlled = UKMEC3
-
-
Obesity
- UKMEC3 for BMI ≥35
Breast cancer:
-
with family history:
-
increased risk of breast cancer compared to women with no fhx
-
background risk increased
- not sufficiently extra with COC
-
family history doens’t restrict use COC - UKMEC 1
-
-
BRCA mutations
-
conflicting evidence
-
currently UKMEC 3
-
-
Current breast cancer
- represents unacceptable risk
-
Past/no evidence of disease
- UKMEC 3
Cervical cancer
-
risk increase with duration of COC use
-
no recommendations to change
Benefits
Mortality
-
12% reduction all cause mortality
-
no overal increased risk cancer
Ovarian and endometrial cancer
-
COC reduced risk of ovarian and endometrial cancer
-
every 5yrs approx. 20% reduction in risk ovarian
-
50% endometrial
-
-
continues for several decades after stopping
Acne
-
effective reducing inflammatory and non-inflammatory acne
-
especially cyproterone acetate
Bone health
- no effect
Colorectal cancer
- reduction in risk
Dysmenorrhoea and heavy menstrual bleeding
-
limited evidence from RCT that COC can improve pain or reduce menstrual blood loss compared to other treatments
-
COC treat pain associated with endometriosis
Menopause:
- COC may reduce menopausal symptoms
Side effects:
Unscheduled bleeding
-
20% of COC have irregular bleeding
-
usually settles with time
-
contine COC for 3/12 before considering changing
-
likely cuases:
-
missed pills
-
STI
-
pregnancy
-
malabsorption (vomiting within 2 hours)
-
Mood changes:
- no evidence causes depression
Weight gain:
- no causal association between COC and weight gain
Strategies:
Acne
-
increase oestrogen
-
decrease progestogen
-
change to less adrogenic progestogen (Cypertone)
Ginet
Amenorrhoea
-
increase oestrogen
-
decrease progestogen
microgynon 50
Breakthrough bleeding
-
early-mid cycle
- increase oestrogen
microgynon 50
-
late cycle
- increase progestogen or change type
Brevinor-1
Breast soreness
-
decrease oestrogen
-
decrease progestogen
Ava 20
depression, moodiness, irritability
- decrease progestogen
Ava 20, Microgynon 20, Loette
Headaceh in pill-free week
- tri-cycle pills
Menstrual cramps
-
increase progestogen
-
tricycle
Brevinor-1
Nausea
- decrease oestrogen
Ava 20
Weight gain
-
decrease oestrogen
-
decrease progestogen
Ava 20


Example of creating a simple external chart and attaching it to the dc.js chart registry.
The color swatch widget is not supposed to be useful, just the most minimal example. It watches a groupAll value and maps it to a color using a color scale.


My name is Adolfo.
Add me on ig _lul_a or itz_skittles
Welcome to my website.
My favorite thing to do is play Fornite.
Itzskittles


--- layout: saaspost title: Getting Started cover: cover.jpg date: 2014-11-10 15:05 categories: posts ---
This document explain to user who want to manage beacons data and other additional information like maps, brochure, geo fencing, etc.
The contents are as follows :
This section covers the first step on how to get access to the beacon for developer. User will get free demo after signup to cubeacon.
This section is a manual on how to manage apps, get Client ID, and Client secret to communicate with SDK.
This section shows statistic data of beacon access.
This section is a manual on how to manage beacon information such as UUID, major, minor, color flag, etc.
This section is a manual guideline on how to manage the notification that will be displayed on mobile phone while passing through the beacon. Notification available on text or image.
This section is a manual guideline on how to manage maps data. It is very simple to use it. just drag and drop the beacon to image map that is uploaded.
This section explains about crowd mapping of customers on spots that you have decided.
This section explains on how to coordinate user’s company location. If there is customer nearby the coordinate range, there will be notification or greetings.
This section explains on how to do upgrade to higher plan/package.


I'm a senior full-stack web developer who is used to wearing many hats thanks to my extended experience working in startups and medium-sized companies, where building a great product has been the main focus. I love taking on new challenges, especially when it involves learning something out of my comfort zone that will broaden my understanding of a subject. I also love creating a refined development process that leads to a very effective working environment.
Worked as a senior software engineer on the whole stack, focusing my efforts first on the front-end and then on the infrastructure.
Founded Caldera Labs, a company that focuses on Ember, Rails, and Elixir consulting in London.
Worked as a full-stack developer and product lead on the main application which is built with Ruby on Rails.
Worked on some side projects in Ruby on Rails.
Co-founder of Responsa, a startup that offers an embeddable Q&A widget developed with Ruby on Rails, with the role of lead web developer and CTO. Responsa was a company growing in H-Farm, a startup incubator in northern Italy.
Worked at Lucido on the creation of Playround, a platform for gamers in Ruby on Rails. Collaborated to the development of the iPad game ColorManiac and the iPhone application Manistone.
Worked at the High Energy Physics Institute (IFAE) in Barcelona (Spain) dealing with the characterization of specific hardware for astronomic observations. Development in ROOT environment (C++ language).
An app that lets you keep track of baking recipes and calculates baker's percentages.
An embedded software for Arduino that interfaces with a Certabo Chessboard and various components like an LCD and buttons.
An iOS app that helps you keep track of expiring things in your fridge.


{% if dashboard.pages %}
{% for page in dashboard.pages %}
{% for widget in page.widgets %}
{% endfor %}
{% endfor %}
{% else %}
This dashboard has not been configured, please go to the admin console to configure it.
{% endif %}


Recipe: Curried Peanut Dip
by CBS NewsFrom Bon Appétit's September 2019 issue, a treat from Molly Baz, featured in the magazine's "Guide to Actually Enjoying Your Lunch at Work."
"This creamy, spicy-sweet dip will be loose and pourable when warm, but it will thicken once fully chilled. We love to pair it with leftover roast or rotisserie chicken, jammy eggs, cucumber spears, and roasted sweet potatoes for the perfect (desk-friendly) lunch."
Curried Peanut Dip
Recipe by Molly Baz
Makes about 1 pint
Ingredients:
1 Tbsp. vegetable oil
¼ cup jarred red curry paste
1 14.5-oz. can coconut milk
½ cup creamy peanut butter
3 Tbsp. unseasoned rice vinegar
1 Tbsp. fish sauce
1 Tbsp. honey
Kosher salt
Preparation:
- Heat oil in a medium saucepan over medium. Add curry paste and cook, stirring frequently, until paste begins to stick to bottom of saucepan and is very fragrant, 2-3 minutes.
- Whisk in coconut milk and bring to a simmer. Continue to cook, whisking occasionally, until mixture turns darker in color and is slightly reduced, about 3 minutes. Remove saucepan from heat and whisk in peanut butter, vinegar, fish sauce, and honey. Season to taste with salt; it should be well seasoned since the things you are dipping in it may not be (i.e., boiled eggs, cukes, etc.). Let cool to room temperature, then transfer to an airtight portable container and chill.
- Do Ahead: Dip can be made 4 days ahead. Keep chilled.
For more info:


Dear Potato Representative:
Here is the list of all the existing blogs..
(please click on a blog to see its details)
{% if blogslist %}
{% for i in blogslist %}
{{i.title}}
{% endfor%}
{% endif %}
Create a new blog


ECB’s Lane: We don't see a recession in the Euro area
by Dhwani MehtaLa Repubblica reports the latest comments from the European Central Bank (ECB) Chief Economist Philip Lane, with the key headlines found below.
We don't see a recession in the Euro area.
ECB isn't at limit of monetary policy.
Lower debt cost should be used to cut debt.
The shared currency is little changed on the above comments, with EUR/USD keeping its range around 1.1075 region ahead of the German PPI release.


This jQuery plugin is designed for simplicity, while allowing for advanced click combinations to provide maximum control ~ when needed.


Edit your JSON under your own risk. Modes must be edit by hand for now. Learn how to do it here
Toggles are like switches. It could be on or off.
For example in a washer machine it could exist a toggle for enabling fast centrifugation. In this case we create a toogle named Fast centrifugation and we select en has the word's languaje.
It is possible that we use differents words for the same toggle: we can say Ok Google, enable Fast centrifugation at the washer machine or we can say Ok Google, enable Heavy centrifugation at the washer machine.
Heavy centrifugation will be a synonym for the toggle's name. We wrtie the synonyms down into the Synonymous text box separated by commas.
A security system can have differents levels of status, for example, global arm or parcial arm. Imagine that parcial arm only enables the garage's sensors
Write the main level's name down into the Name texto box. For example, parcial arm.
Select the languaje.
Write all possibles synonyms of the main name separated by commas. For example, garage only, incomplete arm.
Add every level using the add button.
This devices usually have preprogrammed recipe. Food presets represent these recipe.
Name is the main name for the receipt, for example Cup of chocolate.
Units is the units in with the name is meseaured. In this case there is no units so we write NO_UNITS down.
Lang is the languaje.
Synonym are the other possibles ways of calling the receipt. For example, Glass of chocolate,chocolate,mug of chocolate.
A bathtub can have differents filling levels, for example, High, Half, Low.
Write the main level's name down into the Name texto box. For example, High.
Select the languaje.
Write all possibles synonyms of the main name separated by commas. For example, Full,complete.
Add every level using the add button.


Deep Blue Sea A film review by Marty Mapes Copyright 1999 Marty Mapes
*** (out of 4) "DEEP BLUE SEA is a shark movie with teeth!"
Yes, I'm trying to be quoted in ad copy. It's every unpaid critics' dream.
DEEP BLUE SEA is a horror movie. It's not a thriller. It's not an action movie. It's a horror movie, and it is a very good one. The film itself has some bad writing and some terrible exposition-after the first ten minutes of wooden speeches and clichéd setups, I was ready to give up on it. But before long, the movie bares its teeth, bites down, and doesn't let go.
Russell Franklin ( Samuel L. Jackson) is the head of a big corporation about to cut funding to a shark research facility, where the scientists hope to find a cure for Alzheimer's. A plucky young scientist, Dr. McAlester (Saffron Burrows), convinces him to visit the facility one weekend in hopes he'll see the good work they're doing, and extend their grant.
They've been experimenting with sharks in their gigantic, mid-ocean, floating laboratory (complete with underwater pen). The scientists have been tampering with the sharks' brains-trying to make them bigger so they can extract more of the stuff that will make their Alzheimer's drug.
The first night of Russell's visit, a big storm rolls in and the facility is hit hard. At the same time, the brainy sharks start acting up. One of the sedated specimens wakes up too soon and severely wounds one of the 10-man crew. As the crew tries to get a rescue chopper for the wounded scientist, the sharks start attacking the facility with deliberate intent-seems their new brains are making them smarter. Between the storm and the sharks, the small crew becomes trapped.
Now damaged, the facility becomes a cage for the humans as well. The sharks continue to attack the facility and its crew as the "floating Alcatraz" starts to sink. The survivors must figure out a way to stay afloat while avoiding the omnipresent supersharks.
Despite some clunky writing and lame exposition, DEEP BLUE SEA is a satisfying horror movie. It has what horror movies have lost, namely, RUTHLESSNESS.
It seems like a lot of extras die and a lot of main characters survive in horror movies. It gets to be where you can predict who's going to live and who's going to die, and in what order.
 Paul Rieser's slick, greedy character in ALIENS is an obvious example. Or if you prefer slasher flicks, you could predict a kill if the victim was 1) a teenager at summer camp, and 2) about to have sex.
DEEP BLUE SEA shuns all of that in favor of sheer ruthless terror. I knew, as soon as I saw somebody's loveable pet get swallowed whole, that there was no telling who would live by who "deserved" it. It used to be the rule that the loyal dog always had to survive, but no more.
And that, in essence, is what makes DEEP BLUE SEA a good horror movie. It is scary, ruthless, and unpredictable. If that doesn't impress you, then don't go see it because the bad writing will stand out even more.
Those of us who enjoy a good scare will have fun without you.
Check out more current movie reviews at http://www.moviehabit.com
-- Marty Mapes<EMAIL_ADDRESS>Movie Habit http://www.moviehabit.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


--- layout: paper title: Publications --- Robust Biomedical Event Extraction with Dual Decomposition and Minimal Domain Adaptation, , Proceedings of the Natural Language Processing in Biomedicine NAACL 2011 Workshop (BioNLP) 2011 A longer more informative version of this paper appeared in EMNLP 2011 [pdf]
@inproceedings{riedel11robust, webnote={A longer more informative version of this paper appeared in EMNLP 2011}, month={June}, year={2011}, author={Sebastian Riedel and Andrew McCallum}, bdsk-url-1={/publications/papers/riedel11robust.pdf}, booktitle={Proceedings of the Natural Language Processing in Biomedicine NAACL 2011 Workshop (BioNLP)}, title={Robust Biomedical Event Extraction with Dual Decomposition and Minimal Domain Adaptation}, }


| I l@ve RuBoard |
With the right documentation, your users can already write Python scripts that create and manipulate BookSets and Transactions. However, these scripts are totally detached from your browser application. What would be smart to do is to provide a command window within the browser that works on the current BookSet. If a user creates a custom import function and runs it, he could hit an update key and see the new records on the screen immediately.
Python has built-in functions and statements to facilitate this dynamic code evaluation: eval( expression, [globals[, locals]]) is a built-in function that evaluates a string, and exec expression, [globals[, locals]] is a statement (not a function: no parentheses needed) that executes a string. The following clarifies how it works:
>>> exec "print 'this expression was compiled on the fly' " this expression was compiled on the fly >>> exec "x = 3.14" >>> eval("x + 1") 4.14
Let's pause for a moment and consider the implications of this code. You could pass a chunk of text to a running Python application, and it's parsed, compiled, and executed on the fly. In Python, the interpreter is always available. Few languages offer this capability, and it's what makes Python a good macro language.
Case Study: Formula EvaluationIn 1997, one of the authors was consulting for a large packaging company building a database of its packaging designs. A cardboard box has a certain geometry, which may be thought of as a collection of flat panels joined at the edges, with a series of folding instructions. The overwhelming majority of designs were for cuboid boxes. This allowed the length of a certain edge of a panel to be expressed as a formula such as "2L + 3.5W + T," where L is the length of the product to be packed, W is the width, and T is the thickness of the board. Packaging designers all over Europe had been patiently entering formulae for each panel of a design into a database for months. An urgent need arose to verify these formulae. Using Python, it was a simple exercise to load a dictionary with the standard variables (L, W, H, T, and a few more for various flap lengths), plug in some numbers, and evaluate the expressions. Those cases that generated exceptions could be identified easily. A Python script was rapidly produced that queried the database and verified the integrity of all the strings. In addition to checking for errors, it produced a report listing standard panel sizes for a generic 400 × 400 × 400mm box. Meanwhile, the main development team spent a great deal of time looking for and eventually writing a library of their own to evaluate simple numeric expressions in PL/SQL. |
You may not have consciously absorbed this until a few lines back, but Python distinguishes between expressions and statements. What happens if you aren't sure what the user wants and get it wrong? Here are two more examples:
>>> exec "x+2" # try to execute an expression - nothing happens >>> eval("print x+3") # and evaluate a command - causes an exception Traceback (innermost last): File "<interactive input>", line 0, in ? File "<string>", line 1 print x+3 ^ SyntaxError: invalid syntax >>>
Executing an expression is generally safe, but evaluating a statement causes a syntax error. If the user gives a single line of input to process, and you don't know what it is, you can try to evaluate, then execute it if an exception occurs.
The exec function accepts not only single-line statements such as the previous example, but multiline ones as well. These can range from a two-line loop command to print the numbers 1-10, to a function definition, or even a 500-line class definition.
You may be wondering where the variable x was stored in the previous examples. To understand this, you need to delve into some Python internals. The previous console commands are executed in the global namespace , which means that x becomes a global variable. There is a function called globals() that allows you to examine this namespace directly; let's see what it returns:
>>> # where is the 'x' kept? >>> for item in globals().items(): ... print item ... ('__doc__', None) ('pywin', <module 'pywin'>) ('x', 3.14) ('__name__', '__main__') ('__builtins__', <module '__builtin__'>) >>>
This seems scary, but look at the third line. The global namespace is just a dictionary, and it has an entry called x with value 3.14. It also has a few other bits and pieces you don't need to worry about at this point.
At this point we touch on a significant fact about Python: almost everything is built out of dictionaries. Objects are implemented using dictionaries; their keys are the method or attribute names stored as strings, and the values are the attribute values and function objects themselves. Namespaces are dictionaries, too. And when a chunk of code is evaluated, it's internally handed two dictionaries: one containing the global variables at that point in time, the other containing the local variables to the current function or method.
This detail is interesting to language lawyers, but it also has an immediate practical payoff: you can design a namespace to suit yourself and execute the user's code in it. Specifically, you can modify the global namespace of the Python process in your browser to include a variable called TheBookSet, which refers to the currently running BookSet, or you can create an entirely new namespace in a fresh dictionary of your own.
The simplest demonstration of a COM server, which is included in PythonWin in the file Python\win32com\servers\interp.py, creates a COM object called Python.Interpreter. This exposes two methods to execute and evaluate expressions, which can easily be grafted onto any COM server. We want to build a console that lets the user do both and returns any output, so we'll merge them into one method called interpretString(). This either executes or evaluates the expression; if there is a return value, you hand a string representation of it back to the user.
You also need to extend the __init_ _() method of the BookServer to add a namespace with the needed global variable. Here's the new initialization code and the new method to interpret a string:
def __init__(self): self.__BookSet = doubletalk.bookset.BookSet() # create a custom namespace for the user to work with # with one variable name already defined self.userNameSpace = {'TheBookServer', self.__BookSet} def interpretString(self, exp): """Makes it easier to build consoles. """ if type(exp) not in [type(''), UnicodeType]: raise Exception(desc="Must be a string", \ scode=winerror.DISP_E_TYPEMISMATCH) try: # first, we assume it's an expression result_object = eval(str(exp), self.userNameSpace) if result_object == None: return '' else: return str(result_object) except: #failing that, try to execute it exec str(exp) in self.userNameSpace return ''
It's necessary to add the statement from pywintypes import UnicodeType at the beginning of the module. Note that the code accepts normal and Unicode strings and raises helpful exceptions if the wrong kind of object is passed in. Try to evaluate the string as an expression, then try to execute it as a statement. If it causes an error, leave it unhandled so that the error message can filter through to the VB user. Note that as we discuss in Chapter 12, leaving an unhandled Python exception to propagate to the user of the object is not considered good design, but is suitable for the purposes of this demonstration.
If there is a return value, convert it as a string. You could return it raw, allowing eval() to potentially return numbers and arrays, but there is a risk of a user expression returning something VB doesn't expect. The intention in this example is to get back a printable string to show the user, so make sure the return type is always either a string representation of the data or an empty string.
You now have the hooks to execute arbitrary strings of Python code, but you can't necessarily see the output. You need to implement one more feature first, to capture Python's standard output, so that print statements in your users' code show up properly. You might think this would involve low-level Windows process control, but actually, Python knows how to redirect its own output. If you enter the following statements in a Python source file or the Python DOS prompt, any subsequent output (for example, print statements) are redirected to a file:
>>> import sys >>> mylogfile = open('c:\\temp\\mylog.txt', 'w') >>> sys.stdout = mylogfile >>>
Output can be redirected to any Python object that offers a write() method. The easiest way to grab the output is to add just such a write() method to our COMBookSet class, which stores the standard output internally; provide another method to grab this data from VB on demand; and start trapping the output when our instance of COMBookSet starts. Here are the needed extra methods:
def beginTrappingOutput(self): self.outputBuffer = [] self.old_output = sys.stdout sys.stdout = self def write(self, expr): """ this is an internal utility used to trap the output. add it to a list of strings - this is more efficient than adding to a possibly very long string.""" self.outputBuffer.append(str(expr)) def getStandardOutput(self): "Hand over output so far, and empty the buffer" text = string.join(self.outputBuffer, '') self.outputBuffer = [] return text def endTrappingOutput(self): sys.stdout = self.old_output # return any more output return self.getStandardOutput()
Everything but write() is exposed as a COM public method. When VB creates the server, add a line to call TheBookServer.beginTrappingOutput().
A word of warning at this point: you aren't the only person interested in Python's standard output. In Chapter 12, you'll learn about the Trace Collector debugging tool. This is a feature of PythonWin that enables you to debug your COM server while calling it from VB; we used it quite a bit in writing this chapter. If you've registered your COM server for debugging, all the output that should have gone to the Trace Collector shows up in your console window. That's why we've provided some explicit methods to start and stop trapping, rather than just to start trapping when the COMBookSet initializes and leaving it on forever.
Now we have everything needed to create a basic interactive console. We implemented this as an extra child window with a one-line text box for input and a multiline, uneditable text box for output. When the user inputs an expression, the VB console form executes the commands TheBookServer.interpretString (expression) to get the return value and TheBookServer.getStandardOutput to retrieve any output that was generated. It then assembles these together into one chunk of text and appends this to the output text box. Figure 8.1 is an example of our console in action.
Note you have full access to the data of your running server and can modify its data. You can also create your own variables and generally do anything you can from a regular Python console.
The previous console is extremely simple and allows only one statement at a time. Ideally, something like the interactive prompt in PythonWin would be preferable. There is actually quite a lot of work involved in writing such a window, and we won't go through the code to do it here. As text is entered a line at a time, your interpreter window needs to decide if it's a complete expression and when to process the input, as well as suggest indent levels for subsequent lines, and so on. The event-handling depends a great deal on the type of GUI widget used to build the console.
If you want to build such a console, look at the file code.py in the standard Python library. This contains a function called interact() that defines an interactive console written in Python. It needs adapting, but shows the general approach; as each line is entered, it tries to evaluate the current text buffer, and assumes the statement is incomplete if it gets an error. You could modify this to provide hooks for your VB console. Code.py is used by both IDLE and Pythonwin to emulate the Python interactive mode.
Quite often the user wants to execute simple scripts. If the user has created a simple script in a file on disk, it can be run with the built-in function execfile ( file[, globals[, locals]]). This is broadly equivalent to the exec statement discussed earlier, except that it's a function, and it takes filename as an argument, processing the entire contents. To expose this, we've implemented a new method of COMBookSet, which takes the filename as a single argument, and calls execfile(filename, self.userNameSpace):
def execFile(self, filename): if type(filename) not in [type(''), UnicodeType]: raise Exception(desc="Must be a string", \ scode=winerror.DISP_E_TYPEMISMATCH) execfile(str(filename), self.userNameSpace)
VB provides a rich-text editor component that makes it easy to create an editor, so we've added yet another form to our application called frmScriptEditor . This has a single editing region and a menu. We provided menu options to open and save files, and it keeps track of the filename and whether the text has changed. We won't cover those functions here. It also has a menu option to run a script, which is straightforward to implement:
Private Sub mnuScriptRun_Click() mnuScriptSave_Click If Saved Then On Error GoTo mnuScriptRun_Error frmMain.BookServer.execFile FileName On Error GoTo 0 frmConsole.UpdateOutput End If Exit Sub mnuScriptRun_Error: MsgBox "Error running script:" + vbCrLf + vbCrLf + Err.Description End Sub
We handle errors, since the user is bound to make some at some stage, and ask the console window to display any new output afterwards. The user interface checks that any script is saved before running it, since we need to execute a file on disk. Figure 8.2 is a basic script in action, querying the running BookSet and producing some console output.
The difference between importing a module and running a script is that a module object is created in memory with a name you can access. All the functions and classes defined in the module go into the newly created namespace. When executing a script, all code is executed in the global namespace. You could let the user import modules by typing import foo in a console, or even in a script executed in this manner. However, there are some benefits to exposing this in the user interface. For example, you could save a list of standard imports for each user in the registry as a configuration variable and import those modules every time the application starts up. To do this, let's take a look at Python's import mechanism, which gives fine-grained control of how modules are created.
The library module imp exposes Python's import mechanism. This includes functions to search the Python path for modules, and to load modules once located. Let's say you create a simple module in the file c:\temp\import\temp.py that defines one function called func(x). If you want to use this from PythonWin, ensure it's on the path and type import temp. Within a custom application, you can often drop to a lower level of detail and customize the details of this process. For example, the text for a module might be a compiled resource in the program rather than a file on disk, and you might want to swap different source files in and out under the same module name. Let's look at what happens behind the scenes of an import by recreating the steps manually.
First, Python looks for it with the find_module function:
>>> import imp >>> found = imp.find_module('temp', ['c:\\temp\\import']) >>> found (<open file 'c:\temp\import\temp.py', mode 'r' at 1078200>, 'c:\\temp\\import\\temp.py', ('.py', 'r', 1)) >>>
find_module takes a list of locations to search as an optional second argument; if this is omitted, it searches sys.path. Thus, by taking control of the import mechanism, you can keep a separation between your Doubletalk code locations and your general Python code; such a separation is useful in a production application. If successful, it returns an open file handle to the module file, the full pathname, and some background information about the file.
The next step is to call load_module , which lets you control what the module gets called. The arguments to this are the name to give the module in your namespace, and the three return values from the previous function. This returns a module object you can manipulate further:
>>> mymodule = imp.load_module('temp', found[0], found[1], found[2]) >>> mymodule <module 'temp'> >>>
If the module contains errors, it raises an exception, and the file handle in found[0] is left open. Your code should use a try... finally... block that closes the file afterwards.
A module object is like any other Python object. Let's put this one in the global namespace as usual:
>>> globals()['temp'] = mymodule >>> temp.func('blah') 'blahblah' >>>
You now have a module object in memory and can call its functions.
Armed with this knowledge, you can add a menu option to your script editor to import a script and make sure it's available in the right namespace for users: the dictionary userNameSpace in COMBookSet. As usual, expose a public method in COMBookSet:
def importFile(self, fullpathname): #import as the filename import imp path, filename = os.path.split(str(fullpathname)) root, ext = os.path.splitext(filename) found = imp.find_module(root, [path]) #takes a list of files if found: (file, pathname, description) = found try: module = imp.load_module(root, file, pathname, description) # ensure it's visible in our namespace self.userNameSpace[root] = module print 'loaded module', root finally: file.close() else: print 'file not found'
Note that this takes the name from the filename and adds it to userNameSpace. The VB script import command looks like the earlier one for execFile, but calls importFile instead. Users can now edit scripts and choose both Script Run and Script Import from the menu as they can in PythonWin and access the functions created from the console.
A useful customization is to allow an option for a startup script. The script could be a standard, hardcoded filename or a configuration variable. Users can do almost anything with this script; they can put in a series of standard import statements, go off and import commonly used data files from elsewhere, and (as we'll see) set up the BookSet as they want with validation rules and custom views. The script executes after the BookSet has been initialized, so it can't control the way BookSet initializes.
This feature is easy to provide with the tools we've just built. In Figure 8.3, we've gone for a user-defined script name in an Options dialog.
Earlier on we put two public methods in frmMain called InitCOMServer and CloseCOMServer , and never used the latter. Here there's a good use for it. InitCOMServer has been expanded as follows (ignoring error trapping to save space):
Sub InitCOMServer() Dim startupScript As String 'called when the program starts On Error GoTo InitCOMServer_error Set BookServer = CreateObject("Doubletalk.BookServer") On Error GoTo 0 'tell it to capture output for the console BookServer.beginTrappingOutput 'if there is an init script, run it If frmOptions.txtStartupScript.text <> "" Then On Error GoTo InitCOMServer_StartupScriptError BookServer.execFile frmOptions.txtStartupScript.text On Error GoTo 0 End If 'grab any standard output for the console frmConsole.UpdateOutput Exit Sub
Test to see if there is a startup script and run it under an error handler if there is. Then tell the console to fetch any standard output.
We've also provided a button titled Reload BookServer Now. This one just shuts down and restarts the server (losing any running data):
Private Sub cmdReload_Click() Dim Proceed As Boolean If frmMain.BookServer.count > 0 Then If MsgBox("You have data in the BookServer which will be " + _ "lost. Proceed?", vbOKCancel, "Warning") = vbCancel Then Exit Sub End If End If frmConsole.Clear frmMain.CloseCOMServer frmMain.InitCOMServer 'this calls the script frmMain.UpdateAllViews Beep End Sub
The user now has a startup script that allows almost limitless customization. We haven't implemented a place to save this script; the choices are generally the registry or an INI file.
This section doesn't discuss a feature, it's just a recommendation. Your application and documentation should define clearly where the main source package lives (e.g., C:\Program Files\Doubletalk\Source) and where users' code should go (e.g., C:\Program Files\Doubletalk\UserSource). The application should add the latter directory to the path when starting, and suggest it as the default location for any user scripts if you provide a script editor.
| I l@ve RuBoard |


vignettes/sources.Rmd
sources.Rmd
HydroData offers access to 17 data sources. Details can be found at the following:


Toggle navigation
Affordance++
Modes
Calibration
Gesture editor
Muscle control
Bounding box linking
EMS1:
X
EMS2:
Y
Run
General user
Teapot
none
hot
Shelf assembly
neutral
Plastic screws
Metal screws
Knob
Philips screwdriver
Flat screwdriver
Hammer
-->
Door
Please knock
Enter
Calibration
Gesture editor
Muscle controller
Gestures
Lower flexor L
Upper flexor U
Biceps B
Xross X
Extensor E
Thumb T
Sideways S
Door relay d
Speed
1
2
3
4
Strength
A:
40
- (0)
+ (-)
0 (=)
B:
40
- (p)
+ ( [ )
0 ( ] )
EMS Positions
Squeeze
1: Thumb
2: Bottom fingers
Shake
1: Flexor
2: Extensor
Repel
2: Extensor
Tap
1: Flexor
2: Extensor
Rotate counter-clockwise
1: Weird stuff on back of forearm


LaBLR - Lourdes and Bertha’s Light-weight Repository
LaBLR is a light weight personal repository
for managing digital objects such as photos of
family and friends. It is named and created for
Lourdes and Bertha to manage their treasure trove of
family photos, island history and custom.
Planned Features
- Metadata manager GUI
- Ingest documents (e.g. images) from local disc or URL
- For digital images automatic metadata extraction when possible
- Schema.org Data Models
- Indexing and Search
- Built-in web server with IIIF viewer for sharing
- Open data formats and standards for archival preservation
- Run on Windows, Mac OS X, Linux, and Raspberry Pi


Toggle navigation
Program 04 - Widgets
Code Review
JQX Widgets
Weather
Find
&
°
← change location
Location not found


| Name | Description |
| ClaimVSANDisks |
Mapped to UI workflow "Claim vSAN Disks".
|
| ClusterUpgrade |
Mapped to UI workflow "vSAN On-click Upgrade Wizard".
|
| ConfigureAutomaticRebalance |
Mapped to UI workflow "Configure Automatic Rebalance".
|
| ConfigureDRS |
Mapped to UI workflow "Configure DRS".
|
| ConfigureHA |
Mapped to UI workflow "Configure HA".
|
| ConfigureVSAN |
Mapped to UI workflow "Configure vSAN".
|
| CreateDVS |
Mapped to UI workflow "Create VDS".
|
| CreateVMKnic |
Mapped to UI workflow "Create vmknic Wizard".
|
| CreateVMKnicWithVMotion |
Mapped to UI workflow "Create vmknic with vMotion Wizard".
|
| DiskBalance |
Mapped to VsanRebalanceCluster API.
|
| EnableCeip |
Mapped to UI workflow "Customer Experience Improvement Program (CEIP) page".
|
| EnableHealthService |
Deprecated.
|
| EnableIscsiTargetService |
Mapped to UI workflow "Enable vSAN iSCSI service".
|
| EnablePerformanceServiceAction |
Mapped to VsanPerfCreateStatsObjectTask API.
|
| LoginVumIsoDepot |
Mapped to FetchIsoDepotCookie API.
|
| PurgeInaccessSwapObjs |
Mapped to UI workflow "Purge Inaccessible VM Swap Objects".
|
| RemediateClusterConfig |
Mapped to UI workflow "Remediate inconsistent configuration".
|
| RemediateDataProtectionConfig |
Mapped to VsanRemediateDataProtectionConfigInCluster API.
|
| RemediateDedup |
Mapped to PerformVsanUpgradeEx API.
|
| RepairClusterObjectsAction |
Mapped to VsanHealthRepairClusterObjectsImmediate API.
|
| RunBurnInTest |
Mapped to UI workflow "Run Storage performance test".
|
| StopDiskBalance |
Mapped to VsanStopRebalanceCluster API.
|
| UpdateHclDbFromInternet |
Mapped to VsanVcUpdateHclDbFromWeb API.
|
| UpgradeVsanDiskFormat |
Mapped to PerformVsanUpgradeEx API.
|
| UploadHclDb |
Mapped to VsanVcUploadHclDb API.
|
| UploadReleaseCatalog |
Mapped to UI workflow "Update release catalog from file".
|
| VsanClusterHealthActionIdEnum_Unknown |
represent the value when the lower version client cannot recognize the enum value.
|


--- layout: posts title: Samsung SGH-E105 Phone teardown - pictures! date: 2009-01-19 15:48:00.000000000 -08:00 type: post parent_id: '0' tags: - Samsung - SGH-E105 - teardown - tech guide ---
So, in the vein of tearing stuff apart, I ran across some pics I took a while back of my old SGH-E105 phone. I'm really hard on my phones, so the case was destroyed after about two years of use. After sourcing a new case off Ebay, I completely disassembled the phone to put the pieces in the new case.
I didn't take any pictures of the disassembly process, but here are the pics of the guts (click for higher res version):


Public Member Functions | |
| RollingFileAppender () | |
| The default constructor simply calls its parents constructor. | |
| RollingFileAppender (const LayoutPtr &layout, const LogString &fileName, bool append) | |
Instantiate a RollingFileAppender and open the file designated by filename . | |
| RollingFileAppender (const LayoutPtr &layout, const LogString &fileName) | |
Instantiate a FileAppender and open the file designated by filename . | |
| virtual | ~RollingFileAppender () |
| int | getMaxBackupIndex () const |
| Returns the value of the MaxBackupIndex option. | |
| long | getMaximumFileSize () const |
| Get the maximum size that the output file is allowed to reach before being rolled over to backup files. | |
| void | setMaxBackupIndex (int maxBackupIndex) |
| Set the maximum number of backup files to keep around. | |
| void | setMaxFileSize (const LogString &value) |
| Set the maximum size that the output file is allowed to reach before being rolled over to backup files. | |
| void | setMaximumFileSize (int value) |
| virtual void | setOption (const LogString &option, const LogString &value) |
Set option to value . | |
| void | activateOptions (log4cxx::helpers::Pool &pool) |
| Prepares RollingFileAppender for use. |
|
|
The default constructor simply calls its parents constructor.
|
|
|
Instantiate a RollingFileAppender and open the file designated by The opened filename will become the ouput destination for this appender.
If the |
|
|
Instantiate a FileAppender and open the file designated by The opened filename will become the output destination for this appender. The file will be appended to. |
|
|
|
|
|
Prepares RollingFileAppender for use.
Reimplemented from RollingFileAppenderSkeleton. |
|
|
Returns the value of the MaxBackupIndex option.
|
|
|
Get the maximum size that the output file is allowed to reach before being rolled over to backup files.
|
|
|
Set the maximum number of backup files to keep around.
The MaxBackupIndex option determines how many backup files are kept before the oldest is erased. This option takes a positive integer value. If set to zero, then there will be no backup files and the log file will be truncated when it reaches |
|
|
Set the maximum size that the output file is allowed to reach before being rolled over to backup files. In configuration files, the MaxFileSize option takes an long integer in the range 0 - 2^63. You can specify the value with the suffixes "KB", "MB" or "GB" so that the integer is interpreted being expressed respectively in kilobytes, megabytes or gigabytes. For example, the value "10KB" will be interpreted as 10240. |
|
|
|
|
|
Set The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called. Reimplemented from FileAppender. |


Database Utilities
I have completed some utilities for databases. This post is an overview of what it available. Other posts will contain details on each… or you can just read the READMEs if you can’t wait.
The repo is here.
There are three utilities:
- pgcopy: This utility will use the Postgres Copy API to import data into a Postgres database. It is one of the fastest ways to import data. The data to be imported must be a CSV file and the CSV must have column headers that match the target table.
- modifydb: This utility will run a modification SQL statement, which makes it useful for scripting. It will also take an optional input CSV file and run an SQL statement for each row using the columns as substitution parameters. In the README examples, I use an INSERT statement in combination with an input CSV to essentially import the CSV into the database.
- querydb: This utility will run a query and output the results to a CSV file. Similar to “modifydb”, it can also take an optional CSV file as input. In this case, the query is run once per row of input and the column values in each row is used as substitution parameters. This technique is useful to create a pipeline of queries, each using the output of the previous to create a new dataset. When faced with a big data problem, it is often useful to decompose a large complex query into smaller ones and chain them together - which is why this is designed the way it is.
There is also a folder in the repo named “data_prep”. I added it to the repo to show how to create a nice hierarchical dataset. I found such datasets hard to find. So I created a process to create a hierarchical dataset using the Linux filesystem (Ubuntu 17.10).
If you think of the dataset as a graph, then the nodes are the filenames and folder names (fully qualified). This data is in the “node” table. The edge table contains a “from” and a “to” linking folders to its child folders and its files (leaf nodes).
Hope you find this useful!


Description
Amazon GameLift is a managed service for developers who need a scalable, dedicated server solution for their multiplayer games. Amazon GameLift provides tools to acquire computing resources and deploy game servers, scale game server capacity to meed player demand, and track in-depth metrics on player usage and server performance.
The Amazon GameLift service API includes important functionality to:
- Find game sessions and match players to games – Retrieve information on available game sessions; create new game sessions; send player requests to join a game session.
- Configure and manage game server resources – Manage builds, fleets, queues, and aliases; set autoscaling policies; retrieve logs and metrics.
This reference guide describes the low-level service API for Amazon GameLift. We recommend using either the Amazon Web Services software development kit (AWS SDK ), available in multiple languages, or the AWS command-line interface (CLI) tool. Both of these align with the low-level service API. In addition, you can use the AWS Management Console for Amazon GameLift for many administrative actions.
MORE RESOURCES
API SUMMARY
This list offers a functional overview of the Amazon GameLift service API.
Finding Games and Joining Players
You can enable players to connect to game servers on Amazon GameLift from a game client or through a game service (such as a matchmaking service). You can use these operations to discover actively running game or start new games. You can also match players to games, either singly or as a group.
- Discover existing game sessions
- search-game-sessions – Get all available game sessions or search for game sessions that match a set of criteria.
- Start a new game session
- Game session placement – Use a queue to process new game session requests and create game sessions on fleets designated for the queue.
- start-game-session-placement – Request a new game session placement and add one or more players to it.
- describe-game-session-placement – Get details on a placement request, including status.
- stop-game-session-placement – Cancel a placement request.
- create-game-session – Start a new game session on a specific fleet.
- Manage game session objects
- describe-game-session-details – Retrieve metadata and protection policies associated with one or more game sessions, including length of time active and current player count.
- update-game-session – Change game session settings, such as maximum player count and join policy.
- get-game-session-log-url – Get the location of saved logs for a game session.
- Manage player sessions objects
- create-player-session – Send a request for a player to join a game session.
- create-player-sessions – Send a request for multiple players to join a game session.
- describe-player-sessions – Get details on player activity, including status, playing time, and player data.
Setting Up and Managing Game Servers
When setting up Amazon GameLift, first create a game build and upload the files to Amazon GameLift. Then use these operations to set up a fleet of resources to run your game servers. Manage games to scale capacity, adjust configuration settings, access raw utilization data, and more.
- Manage game builds
- create-build – Create a new build by uploading files stored in an Amazon S3 bucket. (To create a build stored at a local file location, use the AWS CLI command upload-build .)
- list-builds – Get a list of all builds uploaded to a Amazon GameLift region.
- describe-build – Retrieve information associated with a build.
- update-build – Change build metadata, including build name and version.
- delete-build – Remove a build from Amazon GameLift.
- Manage fleets
- create-fleet – Configure and activate a new fleet to run a build's game servers.
- delete-fleet – Terminate a fleet that is no longer running game servers or hosting players.
- View / update fleet configurations.
- list-fleets – Get a list of all fleet IDs in a Amazon GameLift region (all statuses).
- describe-fleet-attributes / update-fleet-attributes – View or change a fleet's metadata and settings for game session protection and resource creation limits.
- describe-fleet-port-settings / update-fleet-port-settings – View or change the inbound permissions (IP address and port setting ranges) allowed for a fleet.
- describe-runtime-configuration / update-runtime-configuration – View or change what server processes (and how many) to run on each instance in a fleet.
- describe-instances – Get information on each instance in a fleet, including instance ID, IP address, and status.
- Control fleet capacity
- describe-ec2-instance-limits – Retrieve maximum number of instances allowed for the current AWS account and the current usage level.
- describe-fleet-capacity / update-fleet-capacity – Retrieve the capacity settings and the current number of instances in a fleet; adjust fleet capacity settings to scale up or down.
- Autoscale – Manage autoscaling rules and apply them to a fleet.
- put-scaling-policy – Create a new autoscaling policy, or update an existing one.
- describe-scaling-policies – Retrieve an existing autoscaling policy.
- delete-scaling-policy – Delete an autoscaling policy and stop it from affecting a fleet's capacity.
- Access fleet activity statistics
- describe-fleet-utilization – Get current data on the number of server processes, game sessions, and players currently active on a fleet.
- describe-fleet-events – Get a fleet's logged events for a specified time span.
- describe-game-sessions – Retrieve metadata associated with one or more game sessions, including length of time active and current player count.
- Remotely access an instance
- get-instance-access – Request access credentials needed to remotely connect to a specified instance on a fleet.
- Manage fleet aliases
- create-alias – Define a new alias and optionally assign it to a fleet.
- list-aliases – Get all fleet aliases defined in a Amazon GameLift region.
- describe-alias – Retrieve information on an existing alias.
- update-alias – Change settings for a alias, such as redirecting it from one fleet to another.
- delete-alias – Remove an alias from the region.
- resolve-alias – Get the fleet ID that a specified alias points to.
- Manage game session queues
- create-game-session-queue – Create a queue for processing requests for new game sessions.
- describe-game-session-queues – Get data on all game session queues defined in a Amazon GameLift region.
- update-game-session-queue – Change the configuration of a game session queue.
- delete-game-session-queue – Remove a game session queue from the region.


Group 2
Website Design and Creation
Created by Group 2: Devin Cargill, Henry Sills, Kartik Sharma, Riley Hedgpath and Sam Kilpatrick