Chapter 4 Workshop Questions for Week 2 Absorption
4.1 Questions
4.1.1 Short mathematical question - Beer Lambert law
- How far can monochromatic 489 nm light travel through a 0.100 M solution of fluorescein with an extinction coefficient at 489 nm of 92000 M−1 cm−1 before 90 % of it is absorbed?
(I will use MCQs and UniDoodle to ask this in class)
4.1.2 Short conceptual question - molar extinction coefficient
- Modify the molecule in figure 4.1 to increase the molar extinction coefficient (do not worry about what may happen to wavelength).
(I will use UniDoodle’s drawing feature to ask this in class)
4.1.3 Short conceptual question - intensity of colour
- What factors influence the ‘intensity of colour’ of the following solutions?
(This will be a discussion question)
4.1.4 Short conceptual question - line width
You will need to look at the x-scale to truley note the difference in the width of these emission spectra.
(This will be a discussion question)
4.1.5 Short conceptual question - the effect of solvation on absorbance
- Why does the observed colour of ethidium bromide depend upon the solvent (figure 4.6))?
Think about the effect of solvation on the energy levels and why those energy levels matter! Remember that if light is transmitted through a solution that is the colour we observe…
(This will be a discussion question)
4.1.6 Extended question - Azobenzene
Azobenzene undergoes the following cis-trans isomerisation, the isomerisation occurs in the ps timescale.
Why would you expect the absorption spectrum of each isomer to be different?
Suggest why the trans conformation is more stable than the cis isomer.
Use the following data to predict the proportion of each isomer under 360 nm excitation.
| ε360 / M−1 cm−1 | ε460 / M−1 cm−1 | |
|---|---|---|
| trans-azobenzene | 22000 | 4500 |
| cis-azobenzene | 2100 | 5500 |
Would there be more or less trans azobenzene at 460 nm? Justify your answer.
It has been suggested the 360 nm absorption is an S0 → S2 absorption, and the 460 nm band is an S0 → S1 absorption. Suggest which energy levels are involved for each of the two transitions and compare it to stilbene which has a similar structure, but the cis and trans absorptions are 280 & 295 nm respectively.
(This will be a discussion question)
4.2 Answers
4.2.1 Short mathematical question - Beer Lambert law
- How far can monochromatic 489 nm light travel through a 0.100 M solution of fluorescein with an extinction coefficient at 489 nm of 92000 M−1 cm−1 before 90 % of it is absorbed?
If 90% of the incident light is being absorbed then 10% of the light is transmitted…
The Beer-Lambert law is (Equation (3.1)):
\[\begin{equation} \log{\frac{I}{I_0}}=-\varepsilon c l \tag{3.1} \end{equation}\]
rearranging this:
\[\begin{equation*} l = \frac{\log{\frac{I_0}{I}}}{\varepsilon c} \end{equation*}\]
\[\begin{equation*} l = \frac{\log{\frac{100 \%}{10 \%}}}{92000 \textrm{ M}^{-1} \textrm{ cm}^{-1} \times 0.100 \textrm{ M}} \end{equation*}\]
\[\begin{equation*} l = \frac{1}{9200000 \textrm{ M}^{-1} \textrm{ m}^{-1} \times 0.100 \textrm{ M}} \end{equation*}\]
\[\begin{equation*} l = 1.0 \textrm{ μm} \end{equation*}\]
4.2.2 Short conceptual question - molar extinction coefficient
- Modify the molecule in figure 4.1 to increase the molar extinction coefficient (do not worry about what may happen to wavelength).
Image may be found in Section 4.1.2
If a molecule is rigid the difference between the ground and excited state structure is smaller and this usually leads to a higher molar extinction coefficient, so any structural changes which increase this rigidity will likely lead to a higher molar extinction coefficient.
Excitation of an electron from a bonding or non-bonding orbital into an anti-bonding orbital reduces the bond order, and will ‘kink’ aromatic systems.
4.2.3 Short conceptual question - intensity of colour
- What factors influence the ‘intensity of colour’ of the following solutions?
Images may be found in Section 4.1.3
CuSO4 in solution forms the hexa aqua complex listed in figure ??. This is a centrosymmetric molecule which therefore runs foul of the Laporte selection rule which says that “allowed transitions in centrosymmetric molecules must involve a change in parity.” So either g → u or u → g are allowed, and g → g and u → u are forbidden.
You will not be expected to work out symetry types for orbitals but can ‘back justify’ to explain with this.
These symmetry labels appear on the energy level diagram for CU2+ (figure 4.10).
Both of the split energy levels are gerade (g) and so there is no change of parity for the transition from t2g to eg, therefore the transition is selection rule forbidden and has a low molar extinction coefficient. The ‘breaking of symmetry’ by possible rotamers of the water ligands mean this value is higher than for the gas phase atomic molar absorption coefficient. The maximum molar extinction coefficient of copper sulfate solutions is around 20 M-1 cm-1.
The permanganate (MnO4-) is a ligand to metal charge transfer transition, since excitation of an electron effectively moves an electron from one of the oxygen ligands to the manganese ‘empty’ metal centre there is no limitation from the spin selection rule and the complex is not subject to the Laporte selection rule. This leads to moderate to ‘high’ molar extinction coefficients. The maximum molar extinction coefficient of potassium permanganate solutions is around 1800 M-1 cm-1.
The final molecule is the synthetic dye methylene blue, this is not centrosymmetric and so is not subject to the Laporte selectrion rule, further the structure with fused aromatic rings and a large amount of conjugation is fairly rigid and so there is a large overlap of the wavefunctions of the ground and excited state. The maximum molar extinction coefficient of methylene blue solutions is around 75000 M-1 cm-1.
4.2.4 Short conceptual question - line width
- Why are some spectra very broad (figure ??), whereas others have sharp peaks (figure ??)?
You will need to look at the x-scale to truley note the difference in the width of these emission spectra.
Images may be found in Section 4.1.4
We are looking at two very different spectra here, first off we have an atomic transition and a molecular transition. Secondly one is solvated, the other in the gas (or more acurately plasma) phase. Both of these factors are important…
When we have a transition for either absorption or emission then on an atomic level those energy levels are incredibly well defined, this leads to the energy required to promote an electron between these levels to be equally well defined.
As soon as we solvate this the energy of the occupied (HOMO) is softened as intermolecular interactions will stabilise this level to different amounts, solvation may also allow previously absolutely parity forbidden processes to occur.
The molecular spectrum is much broader because each of the possible rotamers, vibratamers and isomers has a slightly different energy, the myriad possible energies are expanded still by solvation and tempeature effects. The more possible structural isomers and rotamers the ‘softer’ any defining features in the spectrum. For example if we compare the rhodamine spectum (figure ??) to that of antracene (figure 4.11) we can see that there is more ‘fine structure’ in the anthracene spectrum, this is because of the smaller possible number of structural variations, there are no possible rotamers and so transitions are more defined.
4.2.5 Short conceptual question - the effect of solvation on absorbance
Image may be found in Section 4.1.5
- Why does the observed colour of ethidium bromide depend upon the solvent (figure ??))?
Think about the effect of solvation on the energy levels and why those energy levels matter! Remember that if light is transmitted through a solution that is the colour we observe…
This is in essence answering the same question as in question ??, solvation affects the energy levels of occupied orbitals.WIthout going into any more detail than essential the different solvents stabilise the HOMO of ethidium bromide different amounts - this is likely due to different hydrogen bonding of the alchols. The more stabilised the ground state the bigger the energy gap leading to a blue shift in the absorption spectra. The orange solution is absorbing blue light (λmax = 480 nm) and the purple solution absorbing orange (λmax = 550 nm) indicating the energy gap of the aquous solution is larger and therefore the solvent stabilisation is biggest.
It is worth noting that the energy of ‘empty’ orbitals is unaffected and so the energy of the LUMO is unchanged (figure 3.14).
Figure above in Section 4.1.5
4.2.6 Extended question - Azobenzene
Azobenzene undergoes the following cis-trans isomerisation, the isomerisation occurs in the ps timescale.
Image may be found in Section 4.1.6
- Why would you expect the absorption spectrum of each isomer to be different?
Trans azobenzene is centrosymmetric and so is subject to the Laporte selection rule, cis azobenzene is non-centrosymmetric and so it is not parity forbidden. Consequently the HOMO-LUMO transition which is allowed for the cis is forbidden for the trans and so the absorbance spectra is different.
- Suggest why the trans conformation is more stable than the cis isomer.
Steric hinderance will mean that the cis-isomer is not planar, if it isn’t planar it isn’t fully conjugated, and if it isn’t fully conjugated it isn’t as stable. There is no steric hinderance in the trans isomer.
- Use the following data to predict the proportion of each isomer under 360 nm excitation.
Table: (#tab:azobenzeneabs) The molar extinction coefficient of the two isomers of azobenzene.
| ε360 / M−1 cm−1 | ε460 / M−1 cm−1 | |
|---|---|---|
| trans-azobenzene | 22000 | 4500 |
| cis-azobenzene | 2100 | 5500 |
For the photostationary state the absorbance of the two isomers will be the same.
The excited state for both molecules will be the same, and the probability of the excited state decaying into any given isomer is the same.
So if \(A =\varepsilon cl\) and \(A_{trans}=A_{cis}\) then at 360 nm:
\[\begin{equation*} \varepsilon_{trans} c_{trans} = \varepsilon_{cis} c_{cis} \end{equation*}\]
\(c_{trans}= 0.095 c_{cis}\)
- Would there be more or less trans azobenzene at 460 nm? Justify your answer.
There would be more trans at the photostationary state when excited at 460 nm, this is because the relative ration of molar extinction coefficients favors formation of more of the trans isomer.
- It has been suggested the 360 nm absorption is an S0 → S2 absorption, and the 460 nm band is an S0 → S1 absorption. Suggest which energy levels are involved for each of the two transitions and compare it to stilbene which has a similar structure, but the cis and trans absorptions are 280 & 295 nm respectively.
Image may be found in Section 4.1.6
Azobenzene has \(n\), \(\pi\) and \(\pi^*\) orbitals whereas stilbene only has \(\pi\) and \(\pi^*\) orbitals. Given the different orbital types available in azobenzene the expectation that the transitions will have a wider energy spacing than in stilbene where we just have the bonding and antibonding \(pi\) set, and so we would expect these energy levels to be more closely spaced.


You have been invited to create a new account on {{ .SiteURL }}. Please follow this link to accept the invite:
Accept the invite


flexdashboard
flexdashboards allow users to create R dashboards using Markdown. Our example, Fiji Earthquakes is a sample R flexdashboard showing data from the R quakes dataset. It uses Leaflet, ThreeJS, and ggvis.
Transforming Your Enterprise through Data, Insights, & Analytics.
flexdashboards allow users to create R dashboards using Markdown. Our example, Fiji Earthquakes is a sample R flexdashboard showing data from the R quakes dataset. It uses Leaflet, ThreeJS, and ggvis.
Leaflet is a JavaScript library for creating interactive maps. Our example, Utility Outage Clusters is a Leaflet map showcasing marker clusters. As you zoom out, circle markers that represent individual outages converge into clusters. Outage data was fabricated for twenty outages and represent locations around Washington DC.
The Hexbin Scatterplot is a custom visual for Microsoft Power BI that displays points on top of hexagonal "bins". Color saturation for the hexbins shows the density of points within each bin, with darker bins showing more points.
Based on the DT package, rDataTable is an interactive Power BI R custom visual that helps you easily explore table data. It is pending approval in the Office Store / AppSource.
The Image Timeline is a custom visual for Microsoft Power BI that displays events along a horizontal timeline. Events appear as either circles or custom images.
BlueGranite offers training in many areas from data visualization to advanced analytics. Below are the Github repositories that correspond to our training offers.
Kick start your advanced analytics practice with a short workshop. Your team will learn new data science skills plus facilitate a brainstorming session around the potential for machine learning and big data in your organization.
Combine the power of R with parallel computing with Microsoft ML Server. This training will help your team unlock the distributed computing fuctions of the RevoScaleR and MicrosoftML R packages.
Learn Python skills relevant to a data science workflow. From data ingestion, manipulation, visualization, and machine learning, this training helps your team members kick start a strong Python skillset.
Through this curriculum based approach with hands-on labs and in-person guidance, attendees will be able to build and share stunning visualizations and valuable data insights quickly and easily with Power BI.
We provide architecture, design, development, training and support for both mid-market and enterprise clients across the U.S. BlueGranite’s “think big, but start small” philosophy helps our clients embrace data as a strategic asset. With our unique framework, we create roadmaps, build solutions, and deliver value across organizations.
Our “let’s get real” approach helps you easily identify issues and solve them with a variety of Cloud Analytics solutions, from predictive analytics and machine learning, to data lakes and self-service BI.
Contact us today and we'll be happy to help!


I specialize in developing Android Native apps in addition to developing Progressive Web Apps(PWAs) that can run offline like Native Apps on a number of devices including desktop, android and ios.
A website showing the menu items and servings of Anita's kitchen
A simple website showing the landing page and menu of Drury Cafe
A website showing the biography of my favorite band with a list of my favorite songs
A website that helps keep track of total milk production output in a farm
Java, Javascript, Typescript, Python, C/C++
Bootstrap, Jquery, Angular, Java Spark, Android, Tensorflow, Scikit Learn, React Native


my name is Anita.
This is the first start of a script for a simple computer role-playing game.
The users task is it to find its way from home to the university campus.
While traveling the user has to answer questions which are effecting its destiny.
Going through the questions step by step the InDesign document builds up a text frame describing the user's journey. An info-graphic on the bottom of the document will show the user's journey.
After completing all quest the user can print the file as an A3 document.
https://gist.github.com/3874630
You can also clone the project with Git by running:
git clone git://gist.github.com/3874630.git gist-3874630
myRPG.jsx by AnitaMei is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Based on a work at https://gist.github.com/3874630.


This season we have started working with the Thames Valley District School Board to run gifted itinerant programs. We have visited schools throughout the city and area to simulate a mini-FLL challenge. As well we coached them through the programming of their robots, and taught them about FIRST and its values.
We visit Merrymount to hold science and technology workshops for children. We use practical methods to teach the children about science and technological concepts. We have used parachutes, balloons, guitars and paper airplanes to teach topics including gravity, static electricity, sounds and waves. Both the children and the organization appreciated our hands-on teaching method and we continue to hold workshops at the centre to ensure continued learning for the children.
FRC Team 4814 paired up with Girl Guides of Canada to teach the participants about science and technology. We taught the girls about basic principles of science, with activities that aim to supplement the curriculum at their grade level. We have used water, soap and pennies to teach them about surface tension. They were also given hands on experience by disassembling and rebuilding computers. The participants enjoyed the opportunity to learn about science and engineering concepts while having fun.
FRC Team 4814 organized a workshop that introduced coding to members of the Canadian Association for Girls in Science (CAGIS). We taught a lesson on the principles of coding and the importance of learning how to program. Upon completion of the lesson by Team 4814 members, the girls were divided into groups and given a small robot. Each group had to program their robot to complete a maze in the fastest time possible.
Team 4814 showcased their robot at Western’s March Break Open House to show visitors about FIRST. Our team effectively demonstrated the ideals of FIRST among other University clubs. Faculty and students were astonished by the level of knowledge and professionalism the students of Team 4814 demonstrated. Their depth and breadth of technological knowledge was celebrated and congratulated by visitors to the Western Engineering building.
FRC Team 4814 will be holding a workshop at the annual fair for students in grades 9-12. On April 6th, the team will teach the students about the engineering and design process. Our robot will be present at the workshop and we will be showing the students the design process behind each mechanism. Furthermore, we will be showing the students how to program in autonomous and human controlled mode.


Usually, when people talk about splines, like at a party or in a pub, they talk about polynomial cubic splines. This makes sense as it is the simplest piece of function you can link together with any other two functions and expect continuity and smoothness at the joints. But can you get it even simpler than that?
Consider this. A parametric curve is a curve that has its every point defined as a function of some parameter. Let's build a polynomial curve that runs through 4 points.
x(t) = axt3 + bxt2 + cxt + dx
y(t) = ayt3 + byt2 + cyt + dy
There is an explanation how to build an interpolating function in the Programmer's guide to polynomials and splines. TL&DR, if you run a polynomial through some 4 points, it should be of 3rd degree minimum. Which is a cubic. Yes, we basically got ourselves a single cubic spline not conjoined with anything, but only constrained by the points.
You can drag the points across the canvas to see how it reacts. It is rather predictable, especially in between the second and the third points. That's the piece we usually use to build aggregate spline functions.
Just like with the simple non-parametric interpolation, you can't just add more points to the interpolating polynomial and expect it to behave nicely. It will eventually oscillate due to the Runge effect. That's why you need splines in the first place.
Now let's say we don't know how many points we want. Let's say points keep coming even while we're building our spline. We want to add points and retain the pieces of the curve that we've built.
We can still use cubic splines. It's just now we don't have to conjoint each of them from both sides, we only have to attach it from one. This can be done, for instance, by solving these systems:
axit3 + bxit2 + cxit + dxi = xi
axi(t+1)3 + bxi(t+1)2 + cxi(t+1) + dxi = xi+1
3axit2 + 2bxit + cxi = 3axi-1t2 + 2bxi-1t + cxi-1
6axit + 2bxi = 6axi-1t + 2bxi-1
ayit3 + byit2 + cyit + dyi = yi
ayi(t+1)3 + byi(t+1)2 + cyi(t+1) + dyi = yi+1
3ayit2 + 2byit + cyi = 3ayi-1t2 + 2byi-1t + cyi-1
6ayit + 2byi = 6ayi-1t + 2byi-1
The first and the second equations here are just the interpolation conditions. The third and the fourth are the ones that connect the derivatives of the i-th piece and of its successor's.
Here is an example of a 3-piece curve made of such one-sided cubic splines. Feel free to drag the points.
As you can see, it is smooth and continuous, so it's kind of a win. But it is nearly impossible to make it go where you want it to. It's even worse than with the Runge effect, it starts almost immediately.
You probably noticed that the first segment is straight. That's because both the initial derivatives, the first one and the second one, are zeros. The second segment is then quadratic, since its own second derivative on the left is still zero, and only the third one is fully cubic. But this is the least controllable one.
Still, since we keep the second derivative continuous, we know that our first derivative is smooth. You can see it in the next plot. The “hair” is the depiction of the derivative vector's length in multiple points. And yes, since the curve is parametric, and it's formed by two functions, it has two derivatives in every point: dx/dt and dy/dt, and you can make a vector out of them.
Now here is a trick that may help us tame the curve we got. With a function's plot, we can expect it to be smooth only if the first derivative of a function is continuous. That's true for plots. But for parametric curves, the tangent is not the same as the derivative. It's the proportion of its derivatives. It doesn't have to be like this:
dpxi(t) / dt = dpxi+1(t) / dt
dpyi(t) / dt = dpyi+1(t) / dt
We only need that:
| dpxi(t) / dt | = | dpxi+1(t) / dt |
| dpyi(t) / dt | dpyi+1(t) / dt |
Simply put, this means that when your curve becomes uncontrollable, you can safely slow it down. Cut down its derivatives in every grip point to make it more like a piece-wise linear interpolation.
Here is the example when in every grid point the derivative gets divided by some divisor.
Look at its hair! It's no longer continuous, it gets cut off after every grid point.
We also have another way to calm down our curve and it's to drop its second derivative in every grid point effectively turning it... into a quadratic spline!
Quadratic splines are even simpler than the cubic ones. We keep the idea of stealing the first derivative from the successor, but we don't touch the second one.
ait2 + bit + ci = xi
ai(t+1)2 + bi(t+1) + ci = xi+1
2ait + bi = 2ai-1t + bi-1
The first derivative is then continuous but it isn't smooth anymore. You can see it on the plot's hair. It gets a little bent at the grid points.
Now, this has all been fun, but is it really a problem to solve? I mean, why would we want to have a curve that grows as we plot it? Well, we might not want exactly that. But there is a niche for building splines on the go, and it is the animation.
Here is an arrow. Just click somewhere on the canvas, and it will go there. Setup several way-points, it will run through them all. Note that it also accumulates derivatives, which is its speed, and becomes thin and uncontrollable.  It calms it down.
Splines are more than just NURBS. Sometimes you need simple quadratic splines, sometimes you want 5-th degree ones with all the extra knots and weights. There are even non-polynomial splines, they have their applications too.
There is, however, some common body of knowledge that works for all splines, plots, and curves in general. I think, even if you wouldn't have to ever implement any kind of splines, you can benefit from learning about derivatives, parameterization, continuity, and smoothness. Simple quadratic splines are just the easy thing to study. It's a useful mental model in its own right.
| ← there's more. | + Github & Twitter & Hacker News |


Enhancing the security of a Microsoft SQL Server JDBC Driver application involves more than avoiding common coding pitfalls. An application that accesses data has many potential points of failure that an attacker can exploit to retrieve, manipulate, or destroy sensitive data. It is important to understand all aspects of security, from the process of threat modeling during the design phase of your application to its eventual deployment, and continuing through its ongoing maintenance.
The topics in this section describe some common security concerns including connection strings, validating user input, and general application security.
In This Section
| Topic | Description |
|---|---|
|
Describes techniques to help protect information used to connect to a data source. |
|
|
Describes techniques to validate user input. |
|
|
Describes how to use Java policy permissions to help secure a JDBC driver application. |
|
|
Describes how to establish a secure communication channel with a SQL Server database using Secure Sockets Layer (SSL). |


AnimationsRotationConstraint¶
The AnimationsRotationConstraint module.
RotationConstraint AddSource¶
-
UnityEngineAnimationsRotationConstraint.
__AddSource__UnityEngineAnimationsConstraintSource__SystemInt32
(UnityEngine.Animations.RotationConstraint instanceUnityEngine.Animations.ConstraintSource source)¶
outputs: unnamed (Int32
)
flow inputs: unnamed
flow outputs: unnamed
op_Equality¶
-
UnityEngineAnimationsRotationConstraint.
__op_Equality__UnityEngineObject_UnityEngineObject__SystemBoolean
(UnityEngine.Object UnityEngine.Object)¶
outputs: unnamed (Boolean
)
flow: none
RotationConstraint Equals¶
-
UnityEngineAnimationsRotationConstraint.
__Equals__SystemObject__SystemBoolean
(UnityEngine.Animations.RotationConstraint instanceSystem.Object other)¶
outputs: unnamed (Boolean
)
flow: none
RotationConstraint get_constraintActive¶
-
UnityEngineAnimationsRotationConstraint.
__get_constraintActive__SystemBoolean
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Boolean
)
flow: none
RotationConstraint get_enabled¶
-
UnityEngineAnimationsRotationConstraint.
__get_enabled__SystemBoolean
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Boolean
)
flow: none
RotationConstraint get_gameObject¶
-
UnityEngineAnimationsRotationConstraint.
__get_gameObject__UnityEngineGameObject
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (GameObject
)
flow: none
RotationConstraint get_locked¶
-
UnityEngineAnimationsRotationConstraint.
__get_locked__SystemBoolean
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Boolean
)
flow: none
RotationConstraint get_name¶
-
UnityEngineAnimationsRotationConstraint.
__get_name__SystemString
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (String
)
flow: none
RotationConstraint get_rotationAtRest¶
-
UnityEngineAnimationsRotationConstraint.
__get_rotationAtRest__UnityEngineVector3
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Vector3
)
flow: none
RotationConstraint get_rotationAxis¶
-
UnityEngineAnimationsRotationConstraint.
__get_rotationAxis__UnityEngineAnimationsAxis
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Axis
)
flow: none
RotationConstraint get_rotationOffset¶
-
UnityEngineAnimationsRotationConstraint.
__get_rotationOffset__UnityEngineVector3
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Vector3
)
flow: none
RotationConstraint get_sourceCount¶
-
UnityEngineAnimationsRotationConstraint.
__get_sourceCount__SystemInt32
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Int32
)
flow: none
RotationConstraint get_transform¶
-
UnityEngineAnimationsRotationConstraint.
__get_transform__UnityEngineTransform
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Transform
)
flow: none
RotationConstraint get_weight¶
-
UnityEngineAnimationsRotationConstraint.
__get_weight__SystemSingle
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Single
)
flow: none
RotationConstraint GetComponent¶
-
UnityEngineAnimationsRotationConstraint.
__GetComponent__SystemType__UnityEngineComponent
(UnityEngine.Animations.RotationConstraint instanceSystem.Type type)¶
outputs: unnamed (Component
)
flow: none
RotationConstraint GetComponentInChildren¶
-
UnityEngineAnimationsRotationConstraint.
__GetComponentInChildren__SystemBoolean__T
(UnityEngine.Animations.RotationConstraint instanceSystem.Boolean includeInactiveSystem.Type type)¶
outputs: T (Object
)
flow: none
RotationConstraint GetComponentInParent¶
-
UnityEngineAnimationsRotationConstraint.
__GetComponentInParent__SystemType__UnityEngineComponent
(UnityEngine.Animations.RotationConstraint instanceSystem.Type t)¶
outputs: unnamed (Component
)
flow: none
RotationConstraint GetComponents¶
-
UnityEngineAnimationsRotationConstraint.
__GetComponents__ListT__SystemVoid
(UnityEngine.Animations.RotationConstraint instanceSystem.Collections.Generic.List`1[UnityEngine.Object] results)¶
outputs: none
flow inputs: unnamed
flow outputs: unnamed
RotationConstraint GetComponentsInChildren¶
-
UnityEngineAnimationsRotationConstraint.
__GetComponentsInChildren__SystemBoolean_ListT__SystemVoid
(UnityEngine.Animations.RotationConstraint instanceSystem.Boolean includeInactiveSystem.Collections.Generic.List`1[UnityEngine.Object] result)¶
outputs: none
flow inputs: unnamed
flow outputs: unnamed
RotationConstraint GetComponentsInParent¶
-
UnityEngineAnimationsRotationConstraint.
__GetComponentsInParent__SystemBoolean_ListT__SystemVoid
(UnityEngine.Animations.RotationConstraint instanceSystem.Boolean includeInactiveSystem.Collections.Generic.List`1[UnityEngine.Object] results)¶
outputs: none
flow inputs: unnamed
flow outputs: unnamed
RotationConstraint GetHashCode¶
-
UnityEngineAnimationsRotationConstraint.
__GetHashCode__SystemInt32
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Int32
)
flow: none
RotationConstraint GetInstanceID¶
-
UnityEngineAnimationsRotationConstraint.
__GetInstanceID__SystemInt32
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Int32
)
flow: none
RotationConstraint GetSource¶
-
UnityEngineAnimationsRotationConstraint.
__GetSource__SystemInt32__UnityEngineAnimationsConstraintSource
(UnityEngine.Animations.RotationConstraint instanceSystem.Int32 index)¶
outputs: unnamed (ConstraintSource
)
flow: none
RotationConstraint GetSources¶
-
UnityEngineAnimationsRotationConstraint.
__GetSources__SystemCollectionsGenericListUnityEngineAnimationsConstraintSource__SystemVoid
(UnityEngine.Animations.RotationConstraint instanceSystem.Collections.Generic.List`1[UnityEngine.Animations.ConstraintSource] sources)¶
outputs: none
flow inputs: unnamed
flow outputs: unnamed
RotationConstraint GetType¶
-
UnityEngineAnimationsRotationConstraint.
__GetType__SystemType
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (Type
)
flow: none
op_Implicit¶
-
UnityEngineAnimationsRotationConstraint.
__op_Implicit__UnityEngineObject__SystemBoolean
(UnityEngine.Object)¶
outputs: unnamed (Boolean
)
flow: none
op_Inequality¶
-
UnityEngineAnimationsRotationConstraint.
__op_Inequality__UnityEngineObject_UnityEngineObject__SystemBoolean
(UnityEngine.Object UnityEngine.Object)¶
outputs: unnamed (Boolean
)
flow: none
RotationConstraint RemoveSource¶
-
UnityEngineAnimationsRotationConstraint.

__SetSource__SystemInt32_UnityEngineAnimationsConstraintSource__SystemVoid
(UnityEngine.Animations.RotationConstraint instanceSystem.Int32 indexUnityEngine.Animations.ConstraintSource source)¶
outputs: none
flow inputs: unnamed
flow outputs: unnamed
RotationConstraint SetSources¶
-
UnityEngineAnimationsRotationConstraint.
__SetSources__SystemCollectionsGenericListUnityEngineAnimationsConstraintSource__SystemVoid
(UnityEngine.Animations.RotationConstraint instanceSystem.Collections.Generic.List`1[UnityEngine.Animations.ConstraintSource] sources)¶
outputs: none
flow inputs: unnamed
flow outputs: unnamed
RotationConstraint ToString¶
-
UnityEngineAnimationsRotationConstraint.
__ToString__SystemString
(UnityEngine.Animations.RotationConstraint instance)¶
outputs: unnamed (String
)
flow: none


Memory Management Improvements with Apache Flink 1.10
April 21, 2020 - Andrey ZagrebinApache Flink 1.10 comes with significant changes to the memory model of the Task Managers and configuration options for your Flink applications. These recently-introduced changes make Flink more adaptable to all kinds of deployment environments (e.g. Kubernetes, Yarn, Mesos), providing strict control over its memory consumption. In this post, we describe Flink’s memory model, as it stands in Flink 1.10, how to set up and manage memory consumption of your Flink applications and the recent changes the community implemented in the latest Apache Flink release.
Introduction to Flink’s memory model #
Having a clear understanding of Apache Flink’s memory model allows you to manage resources for the various workloads more efficiently. The following diagram illustrates the main memory components in Flink:
Flink: Total Process Memory
The Task Manager process is a JVM process. On a high level, its memory consists of the JVM Heap and Off-Heap memory. These types of memory are consumed by Flink directly or by JVM for its specific purposes (i.e. metaspace etc.). There are two major memory consumers within Flink: the user code of job operator tasks and the framework itself consuming memory for internal data structures, network buffers, etc.
Please note that the user code has direct access to all memory types: JVM Heap, Direct and Native memory. Therefore, Flink cannot really control its allocation and usage. There are however two types of Off-Heap memory which are consumed by tasks and controlled explicitly by Flink:
- Managed Memory (Off-Heap)
- Network Buffers
The latter is part of the JVM Direct Memory, allocated for user record data exchange between operator tasks.
How to set up Flink memory #
With the latest release of Flink 1.10 and in order to provide better user experience, the framework comes with both high-level and fine-grained tuning of memory components. There are essentially three alternatives to setting up memory in Task Managers.
The first two — and simplest — alternatives are configuring one of the two following options for total memory available for the JVM process of the Task Manager:
- Total Process Memory: total memory consumed by the Flink Java application (including user code) and by the JVM to run the whole process.
- Total Flink Memory: only memory consumed by the Flink Java application, including user code but excluding memory allocated by JVM to run it
It is advisable to configure the Total Flink Memory for standalone deployments where explicitly declaring how much memory is given to Flink is a common practice, while the outer JVM overhead is of little interest. For the cases of deploying Flink in containerized environments (such as Kubernetes, Yarn or Mesos), the Total Process Memory option is recommended instead, because it becomes the size for the total memory of the requested container. Containerized environments usually strictly enforce this memory limit.
If you want more fine-grained control over the size of JVM Heap and Managed Memory (Off-Heap), there is also a second alternative to configure both Task Heap and Managed Memory. This alternative gives a clear separation between the heap memory and any other memory types.
In line with the community’s efforts to unify batch and stream processing, this model works universally for both scenarios. It allows sharing the JVM Heap memory between the user code of operator tasks in any workload and the heap state backend in stream processing scenarios. In a similar way, the Managed Memory can be used for batch spilling and for the RocksDB state backend in streaming.
The remaining memory components are automatically adjusted either based on their default values or additionally configured parameters. Flink also checks the overall consistency. You can find more information about the different memory components in the corresponding documentation. Additionally, you can try different configuration options with the configuration spreadsheet of FLIP-49 and check the corresponding results for your individual case.
If you are migrating from a Flink version older than 1.10, we suggest following the steps in the migration guide of the Flink documentation.
Other components #
While configuring Flink’s memory, the size of different memory components can either be fixed with the value of the respective option or tuned using multiple options. Below we provide some more insight about the memory setup.
Fractions of the Total Flink Memory #
This method allows a proportional breakdown of the Total Flink Memory where the Managed Memory (if not set explicitly) and Network Buffers can take certain fractions of it. The remaining memory is then assigned to the Task Heap (if not set explicitly) and other fixed JVM Heap and Off-Heap components. The following picture represents an example of such a setup:
Flink: Example of Memory Setup
Please note that
- Flink will verify that the size of the derived Network Memory is between its minimum and maximum value, otherwise Flink’s startup will fail. The maximum and minimum limits have default values which can be overwritten by the respective configuration options.
- In general, the configured fractions are treated by Flink as hints. Under certain scenarios, the derived value might not match the fraction. For example, if the Total Flink Memory and the Task Heap are configured to fixed values, the Managed Memory will get a certain fraction and the Network Memory will get the remaining memory which might not exactly match its fraction.
More hints to control the container memory limit #
The heap and direct memory usage are managed by the JVM. There are also many other possible sources of native memory consumption in Apache Flink or its user applications which are not managed by Flink or the JVM. Controlling their limits is often difficult which complicates debugging of potential memory leaks. If Flink’s process allocates too much memory in an unmanaged way, it can often result in killing Task Manager containers in containerized environments. In this case, it may be hard to understand which type of memory consumption has exceeded its limit. Flink 1.10 introduces some specific tuning options to clearly represent such components. Although Flink cannot always enforce strict limits and borders among them, the idea here is to explicitly plan the memory usage. Below we provide some examples of how memory setup can prevent containers exceeding their memory limit:
-
RocksDB state cannot grow too big. The memory consumption of RocksDB state backend is accounted for in the Managed Memory. RocksDB respects its limit by default (only since Flink 1.10). You can increase the Managed Memory size to improve RocksDB’s performance or decrease it to save resources.
-
User code or its dependencies consume significant off-heap memory. Tuning the Task Off-Heap option can assign additional direct or native memory to the user code or any of its dependencies. Flink cannot control native allocations but it sets the limit for JVM Direct memory allocations. The Direct memory limit is enforced by the JVM.
-
JVM metaspace requires additional memory. If you encounter
OutOfMemoryError: Metaspace
, Flink provides an option to increase its limit and the JVM will ensure that it is not exceeded. -
JVM requires more internal memory. There is no direct control over certain types of JVM process allocations but Flink provides JVM Overhead options. The options allow declaring an additional amount of memory, anticipated for those allocations and not covered by other options.
Conclusion #
The latest Flink release (Flink 1.10) introduces some significant changes to Flink’s memory configuration, making it possible to manage your application memory and debug Flink significantly better than before. Future developments in this area also include adopting a similar memory model for the job manager process in FLIP-116, so stay tuned for more additions and features in upcoming releases. If you have any suggestions or questions for the community, we encourage you to sign up to the Apache Flink mailing lists and become part of the discussion there.


There are eight context menus that appear when you right click on certain parts of the HexEdit Pro display. All context menus except for the toolbars menu can be customized using the Customize Menu page of the Customization dialog. The tables below show the default menus, before customization. Most of these commands are also available on either the Edit or View menu.
Note that if you right-click a bookmark or highlight but the byte clicked is also selected then the Selection Context Menu is shown in preference to the Bookmark or Highlight Context Menu.
Aerial View Context Menu
Right-clicking on the Aerial View image invokes this menu:
|
Indicate the selection area in left and top borders of the aerial view | |
|
Indicate the position of the mark in the left border of the aerial view | |
|
Indicate highlights in the left border of the aerial view | |
|
Indicate background search occurrences in the left border of the aerial view | |
|
Indicate bookmarks in the left border of the aerial view | |
|
Show the selection with black and white marching ants | |
|
Indicate the position of the mark with marching ants | |
|
Indicate the position of highlights with marching ants | |
|
Indicate the position of search occurrences with marching ants | |
|
Indicate the position of bookmarks with marching ants | |
|
Zoom out the aerial view (one bitmap pixel = 1 screen pixel) | |
|
Zoom where one bitmap pixel = 2 X 2 screen pixels | |
|
Zoom where one bitmap pixel = 4 X 4 screen pixels | |
|
Zoom where one bitmap pixel = 8 X 8 screen pixels | |
|
Zoom where one bitmap pixel = 12 X 12 screen pixels | |
|
Zoom where one bitmap pixel = 16 X 16 screen pixels | |
|
Invokes the Customize dialog. | |
|
Invokes the Window Display page of the Options dialog. | |
|
Invokes the Properties dialog. |
Selection Context Menu
Right-clicking on the currently selected bytes (either in the hex or character areas) invokes this menu:
|
Deletes data from the file and moves it to the clipboard. | |
|
Copies data from the file to the clipboard. | |
|
Pastes from the clipboard replacing the current selection. | |
|
Write the current selection to a file which you specify. | |
|
Append the current selection to a file which you specify. | |
|
Append the current selection to the last file written or appended to. | |
|
Search for the next occurrence of the currently selected bytes. | |
|
Invoke calculator, loading the current selection. | |
|
Highlight the current selection. | |
|
Invokes the Customize dialog. | |
|
Invokes the Window Display page of the Options dialog. | |
|
Invokes the Properties dialog. |
Bookmarks Context Menu
Right-clicking on any bookmark (either in the hex or character areas) invokes this menu:
|
Invokes the Bookmarks dialog to add or jump to a bookmark. | |
|
Deletes all bookmarks in the current file. | |
|
Jumps to the previous bookmark in the file. | |
|
Jumps to the next bookmark in the file. | |
|
Hides (but does not delete) the bookmarks in the current file. | |
|
Invokes the Customize dialog. | |
|
Invokes the Window Display page of the Options dialog. | |
|
Invokes the Properties dialog. |
Note that if you right-click a bookmark and the byte is also selected then the Selection Context Menu is shown in preference to the Bookmark Context Menu.
Highlight Context Menu
Right-clicking on any highlighted section (either in the hex or character areas) invokes this menu:
|
Highlight the current selection or toggle highlighter mode. | |
|
Remove all highlights and turn off highlighter mode. | |
|
Jump to the previous highlight in the file. | |
|
Jump to the next highlight in the file. | |
|
Hides (but does not delete) the highlights in the current file. | |
|
Invokes the Customize dialog. | |
|
Invokes the Window Display page of the Options dialog. | |
|
Invokes the Properties dialog. |
Note that if you right-click a highlight but the byte clicked is also selected or bookmarked then a menu above is shown in preference to the Highlight Menu.
Hex Area Context Menu
Right-clicking in the hex area (on a byte that is not selected, highlighted or bookmarked) invokes this menu:
|
Toggle character area display on or off. | |
|
Invoke the Font dialog to select the face, size etc of the display font. | |
|
Automatically change the number of columns to fit across the window. | |
|
Set the Mark to the current cursor position. | |
|
Toggles between allowing changes and read-only mode. | |
|
Toggles between Insert and Overtype mode. | |
|
Invokes the Customize dialog. | |
|
Invokes the Window Display page of the Options dialog. | |
|
Invokes the Properties dialog. |
Character Area Context Menu
Right-clicking anywhere in the character area (on a byte that is not selected, highlighted or bookmarked) invokes this menu:
|
Turn off character area display. | |
|
Toggle between display of ASCII and EBCDIC characters. | |
|
Toggle the display of control characters (in ASCII mode only). | |
|
Toggle the display of graphics characters (in ASCII mode only). | |
|
Toggle between the display of ANSI and IBM/OEM graphics characters. | |
|
Toggles between allowing changes and read-only mode. | |
|
Toggles between Insert and Overtype mode. | |
|
Invokes the Customize dialog. | |
|
Invokes the Window Display page of the Options dialog. | |
|
Invokes the Properties dialog. |
Address Area Context Menu
Right-clicking in the address area (to the left of the hex area) invokes this menu:
|
Toggles between displaying addresses in hex or decimal. | |
|
Invoke the calculator to jump to an address. | |
|
Invoke the Find dialog to search using hex, ASCII, EBCDIC etc. | |
|
Set the Mark to the current cursor position. | |
|
Returns the cursor to the last marked location. | |
|
Invokes the Customize dialog. | |
|
Invokes the Window Display page of the Options dialog. | |
|
Invokes the Properties dialog. |
Toolbars Context Menu
Right clicking on a tool bar displays a context menu that allows you to hide or show any of the tool bars or invoke the Customize dialog in order to create or change the toolbars. These options are also available on the View menu.
|
Shows or hides the Standard Toolbar. | |
|
Shows or hides the Edit Bar. | |
|
Shows or hides a toolbar with formatting options. | |
|
Shows or hides a toolbar with navigation options. | |
|
Shows or hides a custom toolbar. | |
|
Used to create and customize toolbars |
Status Bar Context Menu
Right-clicking anywhere on the status bar invoked the following menu:
|
Turns off the display of the status bar. | |
|
Invoke the Find dialog to search using hex, ASCII, EBCDIC etc. | |
|
Invoke the calculator to jump to an address. | |
|
Commence keystroke macro recording. | |
|
Set the Mark to the current cursor position. | |
|
Toggles between allowing changes and read-only mode. | |
|
Toggles between Insert and Overtype mode. | |
|
Invokes the Customize dialog. | |
|
Invokes the Window Display page of the Options dialog. | |
|
Invokes the Properties dialog. |
Tabs Area Context Menu
Right-clicking on a file tabs at the top or bottom of the file display area invokes this menu:
|
Closes the file associated with the tab | |
|
Saves the file associated with the tab | |
|
Allows you to save the file to a different file name | |
|
Print the file | |
|
Preview the printed file | |
|
Show Icon |
Toggle the display of icons on all the tabs |
|
Tabs at Bottom |
Toggle between displaying the file tabs at the bottom or top of the screen |


--- layout: post authors: ["Greg Wilson"] title: "Improving Instruction" date: 2015-02-27 time: "06:00:00" tags: ["Teaching"] ---
It's been quite a year for Software Carpentry instructor training: we had a great session at UC Davis (see also this excellent post from Rayna Harris) and another at the Research Bazaar kickoff in Melbourne. We've also started the twelfth round of online instructor training with 75 participants, making it our largest yet.
All of this has led to a flurry of activity in our GitHub repositories. The comments and pull requests are very welcome, but we need to keep three things in mind:
We already have more material than we can cover in two days.
We are not our learners.
No lesson survives its first presentation intact.
The first point is the most difficult. Everyone can think of things we ought to teach; the hard part is agreeing on what to take out to make room for those additions. For example, I really want to include dictionaries in our basic Python tutorial, but I'm damned if I can figure out what it's greater than, i.e., what to drop to free up the half hour it takes for people to learn what they are and how they work.
The common response is, "Half an hour? It only takes a minute!" but that brings us to the second point: we are not our learners. The people who are most likely to offer contributions to lessons are the ones who are most confident in their computing skills. That does not necessarily imply they are the most competent, but it does (usually) mean that they already understand these ideas, and therefore under-estimate how hard they are for newcomers.
In particular, new instructors often under-estimate how often "little" things will go wrong in incomprehensible ways. and how hard they are to fix without a working mental model of how all this stuff works. What we're trying to teach is intrinsically complex. The accidental complexity imposed by lousy tools makes it harder, and it's all too easy for people who've climbed a hill to forget how steep it was.
The reverse is true of lessons: it's easy for someone who hasn't climbed a hill to underestimate how hard a slog it will be. In particular, a lesson that's been used and patched a double dozen times can appear no different from one I made up last night, especially since we're still doing a poor job of capturing our in-class experiences in our instructors' guides. One consequence of this is new instructors using their own untested material in workshops, which has gone poorly more often than it has gone well.
My previous musings on teaching didn't end with anything actionable, so this one should. First, I'm going to spend a lot more time discussing our lessons during instructor training; in particular, I'm going to ask some experienced instructors to help me do walkthroughs of the lessons with the trainees. Second, I'd like to propose that:
Every time someone suggests adding a new topic to one of our lessons, they have to tell us what they would remove to make room for it. That doesn't mean something will be removed, but I think it will help clarify discussion about teaching priorities. (This rule wouldn't apply to adding new exercises, instructors' notes, or anything else that doesn't increase the length of the lesson.)
Instructors should be required to teach our standard lesson on a topic at least a couple of times before replacing its content with material of their own. Minor adjustments to fit particular learners and personal teaching styles are always OK—the whole point of teaching live instead of using recorded video is to allow this. So is adding extra material for particular audiences, provided the core material hasn't been rushed through, but wholesale replacement should wait until the instructor understands why the stuff they're replacing looks the way it does.
I don't want to scare people off or stifle innovation: after all, if we never try new things, our lessons will never get better. However, as more instructors and other contributors join us, we need better guidelines. Voting on changes to lessons at each lab meeting proved unworkable; having topic maintainers is much better; the post-workshop instructor debriefings that Sheldon McKay and Rayna Harris are running will hopefully help us capture more of our experiences in shareable ways. I'd be grateful for feedback on whether these ideas are (a) good and (b) workable—please add them as comments on this blog post, and I'll summarize next week.


[gecode-users] Extending Integer Variable
Vincent Barichard
Vincent.Barichard at univ-angers.fr
Wed Apr 2 16:08:00 CEST 2008
Hi,
I am trying to extend IntVar in order to use it in my self(-made algorithms.
I would like to use an unaltered Gecode, but I need to add an "int" member in
the IntVar implementation. I don't want to make my own Integer Variable class
because I also need to use the algorithms designed in Gecode.
Is there a clean way to extend this class (by inheritance maybe ....) and add
a member without altering Gecode ?
Thank you for your assistance.
Best regards,
Vincent
--
Vincent Barichard Université d'Angers (LERIA)
Tel: 02 41 73 52 06 Département Informatique
Fax: 02 41 73 50 73 H203
More information about the gecode-users
mailing list


Sadguru Jaggi Vasudev
I discovered him in 2017 when he had recently finished his isha project. Since then, he has simplified a lot of hubris that surrounded around religion. The most profound words of his were -" How do you know you are not already in heaven ". This simple question led me to a path of "inner engineering". His work on rally for Rivers, or his visits to all IIT/IIM/NALSAR/JJ School of arts / many other premier educational institutes under "Youth and Truth" where he answered questions posed by young students in Ask me Anything formatMany of these are beyond 2 hours duration and are a must watch for any school college going youngster. In many ways he is a union of new with old. His work can be seen as
isha Yoga Centres.
A lot of what he says is modern interpretation of Patanjali Yoga Sutra ( IMHO)
Sandeep Manudhane
I had initially got in touch with him around 1998 and then rediscovered him in 2017 when he started YouTube channel which catered to current Affairs from news. His analysis was a breath of fresh air in time of fake news and paid media. Its much better to subscribe to his paid channel compared to fishing for relevent news yourself. His business venture is with name of
PTEducation (Professional Tutorials). He is extremely punctual and lives a very healthy lifestyle. He is one of the Rishi of Modern India who continue to transform lives of students by giving them a framework to understand the world around them and imbibing ethical and moral values in his teachings.
Neil Gogte
Some of my
seniors were taught Oracle Apps by him around year 2001. At that time
people in Hyd were not aware of Apps. Afterwards he
got busy with Leapstone and was not into teaching anymore. Most people
know only this much about him.
( Even now some people think 11i is
next
version of database 8i 9i 10g and after that 11i. However 11i is
in fact a seperate line of product to facilitate E Business instead of
just a technology component like Oracle Database versions like 8i
9i and 10g).
Well ..back to Neil Sir, at present (present as in Oct
2005).
He is two timing himself in setting up a Center for LeapStone and
taking classes for Java.
Core + Advanced+ J2EE. His makeshift site for Genesis
is here.
Eric S Raymond
You should read his book
Cathedral and the
Bazaar. His site is
here.
He has a clear
conscience and a in the face way of saying things. Wish to meet
him sometime in Person
.
Last updated Date for webpages is one of the smart ideas that I have
also used in my website(using JS it picks the timestamp of the file to
show in HTML page ). Check out his link for
using
Fedora on
IBM X40laptop . Hopefully I will get
my X40 soon thanks to IBM-Lenovo deal to bring cost down.
Never met him but actively looking
forward to meet him.
Keith Swartz
The style of writing in
www.oneroad.com
website is very natural and friendly. I have had the privilege of
working with him. A stickler for following standards. He is the one
who introduced me to the w3c community and standards. Which I try my
best to follow. He is an MIT graduate.
Have had the privilege of working with him for
2 years (2003-2005) in
Oracle
Roger Sanders
He prepared the Techstack Perl Base modules using OOPS way of
doing Perl (I think this is not easy esp as it is so easy to fall
back to procedural based programming in perl).
I can not say he liked me a lot. But
what
the heck, I know he is a great guy and I still use his Perl
Modules.
Have had the privilege of working with him for 2
years (2003-2005) in
Oracle
Jerry (Ravi Jerome Barnes )
A 7 footer, best mix of management and technology. Be it board room
disscussions , Server Rooms (networks ), Table tennis this guy has been
a champ all along.
Have had the privilege of working with him for 2
years (2001-2003) in
Nucleus
Software Exports.
At present he is in Japan married to a beautiful Girl
Sanjay Kumar
He is the one who introduced me to the technology as a tool instead of
some piece of code that does fancy things. My initial years, I was
wandering in technology forest holding his hand.
Regarded for his immense knowlegde for latest
technologies. We worked on Oracle 9i Application server and Forms
Listener Servlet that was recently introduced some time in 2001.
People who work under him for a long time, usaually develop a liking
towards technology (Oracle in general)
He is what I would say is a Diamond cutter(India can
boast of Diamond cutters ;) ).
Have had the privilege of working with him for 2
years in Nucleus Software Exports


Before Change
address_map = build_file_parser.parse_build_file(build_file)
for address in address_map.keys():
build_graph.inject_address_closure(address)
for address in address_map.keys():
target = build_graph.get_target(address)
// TODO(John Sirois): tighten up the notion of targets written down in a BUILD by a
// user vs. targets created by pants at runtime.
target = self.get_concrete_target(target)
for dependency in target.dependencies:
dependency = self.get_concrete_target(dependency)
dependees_by_target[dependency].add(target)
roots = set(self.context.target_roots)
if self.get_options().output_format == "json":
deps = defaultdict(list)
for root in roots:
After Change
for dependent in self.get_dependents(dependees_by_target, [root]):
deps[root.address.spec].append(dependent.address.spec)
for address in deps.keys():
deps[address].sort()
yield json.dumps(deps, indent=4, separators=(",", ": "), sort_keys=True)
else:
if self._closed:
for root in roots:


--- layout: attachment title: 台阶 categories: [] tags: [] published: false comments: true ---
新清华学堂外的台阶


Early Life and Education
Born Myles Egbert Munroe in 1954 in Nassau, Bahamas, Munroe grew up
poor in a family of eleven children. Raised in the Nassau
constituency of Bain Town, he was a lifelong resident of the
Commonwealth. Munroe became a Christian during his teenage years,
later attending Oral Roberts University (ORU) where he received his
Bachelor of Fine Arts, Education, and Theology in 1978[2][3] and a
Master’s degree in administration from the University of Tulsa in
1980.[citation needed] Munroe was also the recipient of honorary
doctoral degrees from various schools of higher education[4] and
served as an adjunct professor of the Graduate School of Theology at
ORU.[citation needed] He wrote a number of books.
Personal Information
His wife, Ruth Munroe, served as co-pastor with him at BFMI. They
got married in 1978. Together, the couple had two children, Myles,
Jr. (known as Chairo), and a daughter, Charisa.
Christian Ministry
Following his graduation from the University of Tulsa, Munroe
founded Bahamas Faith Ministries International in the early 1980s
Death
Munroe and his wife died in a private plane crash during airport
approach on 9 November 2014. Bahamian officials stated their
aircraft struck a crane at a ship yard near Grand Bahamas
International Airport. Munroe and the other passengers were en route
to Freeport, Grand Bahama for a conference.
Awards
Dr. Myles Munroe received quite a lot of awards, here are listed
few:
- 1998: OBE for "services to religion".
-
1998: Bahamian "Silver Jubilee Award" for service to the Bahamas
in the area of "spiritual, social and religious development".
- 2004: "Alumnus of the Year", Oral Roberts University.


- Collections
- What We Do
- Rights and Reproduction
Records Management
Preservation
Digital Curation
Forums
Publications & Resources
- Smithsonian History
- General History
Governance & Organization
Featured Topics
Historic Pictures
Research Centers
Smithsonian Museums


Preston North End's Tom Barkhuizen wins Championship goal of the month award
by Dave SeddonPreston North End's Tom Barkhuizen has won the Sky Bet Championship goal of the month award for his stunning finish in the derby win over Blackburn Rovers.
Barkhuizen capped a fine fightback in the Deepdale clash as North End came from 2-0 down to win 3-2 on October 26.
In a public poll, his goal received 48% of the vote to see him beat off efforts from Derby County's Graham Shinnie and Hull City striker Tom Eaves to win the award..
Receiving the award, Barkhuizen said: It's nice to get recognition personally, it was a great game to get a goal like that in and thankfully it got us the three points.
"The most important thing for me is that we are second in the league. If I am doing well and contributing then it is only going to help that.
“It was a nice goal, I don't score many like that so hopefully there are more to come!
"The goal was made better by the whole day and the game, the way it panned out.
"We were really poor in the first half and then we came out fighting in the second half and I think that goal topped off a really good afternoon for the whole place.
"Once we got back in to the game, the whole place lifted, the fans lifted and it lifted us.
"I think a goal like that comes from confidence of the game and it is always nice."
Lead Sky Bet EFL goal of the month judge and Sky Sports Pundit Don Goodman, said: "It wasn’t only the quality of the goal that made Tom Barkhuizen’s late effort
against local rivals Blackburn so special, but what it meant in the context of the game.
"Barkhuizen had already been instrumental in bringing the scores level from 2-0 down and to keep calm and deliver such a perfectly-hit first time strike into the top
corner to win the game, shows what a huge asset he is to Preston."
It is the second time Barkhuizen has won this award, having done so in March 2017 for a goal against Reading.


WITNESS LIST Natural Resources Committee April 12, 1999-12:00A SB 705 THIS LIST HAS NO WITNESSES. SB 1272 THIS LIST HAS NO WITNESSES. SB 1302 THIS LIST HAS NO WITNESSES. SCR 56 THIS LIST HAS NO WITNESSES.


Hi All,
Firstly, thanks for the great site, info and hardware! I recently bought my modules and they are super, love it!
The question I have is that, my emonTx, the LED flashes when sending data. This happens consistently on a 5 second interval.
The trouble is that I do not receive data on the RX side, every time. At times, I have a 30 to 40 second gap. The LED on the RX side flashes when I receive data on the Raspberry PI. I monitor the serial port and can see the data come in, in sync with the TX side. At times, the TX flashes and nothing on the RX side and nothing on the serial port side.
I have the 433Mhz V2.2 emonTx. I am using my own python code to read the serial port for now, but besides that, the LED on the Rx side should flash in sync with the Tx side. The modules are right next to each other. I have also tried them in a different location, in case of interference, but the same thing happens.
Any ideas?
PS: I have not upgraded or flashed the Rx Raspi Shield.
Re: emonTX / RX consistancy of data sends
I did read somewhere that you can have problems when the modules are close because the receiver can be overloaded. I regularly use and emonTx and nanodeRF at 868 MHz only a few inches apart and I've never seen a problem, but it's worth trying them further apart if you haven't done so already. I know nothing about the RPi so your problem might be there instead/as well.
Re: emonTX / RX consistancy of data sends
Hi Robert,
Thanks for your reply. I have also thought that and tried it from a different room. About 10m away and the same thing. I have tried playing with the code and adding delays etc incase the RF cannot complete in time etc.
It would however appear that I have worked it out. By the looks of things, I had not set the node ID, group and Freq upon start up. I have added the following to my python code just after opening the serial port:
serial.write('9i') #node 9/Tx is 10
serial.write('4b') #freq 433
serial.write('210g') # to match Tx group ID
serial.write('500l') # show Rx LED to acknowledge settings (500L)
appears to be on a very close 5-6 second interval now!
Re: emonTX / RX consistancy of data sends
Oops! Not setting the receiver correctly might just have a bearing on the issue. ;-)
You certainly need the frequency and group, but probably not the nodeID, as the protocol uses the nodeID to identify the transmitter, not the destination. You might want to read RFM12B - Part 2 - Sending Data Between Modules in Building Blocks.


This application uses Google Spreadsheet to store data. Click the button to create a new spreadsheet to store the data. Create Spreadsheet


A map definition is a file containing the options needed to recreate a map. Click on the Create MapDef button and save as a file. You can then either incorporate that file into the map program or enter the URL below to recreate the same map without entering the options individually.


Into
There’s a big difference between these three states:
- I like X
- I’m into X
- I’m good at X
That difference usually amounts to doing whatever it is. A lot. But, if you like something, it’s hard to admit you’re not really into it in any meaningful way. Maybe you like the beliefs behind open source code, and you admire the people who do it, and think of yourself as one of them. But you don’t actually do it.
The first step to getting good at anything worthwhile is accepting that you’re going to suck at it, most likely for a very long time. If you can master it in a day, it’s probably not all that interesting. The really cool stuff takes years.
So get started, already.


2021 Audi RS3 spied
The upcoming performance hero of the new Audi A3 range has been spotted at the 'Ring, ahead of a reveal sometime in 2020.
by James Wong- shares
The next-generation Audi RS3 has been snapped for the first time during performance testing at the Nurburgring Nordschleife in Germany – and good news, it still has five-cylinder power.
Photographers noted hearing the distinctive engine note of Audi's five-cylinder turbo petrol engine, indicating the new model will get a revised version of the current 2.5-litre motor.
We can see some of the Audi Sport add-ons that will be fitted to the RS3, namely the more aggressive bumpers and beefed-up wheel/tyre package, and the two large oval exhaust pipes sticking out the rear.
It's expected the RS3's 2.5-litre five-cylinder turbo will get a small power bump over the current model's 294kW and 480Nm outputs, along with a reworked exhaust system and a petrol particulate filter in line with Europe's latest emissions regulations.
Given the Mercedes-AMG A45 S outputs a beefy 310kW and 500Nm from a 2.0-litre displacement, you have a rough idea of the figures Audi could be gunning for.
Drive will be sent to a quattro all-wheel drive system via a seven-speed S tronic dual-clutch transmission. Expect a 0-100 claim of around 4.0 seconds.
Beyond the cosmetic and drivetrain changes, the rest of the RS3 will be pretty much the same as the standard new-generation A3 – which is due to be revealed before the end of the year.
Expect the latest Audi MMI touch infotainment interface, a new Virtual Cockpit display, the latest in semi-autonomous driver assists, along with model-specific trimmings like carbon-fibre trim inlays and sports seats in leather/Alcantara combination.
It's believed the new RS3 will be revealed sometime next year ahead of a late 2020 European sales launch – possibly debuting as early as the Geneva motor show in March.
Australia
The current RS3 Sportback and Sedan have been on a sales stop for the past few months as Audi had to redo the certification process to comply with WLTP economy and emissions testing.
Originally scheduled to return to Australian showrooms before the end of this year, Audi Australia recently confirmed production for our market had been pushed back until November/December, meaning the new cars won't be hitting our shores until January/February in 2020.
"We’ve certainly had interest and demand and enquiry about the vehicle over the past 12 months so we’re very much looking forward to its return," Shaun Cleary, Audi Australia's corporate communications manager, told CarAdvice last month.
"Our production has been confirmed for later in the year, so at this stage we hope to see the RS3 return in early 2020."
It is unclear if prices will rise but when it was last on sale in Australia the RS3 cost from $80,240 plus on-road costs for the hatch and $84,240 plus on-road costs for the sedan.
No technical changes planned for the vehicle, either. The power output from the turbocharged 2.5-litre five-cylinder engine (294kW/480Nm), seven-speed twin-clutch auto and all-wheel-drive system remain unchanged.
Stay tuned to CarAdvice for all the latest, and click on the images for the full gallery.
1
20
nextprevious
2021 Audi RS3 spied


Joseph Davis owned the Ground Hog mine about five miles south of Tombstone. One day in August 1884 Joe, as he liked to be called, left Tombstone on his horse and rode out to check on his mine. He did that frequently, so the miners were used to seeing him show up. Joe was known to be a fair owner and paid his men well but demanded that they work hard to earn their pay. Joe was also locally well-known for never carrying more than five dollars because he was afraid that a larger sum would be a temptation to a robber.
On this particular August morning, Joe had visited the Ground Hog mine and then started back toward Tombstone. It was late in the afternoon and Joe was riding across the desert in an area that had no trails but he knew where he was going and he expected to be back in Tombstone well before dark. A short distance from the mine, though, he was ambushed by a gang of bandits.
Joe was unconscious until the middle of the night, but he was a tough old bird and did not die. When he came to, he was disoriented and very near the point of death. He couldn't remember exactly where he was or even what he was doing there; however, he did know that he was hurt and needed to get some help. He managed to get to his feet and started walking. Because it was a dark night, his progress was very slow. He frequently stepped on sharp stones and small cacti; and soon began taking only the smallest of tentative baby steps. Because he was disoriented, he really didn't even know which direction to travel; and due to his blood loss, he frequently fell and had to rest before proceeding. Things, frankly, did not look good for Joe.
In his semi-conscious stupor, however, Joe heard a train whistle. He figured if he could just get to the tracks, he may be able to flag down a train, or someone riding a horse beside the tracks, and get some help. So Joe did the best that he could to move toward the sound of that whistle. He knew that he would have to hurry because once the train passed another may not come by for several hours, or even days. Joe made his way across the floor of the desert as quickly as he could, but he really wasn't very fast.
After about an hour, Joe fell and rolled over onto his back. He was tired, hurt, and simply ready to give up. He looked up and saw the stars as they silently twinkled overhead. Joe knew that he didn't want to die, but he was afraid that the end was near. He heard that train whistle one more time and then passed out.
Joe woke up but the next few hours were little more than moments of consciousness in a long sleepy night. He sensed being carried up the steps of a railroad coach. He heard a steam engine chugging slowly to his right and smelled the odor of burning coal. He heard men shouting things like "let's get him aboard." Joe remembered feeling a cushioned seat underneath his injured body and leaning his head against the window where he saw the desert in the reflected light of the engine's headlamp. Joe felt the train gently lurch forward and then he passed out again.
Joe's next memory was waking up on a bed in Dr. George Goodfellow's office in Tombstone. He had no idea how he got there but he knew that he was going to live. The mid-morning sun was streaming through a window beside his bed and Joe was looking around the room from his bed when the door opened and Dr. Goodfellow stepped in. He told Joe that he was pretty banged up but should be "good as new" in a few weeks. Joe asked how he got there and Dr. Goodfellow admitted that he didn't know. He had heard a knock on the door in the middle of the night and when he answered that knock he found Joe in a bloody heap on the front porch. Joe told Dr. Goodfellow he could remember being rescued by some men on the train and Dr. Goodfellow's response was surprising. The doctor said nothing, but an odd look came across his face. He reached up and touched Joe's forehead to check for fever, he also more thoroughly examined Joe's head for any injuries that he may have missed the night before. He then told Joe that he needed to rest and left the room.
By the next day, Joe's confusion was beginning to clear and he began to wonder about that train. He had lived in Tombstone for several months and knew full well that there were no trains, or even tracks, that came to Tombstone. In fact, he knew that some of the local folks had opposed the railroad ever coming into town during a recent town hall meeting. Joe wondered if he had dreamed the whole affair, but that stab wound healing in his shoulder was real enough.
Joe couldn't have known about the Ghost Train that has been reported throughout Cochise County since the early 1880's but it seems that his life was saved the night when he became a passenger on that train.


Openfin Layouts Library is included via script tag in this window. Accessible with global var 'layouts'


Terms of service of STRADA
These Terms of service govern your use of the application STRADA
By using the app, you accept these Terms in full. If you disagree with these Terms or any part of these Terms, you must not use the app.
The app is released under the MIT license.
The app uses Google Maps APIs. By using the app, you are bound by Google's Terms of Service: Google Terms of Service


Music Journal is a website that allows you to create your playlists and journal your thoughts!
Created by Fred Brume, Daniel Coombs, and John Maurer


Home
(current)
Register
Login
Pricing
Modal title
×
Email address
We'll never share your email with anyone else.
Password
Check me out
Submit
Modal title
×
Loading...
Card title
Card subtitle


Taroon:
Are you from Jinia guild? Then you should know this... Some guy claiming to be a prosecutor for your guild is inside. He was looking for something. It seemed urgent. Do you know him?
"Tell me where he went, and tell me quickly."


A few colored objects to test the experimental X3D viewer:
Complete code for this example:
Examples Page


YaaSBites1
A tiny web-service from YaaSBite1 @ YaaSBites
Open this page in a Chrome Browser, and open Chrome's Developer Tools from inside Chrom: (View | Developer | DeveloperTools), then
watch and understand the REST traffic that occurs when you visit
/greeting and
/greeting?name=bod


Dashboard
Sites
Users
Configuration
Refresh
username
time
ip address
last command
Server Uptime:
seconds,
clients logged in.
Name
Ip Address
Create Site
name
ip address
status
Username
Password
Home Directory
Username
Home Directory
Username
Password
Retype Password
Create User
Name
Administrator Password
Password
Retype Password
Update
Anonymous Access
Enabled
Update
Copyright © 2010 - 2011
Code Maker Inc.
All Rights Reserved.
Are you sure you want to delete this item?


// Grant Timmerman — @grant
The Frontend Framework
A library for building UI
of the Future
of TODAY
Please ask questions along the way!
Despite our long history, we still don't have a great way to build large frontend applications.
How should we structure our JavaScript applications?
two way databinding! WEAK
— Horse JS (@horse_js) April 8, 2015
props
: Immutable valuesstate
: Mutable valuesrender()
: Returns the component's htmlfunction setupHome () {
// Sets up map view
$('.back-page').click(function (e) {
if ($(e.target).hasClass('back-page')) {
$('.back-page').toggleClass('map-view');
}
});
var lastTime = $('.events.list').data('time');
function initialize() {
function updateCenter () {
$.get('/api/location', function (location) {
var panPoint = new google.maps.LatLng(location.lat, location.lng);
map.panTo(panPoint);
});
}
Global $
DOM selector/event binding madness
render: function() { ... }
should return JSX
var data = [
{ text: "message 1" },
{ text: "message 2" }
]
var myHTML =
{data[0].text}
{data[1].text}
produces
message 1
message 2
render: function() {
var otherValue = 'bar';
return (
Below is my custom button component.
<MyButton myProp='foo' myOtherProp={otherValue}/>
);
}
var HelloMessage = React.createClass({
render: function() {
return Hello {this.props.name};
}
});
React.render(<HelloMessage name="UW Hackers" />, mountNode);
If you're trying to achieve, there will be roadblocks. I've had them; everybody has had them. But obstacles don't have to stop you. If you run into a wall, don't turn around and give up. Figure out how to climb it, go through it, or work around it.~Michael Jordan


Just leave this tab open and your browser won't be closed automatically
NOTE: Due to a change in the API of Chrome, you will need to click anywhere on this page once to make this script work
設定快速鍵(請捲動至Lazy Mobile01區塊)


This user will have access to the web site, but the admin need to configure the systems user can see.
This function will only delete the access to the data for all users, but the data will still remain in the database.


DLM demo no 2, testing DLM functions
Generate seasonal data and fit DLM model with 12 seasons.
Data
t = (1:1:(6*12))'; % time n = length(t); s = 0.1; % obs error std y = 2 + 0.5*(t-0)/12.*((t-0)<2*12) + ... 0.5*(2*12)/12.*((t-0)>=2*12) + ... 0.8*sin((t-0)/12*2*pi) + ... randn(n,1)*s;
figure(1); clf plot(t,y,'o-'); xlabel('time'); ylabel('y'); title('observations');grid;
Model error diagonal, first non zero values.
w123 = [0.0000,3.1e-5,1e-8,1e-8,1e-8,1e-8];
Options for dlmfit function. Use harmonic functions with 2 components and 12 seasons. Optimize some variance parameters using maximum likelihood.
clear options
options.ns = 12;
options.trig = 2;
options.opt = 1;
options.winds = [0 1 2 2 2 2];
DLM fit.
out = dlmfit(y,s,w123,[],[],[],options);
Iteration Func-count min f(x) Procedure 0 1 56.4488 1 3 56.4488 initial simplex 2 5 48.2807 expand 3 7 33.1171 expand 4 9 -166.988 expand 5 11 -214.797 expand 6 13 -214.797 contract outside 7 15 -214.797 contract inside 8 17 -214.797 contract inside 9 19 -216.244 contract inside 10 21 -217.027 contract inside 11 22 -217.027 reflect 12 24 -217.027 contract inside 13 26 -217.027 contract inside 14 28 -217.027 contract inside 15 30 -217.044 contract inside 16 31 -217.044 reflect 17 33 -217.044 contract inside 18 35 -217.045 contract outside 19 37 -217.046 contract inside 20 38 -217.046 reflect 21 40 -217.046 contract inside 22 42 -217.046 contract inside 23 44 -217.046 contract inside 24 46 -217.046 contract inside 25 48 -217.046 contract outside 26 50 -217.046 contract inside 27 51 -217.046 reflect 28 53 -217.046 contract inside 29 54 -217.046 reflect 30 56 -217.046 contract inside 31 58 -217.046 contract outside 32 60 -217.046 contract inside 33 61 -217.046 reflect 34 63 -217.046 contract inside 35 65 -217.046 contract inside 36 67 -217.046 contract inside 37 68 -217.046 reflect 38 70 -217.046 contract inside 39 71 -217.046 reflect 40 73 -217.046 contract inside 41 75 -217.046 contract outside 42 77 -217.046 contract inside 43 78 -217.046 reflect 44 80 -217.046 contract inside 45 82 -217.046 contract inside 46 84 -217.046 contract outside 47 86 -217.046 contract inside 48 88 -217.046 contract inside 49 90 -217.046 contract inside 50 94 -217.046 shrink 51 98 -217.046 shrink 52 102 -217.046 shrink 53 104 -217.046 contract outside 54 106 -217.046 contract outside 55 110 -217.046 shrink 56 112 -217.046 contract inside 57 116 -217.046 shrink Optimization terminated: the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-04 and F(X) satisfies the convergence criteria using OPTIONS.TolFun of 1.000000e-04 woptv = 0x1 empty double column vector woptw = 0.0085116 1.3657e-09 woptg = 0x1 empty double column vector
Default plots.
dlmplot(out);


--- date: 2010-02-12T00:00:00Z published: true title: Google Chart Tools / Interactive Charts (aka Visualization API) url: /2010/02/12/google-chart-tools-interactive-charts-aka-visualization-api-/ ---
The Google Visualization API lets you access multiple sources of structured data that you can display, choosing from a large selection of visualizations. Google Visualization API enables you to expose your own data, stored on any data-store that is connected to the web, as a Visualization compliant datasource. Thus you can create reports and dashboards as well as analyze and display your data through the wealth of available visualization applications. The Google Visualization API also provides a platform that can be used to create, share and reuse visualizations written by the developer community at large.


E’ da tempo che mi chiedo come mai non esista un Google Developer Group nel Veneto. Basta dare un’occhiata alla directory dei GDG a questo link per vedere che, in Italia, il Nord-Est è abbastanza scoperto. Così, invece di attendere che su quella mappa compaia un nuovo marker più vicino alle mie zone, ho deciso di prendere contatti con Google e a... Read more 22 Oct 2015 - 1 minute read
Splash screens are not so popular in Android development. But wait: now Google started to put splash screens in its apps??? Take a look at Google Drive app for example. Does it mean that now we have a new standard? This is not the right post to talk about if splash screen in Android is good or bad. Let’s think only about code: implementing a sp... Read more 07 Sep 2015 - 1 minute read
In Java it’s common to work with listeners. And if you work with RxJava, you will prefer to use an Observable instead of listeners. But what if you have to deal with a library and you cannot change the source code? There’s a simple way to create an Observable around a listener. Suppose we have an interface ValueUpdateListener and an object Val... Read more 28 Aug 2015 - 1 minute read
The next library you will learn should definetly be ReactiveX. What is ReactiveX? From the website: ReactiveX is a combination of the best ideas from the Observer pattern, the Iterator pattern, and functional programming. (But it’s a lot more.) The key concept to start with ReactiveX is: think reactive programming as operating on a stream of ... Read more 30 Jul 2015 - 3 minute read
You can find the first part of this article here Automatic code formatting and import organizing Code styling is important. A well formatted piece of code becomes more readable and more comprehensible. But sometimes trying to keep the code formatted can be negative: you lose your time and your focus. You will soon start to count the number of ... Read more 30 Jan 2015 - 2 minute read


Use the StreamExt.timeOut function to terminate the stream after the specified number of seconds between values elapsed.


This is Ala Abu Al-Rish, I’m 33 years old. A visionary that handles global data systems and building enterprises infrastructure. Has a total of 7+ years experience as a CTO in the IT and multimedia industry. In addition to 8+ years as a technical creative director for commercial video production. Passionately empowers organizations and individuals who have a vision in innovative ideas that help improve real life applications in the IT sector. Graduated from Alzaytoonah University as a Graphic Designer. Created many projects and in media and commercial industries that makes me a founder, co-founder. I’m taking a break now to join this journey to improve and learn the computer and web languages.
Here is my Github https://github.com/alaa-rish/
Top 10 Movies
- Iron Man
- Spider Man
- Bat Man
- Ant Man
- Super Man
- Hulk
- Captain America
- Wonderwoman
- Avengers
- Tom & Jerry
Working experience
- A visionary that handles global data systems and building enterprises infrastructure.
- Has a total of 7+ years experience as a CTO in the IT and multimedia industry.
- In addition to 8+ years as a technical creative director for commercial video production.
- Passionately empowers organizations and individuals who have a vision in innovative ideas that help improve real life applications in the IT sector.
- Graduated from Alzaytoonah University as a Graphic Designer.
- Created many projects and in media and commercial industries that makes me a founder, co-founder. I’m taking a break now to join this journey to improve and learn the computer and web languages.