Arrays and Hashes in Ruby:
When to use each
Sunday March 15, 2015
Both Ruby's arrays and hashes are indexed collections. They store collections of objects that are accessible using a key. An arrays uses integers as its key while hashes can use any object, such as strings or integers. Basically, arrays and hashes store a list of stuff that can be referenced through its key value. Think of the key value in arrays like the numbers in a numbered list of question and the stored collection values as the questions themselves. You can think ofthe key value in a hash like the words in a dictionary while the definitions are the stored collection values. Of course, this is just one example each of a possible array and hash and there can be many other use cases. I just think this is a good way to understand how arrays and hashes work.
Whether to use an array or hash is dependent on the type and purpose of a collection. Arrays are ideal for collections that need to be stored in a certain order. (Hashs' key/value pairs do not stay in any sort of sequential order). For example, if you created a list of your favorite movies, you'll want to use an array to store the collection to keep track of your preferences. The ranking in this case is the important part of the collection so an array is ideal.
Hashes are ideal for when a more descriptive key is needed to access information, like the dictionary example I mentioned earlier. It's much easier to look up the definition of a word by the word itself rather than an ordered number assigned to it. Could you imagine trying to look up the word tangerine by its place in the dictionary represented by a number? Another example of when it would be better to use a hash is if you're pairing student ID numbers to student names. In this case, the hash key would still be an integer (the student ID number), but the order of students doesn't matter.


On this page you find a collection of imaportant links for GTA and more.
| URL | Description |
| http://www.selfcoders.de | SelfCoders-Home |
| http://www.gtainside.de | GTAinside |
| http://www.gta-worldmods.de | GTA Worldmods |
| http://www.gtamodding.com | GTAModding |
| http://www.purebasic.com | Homepage of PureBasic* |
| http://www.selfcoders.de/board/index.php?page=Thread&threadID=15 | GTA San Andreas ToolBox (Collectionthread) - Bugs and suggestions |
| http://www.selfcoders.de/board/index.php?page=Thread&threadID=9 | GTA San Andreas ToolBox - General questions and answers |
* In this language the GTA San Andreas ToolBox was written in.


| 006:019 Khan | : |
Say (O Muhammad SAW): "What thing is the most great in witness?" Say: "Allah (the Most Great!) is Witness between me and you; this Qur'an has been revealed to me that I may therewith warn you and whomsoever it may reach. Can you verily bear witness that besides Allah there are other aliha (gods)?" Say "I bear no (such) witness!" Say: "But in truth He (Allah) is the only one Ilah (God). And truly I am innocent of what you join in worship with Him." |
| 006:019 Maulana | : |
Say: What thing is the weightiest in testimony? Say: Allah is witness between you and me. And this Qur'an has been revealed to me that with it I may warn you and whomsoever it reaches. Do you really bear witness that there are other gods with Allah? Say: I bear not witness. Say: He is only One God, and surely I am innocent that which you set up (with Him). |
| 006:019 Pickthal | : |
Say (O Muhammad): What thing is of most weight in testimony? Say: Allah is Witness between me and you. And this Qur'an hath been inspired in me, that I may warn therewith you and whomsoever it may reach. Do ye in sooth bear witness that there are gods beside Allah? Say: I bear no such witness. Say: He is only One Allah. Lo! I am innocent of that which ye associate (with Him). |
| 006:019 Rashad | : |
Say, "Whose testimony is the greatest?" Say, "GOD's. He is the witness between me and you that this Quran has been inspired to me, to preach it to you and whomever it reaches. Indeed, you bear witness that there are other gods beside GOD." Say, "I do not testify as you do; there is only one god, and I disown your idolatry." |
| 006:019 Sarwar | : |
(Muhammad), ask them, "What is the greatest testimony? God testifies of my truthfulness to you. He has revealed this Quran to me to warn you and the coming generations (against disobeying God). Do you believe that other gods exist besides God? I solemnly declare that He is the only Lord and that I am not guilty of believing in what the pagans believe." |
| 006:019 Shakir | : |
Say: What thing is the weightiest in testimony? Say: Allah is witness between you and me; and this Quran has been revealed to me that with it I may warn you and whomsoever it reaches. Do you really bear witness that there are other gods with Allah? Say: I do not bear witness. Say: He is only one Allah, and surely I am clear of that which you set up (with Him). |
| 006:019 Sherali | : |
Say, 'What thing is the weightiest in testimony.' Say, 'ALLAH is a Witness between me and you. And this Qur'an has been revealed to me so that with it I may warn you, as well as whomsoever it reaches, of the impending punishment. What ! do you really bear witness that there are other gods besides ALLAH?' Say, 'I bear not witness thereto.' Say, 'HE is the One God, and certainly I am innocent of that which you associate with HIM.' |
| 006:019 Yusufali | : |
Say: "What thing is most weighty in evidence?" Say: "Allah is witness between me and you; This Qur'an hath been revealed to me by inspiration, that I may warn you and all whom it reaches. Can ye possibly bear witness that besides Allah there is another Allah?" Say: "Nay! I cannot bear witness!" Say: "But in truth He is the one Allah, and I truly am innocent of (your blasphemy of) joining others with Him." |
Concepts/Themes Covered: أركان الإسلام > التوحيد > توحيد الله تعالي > صفات الله تعالى > الشهيد Pillars of Islam> Islamic> Oneness of Allah> His Glory's Characteristics> The Witness أركان الإسلام > التوحيد > توحيد الله تعالي > وحدانيته Pillars of Islam> Islamic> Oneness of Allah> Singularity and Being Unique أركان الإسلام > التوحيد > الشرك والمشركون > النهي عن الشِرك والوعيد عليه Pillars of Islam> Islamic> Polytheism and the Polytheists> The Inhibition of Polytheisms and the Threat Against it أركان الإسلام > (محمد (صلى الله عليه وسلم > بعثته Pillars of Islam> The Blessed Muhammad(PBUH)> His Mission(PBUH) أركان الإسلام > (محمد (صلى الله عليه وسلم > طبيعة رسالته Pillars of Islam> The Blessed Muhammad(PBUH)> His Mission's Nature(PBUH) أركان الإسلام > (محمد (صلى الله عليه وسلم > الوحي Pillars of Islam> The Blessed Muhammad(PBUH)> The Revelation القرآن الكريم > وصفه ووجوب الإيمان به The Holy Quran> The Description and the Necessity to Believe it
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


XactionComponent
Description
This is the most generic component. Allows the user to input the result of a xaction into where he wants on the page.
Options
- name
- The name of the component
- type
xactionComponent
- listeners
- Array - Parameters who this component will react to
- parameters
- Array of Arrays - Parameters to pass to the xaction
- solution
- Solution where the xaction is
- path
- Path where the xaction file is
- action
- Xaction file name
- htmlObject
- Id of the component (usually a div or a span tag) to be replaced by the result
- refreshPeriod
- Time in seconds for this component to refresh. Default is 0 (disabled)
- iframe
- Wheather to render the xaction inside an iframe or inline. Default: false
- executeAtStart
- True to execute the component at start, false otherwise
- tooltip
- Tooltip to be displayed when mouse hovers
- serviceMethod
- Optional, defaults to ServiceAction. Setting this value to ViewAction calls the traditional BI Platform action servlet
- preExecution
- Function - Function to be called before the component is executed
- postExecution
- Function - Function to be called after the component is executed
Sample


Received full understanding from US over Article 370 move in J&K: Govt
In August, India announced withdrawing special status of Jammu and Kashmir and dividing the state into two union territories
by Press Trust of IndiaIndia said on Thursday it has received full understanding from across the political spectrum in the US over its decision relating to withdrawal of special status of Jammu and Kashmir.
External Affairs Ministry Spokesperson Raveesh Kumar said India remained engaged with various stakeholders in the US, including the Trump administration, the Congress, civil society and others in addressing their questions on the issue.
In August, India announced withdrawing special status of Jammu and Kashmir and dividing the state into two union territories.


VIEW CROPS
VIEW ORDER
CROP ID
Name
Quantity
PRICE
Place Order
SUBMIT
ORDER ID
CROP ID
OWNER NAME
QUANTITY


THE LOVER (L'AMANT) A film review by Steve Rhodes Copyright 1996 Steve Rhodes
RATING (0 TO ****): * 1/2
THE LOVER (L' AMANT) (1991) is an English language film set in 1929 French Indo-China (Vietnam). It is a highly atmospheric and, some would say, erotic tale of two sad and lonely people. The message of the film appears to be that we are trapped and life is hopeless.
Based on the semi-autobiographical novel by Maugerite Dumas, the film tells the tale of a 15 1/2 year girl. The girl (Jane March) is called only "the young girl" by the narrator known as "the writer" (Yvonne Wingerter in the beginning and Raymonde Heudeline in the end). The girl leaves her home to go to a boarding school. While on the ferry she meets a lonely and depressed rich man known as "the Chinaman" (Tony Leung Ka Fai). He offers to driver her to her boarding school in his large limo.
Although the Chinaman is filthy rich, only 31 years old, and handsome enough to be a fashion model, he has little confidence and looks so sad you think he is about slash his wrists at any moment. The young girl seems suffering from clinical depression as well. When the man says it is his fault, she corrects him, saying, "It's me. I am always a little sad. I'm like my mother." Actually, everyone in the movie seemed to suffer from major depression.
 The sex is certainly not erotic and is mainly exhausting. They don't seem to enjoy any of it and watching them do it is about as much fun as watching athletes doing one wind sprint after another to get in shape for a track meet. I saw the videotape version where scenes deleted so that could get an R rating were added back in. I suspect the movie was better in the released theatrical version.
Jane March, whose only other film was COLOR OF NIGHT, shows little acting ability. COLOR OF NIGHT was number one on my worst films of 1994 list, and she showed a lack of talent in that movie as well. Tony Leung Ka Fai shows promise, but the maudlin script (Jean-Jacques Annaud and Gerard Brach) with which he has to deal left he little room to maneuver. The worst part of the dialog is given to the writer. She has to say one pedantic line after another, and overall, the narrator's part is just too wordy. Director Jean-Jacques Annaud has the actors pause frequently in their dialog so the audience can fully ponder the drivel they have just uttered.
Actually, the best part of the movie is some wonderful cinematography (Robert Fraisse) that has a sepia tone look to it. This is complimented by sets (Thanh At Hoang) of great and natural beauty. The lushness of the jungle and especially of the rivers is complimented by buildings of old brown stone. The film transports you to a long ago era and makes you feel as if you are there. Now if you could just get rid of those actors and actresses populating the scenery, ...
THE LOVER runs 1:50. It is rated R for non-stop sex and nudity. There is no violence. The film would be fine for most teenagers. Although I can not recommend this depressing film, I did like some of the technical aspects so I am giving it * 1/2.
**** = One of the top few films of this or any year. A must see film. *** = Excellent show. Look for it. ** = Average movie. Kind of enjoyable. * = Poor show.  Totally unbearable.
REVIEW WRITTEN ON: March 31, 1996
Opinions expressed are mine and not meant to reflect my employer's.
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


Tcl XML-RPC Server Utility Package |
|||||||||||||||||||
|
This code has been superceeded as of version 1.6The XMLRPC::Domain package provides a wrapper enabling the simple use of Tcl procedures as XML-RPC methods. This package is almost identical to the SOAP::Domain package as can be seen by the following example of the square method, here implemented over XML-RPC instead of SOAP: package require XMLRPC::Domain XMLRPC::Domain::register -prefix /rpc -namespace zsplat::RPC proc zsplat::RPC::/square {num} { if { [catch {expr $num + 0}] } { error "parameter num must be a number" } return [expr $num * $num] } The only significant difference between the XMLRPC and the SOAP Domain packages is that the XML-RPC version supports a method for providing hints to the framework about the type of the result of the users procedure. Here is an example of a procedure that returns an XML-RPC dateTime.iso8601 result: package require XMLRPC::TypedVariable proc zsplat::RPC::/time {} { set result [clock format [clock seconds] -format {%Y%m%dT%H:%M:%S}] set result [XMLRPC::TypedVariable::create dateTime.iso8601 $result] return $result }The result here is initially a string formatted in the iso8601 point in time format. As there is no real way for Tcl to distinguish between this string and a non-date string we have to provide a hint so that the XML-RPC reply has the correct type information. For simple types: int, double, string the framework can guess the correct type. For other types, you will need to return a TypedVariable as the result. A more significant example of this is a method returning an array: proc zsplat::RPC::/sort {args} { eval set n $args set result [lsort $n] set result [XMLRPC::TypedVariable::create array $result] return $result }Here, we are returning an array of sorted elements. The type of each element will have to be guessed by the framework as the elements themselves are not TypedVariables. XML-RPC supports struct results as well as arrays. This is supported from Tcl as Tcl arrays. The struct element name is set from the array element name. For more details about writing services look at the SOAP::Domain documentation. | ||||||||||||||||||
| $Id: XMLRPCDomain.html,v 1.3 2001/10/11 22:40:37 patthoyts Exp $ |


www.calamityjaneexpress.net/index Everything on *this* site that is linked to *this* index-file.
<EMAIL_ADDRESS>Emailaddress 1, preferred.
<EMAIL_ADDRESS>Emailaddress 2, BCC'ed or if no response after 3 days.
<EMAIL_ADDRESS>Emailaddress 3, alternative or for whatever reason.
www.youtube.com/results?search_query=calamityjaneexpress User Instructions on Youtube.
db.tt/CcYFzgDe Video MP4/OGV User Instructions from Dropbox-link.
db.tt/edEJFi4y Video MP4/OGV British Red Cross Instructions from Dropbox-link.
db.tt/CcYFzgDe Wikipedia pictures from Dropbox-link.
https://github.com/deejayalexander/calamity-jane-express Developers-version at Github.
calamityjaneexpress.wordpress.com Introduction and other related articles concerning this project.
@djacje Twitter account.


DIRTY ROTTEN SCOUNDRELS A film review by Mark R. Leeper Copyright 1988 Mark R. Leeper
Capsule review: Enjoyable remake of BEDTIME STORY with only minor variations. The contest for ascendency between two gigolos still makes a very funny comedy, perhaps more so because it has less competition than the story had in 1964. It is much like seeing a new production of a play you once enjoyed. It loses a point for borrowing so but from the original but still rates a +1.
Back in 1964 Ralph Levy, a television director, made the first of only two theatrical films he was to make before returning to television. BEDTIME STORY was for the time a minor and somewhat fluffy comedy about two gigolos' contest to see which one would have to leave a French Riviera town too small to support more than one gigolo. There was Lawrence, played by David Niven, who had made Beaumont-sur-Mer his private hunting ground for finding rich women to fleece. And then there was Freddy, a brash young American soldier with no respect for the culture and no affection for the women he was preying on. Freddy was one of Marlon Brando's most memorable roles and perhaps the only time Brando ever got to play broad comedy. And Brando was hilarious throughout the film, but particularly when Freddy was pretending to be Ruprecht, who was the retarded product of too much inbreeding of nobility.
With only minor changes to most of the script--if memory serves, most of the film even has the same dialogue--the script has been effectively recycled to make DIRTY ROTTEN SCOUNDRELS. BEDTIME STORY's script was by Stanley Shapiro (who also produced that film) and Paul Henning. DIRTY ROTTEN SCOUNDRELS' executive producer Dale Launer cut some scenes (including a few of the better gags), rewrote the ending, and put his name in front of the other two for screen credit. The story remains the same. Whoever can be the first to charm $50,000 from visiting soap queen Janet earns the right to rule the roost in Beaumont-sur-Mer.  The new director, Frank Oz, does little with the principle characters that Levy did not. Michael Caine, the new Lawrence, plays his role surprisingly David- Niven-ish, right down to the thin moustache. Frank Oz seems to have known what he wanted from the part but his ideas were formed by seeing the earlier film. Steve Martin puts a little more of his own interpretation into Freddy, but in places like the Ruprecht scenes he is more mimicking Brando than creating his own character.
What is surprising about seeing the remake is how good the writing seems to be today. In 1964 one would have hardly considered BEDTIME STORY to have had a really well-crafted script. Yet today that same script seems to be much closer to the caliber of A FISH CALLED WANDA than to that of BEETLEJUICE or SCROOGED. It deals in genuinely funny situations, not just funny personalities. What was ordinary writing in 1964 is well above average in 1988. Had this been a completely original script, DIRTY ROTTEN SCOUNDRELS would have gotten an easy +2. As it stands it still gets a high +1 on the -4 to +4 scale.
Mark R. Leeper att!mtgzz!leeper<EMAIL_ADDRESS>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


Welcomer DMs
By enabling welcomer direct messages, the user will receive a custom message along with any other direct messages they may also receive such as rules. Please note some users may not receive these messages in cases such as they have blocked the bot or blocked direct messages
Configure the message that the direct message will use if custom embeds have been disabled. Welcomer direct messages also support the use of formatting which you can find here
Welcomer Direct Messages Custom Embed
When custom embeds are enabled, the welcomer direct message will use custom embed data instead of using the set welcomer dm message


Suttas of the Samyutta Nikaya
Lakkhanasamyutta
II. Nidanaavagga (Nidaanavagga, Nidānavagga)
BD: On The Downbound
PTS: The Nidana Book
WP: Connected Discourses on Causation
XIX. Lakkhanasamyutta, II.254
PTS: Kindred Sayings on Lakkhana's Questions, II.169
WP: Connected Discourses with Lakkhana, I.700
I.
1. Aṭṭhīpesi Suttam (A.t.thiipesi, Atthipesi), II.254
PTS: A Lump of Bones, II.169
WP: The Skeleton, I.700
2. Gāvaghāṭaka Suttam (Gaavaghaa.taka, Gavaghataka), II.256
PTS: Cattle-butcher, II.170
WP: The Piece of Meat, I.701
3. Piṇḍasakuṇiyam Suttaṃ (Pi.n.dasaku.niyam, Pindasakuniyam), II.256
PTS: Morsel and Fowler, II.171
WP: The Lump of Meat, I.701
4. Nicchavorabbhi Suttaṃ, II.256
PTS: The Flayed Sheep-butcher, II.171
WP: The Flayed Man, I.702
5. Asi-sūkariko Suttaṃ (Asi-suukariko, Asi-sukariko), II.257
PTS: Sword-pig-butcher, II.171
WP: Sword Hairs, I.702
6. Satti-māgavi (Satti-maagavi, Satti-magavi), II.257
PTS: Javelin-deer-hunter, II.171
WP: Spear Hairs, I.702
7. Usu-kāraṇiyo (Usu-kaara.niyo, Usu-karaniyo), II.257
PTS: Arrow-judge, II.171
WP: Arrow Hairs, I.702
8. Sūci-sārathi (Suuci-saarathi, Suci-sarathi), II.257
PTS: Sharp-point-driver, II.172
WP: Needle Hairs, I.702
9. Sūcako (Suucako, Sucako), II.257
PTS: The Spy, II.172
WP: Needle Hairs 2, I.702
10. Aṇḍabharī-Gāmakuṭako (A.n.dabharii-Gaamaku.tako, Andabhari-Gamakutako), II.258
PTS: The Corrupt Judge, II.172
WP: Pot Testicles, I.703
II.
11. Kupe Nimuggo Paradāriko Suttaṃ (Kupe nimuggo paradaariko, Kupe nimuggo paradariko), II.259
PTS: The Adulterer Sunk in the Pit, II.172
WP: With Head Submerged, I.703
12. Gūthakhādi-Duṭṭhabrāhmaṇo (Guuthakhaadi-Du.t.thabraahma.no, Guthakhadi-Dutthabrahmano), II.259
PTS: The Dung-eating Wicked Brahmin, II.173
WP: The Dung Eater, I.703
13. Nicchavitthi-aticārini (Nicchavitthi-aticaarini, Nicchavitthi-aticarini), II.259
PTS: The Flayed Adulteress, II.173
WP: The Flayed Woman, I.703
14. Maɱgulitthi ikkhanitthi// (Ma.mgulitthi ikkhanitthi, Mamgulitthi ikkhanitthi), II.260
PTS: Ugly Woman, Fortune-Teller, II.173
WP: The Ugly Woman, I.704
15. Okilini-Sapattaŋgārakokiri (Okilini-Sapatta.ngaarakokiri, Okilini-Sapattangarakokiri), II.260
PTS: The Dried-up Woman, Scatterer of Coaals Over One of Her Fellows, II.173
WP: The Sweltering Woman, I.704
16. Sīsachinno-coraghātako (Siisachinno-coraghaatako, sisachinno-coraghatako), II.260
PTS: The Headless Man, the Bandit, II.173
WP: The Headless Trunk, I.704
17. Bhikkhu, II.260
PTS: The Almsman, II.174
WP: The Evil Bhikkhu, I.704
18. Bhikkhunī (Bhikkhunii, Bhikkhuni), II.261
PTS: The Almswoman, II.174
WP: The Evil Bhikkhuni, I.704
19. Sikkhamānā (Sikkhamaanaa, Sikkhamana), II.261
PTS: The Sister-in-training, II.174
WP: 19-21: The Evil Probationary Nun, etc., I.705
20. Sāmaṇera (Saama.nera, Samanera), II.261
PTS: The Novice, II.174
21. Sāmaṇeriyo (Saama.neriyo, Samaneriyo), II.261
PTS: The Woman-novice, II.174


Documentation
This is where you will find documentation for all members and objects in GameOverlay.Net.
Overlay Window
The base class for all overlay windows.
Events:
StickyWindow
Inherits from OverlayWindow
Graphics Window
Inherits from StickyWindow
Events:
Window Helpers
Types:


Editor Camera
This article describes how to use the editor camera.
Camera Controls
In the following LMB
refers to the left mouse button, RMB
to the right mouse button and MMB
to the middle mouse button.
Perspective Views
LMB
: Move forwards/backwards and sidewaysMMB
: Move in the ground planeWheel
: Move forwards/backwardsRMB
: Activate fly camera and look aroundWASD
: Fly aroundQ
andE
: Fly straight up or downSHIFT
: Move faster
LMB
andRMB
: PanCTRL + Wheel
: Change the camera's movement speed. This can also be changed using the Camera Speed slider in the toolbar.C
: Move the camera to the pointed at positionF
: Frame the currently selected objects- Pressing
F
once will only pan the camera towards the selected objects - Pressing
F
a second time will additionally zoom in on them
- Pressing
SHIFT + F
: Same asF
but frames the object in all views simultaneously- This can also be triggered by double-clicking an item in the Scenegraph
ALT + LMB
: Orbit around the last framed objectALT + RMB
: Dolly (same as move forwards/backwards just with inverted mouse)ALT + MMB
: Pan (inverted)Context menu > Align Camera with Object: Orients the camera with the selected object
Orthographic Views
RMB
: Pan the selected viewWheel
: ZoomF
andSHIFT + F
: Frame object, same as in perspective view
Show/Hide Objects
To temporarily focus on certain objects, it is possible to make objects invisible.
H
: Hide the selected objectsCTRL + H
: Show all hidden objectsSHIFT + H
: Hide all objects that are not selected
Note that 'hide unselected' may hide lighting nodes, which can turn your level very dark. You can either activate ambient lighting in your scene, or switch the render mode to 'Diffuse Color', if necessary.
The hidden state of objects is not saved in the scene. Also Play-the-Game mode and ezPlayer always show all objects. Similarly, the hidden state only excludes objects from rendering, not from simulation.
Favorite Cameras
You can store up to ten favorite editor camera positions using CTRL + 0-9
. You can then jump back to that position by pressing the respective number key.
These camera positions are saved per user, per scene. If you open the editor on the same computer at a later time, the camera positions are available again. They are not saved with the project, though, so you cannot share these positions with others. Use level cameras for that.
The favorite camera actions can also be found in the menu Scene > Favorite Cameras > ...
Level Cameras
If you have a camera component in your scene, you can assign it a shortcut number in its properties. You can then jump to that location using ALT + 0-9
. If multiple camera components use the same number, it is undefined to which one the editor camera will move. Moving the editor camera to a camera component does not change the selected object.
You can also create a camera component in the scene at the current editor camera location and assign it a shortcut, by pressing CTRL + ALT + 0-9
.
Since level cameras are simply objects in the scene, they will be saved in the scene and therefore are shared with others. This can be used both for game play relevant cameras, as well as to just save some useful locations. Camera components that are not actively used for rendering, have no performance impact.
The level camera actions can also be found in the menu Scene > Favorite Cameras > ...
Field of View
The editor camera uses a fixed field of view (FOV). The FOV can be changed in the preferences.


--- layout: services title: Cloud Computing Services at MaisaSolutions description: MaisaSolutions Offers Cloud Hosting and Migration Services that ensure better security, convenience and far better results for organizations at affordable price. keywords: cloud computing services, cloud services at Maisa Solutions, Cloud Hosting services, cloud web hosting, cloud migration service, cloud services, cloud web infrastructure, Ruby on Rails cloud hosting, Cloud hosting environments ---
Cloud computing and virtualization are changing the way enterprises manage their information technology infrastructure. By paying for actual usage only, you control costs and increase efficiency. You can scale the infrastructure up (or down) much faster compared to running your own data center. The futuristic ways of procuring and managing IT infrastructure enable expenditurerprises to concentrate on their core business activities.
Want to get your job done without committing to the salary, benefits, and other ton of obligations that come with in-house IT staff? Maisa offers an option to hire our highly qualified engineers on a contract basis for a nominal per hour fee structure. Compared to conventional in-house employee hiring or hourly based contracting, you can save 50%+ of your total IT cost. You can hire developers from us for as low as USD 15/hour with free Saturdays.


AVASA
A smart home rental search app, made for tenants in London.
Finding a rental property has never been so easy!
- Optimise your commute time, so you can enjoy your new home and neighbourhood
- Find properties with parks, restaurants, schools just around the corner
- Stick to your budget
- Create your own shortlist and personal ratings
- Share your search with friends, family and flatmates for quicker decision-making
For extra help, contact your local expert ("Sherpa") to find the right home for you.
Get Avasa and start searching now! (PS: It's free..)


Drag and drop into your bookmarks bar to install:
Loading...
Loading...
Loading...
Loading...
Loading...


{{ object_for_comments.comments_count }} Commentaire{{ object_for_comments.comments_count|pluralize }}
{% comment_thread object_for_comments %} {% endif %}


---
title: Breakpoint
layout: build/doc/layouts/sass.html
---
***
# Breakpoint
***
A default range. And you may change it as a custom value.
{{#markdown}}
```scss
$sm-range: (0, 640px) !default;
$md-range: (641px, 1024px) !default;
$lg-range: (1025px, 1440px) !default;
$xl-range: (1441px, 1920px) !default;
$xxl-range: (1921px) !default;
```
{{/markdown}}
- Small range for mobile-only.
- Medium range for tablet-only.
- Large range for a laptop or a standard desktop screen size.
- Extra large for a bigger desktop screen size.
- Extra extra large for a screen size more than an usual desktop screen size.
We also cover for landscape and potrait media queries.
{{#markdown}}
```scss
$landscape: "#{$screen} and (orientation: landscape)" !default;
$portrait: "#{$screen} and (orientation: portrait)" !default;
```
{{/markdown}}
***
How to use it as your media queries?
SCSS :
{{#markdown}}
```scss
@media #($sm-only) {
@content;
}
```
{{/markdown}}


Udacity ZM
Fronte-End Ninja
Featured Work
Appify
https://github.com/udacity/Appify/
Sunflower
https://github.com/udacity/Sunflower/
Bokeh
https://github.com/udacity/Bokeh/


--- layout: post date: 2013-06-09 01:03:23 +0200 title: "Survey answers part 1: systemd has too many dependencies, or it is bloated, or it does too many things, or is too complex" categories: Artikel tags: - debian ---
This blog post is the first of a series of posts dealing with the results of the Debian systemd survey. I intend to give a presentation at DebConf 2013, too, so you could either read my posts, or watch the talk, or both :-).
The top concern shared by most people is:
systemd has too many dependencies, or it is bloated, or it does too many things, or is too complex
Now this concern actually has a lot of different facets, and I am trying to share my opinion on each of them.
First, let’s start with “too many dependencies”, because that is easy to check and reason about. I have created a document which lists all dependencies of the systemd binary itself (pid 1) and all the binaries which are currently shipped by the systemd Debian package. If you don’t want to take my word for granted, please read that document.
Have you read the document? Very nice! As you can see, the systemd binary itself has 10 dependencies (excluding libc). Now, the question is, what is bad about dependencies? Why do people list dependencies as a top concern?
enforce_user
which uses libcap. You’ll notice that the code is not complex and usage of
the libraries is clear.
Now, let’s talk about bloat. Again, this is a point which has many facets. I’d like to quote the Wikipedia definition of software bloat:
Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory or processing power, or have higher hardware requirements than the previous version whilst making only dubious user-perceptible improvements.
The first part of the definition certainly does not match systemd — it is measurably faster than sysvinit. As for memory usage: systemd’s RSS is 1.8 MiB, whereas sysvinit uses 0.8 MiB. As I argued on the “More memory use” point in the dependencies section, I think the additional resource cost is well worth the benefits.
Also note that systemd’s features are NOT all implemented in the binary which is PID 1. As explained in the dependency list, systemd consists of many cleanly separated binaries. So if a new version of systemd gathers an additional feature, this does not mean that your PID 1 will be bigger.
While systemd runs on any hardware, it has an indirect hardware requirement: it requires some Linux kernel features (which are all enabled in Debian kernels). That might rule out usage of systemd on really old embedded hardware where you don’t have a chance to update the kernel. While it is sad that those machines cannot profit from systemd, switching to systemd as a default has no downside either: Debian continues to support sysvinit for quite some time, so these machines will continue to work even with upcoming Debian versions.
The Wikipedia definition continues:
[…] perceived bloat can occur from the software servicing a large, diverse marketplace with many differing requirements. Most end users will feel they only need some limited subset of the available functions and will regard the others as unnecessary bloat, even if people with different requirements do use them.
I think the last part of the Wikipedia definition applies to systemd: it does service a large and diverse “marketplace”. That marketplace is the entirety of existing software which is started by an init system. Also, systemd can be used on a wide range of hardware (embedded devices, tablets, phones, notebooks, desktops, servers) which requires different features. As an example: on a desktop system you typically don’t care strongly about a watchdog feature, but on embedded or servers that feature is very handy. Similarly, on a tablet, forward secure sealing of logfiles is not as important as on a server. Therefore, I can understand if you feel that you don’t need many of the features systemd provides. But please think of other users and maintainers who are very happy with systemd’s benefits.
Also note that while systemd supports many things (in separate binaries!), you don’t have to use them all. It still makes sense to ship them all in the same package. Take coreutils as another example in that area. The binaries belong together, even though you most likely haven’t used all of them (e.g. od, pr, ptx, … :-)).
The remaining concern is that systemd is too complex. In my experience, complexity is often inherent to a specific area and one cannot simply make it go away. Instead, there are different models of how that complexity is represented. Think of the monolithic Linux kernel versus the MINIX microkernel. The latter has a very small amount of lines of source in the kernel, but puts the complexity into userspace. The former uses a different approach with more source in the kernel. The arguments between both camps show that neither is clearly right or clearly wrong.
In a way, sysvinit represents the MINIX model: it has a small core (the init binary itself), but a lot of complexity in shell scripts and external programs. The fact that solutions are copied from one init script to another leads to lots of subtle errors and makes code reuse really hard. systemd however has more source code in the binaries, but requires only very simple, descriptive, textual configuration instead of complex init scripts. To me, it seems preferable to have the complexity in a single place instead of distributed across lots of people and projects.
In a way, you are right. systemd centralizes complexity from tons of init scripts into a single place. However, it therefore makes it very easy for maintainers to write service files (equivalent of an init script) and provides a consistent and reliable interface for service management. Furthermore, it is different than sysvinit, and different solutions often seem complex at first. While systemd consumes more resources than sysvinit, it uses them to make more information available about services; its finer-grained service management requires more state-keeping, but in turn offers you more control over your services.


HUNT 1
NAME
hunt — Retrieve items from an mkey index.
SYNOPSIS
hunt [-agp] [-Cn] [-F[ynd]] [-i string] [-l n] [-o string] [-T[ynd]] [-t string] < file
DESCRIPTION
The hunt program retrieves items from an index. It combines, as mentioned above, the two parts of that process: search and delivery. The reason why it is efficient to combine delivery and search is partly to avoid starting unnecessary processes, and partly because the delivery operation must be a part of the search operation in any case. Because of the hashing, the search part takes place in two stages: first items are retrieved which have the right hash codes associated with them, and then the actual items are inspected to determine false drops, i.e. to determine if anything with the right hash codes doesn’t really have the right keys. Since the original item is retrieved to check on false drops, it is efficient to present it immediately, rather than only giving the tag as output and later retrieving the item again. If there were a separate key file, this argument would not apply, but separate key files are not common.
Input to hunt is taken from the standard input, one query per line. Each query should be in mkey -s output format; all lower case, no punctuation. The hunt program takes one argument which specifies the base name of the index files to be searched. Only one set of index files can be searched at a time, although many text files may be indexed as a group, of course. If one of the text files has been changed since the index, that file is searched with fgrep; this may occasionally slow down the searching, and care should be taken to avoid having many out of date files.
The following option arguments are recognized by hunt:
- -a: Give all output; ignore checking for false drops.
- -Cn: Coordination level n; retrieve items with not more than n terms of the input missing; default -C0 , implying that each search term must be in the output items.
- -F[ynd]: "-Fy" gives the text of all the items found; "-Fn" suppresses them. "-Fd" where d is an integer gives the text of the first d items. The default is -Fy.
- -g: Do not use fgrep to search files changed since the index was made; print an error comment instead.
- -i string: Take string as input, instead of reading the standard input.
- -l n: The maximum length of internal lists of candidate items is n; default is 1000.
- -o string: Put text output ("Fy") in string; of use only when invoked from another program.
- -p: Print hash code frequencies; mostly for use in optimizing hash table sizes.
- -T[ynd]: "-Ty" gives the tags of the items found; "-Tn" suppresses them. "-Td" where d is an integer gives the first d tags. The default is -Tn.
- -t string: Put tag output ("-Ty") in string; of use only when invoked from another program.
The timing of hunt is complex. Normally the hash table is overfull, so that there will be many false drops on any single term; but a multi-term query will have few false drops on all terms. Thus if a query is underspecified (one search term) many potential items will be examined and discarded as false drops, wasting time. If the query is overspecified (a dozen search terms) many keys will be examined only to verify that the single item under consideration has that key posted.
As would be expected, the optimal search is achieved when the query just specifies the answer; however, overspecification is quite cheap. In general, overspecification can be recommended; it protects the user against additions to the data base which turn previously uniquely-answered queries into ambiguous queries.
FILES
@BINDIR@/hunt Executable.
LICENSE
The text of this manual page comes from Some application of Inverted Indexes in the UNIX System by M. E. Lesk, which is distributed under the bsd4 license. The software hunt is distributed under the cddl license.
SEE ALSO
refer(1), referformat(7), sortbib(1), hunt(1), mkey(1), inv(1), and Some application of Inverted Indexes in the UNIX System by M. E. Lesk.
AUTHORS
M. E. Lesk, modified by Pierre-Jean Fichet.


Upload Sensory and Transition Probabilities File |
|---|
| Select a comma or space delimited file from your computer file system. It should represent a sequence sensory and transition probabilities. The length of the sequence must be equal to 8, and the eight probabilities must be in the following order: P(B|B), P(B|L), P(L|L), P(L|B), P(H|B), P(T|B), P(H|L), and P(T|L). For example, a correctly formatted input file would look like this: |
| 0.7, 0.3, 0.6, 0.4, 0.5, 0.5, 0.9, 0.1 OR |
| 0.7 0.3 0.6 0.4 0.5 0.5 0.9 0.1 |


@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import uk.gov.hmrc.http.SessionKeys @import layouts.{govuk_template => hmrcGovUkTemplate} @import uk.gov.hmrc.play.views.html.{layouts => uiLayouts} @import uk.gov.hmrc.play.views.html.{helpers => uiHelpers} @import views.html.helpers._ @import utils.SCRSFeatureSwitches @import controllers.reg.routes.SignInOutController @(appConfig: config.FrontendAppConfig, title: String, mainClass: Option[String] = None, mainDataAttributes: Option[Html] = None, bodyClasses: Option[String] = None, sidebar: Html = Html(""), contentHeader: Option[Html] = None, mainContent: Html = Html(""), serviceInfoContent: Html = Html(""), pageScripts: Option[Html] = None, timeout: Boolean = false)(implicit request: Request[_], messages: Messages) @head = { @uiLayouts.headWithTrackingConsent( linkElem = None, headScripts = None) } @headerNavLinks = {


QSSPreview
v1.0.0
Q: How do I use it?
Specify .ui and .qss files
Freely modify .ui and .qss files
The result will be shown to you immidiately
Finish work early and go for a beer!
You can specify .ui and .qss files in any of the following ways:
As command line arguments (order does not matter)
Drag-and-drop one after another or both at a time
Using open-file dialogs
Re-open last used files
Oh! And one more cool thing: if your .ui form is relying on a .qrc resource file, it will be dynamically loaded and added to the resources. So, for example, you can see how the QSS matches up with custom icons of your application.
Q: What is the license? I would like to use the source codes.
QSSPreview is under the
MIT software license. You can use it as you wish, just don't forget to provide attribution back to me and don't hold me liable.
Q: Hey, this tool was helpful! Do you take donations?
Was this tool helpful? This makes me happy! You could buy me a virtual beer if you wish so.
Q: I have some feedback/comments/ideas...
Please contact me via e-mail<EMAIL_ADDRESS>Copyright (c) 2014 Artem Amirkhanov


WITNESS LIST Criminal Jurisprudence Committee (SUBCOMMITTEE ON Enhancements) April 28, 2005-2:00P HB 715 For: Caldwell, Jim (Self and Texas Silver Haired Legislature) Higgins, Carlos (Self and Texas Silver-Haired Legislature) Against: England, Samuel J. (ACLU of Texas) HB 717 For: Caldwell, Jim (Self and Texas Silver Haired Legislature) Higgins, Carlos (Self and Texas Silver-Haired Legislature) Rodriguez, Tomas (AARP) Against: England, Samuel J. (ACLU of Texas) HB 1838 On: Masur, Wes (Texas State Parks Law Enforcement Program) HB 2271 For: Beck, James (CLEAT- Combined Law Enforcement Associations of Texas) HB 2911 For: Lowen, Andrew (Texas State Fraternal Order of Police) On: McDaniel, Suzanne (Office of the Attorney General) HB 3131 For: Bull, John (Self) Tamez, Javier (Self) Vasquez, John (Self and Texas Municipal Courts Association) On: Turner, Ryan Kellus (Texas Municipal Courts Education Center) HB 3260 Against: England, Samuel J. (ACLU of Texas)


TREE-DOM
254
HOME
ABOUT
EVENTS
PARTICIPATE
LEARN MORE
CONTACT
Lets plant a Tree and save life
Tree provide us with fruits
Tree act as sheltor to some animals
A tree makes a good environment
provide food to animals


Online SMS
Logout
×
Please ensure that your browser is not blocking Popups from http://sms.fauzism.com.
{% if status is sameas 100 %}
Your phone is not yet registered. Install
Online SMS
app on your Android Phone from Play Store and register.
{% endif %}
Contact Name/Number
Message
(Maximum characters: 3500)
characters left.
Send
Send to Phone #
No matches found
×
Yousuf Fauzan
Fetching Contacts from Google.


TABLE OF INTERACTIONS WITH
MONOCLONAL ANTIBODIES (EXCEPT ANTI-TNF ALPHA)
From the French ANSM drug interactions document of September 2016, p. 24
MONOCLONAL ANTIBODIES (EXCEPT ANTI-TNF ALPHA) CLASS CODE: MONANT |
ATTENUATED LIVE VIRUS VACCINES CLASS CODE: J07B-001 |
Risk of general vaccine disease, possibly fatal. |
Not recommended with: --belimumab, blinatumomab, canakinumab, obinutuzumab, ofatumumab, rituximab, tocilizumab, ustekinumab Take into account with: --bevacizumab, brentuximab, cetuximab, denosumab, ibritumomab, ipilimumab, natalizumab, nivolumab, panitumumab, pembrolizumab, ramucirumab, trastuzumab, vedolizumab |


WalletBalance(totalZatoshi: Long = -1, availableZatoshi: Long = -1)
Data structure to hold the total and available balance of the wallet. This is what is received on the balance channel.
totalZatoshi
- the total balance, ignoring funds that cannot be used.
availableZatoshi
- the amount of funds that are available for use. Typical reasons that funds
may be unavailable include fairly new transactions that do not have enough confirmations or
notes that are tied up because we are awaiting change from a transaction. When a note has
been spent, its change cannot be used until there are enough confirmations.


Tennessee Medicaid officials want more postpartum coverage
NASHVILLE, Tenn. (AP) - Officials with Tennessee’s Medicaid program want to expand postpartum health insurance for low-income women.
The Tennessean reports TennCare Deputy Director Stephen Smith announced at a Wednesday state budget hearing that the program hopes to expand the program current two-month coverage to an entire year.
Smith says the move was inspired by 52 Tennessee women who died in 2017 within a year of giving birth. He says many of the women suffered opioid additions and, with the risk of relapse heightened postpartum, most died from overdoses after their TennCare coverage ended.
TennCare estimates that up to 6,500 women currently not eligible for state insurance could be covered by the extended program. TennCare’s budget presentation proposes a three-year pilot of the expansion, which it says may cost about $19.5 million annually.
Information from: The Tennessean, http://www.tennessean.com
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


public static class NMapView.LayoutParams
extends android.view.ViewGroup.LayoutParams
| Modifier and Type | Field and Description |
|---|---|
static int |
BOTTOM
Horizontal alignment: Align bottom.
|
static int |
BOTTOM_CENTER
Alignment: Align to bottom vertically, center horizontally.
|
static int |
BOTTOM_RIGHT
Alignment: Align to bottom right.
|
static int |
CENTER
Alignment: Align center in both dimensions.
|
static int |
CENTER_HORIZONTAL
Horizontal alignment: Align center horizontally.
|
static int |
CENTER_VERTICAL
Vertical alignment: Align center vertically.
|
int |
gravity
Placement of child relative to the location or to the map view.
|
static int |
LEFT
Horizontal alignment: Align left.
|
int |
mode
The layout mode.
|
static int |
MODE_MAP
Layout mode: map relative.
|
static int |
MODE_VIEW
Layout mode: map view relative.
|
NGeoPoint |
point
The location of the child on the map.
|
int |
px
The x location of the child relative to the view.
|
int |
py
The y location of the child relative to the view.
|
static int |
RIGHT
Horizontal alignment: Align right.
|
static int |
TOP
Vertical alignment: Align top.
|
static int |
TOP_LEFT
Alignment: Align to top left.
|
static int |
TOP_RIGHT
Alignment: Align to top right.
|
| Constructor and Description |
|---|
LayoutParams(android.content.Context ctx,
android.util.AttributeSet attrs)
Creates a new set of layout parameters.
|
LayoutParams(int width,
int height) |
LayoutParams(int width,
int height,
int gravity)
Creates a new set of layout parameters with the specified width, height and gravity.
|
LayoutParams(int width,
int height,
int px,
int py,
int gravity)
Creates a new set of layout parameters with the specified width, height and location.
|
LayoutParams(int width,
int height,
NGeoPoint point,
int gravity)
Creates a new set of layout parameters with the specified width, height and location.
|
LayoutParams(int width,
int height,
NGeoPoint point,
int px,
int py,
int gravity)
Creates a new set of layout parameters with the specified width, height and location.
|
LayoutParams(android.view.ViewGroup.LayoutParams source)
Defaults to mode MODE_VIEW and gravity CENTER.
|
public static final int MODE_MAP
public static final int MODE_VIEW
public static final int LEFT
public static final int RIGHT
public static final int TOP
public static final int BOTTOM
public static final int CENTER_HORIZONTAL
public static final int CENTER_VERTICAL
public static final int CENTER
public static final int TOP_LEFT
public static final int TOP_RIGHT
public static final int BOTTOM_CENTER
public static final int BOTTOM_RIGHT
public int mode
public NGeoPoint point
public int px
public int py
public int gravity
public LayoutParams(int width, int height, NGeoPoint point, int gravity)
width
- The width, either ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT or a fixed size in pixels.height
- The height, either ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT or a fixed size in pixels.point
- The location of the child.gravity
- The gravity to use.public LayoutParams(int width, int height, NGeoPoint point, int px, int py, int gravity)
width
- The width, either ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT or a fixed size in pixels.height
- The height, either ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT or a fixed size in pixels.point
- The location of the child.px
- The location of the child relative to the view.py
- The location of the child relative to the view.gravity
- The gravity to use.public LayoutParams(int width, int height, int px, int py, int gravity)
width
- The width, either ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT or a fixed size in pixels.height
- The height, either ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT or a fixed size in pixels.px
- The location of the child relative to the view.py
- The location of the child relative to the view.gravity
- The gravity to use.public LayoutParams(int width, int height)
public LayoutParams(int width, int height, int gravity)
width
- The width, either ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT or a fixed size in pixels.height
- The height, either ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT or a fixed size in pixels.gravity
- The gravity to use.public LayoutParams(android.view.ViewGroup.LayoutParams source)
public LayoutParams(android.content.Context ctx, android.util.AttributeSet attrs)
c
- The application environment.attrs
- The set of attributes from which to extract the layout parameters values.


IONIC 2 Boilerplate
Table of Contents
Features
- Ionic RC4
- Yarn for fast, reliable, and secure dependency management.
- BetterScripts for better NPM scripts.
- ENV variables from package.json injected automatically.
- Documentation with Typedoc.
- Continuous Integration with Gitlab CI see here for info.
- Automatic apk only when pushing to release branch.
- Automatic ipa through ionic package only when pushing to release branch.
- A Docker image.
- Tests
- Unit tests with Karma.
- E2E tests with Protractor.
- Screenshot reporter for Protractor.
- Linting
- GIT
- Automatic alignment of app version in config.xml from package.json through cordova hook.
Installation & Configuration
Pre-Install Commands
# Required dependencies (on Mac also install ios-sim and ios-deploy)
npm i –g cordova ionic yarn
gem install scss-lint
# Clone the repo –depth 1 removes all but one .git commit history
git clone –depth 1 <<path/to/gitrepo.git>>
# Change directory
cd ionic2-boilerplate
# Install project dependencies
yarn
npm run post-install
Note: you should have ruby 2 installed to run scss-lint.
NPM scripts commands
| Task |
Description |
dev |
run ionic serve |
build |
Full production build. Use --dev flag for dev build. |
release |
generate changelog based on commits |
push |
shortcut for git push origin master --follow-tags |
lint |
lint with tslint |
scss-lint |
lint scss |
test |
runs Karma test |
test:watch |
runs Karma test watching for edits (usefull for TDD) |
e2e |
runs e2e protractor tests |
e2e:interactive |
runs e2e protractor tests in interactive mode |
outdated |
search npm packages for outdated dependencies |
ios:dev |
build .ipa using dev environment vars |
ios:release |
build .ipa with production environment vars |
android:dev |
build .apk using dev environment vars |
android:devworeload |
build .apk using dev environment vars without livereload |
android:release |
build .apk with production environment vars |
Gitlab CI Configuration
- To get the automatic .ipa from ionic package first setup a ionic.io profile with certificates for ios. Secondly add the following Secret variables in Gitlab. N.B. Be sure to don't show Build results (edit project settings) for your repo otherwise those vars could be exposed.
| Key |
Description |
IONIC_LOGIN_EMAIL |
Your ionic.io email |
IONIC_LOGIN_PASSWORD |
Your ionic.io password |
IONIC_PACKAGE_BUILD_RELEASE |
(Optional) Indicate whether this is a release build. Possible values are true or false . Defaults to false . |
IONIC_PACKAGE_BUILD_PROFILE |
Security profile to use for the build, as defined in Ionic.io console. |
Tips
Useful Links
Ionic & Cordova
- Avoid the use of ionic state commands and also ionic plugin/platform. Use directly cordova prepare (or cordova plugin/platform). Also save your plugin/platform only inside config.xml, not package.json to avoid confusion. See this for further informations.
Webstorm
- Set code style for typesript:
- {import} -> { import }
- import from "lodash" -> import from 'lodash'
- Set typescript settings to be used with the version inside node_modules instead of the bundled one (1.8)
- Don't activate typescript compiler.
- Enable tslint in settings
- Download scss lint plugin and enable it
Docs
To generate docs tsconfig.json has to be appended
"target": "es6"
instead of "target": "es5"
. Do not forget to change it back afterwards.
With this typedocs recognizes es6 constructs.
How To release ios/ android apps
A complete guide how to publish the app on the appstore / playstore can be found here
- General
- If you're using Ionic 2.x the command "ionic cordova build ..." does not work, use "ionic build ..." instead (without cordova)
- If you encounter any issues during building the project with js-file ("spawn acces")
- "chmod +x path-to-js-file"
- use the npm run command (ios:devworeload or android:devworeload) to deploy a debug version of the app to your connected device (without live reload)
- Android
- Keytool already exists, do not create a new one. if you want to update the existing app in the playstore
- iOS
- Releasing a new version can take some days due to the reviewing policy of apple


This project offered a great lesson on how bad spacing and indentation could affect the readaility of code. The current version has code written with care towards indentatin and spacing.It was coded entirely in HTML.
This project offered my first crash course into using CSS classes to format multiple related elements rather than either one at a time or all similarly named elements.It was coded in HTML and CSS.
This project built on use of css classes while also introducing me to div and span elements to group other elements together for collective manipulation. It was coded in HTML and CSS.
Don Moses is a student at Moringa School studying software development. He is 22 years old and hopes to become proficient at programming effectively rather than a jumbled mess. He is most familiar with Python language with a background in data science studies but lack of a deeper understanding in its use towards object oriented programming or rather, software development. His hobbies including reading long books, gaming and a healthy nap. He has had previous education at Moringa school studying machine learning and at Strathmore University studying computer science and data science.
He decided to join Moringa school to gain a better understanding of the software development life cycle as he felt it would be a great addition to previous ventures and also make him more receptive of working in teams of coders with a view of a future entailed in working with other coders. He wishes that the experience will be worth it in the end.


class TZInfo::Timestamp
A time represented as an `Integer` number of seconds since 1970-01-01 00:00:00 UTC (ignoring leap seconds), the fraction through the second (sub_second
as a `Rational`) and an optional UTC offset. Like Ruby's `Time` class, {Timestamp} can distinguish between a local time with a zero offset and a time specified explicitly as UTC.
Constants
- JD_EPOCH
The Unix epoch (1970-01-01 00:00:00 UTC) as a chronological Julian day number.
Attributes
@return [Numeric] the fraction of a second elapsed since timestamp as
either a `Rational` or the `Integer` 0. Always greater than or equal to 0 and less than 1.
@return [Integer] the offset from UTC in seconds or `nil` if the
{Timestamp} doesn't have a specified offset.
@return [Integer] the number of seconds since 1970-01-01 00:00:00 UTC
ignoring leap seconds (i.e. each day is treated as if it were 86,400 seconds long).
Public Class Methods
Returns a new {Timestamp} representing the (Gregorian calendar) date and time specified by the supplied parameters.
If `utc_offset` is `nil`, `:utc` or 0, the date and time parameters will be interpreted as representing a UTC date and time. Otherwise the date and time parameters will be interpreted as a local date and time with the given offset.
@param year [Integer] the year. @param month [Integer] the month (1-12). @param day [Integer] the day of the month (1-31). @param hour [Integer] the hour (0-23). @param minute [Integer] the minute (0-59). @param second [Integer] the second (0-59). @param sub_second
[Numeric] the fractional part of the second as either
a `Rational` that is greater than or equal to 0 and less than 1, or the `Integer` 0.
@param utc_offset
[Object] either `nil` for a {Timestamp} without a
specified offset, an offset from UTC specified as an `Integer` number of seconds or the `Symbol` `:utc`).
@return [Timestamp] a new {Timestamp} representing the specified
(Gregorian calendar) date and time.
@raise [ArgumentError] if either of `year`, `month`, `day`, `hour`,
`minute`, or `second` is not an `Integer`.
@raise [ArgumentError] if `sub_second` is not a `Rational`, or the
`Integer` 0.
@raise [ArgumentError] if `utc_offset` is not `nil`, not an `Integer`
and not the `Symbol` `:utc`.
@raise [RangeError] if `month` is not between 1 and 12. @raise [RangeError] if `day` is not between 1 and 31. @raise [RangeError] if `hour` is not between 0 and 23. @raise [RangeError] if `minute` is not between 0 and 59. @raise [RangeError] if `second` is not between 0 and 59. @raise [RangeError] if `sub_second` is a `Rational` but that is less
than 0 or greater than or equal to 1
# File lib/tzinfo/timestamp.rb, line 54 def create(year, month = 1, day = 1, hour = 0, minute = 0, second = 0, sub_second = 0, utc_offset = nil) raise ArgumentError, 'year must be an Integer' unless year.kind_of?(Integer) raise ArgumentError, 'month must be an Integer' unless month.kind_of?(Integer) raise ArgumentError, 'day must be an Integer' unless day.kind_of?(Integer) raise ArgumentError, 'hour must be an Integer' unless hour.kind_of?(Integer) raise ArgumentError, 'minute must be an Integer' unless minute.kind_of?(Integer) raise ArgumentError, 'second must be an Integer' unless second.kind_of?(Integer) raise RangeError, 'month must be between 1 and 12' if month < 1 || month > 12 raise RangeError, 'day must be between 1 and 31' if day < 1 || day > 31 raise RangeError, 'hour must be between 0 and 23' if hour < 0 || hour > 23 raise RangeError, 'minute must be between 0 and 59' if minute < 0 || minute > 59 raise RangeError, 'second must be between 0 and 59' if second < 0 || second > 59 # Based on days_from_civil from https://howardhinnant.github.io/date_algorithms.html#days_from_civil after_february = month > 2 year -= 1 unless after_february era = year / 400 year_of_era = year - era * 400 day_of_year = (153 * (month + (after_february ? -3 : 9)) + 2) / 5 + day - 1 day_of_era = year_of_era * 365 + year_of_era / 4 - year_of_era / 100 + day_of_year days_since_epoch = era * 146097 + day_of_era - 719468 value = ((days_since_epoch * 24 + hour) * 60 + minute) * 60 + second value -= utc_offset if utc_offset.kind_of?(Integer) new(value, sub_second, utc_offset) end
When used without a block, returns a {Timestamp} representation of a given `Time`, `DateTime` or {Timestamp}.
When called with a block, the {Timestamp} representation of `value` is passed to the block. The block must then return a {Timestamp}, which will be converted back to the type of the initial value. If the initial value was a {Timestamp}, the block result will just be returned.
The UTC offset of `value` can either be preserved (the {Timestamp} representation will have the same UTC offset as `value`), ignored (the {Timestamp} representation will have no defined UTC offset), or treated as though it were UTC (the {Timestamp} representation will have a {utc_offset} of 0 and {utc?} will return `true`).
@param value [Object] a `Time`, `DateTime` or {Timestamp}. @param offset [Symbol] either `:preserve` to preserve the offset of
`value`, `:ignore` to ignore the offset of `value` and create a {Timestamp} with an unspecified offset, or `:treat_as_utc` to treat the offset of `value` as though it were UTC and create a UTC {Timestamp}.
@yield [timestamp] if a block is provided, the {Timestamp}
representation is passed to the block.
@yieldparam timestamp [Timestamp] the {Timestamp} representation of
`value`.
@yieldreturn [Timestamp] a {Timestamp} to be converted back to the type
of `value`.
@return [Object] if called without a block, the {Timestamp}
representation of `value`, otherwise the result of the block, converted back to the type of `value`.
# File lib/tzinfo/timestamp.rb, line 110 def for(value, offset = :preserve) raise ArgumentError, 'value must be specified' unless value case offset when :ignore ignore_offset = true target_utc_offset = nil when :treat_as_utc ignore_offset = true target_utc_offset = :utc when :preserve ignore_offset = false target_utc_offset = nil else raise ArgumentError, 'offset must be :preserve, :ignore or :treat_as_utc' end time_like = false timestamp = case value when Time for_time(value, ignore_offset, target_utc_offset) when DateTime for_datetime(value, ignore_offset, target_utc_offset) when Timestamp for_timestamp(value, ignore_offset, target_utc_offset) else raise ArgumentError, "#{value.class} values are not supported" unless is_time_like?(value) time_like = true for_time_like(value, ignore_offset, target_utc_offset) end if block_given? result = yield timestamp raise ArgumentError, 'block must return a Timestamp' unless result.kind_of?(Timestamp) case value when Time result.to_time when DateTime result.to_datetime else # A Time-like value or a Timestamp time_like ? result.to_time : result end else timestamp end end
Initializes a new {Timestamp}.
@param value [Integer] the number of seconds since 1970-01-01 00:00:00 UTC
ignoring leap seconds.
@param sub_second
[Numeric] the fractional part of the second as either a
`Rational` that is greater than or equal to 0 and less than 1, or the `Integer` 0.
@param utc_offset
[Object] either `nil` for a {Timestamp} without a
specified offset, an offset from UTC specified as an `Integer` number of seconds or the `Symbol` `:utc`).
@raise [ArgumentError] if `value` is not an `Integer`. @raise [ArgumentError] if `sub_second` is not a `Rational`, or the
`Integer` 0.
@raise [RangeError] if `sub_second` is a `Rational` but that is less
than 0 or greater than or equal to 1
@raise [ArgumentError] if `utc_offset` is not `nil`, not an `Integer` and
not the `Symbol` `:utc`.
# File lib/tzinfo/timestamp.rb, line 342 def initialize(value, sub_second = 0, utc_offset = nil) raise ArgumentError, 'value must be an Integer' unless value.kind_of?(Integer) raise ArgumentError, 'sub_second must be a Rational or the Integer 0' unless (sub_second.kind_of?(Integer) && sub_second == 0) || sub_second.kind_of?(Rational) raise RangeError, 'sub_second must be >= 0 and < 1' if sub_second < 0 || sub_second >= 1 raise ArgumentError, 'utc_offset must be an Integer, :utc or nil' if utc_offset && utc_offset != :utc && !utc_offset.kind_of?(Integer) initialize!(value, sub_second, utc_offset) end
Creates a new UTC {Timestamp}.
@param value [Integer] the number of seconds since 1970-01-01 00:00:00
UTC ignoring leap seconds.
@param sub_second
[Numeric] the fractional part of the second as either
a `Rational` that is greater than or equal to 0 and less than 1, or the `Integer` 0.
@raise [ArgumentError] if `value` is not an `Integer`. @raise [ArgumentError] if `sub_second` is not a `Rational`, or the
`Integer` 0.
@raise [RangeError] if `sub_second` is a `Rational` but that is less
than 0 or greater than or equal to 1
# File lib/tzinfo/timestamp.rb, line 170 def utc(value, sub_second = 0) new(value, sub_second, :utc) end
Private Class Methods
Creates a {Timestamp} that represents a given `DateTime`, optionally ignoring the offset.
@param datetime [DateTime] a `DateTime`. @param ignore_offset [Boolean] whether to ignore the offset of
`datetime`.
@param target_utc_offset [Object] if `ignore_offset` is `true`, the UTC
offset of the result (`:utc`, `nil` or an `Integer`).
@return [Timestamp] the {Timestamp} representation of `datetime`.
# File lib/tzinfo/timestamp.rb, line 229 def for_datetime(datetime, ignore_offset, target_utc_offset) value = (datetime.jd - JD_EPOCH) * 86400 + datetime.sec + datetime.min * 60 + datetime.hour * 3600 sub_second = datetime.sec_fraction if ignore_offset utc_offset = target_utc_offset else utc_offset = (datetime.offset * 86400).to_i value -= utc_offset end new!(value, sub_second, utc_offset) end
Creates a {Timestamp} that represents a given `Time`, optionally ignoring the offset.
@param time [Time] a `Time`. @param ignore_offset [Boolean] whether to ignore the offset of `time`. @param target_utc_offset [Object] if `ignore_offset` is `true`, the UTC
offset of the result (`:utc`, `nil` or an `Integer`).
@return [Timestamp] the {Timestamp} representation of `time`.
# File lib/tzinfo/timestamp.rb, line 204 def for_time(time, ignore_offset, target_utc_offset) value = time.to_i sub_second = time.subsec if ignore_offset utc_offset = target_utc_offset value += time.utc_offset elsif time.utc? utc_offset = :utc else utc_offset = time.utc_offset end new!(value, sub_second, utc_offset) end
Creates a {Timestamp} that represents a given `Time`-like object, optionally ignoring the offset (if the `time_like` responds to `utc_offset`).
@param time_like [Object] a `Time`-like object. @param ignore_offset [Boolean] whether to ignore the offset of `time`. @param target_utc_offset [Object] if `ignore_offset` is `true`, the UTC
offset of the result (`:utc`, `nil` or an `Integer`).
@return [Timestamp] the {Timestamp} representation of `time_like`.
# File lib/tzinfo/timestamp.rb, line 294 def for_time_like(time_like, ignore_offset, target_utc_offset) value = time_like.to_i sub_second = time_like.subsec.to_r if ignore_offset utc_offset = target_utc_offset value += time_like.utc_offset.to_i if time_like.respond_to?(:utc_offset) elsif time_like.respond_to?(:utc_offset) utc_offset = time_like.utc_offset.to_i else utc_offset = 0 end new(value, sub_second, utc_offset) end
Returns a {Timestamp} that represents another {Timestamp}, optionally ignoring the offset. If the result would be identical to `value`, the same instance is returned. If the passed in value is an instance of a subclass of {Timestamp}, then a new {Timestamp} will always be returned.
@param timestamp [Timestamp] a {Timestamp}. @param ignore_offset [Boolean] whether to ignore the offset of
`timestamp`.
@param target_utc_offset [Object] if `ignore_offset` is `true`, the UTC
offset of the result (`:utc`, `nil` or an `Integer`).
@return [Timestamp] a [Timestamp] representation of `timestamp`.
# File lib/tzinfo/timestamp.rb, line 254 def for_timestamp(timestamp, ignore_offset, target_utc_offset) if ignore_offset if target_utc_offset unless target_utc_offset == :utc && timestamp.utc? || timestamp.utc_offset == target_utc_offset return new!(timestamp.value + (timestamp.utc_offset || 0), timestamp.sub_second, target_utc_offset) end elsif timestamp.utc_offset return new!(timestamp.value + timestamp.utc_offset, timestamp.sub_second) end end unless timestamp.instance_of?(Timestamp) # timestamp is identical in value, sub_second and utc_offset but is a # subclass (i.e. TimestampWithOffset). Return a new Timestamp # instance. return new!(timestamp.value, timestamp.sub_second, timestamp.utc? ? :utc : timestamp.utc_offset) end timestamp end
Determines if an object is like a `Time` (for the purposes of converting to a {Timestamp} with {for}), responding to `to_i` and `subsec`.
@param value [Object] an object to test. @return [Boolean] `true` if the object is `Time`-like, otherwise
`false`.
# File lib/tzinfo/timestamp.rb, line 281 def is_time_like?(value) value.respond_to?(:to_i) && value.respond_to?(:subsec) end
Constructs a new instance of `self` (i.e. {Timestamp} or a subclass of {Timestamp}) without validating the parameters. This method is used internally within {Timestamp} to avoid the overhead of checking parameters.
@param value [Integer] the number of seconds since 1970-01-01 00:00:00
UTC ignoring leap seconds.
@param sub_second
[Numeric] the fractional part of the second as either
a `Rational` that is greater than or equal to 0 and less than 1, or the `Integer` 0.
@param utc_offset
[Object] either `nil` for a {Timestamp} without a
specified offset, an offset from UTC specified as an `Integer` number of seconds or the `Symbol` `:utc`).
@return [Timestamp] a new instance of `self`.
# File lib/tzinfo/timestamp.rb, line 190 def new!(value, sub_second = 0, utc_offset = nil) result = allocate result.send(:initialize!, value, sub_second, utc_offset) result end
Public Instance Methods
Compares this {Timestamp} with another.
{Timestamp} instances without a defined UTC offset are not comparable with {Timestamp} instances that have a defined UTC offset.
@param t [Timestamp] the {Timestamp} to compare this instance with. @return [Integer] -1, 0 or 1 depending if this instance is earlier, equal
or later than `t` respectively. Returns `nil` when comparing a {Timestamp} that does not have a defined UTC offset with a {Timestamp} that does have a defined UTC offset. Returns `nil` if `t` is not a {Timestamp}.
# File lib/tzinfo/timestamp.rb, line 452 def <=>(t) return nil unless t.kind_of?(Timestamp) return nil if utc_offset && !t.utc_offset return nil if !utc_offset && t.utc_offset result = value <=> t.value result = sub_second <=> t.sub_second if result == 0 result end
Adds a number of seconds to the {Timestamp} value, setting the UTC offset of the result.
@param seconds [Integer] the number of seconds to be added. @param utc_offset
[Object] either `nil` for a {Timestamp} without a
specified offset, an offset from UTC specified as an `Integer` number of seconds or the `Symbol` `:utc`).
@return [Timestamp] the result of adding `seconds` to the
{Timestamp} value as a new {Timestamp} instance with the chosen `utc_offset`.
@raise [ArgumentError] if `seconds` is not an `Integer`. @raise [ArgumentError] if `utc_offset` is not `nil`, not an `Integer` and
not the `Symbol` `:utc`.
# File lib/tzinfo/timestamp.rb, line 370 def add_and_set_utc_offset(seconds, utc_offset) raise ArgumentError, 'seconds must be an Integer' unless seconds.kind_of?(Integer) raise ArgumentError, 'utc_offset must be an Integer, :utc or nil' if utc_offset && utc_offset != :utc && !utc_offset.kind_of?(Integer) return self if seconds == 0 && utc_offset == (@utc ? :utc : @utc_offset) Timestamp.send(:new!, @value + seconds, @sub_second, utc_offset) end
@return [Integer] a hash based on the value, sub-second and whether there
is a defined UTC offset.
# File lib/tzinfo/timestamp.rb, line 466 def hash [@value, @sub_second<EMAIL_ADDRESS>end
@return [String] the internal object state as a programmer-readable
`String`.
# File lib/tzinfo/timestamp.rb, line 472 def inspect "#<#{self.class}: @value=#{@value}, @sub_second=#{@sub_second}, <EMAIL_ADDRESS><EMAIL_ADDRESS>end
Formats this {Timestamp} according to the directives in the given format string.
@param format [String] the format string. Please refer to `Time#strftime`
for a list of supported format directives.
@return [String] the formatted {Timestamp}. @raise [ArgumentError] if `format` is not specified.
# File lib/tzinfo/timestamp.rb, line 424 def strftime(format) raise ArgumentError, 'format must be specified' unless format to_time.strftime(format) end
Converts this {Timestamp} to a `DateTime`.
@return [DateTime] a DateTime representation of this {Timestamp}. If the
UTC offset of this {Timestamp} is not specified, a UTC `DateTime` will be returned.
# File lib/tzinfo/timestamp.rb, line 404 def to_datetime new_datetime end
Converts this {Timestamp} to an `Integer` number of seconds since 1970-01-01 00:00:00 UTC (ignoring leap seconds).
@return [Integer] an Integer representation of this {Timestamp} (the
number of seconds since 1970-01-01 00:00:00 UTC ignoring leap seconds).
# File lib/tzinfo/timestamp.rb, line 413 def to_i value end
@return [String] a `String` representation of this {Timestamp}.
# File lib/tzinfo/timestamp.rb, line 430 def to_s return value_and_sub_second_to_s unless @utc_offset return "#{value_and_sub_second_to_s} UTC" if @utc sign = @utc_offset >= 0 ? '+' : '-' min, sec = @utc_offset.abs.divmod(60) hour, min = min.divmod(60) "#{value_and_sub_second_to_s(@utc_offset)} #{sign}#{'%02d' % hour}:#{'%02d' % min}#{sec > 0 ? ':%02d' % sec : nil}#{@utc_offset != 0 ? " (#{value_and_sub_second_to_s} UTC)" : nil}" end
Converts this {Timestamp} to a `Time`.
@return [Time] a `Time` representation of this {Timestamp}. If the UTC
offset of this {Timestamp} is not specified, a UTC `Time` will be returned.
# File lib/tzinfo/timestamp.rb, line 389 def to_time time = new_time if @utc_offset && !@utc time.localtime(@utc_offset) else time.utc end end
@return [Timestamp] a UTC {Timestamp} equivalent to this instance. Returns
`self` if {#utc? self.utc?} is `true`.
# File lib/tzinfo/timestamp.rb, line 379 def utc return self if @utc Timestamp.send(:new!, @value, @sub_second, :utc) end
@return [Boolean] `true` if this {Timestamp} represents UTC, `false` if
the {Timestamp} wasn't specified as UTC or `nil` if the {Timestamp} has no specified offset.
# File lib/tzinfo/timestamp.rb, line 353 def utc? @utc end
Protected Instance Methods
Constructs a new instance of a `DateTime` or `DateTime`-like class with the same {value}, {sub_second} and {utc_offset} as this {Timestamp}.
@param klass [Class] the class to instantiate.
@private
# File lib/tzinfo/timestamp.rb, line 494 def new_datetime(klass = DateTime) datetime = klass.jd(JD_EPOCH + ((@value.to_r + @sub_second) / 86400)) @utc_offset && @utc_offset != 0 ? datetime.new_offset(Rational(@utc_offset, 86400)) : datetime end
Creates a new instance of a `Time` or `Time`-like class matching the {value} and {sub_second} of this {Timestamp}, but not setting the offset.
@param klass [Class] the class to instantiate.
@private
# File lib/tzinfo/timestamp.rb, line 484 def new_time(klass = Time) klass.at(@value, @sub_second * 1_000_000) end
Private Instance Methods
Initializes a new {Timestamp} without validating the parameters. This method is used internally within {Timestamp} to avoid the overhead of checking parameters.
@param value [Integer] the number of seconds since 1970-01-01 00:00:00 UTC
ignoring leap seconds.
@param sub_second
[Numeric] the fractional part of the second as either a
`Rational` that is greater than or equal to 0 and less than 1, or the `Integer` 0.
@param utc_offset
[Object] either `nil` for a {Timestamp} without a
specified offset, an offset from UTC specified as an `Integer` number of seconds or the `Symbol` `:utc`).
# File lib/tzinfo/timestamp.rb, line 534 def initialize!(value, sub_second = 0, utc_offset = nil) @value = value # Convert Rational(0,1) to 0. @sub_second = sub_second == 0 ? 0 : sub_second if utc_offset @utc = utc_offset == :utc @utc_offset = @utc ? 0 : utc_offset else @utc = @utc_offset = nil end end
Converts the {sub_second} value to a `String` suitable for appending to the `String` representation of a {Timestamp}.
@return [String] a `String` representation of {sub_second}.
# File lib/tzinfo/timestamp.rb, line 514 def sub_second_to_s if @sub_second == 0 '' else " #{<EMAIL_ADDRESS>end end
Converts the value and sub-seconds to a `String`, adding on the given offset.
@param offset [Integer] the offset to add to the value. @return [String] the value and sub-seconds.
# File lib/tzinfo/timestamp.rb, line 506 def value_and_sub_second_to_s(offset = 0) "#{@value + offset}#{sub_second_to_s}" end


{toolbar} Role Users Role Selection *Select the role you wish to view or modify from the Roles Drop Down Roles{roles} {content}


- PHD POSITION in Cloud Operations and Analytics (27 November 2016)
- International Industry-Academia Workshop on Cloud Reliability and Resilience (20 November 2016)
- PhD Student Grant/Scholarship (29 October 2016)
- International Industry-Academia Workshop on Cloud Reliability and Resilience (11 July 2016)
- Cloud Management Platforms (CMP) (4 July 2015)
- Evolution and Overview of Linked USDL (10 February 2015)
- Data Science for Non-Programmers (29 January 2015)


We work around the clock to ensure that your APIs always look great on all platforms.
Good communication is where the rubber meets the road. Get informed, stay up to date, and communicate effectively with your colleagues and followers.
Rev up your API Engine and drive more traffic to your API. A centralized directory means a higher chance of getting noticed.


Dynamo Packages
Here are a list of some of the more popular packages in the Dynamo community. Developers, please add to the list! Remember, the Dynamo Primer is open-source!
|
|
ARCHI-LAB
|
Visit the Official archi-lab Site
|
| archi-lab is a collection of over 50+ custom packages that vastly extend Dynamo's ability to interact with Revit. Nodes contained in archi-lab package vary from basic list operations to advanced Analysis Visualization Framework nodes for Revit. |
|
|
BIMORPH NODES |
Visit the BimorphNodes Dictionary |
| BimorphNodes is a versatile collection of powerful utility nodes. The package highlights include ultra-efficient clash detection and geometry intersection nodes, ImportInstance (CAD) curve conversion nodes, and linked element collectors that resolve limitations in the Revit API. To learn about the full range of nodes available, visit the BimorphNodes dictionary. |
|
|
BUMBLEBEE FOR DYNAMO |
Visit the Official BumbleBee Site |
| Bumblebee is an Excel and Dynamo interoperability plugin that vastly improves Dynamo’s ability to read and write Excel files. |
|
|
CLOCKWORK FOR DYNAMO |
Visit the Clockwork For Dynamo GitHub |
| Clockwork is a collection of custom nodes for the Dynamo visual programming environment. It contains many Revit-related nodes, but also lots of nodes for various other purposes such as list management, mathematical operations, string operations, unit conversions, geometric operations (mainly bounding boxes, meshes, planes, points, surfaces, UVs and vectors) and paneling. |
|
|
DATA|SHAPES |
Visit Data|Shapes on GitHub |
| DataShapes is a package that aims to extend the user functionality of Dynamo scripts. This has a heavy focus on adding greater functionality to Dynamo player. For more infor visit https://data-shapes.net/. Want to create awesome Dynamo player workflows? Use this package. |
|
|
DYNAMO SAP |
Visit the DynamoSAP Project at Core Studio |
| DynamoSAP is a parametric interface for SAP2000, built on top of Dynamo. The project enables designers and engineers to generatively author and analyze structural systems in SAP, using Dynamo to drive the SAP model. The project prescribes a few common workflows which are described in the included sample files, and provides a wide range of opportunities for automation of typical tasks in SAP. |
|
|
DYNAMO UNFOLD |
Visit the DynamoUnfold GitHub |
| This library extends Dynamo/Revit functionality by enabling users to unfold surface and poly-surface geometry. The library allows users to first translate surfaces into planar tessellated topology, then unfold them using Protogeometry tools in Dynamo. This package also includes some experimental nodes as well as a few basic sample files. |
|
|
ENERGY ANALYSIS FOR DYNAMO |
Visit the Energy Analysis for Dynamo Project on GitHub |
| Energy Analysis for Dynamo allows for parametric energy modeling and whole-building energy analysis workflows in Dynamo 0.8. Energy Analysis for Dynamo allows the user to configure the energy model from Autodesk Revit, submit to Green Building Studio for DOE2 energy analysis, and dig into the results returned from the analysis. The package is being developed by Thornton Tomasetti's CORE studio. |
|
|
FIREFLY FOR DYNAMO |
Download Firefly at the Dynamo Package Manager |
| Firefly is a collection of nodes which enable dynamo to talk to input/output devices, like the Arduino micro controller. Because the data flow happens “live”, Firefly opens up many opportunities for interactive prototyping between the digital and physical worlds through web cams, mobile phones, game controllers, sensors and more. |
|
|
LUNCHBOX FOR DYNAMO |
Checkout Lunchbox for Dynamo on the Proving Ground |
| LunchBox is a collection of reusable geometry and data management nodes. The tools have been tested with Dynamo 0.8.1 and Revit 2016. The tool includes nodes for surface paneling, geometry, Revit data collection, and more! |
|
|
MESH TOOLKIT |
Visit the Dynamo Mesh Toolkit GitHub |
| The Dynamo Mesh Toolkit provides many useful tools for working with mesh geometry. The functionality of this package includes the ability to import meshes from external file formats, generate meshes from pre-existing Dynamo geometry objects, and manually build meshes through vertices and connectivity information. Additionally, this toolkit includes tools to modify and repair mesh geometry. |
|
|
OPTIMO |
Visit the Optimo GitHub |
| Optimo provides dynamo users with the capability to optimize self-defined design problems by using various evolutionary algorithms. Users can define the problem objective or set of objectives as well as specific fitness functions. |
|
|
RHYNAMO |
Visit the Rhynamo Bitbucket |
| The Rhynamo node library provides users with the ability to read and write Rhino 3DM files from within Dynamo. Rhynamo translates Rhino geometry into usable Dynamo geometry by using McNeel’s OpenNURBS library allowing for new workflows that can exchange geometry and data fluidly between Rhino and Revit. This package also contains some experimental nodes that allow for “live” access to the Rhino command line. |
|
|
RHYTHM |
Visit Rhythm on GitHub |
| At first glance, Rhythm isn't anything special. It does not involve any sophisticated code or anything of that nature. What Rhythm does represent though, is the result of practical thinking and diligence. The idea is this package helps users maintain Rhythm in Revit with Dynamo. Rhythm primarily consists of out of the box Dynamo nodes used in clever ways as they apply to the Revit environment. |
|


All Classes
-
Class Summary Class Description AbstractRemoteDbSelectAction Selects one or more rows from a remote table in a remote Qorus instanceAction Abstract class representing an action in a test caseCallService Call a Qorus service methodCallSoapMethod This class will invoke a SOAP operation and optionally check the response If the response is not known in advance:CheckDbTableRow Abstract class representing an action in a test caseCheckDbTableRows Abstract class representing an action in a test caseCheckFileCsv Abstract class representing an action in a test caseCheckFileNonexisting Abstract class representing an action in a test caseCheckFileText Abstract class representing an action in a test caseCheckLog Abstract class representing an action in a test caseCheckRunningWorkflow This class will ensure a workflow is runningCreateFile Action class to create a file as an input for an interfaceCreateFileCsv Action class to create a csv file as an input for an interfaceCreateFileText Action class to create a file as an input for an interfaceCreateOrder This class will create a workflow orderDeleteDbTableData Deletes one or more rows from a DB tableExecSynchronousOrder This class will create and execute a synchronous workflow orderFindOrderByKey Finds a workflow order using a key and value.InsertDbTableRows Inserts one or more rows into DB tableInsertRemoteDbTableRows Inserts one or more rows into a remote table in a remote Qorus instanceQorusInterfaceTest Base class that exports functions for Qorus interface testingQorusJobTest Base class for testing Qorus servicesQorusPassiveWorkflowTest Base class for testing Qorus workflows without starting any workflow execution instancesQorusServiceTest Base class for testing Qorus servicesQorusWorkflowTest Base class for testing Qorus workflowsRemoteDbDeleteAction Deletes one of more rows from a remote table in a remote Qorus instanceRemoteDbSelectAction Selects data from a remote DB and compares to expected dataRunJob This class will run the current job; must be used with QorusJobTest testsRunJobResult This class will run the current job and compares the result status and optionally job instance information; must be used with QorusJobTest testsSleep Sleep actionStartLog Abstract class representing an action in a test caseTruncateTable Clears the given tableUnblockOrder This class will unblock an order and verify its status after unblockingUpsertRemoteDbTableRows Upserts (ie performs an SQL merge operation) one or more rows into a remote table in a remote Qorus instanceWaitForWfiid This class will wait for a workflow order to reach a final status (COMPLETE, ERROR, or CANCELED)


The Merlin project deals with the general area of service and component management. The Merlin system is a container that provides comprehensive support for the management of complex component based systems based on an underlying meta-model that facilitates automated assembly and deployment of components.
Merlin aims to simplify the process of managing component-based systems. It achieves this objective through delivery of functionality supporting automated component assembly and deployment combined with strong support for the isolatiion of implementation from the service that a component provides. Applications are implemented through component composition. In turn, applications can be exposed as simple components and used by other components as building blocks in other applications.
Merlin provides support for the packaging and deployment of composite components with a structure called a Block. A block represents the association of resources to a containment hierarchy within which components are managed. In addition, a block enables the separation of a component assembly (the composite implementation) from the set of services published by the block.
Merlin will handle resolution of service dependencies for components by looking for explicitly declared components commencing within the local container, and working progressively up the container hierarchy. If no explicit solutions are resolved, Merlin will attempt to build a packaged or implicit solution based on component types declared in the classloader hierachy.
Underlying the Merlin system is a runtime deployment engine that provides support for the orderly establishment of simple and composite components. The deployment engine takes care of component instantiation, lifecycle processing, and component decommissioning.
Merlin provides support for constructor based injection of lifecycle artifacts, or optional phased delivery under which a component is processed through a series of lifecycle stages. Lifecycle processing involves the execution of a series of stages such as associating a logging channel, applying a configuration or component parameters, setting the runtime context, supplying dependent services, initialization, startup, shutdown and disposal. Within the Merlin system, lifecycle stages can be extended or modified through association of other components that provide lifecycle support. Merlin distinguishes these services as deployment dependencies as distinct from classic runtime dependencies.
Every developer that has written a complex component based application has had to deal with container-side programming. Given normal commercial pressures, it too easy to write code into your application that has assumptions built into it concerning the requirements of the target components.
Consider the following code fragment:
// and example of a bad practice of introducing // component deployment strategy and dependencies // into your application logic DefaultMonitor monitor = new DefaultMonitor(); DefaultContext context = new DefaultContext(); context.put( "classloader", m_classloader ); context.makeReadOnly(); monitor.enableLogging( m_logger ); monitor.contextualize( context ); monitor.initialize();
The above container-side code is making a lot of assumptions about the component it is deploying. Firstly, it knows that the component is log enabled, contextualizable, and initializable. This is problematic because it means that the container-side code is dependent on the component implementation. If the component were to be changed so that it supported the configurable semantics, there container-side code needs to be updated as well. This is dangerous because it is easy for container-side to get out-of-sync with the component implementation - for example, the container-side code to some extent is dependent on a component properly checking if it has been configured or not. A deeper and more important issue concerns component assembly - if a component is refactored to use other components, then the container-side code become much more complex and much more closely tied to the set of components that make up the assembly.
The solution to the above is a framework that automates the process of component deployment. The end result is that container side code becomes independent of the component deployment strategy and component dependencies.
Consider the following code fragment in which we create a service description, locate component model that provides the service, commission the model and resolve the service instance.
ReferenceDescriptor reference = new ReferenceDescriptor( Widget.class.getName() ); ComponentModel model = (ComponentModel) m_model.getModel( reference ); model.commission(); Widget widget = (Widget) model.resolve();
The above code demonstrates the elimination of knowledge about the component deployment strategy. All aspect concerning the component logging, configuration, parameterization, contexulization, dependency composition, initialization, startup, shutdown, and disposal are managed by the container.


Students
Houses
Professors
Classes
Registrations
Update Student
Update Students Data
First Name:
Last Name:
Birthdate:
Year:
House:
Submit


Salary Application With Inheritance Controller
Enter Salary ::
HRA Is :: {{salary*hra|currency}}
TA Is :: {{salary*ta|currency}}
DA Is :: {{salary*da|currency}}


Timetable
Note Taking
Utilities
School Events Calendar
Staff Email List
Useful Links
Info
Academic Reports
Student Attendance
Sentral Timetable
Settings
General
Appearance
About
Feedback
Erase Timetable


The 3 new things are:
1. Analogy of relate a programmer to a problem solver and a framework for problem solving.
2. The important of Core learning in programmer journey.
3. There are so much to learn about Arrays and Objects
It is still the framework for problem solving. As I have learned and practise the 7 steps effective problem solving method before, which I only used it to tackle engineering problem. The framework of problem solving that I learned in the core learning session shares a lot similarity with the '7 steps'. Indeeed it also teaches to start the day as part of the process, which to me is very align with the thinking I have that I learned from Miracle Morning!
I attached the 7 Steps of Effective Problem Solving Method at the end of the reflection for sharing purposes!
I think to me and a lot of people is to make it into a habits of the way problem solving. I strongly believe that if we practise both core and technical skills as what we have learned in EDA, we will be a great programmer in very near future. It is never to late to start learning something great even if you are in your 60s.
In my opinion, there are few main reasons behind this:
1. Company hire someone that could fit into their culture and not someone erogant but skillful.
2. I good programmer needs both core and technical skills to succeed in the career.
3. I believed what EDA trying to teach here is a process or a journey to be a good programmer. And the PROCESS is definately more valueable and important than GOAL or result. When you commit to the process — never giving up, creatively overcoming setbacks and obstacles, trying new strategies — a powerful metamorphosis happens. You literally transform in the process. In Rich Dad Poor Dad quote, “The process is testing you as well as teaching you. If you pass the test and learn the lessons, you get to go on to your next process. If you fail a test and quit rather than retake the test, the process spits you out.” -Robert Kiyosaki. It is also important for a student choose TO BECOME a good PROGRAMMER and not just purely RECEIVE the programmer graduation certificate as the ultimate goal.
Not at all. I am a lifelong learner.
One logical way to problem solve is to seek support. While it is logical to seek advice, don't forget that the final decision is still yours to make.
It is typically easier to advise others how to react in a particular problematic situation than to confront that same or similar situation ourselves. This is a main reason individuals seek solutions by consulting others for outside opinions.
Seeking support: It is common to get caught up in a problematic situation where we don't see a possible or clear solution. It is difficult to dissociate and remain neutral while accurately assessing a problem at hand in order to recognize possible solutions. Strong emotional ties make this process especially difficult.
Like many of us, you've likely offered advice to a friend which didn't produce optimal results. They maybe said something along the lines of "Why did I listen to you?".
People often seek outside advice to remove responsibility from their own shoulders. Taking responsibility for one's own actions and words is the hardest part of making decisions and resolving issues. Doubt and negative thoughts form quickly: "What if I haven't made the right choice?", "What if I don't succeed?", "Am I making the right decision?".
Below are concise descriptions of the 7 steps for effective problem solving.
This problem solving technique is commonly used by psychologists in the counseling process to assist individuals in finding a solution on their own, and put it to use in a real scenario.
Ask yourself what the problem is. There may be multiple issues within a single situation. Make a list of these issues and define why each one is a problem to you. Focus on behaviors rather than on yourself or a person (Incorrect example: "The problem is that I am stupid.") (Correct example: "The problem is that I easily allow others to betray or disappoint me, because I trust people too quickly.").
Try to define your goals specifically, while making them as realistic and attainable as possible. An example of a poor or broad goal is "I want to be happy." First, define what happiness means to you and what you can do to feel happier overall. Try to form your goals in the sense of actions you can take to achieve the desired goal.
Take time to brainstorm possible ways to resolve the problem. Do not rush this process- People often want to prevent and solve problems before they even appear. Write down all ideas, even the ones that seem absurd or bizarre. Try to find 6-8 varying alternatives when resolving a particular problem.
For every alternative you formed in the previous step, weigh the positive effects and negative consequences that each solution would bring. For every and any option, determine its advantages and its risks.
Carefully weigh all solutions. The best solution is not necessarily the option with the most pros and/or the least cons. Think about what means more to you, which solution can highlight the positive effects that matter the most to you, and which solution produces the mildest consequences. When you decide on a solution, it is important to create a timeline of when you intend to achieve your ultimate goal.
Don't worry about failure. In this phase, concentrate on the journey that will lead you to your goal- don't worry yourself with potential problems.
It's time to evaluate your success. If you were successful, congratulations! If not, no worries. Maybe you didn't quite choose the right solution or the situation changed. You have definitely learned something. Take this newfound knowledge, return to the beginning steps, and try again!