Summary
Blocky is a box that is meant to teach bad password practices, decompiling JAR files, and the perils of exposing internal files on public websites. I first enumerate with nmap to find SSH and HTTP open as well as some other ports that ended up not being paths to follow. I then enumerated the website’s directories in order to find some java code that exposed credentials. Those credentials were reused and were used to gain a foothold. Due to excessive privileges assigned to the normal user, I was able to easily escalate to root immediately after gaining a foothold.
Walkthrough
Enumeration
As usual, I started with nmap to scan the machine. nmap -A -T4 -v -p1-30000 <IP_ADDRESS>
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.3.5a
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
8192/tcp closed sophos
25565/tcp open minecraft Minecraft 1.11.2 (Protocol: 127, Message: A Minecraft Server, Users: 0/20)
FTP doesn’t have anonymous access allowed, so I decided to checkout the webserver.
I ran gobuster
against the site, looking for subdirectories.
gobuster dir -u http://<IP_ADDRESS> -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url: http://<IP_ADDRESS>
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.0.1
[+] Timeout: 10s
===============================================================
2020/07/13 22:11:18 Starting gobuster
===============================================================
/wiki (Status: 301)
/wp-content (Status: 301)
/plugins (Status: 301)
/wp-includes (Status: 301)
/javascript (Status: 301)
/wp-admin (Status: 301)
/phpmyadmin (Status: 301)
At about 40% I decided to stop the scan and look at what I found so far. In particular /plugins
and /phpmyadmin
caught my eye. Attempting defaults root/password or root/null on PHPMyAdmin did nothing so I looked at plugins instead.
The /plugins
page had a couple jar files listed that I could download.
I ran strings
against the jar files quick and found one of them seemed to have references to “my first plugin” so I figured this is the interesting one.
I unzipped the jar file and went to open the com/myfirstplugin/BlockyCore.class
file. It was clearly not plaintext so I ran strings BlockyCore.class
and noticed a root user followed by its password on the next line:
--snipped--
<init>
Code
localhost
root
8YsqfCTnvxAUeduzjNSXe22
LineNumberTable
LocalVariableTable
--snipped--
I went back to the PHPMyAdmin console and saw the username / password combo worked. However, I like to double check my path with the official walkthroughs of HTB because time is limited for me. I noticed it alludes to using JD-GUI to decompile the plugin. So I decided to try this out and get the experience since I haven’t done it before.
On my Kali box I looked for JD-GUI but didn’t see it. I did see JaDx-GUI available so I opened that and opened the jar file. Sure enough the credentials are hard-coded.
After looking at the PHPMyAdmin console for a bit I saw there was a wordpress user named notch
.
I couldn’t find any clear path to Foothold with an exploit etc. so I decided to take another peak at the official walkthrough. It looked like there was a complex path (marked todo for later) that involved PHPMyAdmin and an easier path. Cue the facepalm, as I forgot to try the credentials on the other services I found earlier with nmap
.
I logged into the box via SSH with the username notch
I found above in Wordpress users, using the same password found from the jar file.
User
I didn’t need to pivot to any other user, so I just grabbed the user.txt string from /home/notch
and started enumerating. I scp
‘d over an enumeration script and ran it (LinEnum) but honestly, it wasn’t needed. I ran sudo -l
and noticed I had access to ALL commands.
notch@Blocky:~$ sudo -l
[sudo] password for notch:
Matching Defaults entries for notch on Blocky:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User notch may run the following commands on Blocky:
(ALL : ALL) ALL
Root
Given that notch is essentially an administrator, I just ran sudo -i
and got a root shell, then went and grabbed the root.txt.
Lessons Learned
The main thing I learned on this box was a different way of accessing jar files using tools that decompile them. In this case, JaDx-GUI. Overall a pretty simple yet entertaining box and I’m logging off for the evening feeling satisified.
I realized I keep capturing my mouse cursor in screenshots, so I’ll try to avoid that next time.


Sketchnote by Tomomi Imura
HTML, or HyperText Markup Language, is the ‘skeleton’ of the web. If CSS ‘dresses up’ your HTML and JavaScript brings it to life, HTML is the body of your web application. HTML’s syntax even reflects that idea, as it includes “head”, “body”, and “footer” tags.
In this lesson, we’re going to use HTML to layout the ‘skeleton’ of our virtual terrarium’s interface. It will have a title and three columns: a right and a left column where the draggable plants live, and a center area that will be the actual glass-looking terrarium. By the end of this lesson, you will be able to see the plants in the columns, but the interface will look a little strange; don’t worry, in the next section you will add CSS styles to the interface to make it look better.
On your computer, create a folder called ‘terrarium’ and inside it, a file called ‘index.html’. You can do this in Visual Studio Code after you create your terrarium folder by opening a new VS Code window, clicking ‘open folder’, and navigating to your new folder. Click the small ‘file’ button in the Explorer pane and create the new file:
Or
Use these commands on your git bash:
mkdir terrarium
cd terrarium
touch index.html
code index.html
or nano index.html
index.html files indicate to a browser that it is the default file in a folder; URLs such as
https://anysite.com/test
might be built using a folder structure including a folder calledtest
withindex.html
inside it;index.html
doesn’t have to show in a URL.
The first line of an HTML file is its doctype. It’s a little surprising that you need to have this line at the very top of the file, but it tells older browsers that the browser needs to render the page in a standard mode, following the current html specification.
Tip: in VS Code, you can hover over a tag and get information about its use from the MDN Reference guides.
The second line should be the
tag’s opening tag,
followed right now by its closing tag
. These
tags are the root elements of your interface.
Add these lines at the top of your index.html
file:
✅ There are a few different modes that can be determined by setting the DocType with a query string: Quirks Mode and Standards Mode. These modes used to support really old browsers that aren’t normally used nowadays (Netscape Navigator 4 and Internet Explorer 5). You can stick to the standard doctype declaration.
The ‘head’ area of the HTML document includes crucial information about your web page, also known as metadata. In our case, we tell the web server to which this page will be sent to be rendered, these four things:
x-ua-compatible
which
indicates that the IE=edge browser is supported
Add a ‘head’ block to your document in between the opening and closing

tags.

<title>Welcome to my Virtual Terrarium</title>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />

✅ What would happen if you set a viewport meta tag like this:
<meta name="viewport" content="width=600">
? Read more
about the
viewport.
body
In HTML, you add tags to your .html file to create elements of a web page.
Each tag usually has an opening and closing tag, like this:

hello

to indicate a paragraph. Create your
interface’s body by adding a set of
tags inside
the
tag pair; your markup now looks like this:
<!DOCTYPE html>

<title>Welcome to my Virtual Terrarium</title>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />

Now, you can start building out your page. Normally, you use

tags to create the separate elements in a page.
We’ll create a series of

elements which will
contain images.
One html tag that doesn’t need a closing tag is the

tag, because it has a src
element
that contains all the information the page needs to render the item.
Create a folder in your app called images
and in that, add
all the images in the source code folder;
(there are 14 images of plants).
Add those plant images into two columns between the

tags:

Note: Spans vs. Divs. Divs are considered ‘block’ elements, and Spans are ‘inline’. What would happen if you transformed these divs to spans?
With this markup, the plants now show up on the screen. It looks pretty bad, because they aren’t yet styled using CSS, and we’ll do that in the next lesson.
Each image has alt text that will appear even if you can’t see or render an image. This is an important attribute to include for accessibility. Learn more about accessibility in future lessons; for now, remember that the alt attribute provides alternative information for an image if a user for some reason cannot view it (because of slow connection, an error in the src attribute, or if the user uses a screen reader).
✅ Did you notice that each image has the same alt tag? Is this good practice? Why or why not? Can you improve this code?
In general, it’s preferable to use meaningful ‘semantics’ when writing
HTML. What does that mean? It means that you use HTML tags to represent
the type of data or interaction they were designed for. For example, the
main title text on a page should use an

tag.
Add the following line right below your opening

tag:
Using semantic markup such as having headers be

and unordered lists be rendered as

helps screen readers navigate through a page. In
general, buttons should be written as <button>
and
lists should be

. While it’s possible to
use specially styled
elements with click
handlers to mock buttons, it’s better for disabled users to use
technologies to determine where on a page a button resides, and to
interact with it, if the element appears as a button. For this reason, try
to use semantic markup as much as possible.
✅ Take a look at a screen reader and how it interacts with a web page. Can you see why having non semantic markup might frustrate the user?
The last part of this interface involves creating markup that will be styled to create a terrarium.
Add this markup above the last

tag:

✅ Even though you added this markup to the screen, you see absolutely nothing render. Why?
There are some wild ‘older’ tags in HTML that are still fun to play with,
though you shouldn’t use deprecated tags such as
these tags
in your markup. Still, can you use the old
<marquee>
tag to make the h1 title scroll horizontally?
(if you do, don’t forget to remove it afterwards)
HTML is the ‘tried and true’ building block system that has helped build the web into what it is today. Learn a little about its history by studying some old and new tags. Can you figure out why some tags were deprecated and some added? What tags might be introduced in the future?
Learn more about building sites for the web and mobile devices at Microsoft Learn.


Showing a bit of web dev Get all posts Create a post Name Description Update a post Id Description Delete a post Id


Select your language
I am a translated sentence key.
I am a translated sentence key
with a return.
I am a translated sentence key with span.red.
I am a translated sentence key.
I am a translated sentence key
with a return.
I am a translated sentence key with span.red.


A function composition ('pipe') operator and extensible framework that allows for easy logging of changes in data.
| Version: | 0.3.0 |
| Depends: | R (≥ 3.4.0) |
| Imports: | utils, R6 |
| Suggests: | testthat, knitr, rmarkdown |
| Published: | 2018-07-20 |
| Author: | Mark van der Loo [aut, cre] |
| Maintainer: | Mark van der Loo <mark.vanderloo at gmail.com> |
| BugReports: | https://github.com/markvanderloo/lumberjack/issues |
| License: | GPL-3 |
| URL: | https://github.com/markvanderloo/lumberjack |
| NeedsCompilation: | no |
| Materials: | NEWS |
| CRAN checks: | lumberjack results |
| Reference manual: | lumberjack.pdf |
| Vignettes: |
Adding your own loggers Getting started with lumberjack |
| Package source: | lumberjack_0.3.0.tar.gz |
| Windows binaries: | r-devel: lumberjack_0.3.0.zip, r-release: lumberjack_0.3.0.zip, r-oldrel: lumberjack_0.3.0.zip |
| OS X binaries: | r-release: lumberjack_0.3.0.tgz, r-oldrel: lumberjack_0.3.0.tgz |
| Old sources: | lumberjack archive |
| Reverse suggests: | dcmodify |
| Reverse enhances: | validate |
Please use the canonical form https://CRAN.R-project.org/package=lumberjack to link to this page.


DmShka
Developer
Me, me, and once again me
Hello guys, codeschoolProject))
My skills
Html
JS
C#
Contact me
My adress Earth planet
contactLink
Welcome to the HTML Portfolio Project


Export to PDF and Save or Print
Complete the following steps to print a report.
- Open the report you want to print.
- Select More actions and options » Export » To PDF.
- The Export to PDF settings dialog displays: Choose the Page Format and Orientation for the export..
- Click Export to generate the PDF (This will convert your report into a PDF file (Adobe Acrobat) and launch a new window) or click Done to simply save the export settings for future exports.
- Use the Adobe Print command (File » Print) or Save As command (File » Save As) in this window.
Export to Excel with Formatting
Complete the following steps to export an Analyzer report to Excel:
- Open the report you want to print.
- Select More actions and options » Export » To Excel. (This will convert your report into a .xlsx file (Microsoft Excel) and launch a new window) or click Done to simply save the export settings for future exports.
Export Report Data to CSV
Complete the following steps to download report data into CSV format.
- Open the report whose data you want to download.
- Select More actions and options » Export » To CSV.
- In the Export to CSV dialog, choose if you want to Include Subtotals or Keep Measure Formatting, then click Export (This will open an Excel sheet displaying your report data).
Note: When you download data in the CSV format you will get numbers with the full precision available. This way you avoid any rounding errors when you continue to work with your data in Excel.
By default, your data will be saved in CSV (Comma Separated Values) format. If you'd like you can complete the following steps to convert the data from CSV format into a regular Excel file (XLS).
- Select File » Save As in Excel to open the Save As dialog box.
- Select Microsoft Excel (*.xlsx) from the Save as type menu.
- Click the Save button to save the file in XLSX format.
Note: Only the data, with no report formatting, is transferred when you Export to CSV.
|


My First Heading
My first paragraph.
An Unordered HTML List
Coffee
Tea
Milk
An Ordered HTML List
Coffee
Tea
Milk
Foo
BAR
Your browser does not support the audio element.
First name:
Your browser does not support the audio element.
Your browser does not support the video tag.
T ex t
]]>
link text
Call me
-->
-->
<div id = "character"> © 2007 or © 2007
Written by
Jon Doe.
Visit us at:
Example.com
Box 564, Disneyland
USA
link
Start Chat
Start Chat
Start Chat
Test
test
test
test
Text
Text
Text
foo
bar
Text
Text
Visit our HTML tutorial
Visit our HTML tutorial
text
text
The time is?


heloow
1st paragraph
p with id
p with class
this is lower pareagraph
this is another paragraph
Submit!


Insert important info about overdoses and lacing here.
Insert info about how drug affects you, how it is used
Insert States where its legal
Insert States where its decriminalized


Bernarde:
He must be from our island -- he has a robust complexion that I haven't seen anywhere else! Rumor has it that the Demons are invading the natives'
village and laying it to waste. They even seem to have plundered those treasures that the natives cherish most. I would be most grateful if you could
secure those treasures and bring them to me. Of course, I must also ask you to finish the work being done at the Ancient Temple Remnants.
Ask about the work at the Ancient Temple Remnants.
Turn over the native treasures.


The major software controls, as listed below, are usually referred to as the Main Menu. The following are provided by INCC when in Inspection mode:
File
Contains options for exporting PSA, Logsheet and Performance Monitoring files, importing Stratum Authority and Item Relevant Data from files, transfer of measurement files, backing up and restoring the entire database, batch script execution, quick database switch, printer setup and program exit.
View
Provides the ability to switch between Inspection and Maintenance modes.
Setup
Contains options for facility, inspection, measurement parameter, isotopics, composite isotopics, item data entry and collar data entry.
Acquire
Contains rates only, background, normalization, verification and holdup measurement data acquisition methods.
Reanalyze
Contains options for reanalyzing verification and holdup measurements with selected parameters changed.
Report
Contains all options for review and reporting of previously acquired measurement data, options to create a summary of measurements and export the summary to a comma separated variable format file, an option to plot a history of normalization measurements and an option to plot measurement data with their calibration curve.
Tools
Contains an option providing the user with the ability to have Radiation Review display the peak corresponding to the most recently displayed INCC verification measurement.
Window
Contains options for arranging measurement data text windows.
Help
Contains online help, access through WordPad to user written procedures and information about copyright restrictions and the date and version number of INCC being used.


- My names is Mu’nes Yasin I’m 24 years old .
- I studied civil engineer at al-balqa applied university .
- I discovered my passion in software development when I stayed at home due covid 19 .
- I hope I learn new skills to be software developer.
- Jerusalem
- Madrid
- New York
- Malaysa
- London
- Turkey
- Canada
- Australia
- Germany
- Italy


A lot of comedies seem to follow this rule: if farting is funny, then it's even funnier when it's underwater, the reason being that farting underwater produces a bubble.
The thing is, this bubble means that it's pretty hard to pretend you didn't fart, while on the flip side, if there is air in your swimsuit, it's easy to be mistaken for having farted. Also, it's clear who did it unless more than one person is in close proximity to the one who farted. Also, bubbles are sort of inherently funny anyway.
Common among people who fart a lot anyway and anyone boorish and/or slobby, but any character can be part of this gag.
Sub-trope of Toilet Humour. Compare Putting the Pee in Pool for another water-related potty joke.
Examples
- In a Claude The Cat PSA, Claude tells the viewers that a gas leak produces bubbles "just like in the bath".
- In Kids Are Weird, Oscar farts in the bath without realizing and says, "What was that horrible smell? Maybe it was those bubbles."
- In the My Little Pony: Friendship is Magic (IDW) comic "Nightmare Rarity", according to Pinkie Pie, Rarity farted in the hot tub when she (Pinkie Pie) made a joke.
- In Atlantis: The Lost Empire, Milo is embarrassed when he falls into a pool and air loudly bubbles out of his shorts, making it seem like he farted.
- In Finding Nemo, a bunch of underwater mines explode, and a pelican mistakes another pelican for having farted because the explosion caused a bubble near the pelican.
- A scene in The Lion King 1½, Simba, Timon, and Pumbaa hang out in a pool of water that bubbles like a hot tub. When Pumbaa gets out, the bubbles disappear, implying they were all because of his farting.
Timon: I'm out!
Simba: Right behind you! - Shrek:
- In the first movie, Shrek farts in the bath and it smells so bad, three fish float up dead, and some of the reeds around the pond wilt over.
- In Shrek 2, Shrek and Fiona fart in a mud bath, grossing out some fairies.
- Hot Shots! Part Deux: When President Benson and his team are scuba diving and an enemy boat appears overhead, the president does an enormous fart that stinks the enemy soldiers out so bad, that it actually kills them.
- In The Legend of Johnny Lingo, when Tama and Mahana are playing in the river, Tama makes Mahana laugh by making fart bubbles.
- Mr. Popper's Penguins: One of the penguins is named Stinky because he farts a lot. He once farts while in a tub of icy water.
- In Nim's Island, Nim is worried that some tourists will bother her animal friends, so she tries to get Selkie the sea lion to fart next to the boat to put them off visiting the island.
- In The Smurfs 2, the Smurfs are bathing in the sink and Grouchy farts, which disgusts Vanity.
- In the opening credits of Spy Hard, one of the divers produces a trail of bubbles from the wrong end of her suit.
- In A Cinderella Story, Brianna does this while in a pool, which prompts her sister to angrily attack her while their synchronized swimming instructor tries to get them to stop fighting.
- In The Master of Disguise, the villain, who has a habit of farting, does one last fart after his Karmic Death in a pool.
- In the Dirty Bertie book "Pooh, Is That You, Bertie?", Bertie is told off for farting in public, then says, "We all do it, but I do it best of all, especially in the bath!".
- In the kids' book Farley Farts, Farley's sister is amused by Farley farting in the pool.
- Subtly invoked in Hogfather where Ridcully, describing the many features of the B.S. Johnson "Typhoon" Indoor Ablutorium With Automatic Soapdish, describes the jacuzzi as "that tub over there's got a big blower thingy so's you get bubbly water without even havin' to eat starchy food".
- In The Stinger of the Good Luck Charlie episode "Battle of the Bands", Bob and Gabe use Bruce and Lucas's hot tub while Bruce and Lucas are away. Bubbles appear and Gabe asks how it was possible because he didn't put the setting on. Bob says that he didn't either, but with three trays of tacosnote , they're going to get bubbles.
- A sketch in a 1993 episode of Saturday Night Live has host Kevin Kline play a man with chronic flatulence. One scene has him in a tub producing the expected bubbles.
- Done For Science! on an episode of Mythbusters that dealt with flatulence. It was the best idea they could come up with for capturing a flatus to analyze its chemical composition. Cue Adam Savage sitting in a bathtub (in swimsuit) making bubbles into a funnel, which are draw into a plastic cartridge under vacuum.
- In I'm Sorry I Haven't a Clue, a Good News, Bad News exchange consists of Tim saying, "Good news! I've got a new jacuzzi." and Willie saying, "Bad news! It wasn't a jacuzzi when I got in."
- A gag in The Critic has Jay in a jacuzzi. Some women want to join him, but then they realize it isn't turn on, but there are bubbles anyway.
- Ed, Edd n Eddy: In "Hot Buttered Ed", there's a scene where Ed is smiling while making fart bubbles in the ocean. Edd and Eddy glare at him.
- In the Family Guy episode "Extra Large Medium", Meg and Stewie are forced to bathe together and entertain each other by farting in the tub. When Meg queefs, Stewie runs out screaming.
- In the Kick Buttowski episode "Clean... to the Extreme", one of the deals in the Chain of Deals is providing the bubbles for Brianna's bath. Gunther does so by farting but Brianna doesn't seem to mind.
- In Jimmy Two-Shoes, Beezy farts in a lake, causing eight fish to float up dead from the awful smell.
- The animated "Meet the Infernites" clip in Calling All Mixels features the three Infernites in a lava hot tub. A bubble rises out of the lava, which then pops. Flain and Vulk react in disgust, while Zorch grins at his handiwork.
- Implied in the Phineas and Ferb episode "Spa Day", when Buford is in a jacuzzi. He says it isn't plugged in, but it's bubbling anyway.
- The Ren & Stimpy Show: Ren farts in the bath in "Space Madness".
- In The Simpsons episode "The Two Mrs Nahasapeemapetilons", Homer and Apu are sitting in a jacuzzi and Jasper offers to turn on the bubbles.


{% extends 'base.html' %} {% block content %}
This taxonomy is used:
Do you really want to delete this taxonomy ?


Python vs Powershell Part 1: Versioning
I posted a tweet earlier this week asking if anyone would be interested in a small series of posts that explain the differences between Python and PowerShell.
So, here we go!
Python on macOS
Python and PowerShell are quite a bit different from each other. Python has been around for several years and works on multiple operating systems. Additionally, Python is beloved by it’s extremely supportive open-source community; rightfully so! Python is fast and portable, and is a go to for most developers.
At the time of writing this post, there are two distinct release branches. These are Python 2.x and 3.x. This entire blog series will focus only on Python 3.x. The current version of [Python is 3.7.0 for macOS(https://www.python.org/downloads/)], but luckily if you have a modern OS X system Python is already installed by Apple. Even though it is installed by default on Mac OS X, we should make sure that we have the latest version installed.
The first step if you are on a Mac OS X system is to open up your Terminal app and run the following command.
Please note, that if you are on a Windows system then you will need to download Python 3.x from here. Additionally, here is a great article that walks through installing Python on Windows. Once you have installed Python then these commands should work the same whether on Mac OS X or Windows.
# Try both python and python3 if you have two seperate branches of Python installed
python -V
# or
python3 -V
This will output the current version of Python installed on your system. If it is not Python 3.x, then you will need to install it using your choice of package manager or straight from the https://pythong.org website.
If you use brew
as your package manager, then you can simply install python3
by calling:
brew install python3
While we have our Terminal app open, let’s also check to make sure that we have the latest version of pip
installed. Pip is Python’s package manager. This is how Python installs additional libraries or requirements
needed to work with a library or package. Let’s check to make sure that we have pip installed and it is running.
Please note, that if you are installing Python on Windows then pip
is installed by default. Either way, it is still good to check which pip commands works for your system.
# The same with Python, you can have two versions of pip intalled
pip -V
# or
pip3 -V
PowerShell on Windows
PowerShell is natively installed on Windows machines since Windows 7 (give or take). As new features are released by the PowerShell Team, you can upgrade your version of PowerShell as well. But, this has potential drawbacks as PowerShell has different version functionality depending on your operating system. For example, PowerShell 5.0 is more full featured on a Windows 10 operating system than it is on a Windows 7 operating system. Most of the features are present, but there are differences.
You can upgrade PowerShell on any Windows 7 or higher system, but to do this you will need to install a new version of the Windows Management Framework (WMF) (sometimes multiple versions) to upgrade. Before we do that, you can find out the specific version you are on by opening up a PowerShell console and running:
$PSVersionTable
This should output your version of PowerShell.  To upgrade you will need to first install WMF 3.0, then you can install WMF 5.0 (skipping WMF 4.0).
I have compiled a json file that has all the download links for all the versions of WMF that you can install:
{
"WMF3": {
"Win7": {
"x86": "https://download.microsoft.com/download/E/7/6/E76850B8-DA6E-4FF5-8CCE-A24FC513FD16/Windows6.1-KB2506143-x86.msu",
"x64": "https://download.microsoft.com/download/E/7/6/E76850B8-DA6E-4FF5-8CCE-A24FC513FD16/Windows6.1-KB2506143-x64.msu"
}
},
"DotNet4": "https://download.microsoft.com/download/1/B/E/1BE39E79-7E39-46A3-96FF-047F95396215/dotNetFx40_Full_setup.exe",
"WMF4": {
"Win7": {
"x64": "https://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x64-MultiPkg.msu",
"x86": "https://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x86-MultiPkg.msu"
},
"Server2012": "https://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows8-RT-KB2799888-x64.msu"
},
"WMF5": {
"Server2008R2": "https://download.microsoft.com/download/2/C/6/2C6E1B4A-EBE5-48A6-B225-2D2058A9CEFB/Win7AndW2K8R2-KB3134760-x64.msu",
"Server2012": "https://download.microsoft.com/download/2/C/6/2C6E1B4A-EBE5-48A6-B225-2D2058A9CEFB/W2K12-KB3134759-x64.msu",
"Server2012R2": "https://download.microsoft.com/download/2/C/6/2C6E1B4A-EBE5-48A6-B225-2D2058A9CEFB/Win8.1AndW2K12R2-KB3134758-x64.msu",
"Win7": {
"x64": "https://download.microsoft.com/download/2/C/6/2C6E1B4A-EBE5-48A6-B225-2D2058A9CEFB/Win7AndW2K8R2-KB3134760-x64.msu",
"x86": "https://download.microsoft.com/download/2/C/6/2C6E1B4A-EBE5-48A6-B225-2D2058A9CEFB/Win7-KB3134760-x86.msu"
},
"Win81": {
"x64": "https://download.microsoft.com/download/2/C/6/2C6E1B4A-EBE5-48A6-B225-2D2058A9CEFB/Win8.1AndW2K12R2-KB3134758-x64.msu",
"x86": "https://download.microsoft.com/download/2/C/6/2C6E1B4A-EBE5-48A6-B225-2D2058A9CEFB/Win8.1-KB3134758-x86.msu"
}
},
"WMF51": {
"Server2012": "https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/W2K12-KB3191565-x64.msu",
"Server2012R2": "https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/Win8.1AndW2K12R2-KB3191564-x64.msu",
"Win81": {
"x64": "https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/Win8.1AndW2K12R2-KB3191564-x64.msu",
"x86": "https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/Win8.1-KB3191564-x86.msu"
}
}
}
Once you have installed or upgraded to atleast PowerShell 5.0, then you can again check to ensure that your $PSVersionTable
environmental variable states 5 or higher.
PowerShell Core on macOS
Since the release of PowerShell Core, you can have the power of PowerShell on your macOS (or linux) systems. To install PowerShell Core on a macOS system, you can use brew
to install PowerShell Core:
# first make sure that brew is updated
brew tap
brew update
# next install PowerShell Core
brew cask install powershell
Once PowerShell Core is installed, you would typically think that you would access it by running powershell
in our terminal, but it is actually pwsh
in PowerShell Core.
Microsoft decided to change the name of the PowerShell CLI application to pwsh
over the traditional powershell.exe
for cross platform compatibility (among other reasons). To see if PowerShell Core is working correctly, you should open your terminal application and launch powershell:
# run PowerShell Core as normal user
pwsh
# run PowerShell Core as a sudo user
sudo pwsh
Once you are in a PowerShell session you can identify the version of your current PowerShell Core install by using the same environmental variable:
$PSVersionTable
Name Value
---- -----
PSVersion 6.0.2
PSEdition Core
GitCommitId v6.0.2
OS Darwin 17.7.0 Darwin Kernel Version
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
SerializationVersion <IP_ADDRESS>
WSManStackVersion 3.0
If a new version of PowerShell Core is released, you can use brew to upgrade your current version of PowerShell:
brew update
brew cask upgrade powershell
If you do not have or use brew
you can also install PowerShell Core directly from the PowerShell GitHub repository. These are located on the Releases page.
You download the version of PowerShell Core you want, but please make sure that you download the pkg
of the selected version of PowerShell Core.
You can double click the pkg
and follow the on-screen instructions or you can run the following via terminal:
sudo installer -pkg powershell-6.0.2-osx.10.12-x64.pkg -target /
That’s it! I hope you enjoyed the first part of this series explaining the differences between PowerShell
and Python
for beginners.


Feminist Majority Foundation [ http://feminist.org/ ]
Support Clinics! [ https://org.salsalabs.com/o/1400/p/salsa/web/common/public/content?content_item_KEY=12737&oqd-sourcecode=NCAP14email ] *Support Our Work
To Protect Clinics And Doctors!* [ https://org.salsalabs.com/o/1400/p/salsa/web/common/public/content?content_item_KEY=12737&oqd-sourcecode=NCAP14email ]
* *
Dear Dry,
Operation Rescue/Operation Save America has just announced plans for yet another siege – this time in mid-October – of Jackson Women’s Health Organization (JWHO), the last remaining clinic in all of Mississippi. The clinic is so far winning in the court to stay open, but we must make sure the clinic’s doctors and staff are safe as they work.
We need your help to pay for critically important new structural security measures and video surveillance systems for JWHO right now. Half of your tax-deductible gift will go directly to JWHO for improving security measures, and half will support our National Clinic Access Project that works to keep JWHO and other clinics targeted by anti-abortion threats and violence open and safe. [ http://org.salsalabs.com/o/1400/p/salsa/web/common/public/content?content_item_KEY=12737&oqd-sourcecode=NCAP14email ]
If the JWHO clinic closes, Mississippi women seeking safe legal abortions will have no choice but to travel hundreds of miles out of state to find a clinic.
Our Clinic Access Project assists clinics all across the country that are the targets of extremists’ severe harassment, violence and threats of violence. Our 2014 national survey of clinics shows that our work has helped to significantly decrease anti-abortion terrorism from a high of 54% of all clinics nationwide experiencing severe violence in the early 1990s, to 19.7% today.
But 1 in every 5 clinics still targeted by severe anti-abortion violence is unacceptable! And even more alarming, the survey found that more than half of clinics report their doctors and staff are targets of extreme harassment and intimidation – like the use of WANTED-style posters and KILLERS AMONG US leaflets.
There must be zero tolerance of violence and harassment aimed at vilifying doctors and health care workers. We are determined to stop anti-abortion violence – but to do that, we need your help.
*Please help us keep the courageous doctors, staff and volunteers at JWHO in Mississippi and at other targeted clinics across the country safe?* [ http://org.salsalabs.com/o/1400/p/salsa/web/common/public/content?content_item_KEY=12737&oqd-sourcecode=NCAP14email ]
For Women’s Lives,
duVergne Gaines
NCAP Director
Ellie Smeal
President Kathy Spillar
Executive Director
P.S. Without doctors and clinics to provide safe, legal abortions, there can be no choice for women. *Please make a tax-deductible gift to support our National Clinic Access Project today. [ http://org.salsalabs.com/o/1400/p/salsa/web/common/public/content?content_item_KEY=12737&oqd-sourcecode=NCAP14email ]* [ http://org.salsalabs.com/o/1400/p/salsa/web/common/public/content?content_item_KEY=12737&oqd-sourcecode=NCAP14email ]
1600 Wilson Boulevard, Suite 801, Arlington, VA, 22209 |<PHONE_NUMBER> |<EMAIL_ADDRESS>You have received this e-mail because of your interest in women’s issues. To unsubscribe, please click here. [ http://org.salsalabs.com/o/1400/p/salsa/supporter/unsubscribe/public/index.sjs?unsubscribe_page_KEY=494 ]


Toggle navigation
Locals Know!
About
Created by Kelsey Jiang
{% block content %}
{% endblock content %}
Photo Credit: parisbytrain.com


Edit Profile
Age: 27
Activity: Very High
Height: 5"2
Current Health Goal: Run 2 Miles
Social concern: Women's Education


Conquer It! Developers
We are a team of developers in the making, all of whom were working in other industries until just weeks before the launch of this app. We built this web app while studying at world-renowned Code Fellows Portland. Our goals were twofold: to showcase what we've learned from the Code Fellows curriculum and to help sufferers of debilitating phobias. Among us are two individuals with arachnophobia. We were thus highly motivated to create an app that was not just intuititive to use, but also uniquely empathetic in its approach to what is undoubtedly a daunting endeavor for fellow arachnophobes.
 If not, we hope you find the site interesting and will share it with people in your life who suffer from arachnophobia.


Project: Better Piano
Play while key is held down.
If key is released, stop playing
code
if button.is_pressed():
note.play()
else:
note.stop()
prev | next


I was just designing a metro based website for myself.
Ravi Kumar added Shadab Softs to his timeline.
Amit Aswal added a new photo of you.
Shivam Rana commented on your post.


The Elastic Chain
\[ \nonumber \newcommand{\br}{\mathbf{r}} \newcommand{\bp}{\mathbf{p}} \newcommand{\bk}{\mathbf{k}} \newcommand{\bq}{\mathbf{q}} \newcommand{\bv}{\mathbf{v}} \newcommand{\pop}{\psi^{\vphantom{\dagger}}} \newcommand{\pdop}{\psi^\dagger} \newcommand{\Pop}{\Psi^{\vphantom{\dagger}}} \newcommand{\Pdop}{\Psi^\dagger} \newcommand{\Phop}{\Phi^{\vphantom{\dagger}}} \newcommand{\Phdop}{\Phi^\dagger} \newcommand{\phop}{\phi^{\vphantom{\dagger}}} \newcommand{\phdop}{\phi^\dagger} \newcommand{\aop}{a^{\vphantom{\dagger}}} \newcommand{\adop}{a^\dagger} \newcommand{\bop}{b^{\vphantom{\dagger}}} \newcommand{\bdop}{b^\dagger} \newcommand{\cop}{c^{\vphantom{\dagger}}} \newcommand{\cdop}{c^\dagger} \newcommand{\bra}[1]{\langle{#1}\rvert} \newcommand{\ket}[1]{\lvert{#1}\rangle} \newcommand{\inner}[2]{\langle{#1}\rvert #2 \rangle} \newcommand{\braket}[3]{\langle{#1}\rvert #2 \lvert #3 \rangle} \newcommand{\sgn}{\mathrm{sgn}} \newcommand{\brN}{\br_1, \ldots, \br_N} \newcommand{\xN}{x_1, \ldots, x_N} \newcommand{\zN}{z_1, \ldots, z_N} \]
In this lecture we discuss a very simple many body system in which particles are coupled by Hooke’s Law springs. Nevertheless, the quantization of this system has a lot to teach us about the appearance of collective excitations.
Reading: {% cite Coleman:2015 %}, Chapter 2.
The Classical System
We study a chain of equal masses connected by springs, moving only in one dimension, along the chain. The Hamiltonian is
\[ \label{coll_Hchain} H = \sum_{j=1}^N \left[\frac{p_j^2}{2m} + \frac{k}{2} (u_j-u_{j+1})^2 \right]. \]
We identify \(u_j=u_{N+j}\), corresponding to periodic boundary conditions. As usual \([u_i,p_j]=i\delta_{ij}\). To orient ourselves, we solve the classical version of the problem.
Equations of Motion
You’ve seen this before. The equations of motion are
\[ m \ddot u_j = k(u_{j-1} + u_{j+1} - 2u_j). \]
We look for oscillatory solutions with time dependence \(u_j(t) = u_j e^{-i\omega t}\), arriving at the matrix eigenvalue problem
\[ -\omega^2 \begin{pmatrix} u_1 \\ u_2 \\ \cdots \\ u_{N-1}\\ u_N \end{pmatrix} = \frac{k}{m} \begin{pmatrix} -2 & 1 & 0 & \cdots & 1 \\ 1 & -2 & 1 & \cdots & 0\\ \cdots & \cdots & \cdots & \cdots & \cdots \\ 0 & \cdot & 1 & -2 & 1\\ 1 & 0 & \cdots & 1 & -2 \end{pmatrix} \begin{pmatrix} u_1 \\ u_2 \\ \cdots \\ u_{N-1}\\ u_N \end{pmatrix} \]
Matrices of this type are called circulant matrices, and arise here because of the translational invariance of the system (including the periodic boundary conditions). Their eigenvectors are given by plane waves \(u_j = (z_n)^j\), where \(z_n\) is one of the \(N^\text{th}\) roots of unity i.e. \(z^N = 1\) or
\[ z_n = \exp\left(\frac{2\pi i n}{N}\right),\qquad n = 0,\ldots, N-1. \]
In fact, to make things a bit more symmetrical, let’s take \(N\) to be odd and index the \(z_n\) using both positive and negative values of \(n\)
\[ z_n = \exp\left(\frac{2\pi i n}{N}\right),\qquad n = -(N-1)/2,\ldots, (N-1)/2. \]
We’ll write \(\eta_n\equiv \frac{2\pi n}{N}\), so that the eigenstates have the form \(u_j=\exp(i\eta_n j)\).
By substituting into the equation of motion show that the dispersion relation is \[ \omega(\eta) = \sqrt{\frac{4k}{m}}\left|\sin\eta/2\right|. \label{coll_Dispersion} \]
Notice that:
- The frequency vanishes at \(\eta\to 0\). This mode corresponds to translation of the system, for which there is no restoring force.
- At small \(\eta\) the dispersion is linear, as we would expect for sound waves.
A general motion of the system can be represented as a superposition of the normal modes \[ u_j(t) = \frac{1}{\sqrt{N}}\sum_{|n| \leq (N-1)/2} q_n(t) e^{i\eta_n j}, \label{coll_modes} \] together with the condition \(q_{-n}=q^*_n\) on the complex amplitudes to ensure that \(u_j\) is real. The amplitudes \(q_n(t)\) have time dependence \[ q_n(t) = \alpha_n e^{-i\omega(\eta_n) t} + \beta_n e^{i\omega(\eta_n) t} \] for \(n\neq 0\), while for \(n=0\) \[ q_0(t) = \sqrt{N}(X+Vt) \] describes the motion of the centre of mass.
Hamiltonian Formulation
To make contact with quantum physics, let’s look at this problem from the Hamiltonian perspective. If the \(q_n\) are to be our canonical coordinates, then we should likewise write the momenta in terms of Fourier modes \[ p_j(t) = \frac{1}{\sqrt{N}}\sum_{|n| \leq (N-1)/2} \pi_n(t) e^{-i\eta_n j}, \label{coll_Pexp} \] If \(u_j\), \(p_j\) are canonical variables with Poisson Bracket \(\{u_j, p_k\}=\delta_{jk}\), then it follows that \(\{q_m,\pi_n\}=\delta_{mn}\).
Show that in terms of the Fourier modes the Hamiltonian \(\eqref{coll_Hchain}\) is \[ H = \sum_{|n| \leq (N-1)/2} \left[\frac{1}{2m}\pi_n \pi_{-n} + k (1-\cos \eta_n) q_n q_{-n}\right]. \label{coll_HDiag} \]
This almost looks like a system of harmonic oscillators. Bear in mind that the \(q_n\) and \(\pi_n\) are complex. One could, for example, split the amplitudes into their real and imaginary parts \[ \begin{align} q_n &= \frac{1}{\sqrt{2}}\left(q_n' + i q_n''\right),\quad q_{-n} = \frac{1}{\sqrt{2}}\left(q_n' - i q_n''\right)\\ \pi_n &= \frac{1}{\sqrt{2}}\left(\pi_n' + i \pi_n''\right),\quad \pi_{-n} = \frac{1}{\sqrt{2}}\left(\pi_n' - i \pi_n''\right),\quad n\geq 0. \label{coll_RandI} \end{align} \] The Hamiltonian would then become \(H=H' + H''\) with \[ H' = \sum_{0 < n \leq (N-1)/2} \left[\frac{1}{2m}\pi'_n \pi'_{n} + k (1-\cos \eta_n) q'_n q'_{n}\right]. \] and similarly for \(H''\). By comparing with the standard form \[ H_\text{SHO} = \frac{p^2}{2m} + \frac{1}{2}m\omega^2 x^2, \label{coll_SHO} \] we can read off the dispersion relation \(\eqref{coll_Dispersion}\). The decomposition \(\eqref{coll_RandI}\) amounts to working with the real amplitudes of sine and cosine waves. Other options are possible.
Complex Coordinates
Sticking with the classical problem, let’s introduce complex coordinates to describe the two dimensional phase space of a single oscillator \[ \begin{equation} a = \sqrt{\frac{m\omega}{2}}\left(x + \frac{i}{m\omega} p \right). \label{a_def} \end{equation} \] \(a\) and its conjugate satisfy \(\{a^{},a^*\}=-i\). This definition is chosen so that the Hamiltonian takes the simple form \[ H = \omega \left|a\right|^2. \] Hamilton’s equations of motion are then \[ \begin{align} \dot a &= \{a, H \} = -i\omega a\\ \dot a^* &= \{a^*, H \} = i\omega a^*. \end{align} \] with solution \(a(t) = e^{-i\omega t} a(0)\) describing circular motion in the complex \(a\) plane on a contour of fixed energy.
Satisfy yourself — without doing any calculations — that \(a(t)\) defined by \(\eqref{a_def}\) goes clockwise in the complex plane.
In the same way, we can introduce the coordinates \[ \begin{align} a_n &= \sqrt{\frac{m\omega(\eta_n)}{2}}\left(q_n + \frac{i}{m\omega(\eta_n)}\pi_{-n}\right)\nonumber\\ a^*_n &= \sqrt{\frac{m\omega(\eta_n)}{2}}\left(q_{-n} - \frac{i}{m\omega(\eta_n)}\pi_{n}\right),\qquad n\neq 0. \label{coll_adef} \end{align} \] Remember that \(q_n = q_{-n}^*\) and \(\pi_n = \pi_{-n}^*\) in order that \(u_j\) and \(p_j\) are real. Note that \(n=0\) is excluded because \(\omega(0)=0\). These coordinates satisfy \[ \{a_m,a^{*}_n\}=-i\delta_{mn}. \] Inverting the definition \(\eqref{coll_adef}\) gives \[ \begin{align} q_n &= \sqrt{\frac{1}{2m\omega(\eta_n)}}\left(a_n + a_{-n}^*\right)\nonumber\\ \pi_n &= -i\sqrt{\frac{m\omega(\eta_n)}{2}}\left(a_{-n} - a_{n}^*\right), \end{align} \] and inserting into the Hamiltonian \(\eqref{coll_HDiag}\) gives \[ H = \frac{\pi_0^2}{2m}+\sum_{\substack{n\neq 0 \\ |n| \leq (N-1)/2}} \omega(\eta_n) \left|a_n\right|^2, \] with the first term accounting for the (free) centre of mass.
Quantum Oscillators
In the quantum theory, the variables \(\aop\), \(\adop\) satisfy \([\aop,\adop]=1\) and the Hamiltonian \(\eqref{coll_SHO}\) takes the form \[ H = \frac{\omega}{2}\left(\adop\aop+\aop\adop\right). \] Let’s remind ourselves how this formalism solves the problem of finding the eigenstates. The key observation is that \[ \begin{align} \left[\aop, H\right] &= \omega\aop,\\ \left[\adop, H\right] &= -\omega \adop. \end{align} \] As a result, if \(\ket{\psi}\) is an eigenstate of the Hamiltonian \[ H \ket{\psi} = E \ket{\psi}, \] then \(\adop\ket{\psi}\) is an eigenstate with energy \(E+\omega\) \[ H \adop \ket{\psi} = \adop H \ket{\psi} + [H, \adop] \ket{\psi} = \left(E+\omega\right)\adop\ket{\psi}. \] Similarly \(a\ket{\psi}\) is an eigenstate with energy \(E-\omega\), unless \(\ket{\psi}=\ket{0}\), the ground state, in which case we must have \(\aop\ket{0}=0\).
As a result, all states can be written as \[ \ket{n} = \frac{1}{\sqrt{n!}}\left(\adop\right)^n\ket{0}. \] The factor of \(\frac{1}{\sqrt{n!}}\) normalizes the state. The ground state has energy \(E_0=\omega/2\).
The Quantum Chain
The quantization of the chain is then a piece of cake. We have a system of oscillator variables satisfying \([\aop_m,\adop_n]=\delta_{mn}\), and writing the Hamiltonian \(\eqref{coll_HDiag}\) in terms of these variables, paying attention to the order, gives \[ H = \frac{\pi_0^2}{2m}+\sum_{\substack{n\neq 0 \\ |n| \leq (N-1)/2}} \frac{\omega(\eta_n)}{2}\left(\adop_n\aop_n+\aop_n\adop_n\right). \] From now on we will ignore the centre of mass motion. Exactly the same logic as before tells us that a general energy eigenstate may be written \[ \ket{\mathbf{N}} = \prod_{\substack{n\neq 0 \\ |n| \leq (N-1)/2}} \frac{\left(\adop_n\right)^{N_n}}{\sqrt{N_n!}} \ket{0}. \] The non-negative integers \(\mathbf{N}=\left(N_{(1-N)/2},\ldots, N_{-1}, N_{1}, \ldots N_{(N-1)/2}\right)\) describe the occupation numbers of the oscillators. This eigenstate has energy \[ E(\mathbf{N}) = E_0 + \sum_{\substack{n\neq 0 \\ |n| \leq (N-1)/2}} \omega(\eta_n) N_n, \] where the ground state energy is \[ E_0 = \frac{1}{2}\sum_{|n| \leq (N-1)/2} \omega(\eta_n). \label{coll_H0} \]
Oscillator Quanta are Bosons!
A key moment in the birth of Quantum Field Theory was the realization that oscillator quanta are bosons, meaning that they can be identified with quantum particles having symmetric wavefunctions. We’ll see this in much more detail in later lectures. For the moment, let’s just note that both have a basis of states described in terms of the occupation numbers, which are non-negative integers. In the case of \(M\) bosons, those states were written in terms of the single particle wavefunctions \(\varphi_\alpha(\br)\) of the bosons as \[ \Psi^{\text{S}}_{\alpha_{1}\alpha_{2}\cdots\alpha_{M}}(\br_1,\ldots,\br_M)=\sqrt{M!\prod_{\alpha}N_{\alpha}!}\mathcal{S}\,\varphi_{\alpha_{1}}(\mathbf{r}_{1})\varphi_{\alpha_{2}}(\mathbf{r}_{2})\cdots\varphi_{\alpha_{M}}(\mathbf{r}_{M}), \] where \(\mathcal{S}=\frac{1}{M!}\sum_{P} P\) is the operation of symmetrization, and \(N_\alpha\) denotes the number of occurrences of \(\varphi_\alpha(\br)\) in the product, so that \(M=\sum_\alpha N_\alpha\). It turns out that the Hilbert space spanned by these states is the same as that spanned by the states \(\ket{\mathbf{N}}\), if the labels \(\alpha\) are identified with the momentum labels \(n\).
It’s important to note that these bosons are totally distinct from the original particles making up the chain. In fact, or original Hamiltonian \(\eqref{coll_Hchain}\) doesn’t describe indistinguishable particles as written, as each particle is labelled by its position in the chain, with a particle only interacting with its two neighbours. Since the particles are assumed not to change places, there is no way of assigning statistics to their wavefunction.
Thermodynamic (\(N\to \infty\)) limit
In studying the properties of matter, we are usually interested in taking the limit of an infinite system, otherwise known as the \(N\to\infty\) or thermodynamic limit. At the very least, we expect the internal energy (as well as other thermodynamic potentials) to be an extensive quantity, meaning that it is proportional to the `size’ of the system, here measured by the number of sites. Thus we expect the limit \[ e_0 = \lim_{N\to \infty} \frac{E_0}{N} \] to exist. The separation of the \(\eta_n\) values is \(2\pi/N\), so as \(N\to\infty\) the sum in ground state energy \(\eqref{coll_H0}\) can be replaced with an integral according to the rule \[ \sum_{|n| \leq (N-1)/2} \left(\cdots\right) \xrightarrow{N\to\infty} N \int_{-\pi}^\pi \frac{d\eta}{2\pi}\left(\cdots\right). \] The factor of \(N\) tells us that we have an extensive quantity, and \[ e_0 = \int_{-\pi}^\pi\frac{d\eta}{2\pi} \frac{\omega(\eta)}{2} = \sqrt{\frac{k}{2m}}\int_{-\pi}^\pi\frac{d\eta}{2\pi} \sqrt{1-\cos \eta}=\frac{2}{\pi}\sqrt{\frac{k}{m}}. \] Alternatively, we may treat the \(N\to \infty\) limit of the chain as a model of an elastic continuum of length \(L=aN\). Take \(m = \rho a\), where \(\rho\) is the mass per unit length (1D density). The 1D elastic modulus is \[ \kappa \equiv \frac{\text{tension}}{\text{strain}} = ka \] Then \(k/m = \kappa/(\rho a^2)\) and \[ \frac{E_0}{L} = \left(\frac{N}{L}\right)^2\frac{2}{\pi}\sqrt{\frac{\kappa}{\rho}}. \] The energy per unit length diverges as \(N\to\infty\). Thus the ground state energy of a continuous medium is infinite, on account of the infinite number of degrees of freedom it contains. This is only a problem if one insists on such a description: in practice (at least in condensed matter) there is always discreteness on the smallest scales.
Apart from the infinite ground state energy, the continuum limit of our harmonic system is perfectly well defined. Introducing a continuum displacement by \(u(x=ja)=u_j\), the potential energy can be written \[ V = \frac{k}{2} \sum_j^N (u_j-u_{j+1})^2 \xrightarrow{N\to\infty} \frac{\kappa}{2} \int_0^L dx\, \left[u'(x)\right]^2. \] If we define the momentum density at each point by \(\pi(x=ja) = p_j N/L\), then we find the continuum limit of the canonical commutation relations \[ \left[u(x),\pi(x')\right]=i\delta(x-x'), \] together with the kinetic energy \[ T = \sum_{j=1}^N \frac{p_j^2}{2m} = \frac{1}{2\rho}\int_0^L dx\,\left[\pi(x)\right]^2. \] Since we are taking the \(N\to\infty\) limit it’s convenient to define the Fourier modes slightly differently \[ u(x) = \sum_{n=-\infty}^\infty u_n e^{ik_n x}, \] where \(k_n =2\pi n/L\). Note that \(k_n x = \eta_n j\). We are recycling the notation \(u_n\) now that we have taken the limit.
If the momentum density \(\pi(x)\) is then written \[ \pi(x) = \lim_{N\to\infty} \frac{p_{j=xN/L}N}{L} =\frac{1}{L}\sum_{n=-\infty}^\infty \pi_n e^{-2\pi i nx /L}, \] (This differs from \(\eqref{coll_Pexp}\) by \(\pi_n\to \pi_n/\sqrt{N}\).) we have \(\left[u_m,\pi_n\right]=\delta_{mn}\).
Our continuum Hamiltonian \(H= T+V\) is then written in Fourier components as \[ H = \sum_{n=-\infty}^\infty \left[\frac{1}{2\rho L} \pi_n\pi_{-n} + \frac{\kappa L k_n^2}{2} u_nu_{-n} \right]. \] We can now read off the dispersion relation \[ \omega(k) = c|k|, \] where \(c=\sqrt{\frac{\kappa}{\rho}}\) is the speed of sound. Note that the continuum limit has lead to a linear dispersion relation. This is reasonable: the lattice was the origin of the periodic dispersion relation \(\eqref{coll_Dispersion}\), and it has now disappeared.
Transcribing the definition of the oscillator variables \(\eqref{coll_adef}\) gives \[ \begin{align} a_n &= \frac{1}{\sqrt{2}}\left[\sqrt{ZkL} u_n + \frac{i}{\sqrt{ZkL}}\pi_{-n}\right]\nonumber\\ a^*_n &= \frac{1}{\sqrt{2}}\left[\sqrt{ZkL} u_{-n} - \frac{i}{\sqrt{ZkL}}\pi_{n}\right]. \end{align} \] where \(Z\equiv\sqrt{\kappa\rho}\) is the impedance. After quantization, the Hamiltonian takes the form \[ H - E_0 = \sum_{n=-\infty}^\infty c\left|k_n\right|\adop_n\aop_n. \label{coll_excess} \] This expresses the energy above the ground state in terms of the occupancy of the oscillator modes.
Finite Temperature
At finite temperature \(T\) the occupancies of the modes have thermal averages given by the Bose occupation function \[ \langle N_n \rangle = n_\text{B}(\omega(\eta_n))\equiv \frac{1}{\exp\left(\beta\omega(\eta_n)\right)-1}, \label{coll_Bose} \] where \(\beta=\frac{1}{k_\text{B}T}\). The thermal average of the energy of excited states is then \[ \langle H - E_0 \rangle =\sum_{|n|\leq (N-1)/2} \omega(\eta_n)n_\text{B}(\omega(\eta_n)). \] This is finite, even in the \(N\to\infty\) limit, on account of the exponential tail of \(\eqref{coll_Bose}\). Remember that this was the problem that the quantum theory was introduced to solve. At low energies \(n_{\text{B}}(\omega) = \frac{1}{\beta\omega}\) and the contribution of each mode is \[ \omega n_\text{B}(\omega) \xrightarrow{\omega\to 0} k_\text{B}T, \] in agreement with the classical equipartition theorem. Were this result to apply at all energies the thermal energy density of a continuum at finite temperature would be infinite (the Ultraviolet Catastrophe). It is the existence of Planck’s constant, which appears in the dimensionless combination \(\hbar\beta\omega\) in the Bose occupation function, that allows this conclusion to be avoided.
Position Fluctuations
Classically, the ground state configuration of our elastic chain corresponds to a regular ‘crystalline’ arrangement of masses at separation \(a\), with all \(u_j=0\). Mass \(j\) and mass \(k\) are then separated by \((j-k)a + u_j-u_k = (j-k)a\). Quantum mechanically, \(u_j-u_k\) fluctuates, even in the ground state. For the notion of a crystal to make sense, these fluctuations should not be too large. Let’s evaluate them for the elastic chain.
We want to evaluate \[ \bra{0}\left(u_j-u_k\right)^2\ket{0}. \label{coll_gsfluct} \] To do this, we write the displacements in terms of the oscillator variables, and then evaluate the expectation values in the ground state using the oscillator algebra. Recall that \[ u_j = \frac{1}{\sqrt{N}}\sum_{|n| \leq (N-1)/2} q_n e^{i\eta_n j}, \label{coll_ModeExp} \] and \[ q_n = \sqrt{\frac{1}{2m\omega(\eta_n)}}\left(a_n + a_{-n}^\dagger\right). \] To evaluate \(\eqref{coll_gsfluct}\), we write the two factors \((u_j-u_k)(u_j-u_k)\) in terms of the \(\aop_n\) and \(\adop_n\). Contributions to the ground state expectation value arise from terms with \(\aop_n\) in the left factor and \(\adop_n\) in the right for some \(n\). All other terms vanish. This gives \[ \begin{multline} \bra{0}\left(u_j-u_k\right)^2\ket{0} \\ = \frac{1}{2mN} \sum_{|n| \leq (N-1)/2} \frac{1}{\omega(\eta_n)} \left[e^{i\eta_n j}- e^{i\eta_n k}\right]\left[e^{-i\eta_n j}- e^{-i\eta_n k}\right]. \end{multline} \] Taking the \(N\to\infty\) limit in the sum gives \[ \begin{multline} \bra{0}\left(u_j-u_k\right)^2\ket{0} = \frac{1}{mN}\sum_{|n| \leq (N-1)/2} \frac{1-\cos\left(\eta_n[j-k]\right)}{\omega(\eta_n)}\\ = \frac{1}{m}\int_{-\pi}^\pi \frac{d\eta}{2\pi} \frac{1-\cos\left(\eta[j-k]\right)}{\omega(\eta)}. \label{coll_uvar} \end{multline} \] The dispersion relation \(\eqref{coll_Dispersion}\) makes this integral a little difficult.
When \(\left|j-k\right|\gg 1\), the integral is dominated by values of \(\left|j-k\right|^{-1}\lesssim\eta\lesssim \pi\). In this limit the dispersion can be linearized
\[ \omega(\eta) \sim \sqrt{\frac{k}{m}}|\eta|. \] Show that we then have
\[ \bra{0}\left(u_i-u_j\right)^2\ket{0} \sim \frac{\ell_\text{osc}^2}{\pi} \log \left|i-j\right|,\qquad \text{ as } \left|i-j\right|\to\infty \label{coll_LogFluct} \]
where we have introduced \(\ell_\text{osc}=\left(km\right)^{-1/4}\), the natural length scale of an oscillator. If you find this derivation a bit vague, an evaluation of the integral \(\eqref{coll_uvar}\) is given in the Appendix().
The result \(\eqref{coll_LogFluct}\) shows that the uncertainty in the separation of two masses in the chain increases with their separation. This implies that the ground state of the chain is not a crystal, but more closely resembles a fluid. It turns out that this conclusion depends strongly on the dimensionality of the system. In higher dimensions, crystalline ground states do exist (thankfully).
Density Fluctuations
An alternative way of quantifying crystalline order is to consider the fluctuations of the density of particles, defined by \[ \rho(x) = \sum_{j=1}^N \delta_L(x-x_j), \] where \(x_j = ja + u_j\), and \(\delta_L(x)\) is an \(L\)-periodic version of the \(\delta\)-function, if we want to stick with a finite size system. Alternatively, we may consider the Fourier components \[ \rho_k = \sum_{j=1}^N\exp(-i k x_j). \] Rather than introducing separate notation for the Fourier components of \(f(x)\), it’s convenient to denote them by \(f_q\), so that \[ f(x) = \sum_{n=-\infty}^\infty f_{k_n} \exp(ik_n x), \qquad k_n = \frac{2\pi n}{L} \] In an ordered configuration \(x_j = ja\), we would have \[ \rho_{k_n} = \begin{cases} N & n = 0 \mod N \\ 0 & \text{ otherwise.} \end{cases} \] These peaks at values of \(k\) corresponding to multiples of \(\frac{2\pi}{a}\) are nothing but the Bragg peaks observed in a diffraction experiment, which translates the real space crystal arrangement into Fourier space. Note that an overall translation of lattice will just change the phase of the $ _k$, leaving \(\left|\rho_k\right|^2\) (proportional to the intensity measured in a diffraction experiment) unchanged.
How is this picture altered in the quantum mechanical ground state? Given the above comment, we should evaluate \[ \bra{0} \rho_q \rho_{-q} \ket{0} = \sum_{j,k=1}^N \bra{0} \exp(iq[x_j-x_k])\ket{0}. \label{coll_Struct} \] Upon substituting the mode expansion \(\eqref{coll_ModeExp}\) for the displacements, we are left to evaluate expressions of the form \[ \bra{0} \exp(\lambda \aop + \mu \adop)\ket{0}. \]
Prove the Hadamard Lemma
\[ \begin{aligned} e^{A}B e^{-A} &= B + \left[A,B\right] + \frac{1}{2!}\left[A,\left[A,B\right]\right]+\frac{1}{3!}\left[A,\left[A,\left[A,B\right]\right]\right]+\ldots \\ &\equiv e^{\left[A,\cdot\right]}B, \end{aligned} \]
[Hint: Consider the differential equation in \(x\) obeyed by \(e^{xA}B e^{-xA}\)]
Show that the exponent can be written in a form with all occurrences of \(\adop\) to the left of all \(\aop\) (this operation is called normal ordering; we will meet it again).
\[ \exp(\lambda \aop + \mu \adop) = \exp(\lambda \mu /2) \exp(\mu\adop)\exp(\lambda\aop). \] [Hint: Consider the differential equations obeyed by \(F_1(s)=e^{s(A+B)}\) and \(F_2(s)=e^{sA}e^{sB}\)]
Use this result to show that
\[ \bra{0} \exp(\lambda \aop + \mu \adop)\ket{0} = \exp(\lambda \mu /2). \]
Deploying this strategy for \(\eqref{coll_Struct}\) gives \[ \begin{equation} \begin{split} \bra{0} \rho_q \rho_{-q} \ket{0} = \sum_{j,k=1}^N &\exp(iqa[j-k])\\ &\times\exp\left(-\frac{q^2}{2mN}\sum_{|n| \leq (N-1)/2} \frac{1-\cos\left(\eta_n[j-k]\right)}{\omega(\eta_n)}\right). \end{split} \end{equation} \]
The second exponent modifies the classical prediction of Bragg peaks. We have encountered the expression in exponent before in \(\eqref{coll_uvar}\). Taking the \(N\to\infty\) limit with \(\left\|j-k\right\|\gg 1\) as before, we find that in the vicinity of the first Bragg peak at \(q=2\pi/a\) the summand has the form \[ \exp(i\Delta q a[j-k])\, \left|j-k\right|^{-2\pi\ell_\text{osc}^2/a^2}, \] where \(\Delta q\) denotes the deviation of \(q\) from \(2\pi/a\). To find the dependence on \(\Delta q\)
This leads to the conclusion \[ \bra{0} \rho_q \rho_{-q} \ket{0} \sim \left(\Delta q\right)^{-1+2\pi\ell_\text{osc}^2/a^2}. \]
What happens to the higher Bragg peaks?
Thus quantum fluctuations replace the Bragg peaks, an indicator of crystalline order, with power law divergences. These remnants of order diminish as \(\ell_\text{osc}/a\) increases, indicating larger quantum fluctuations. Again, things are different in higher dimensions: the Bragg peaks survive, albeit reduced in strength, at least for small fluctuations. It is possible, however, for quantum fluctuations to prevent crystallization in the ground state (i.e. at zero temperature). Such systems are called quantum liquids. Helium is the prototypical example: the low atomic mass and relatively weak interactions between atoms mean that quantum fluctuations are large.
Appendix
Fourier review
This is a good place to collect some facts about Fourier transforms. We start from the discrete Fourier transform (DFT), which is a change of basis in a finite dimensional space. This is what we used in discussing the chain. There are then two ways to pass to the infinite continuous case described by the Fourier transform.
Discrete Fourier Transform
For a vector \(x_j = 1,\ldots N\) (\(N\) taken to be odd), we define the DFT by \[ F_n = \sum_{j=1}^N f_j e^{-i\eta_n j}, \label{coll_DFT} \] where \(\eta_n\equiv \frac{2\pi n}{N}\), and \(n = -(N-1)/2,\ldots, (N-1)/2\). The key to inverting \(\eqref{coll_DFT}\) is the observation \[ \sum_{n=-(N-1)/2}^{(N-1)/2} e^{i\eta_n j} = \begin{cases} 0 & j\neq 0 \mod N\\ N & j = 0 \mod N. \label{coll_DFTIdent} \end{cases} \]
Perhaps the slickest way to to see this is to observe that \[ z^N-1 = (z-1)(1 + z + z^2 +\cdots z^{N-1}) \] Can you fill in the rest of the argument?
This gives \[ f_j = \frac{1}{N}\sum_{n=-(N-1)/2}^{(N-1)/2} F_n e^{i\eta_n j}. \label{coll_IDFT} \] A more democratic definition would have \(1/\sqrt{N}\) in both definitions \(\eqref{coll_DFT}\) and \(\eqref{coll_IDFT}\). This would allow us to regard the DFT as a basis change to an orthonormal basis of vectors \(e^{(n)}_j = \frac{e^{i\eta_n j}}{\sqrt{N}}\), and both the DFT and its inverse would be unitary transformations.
\(N\to\infty\) limit
In this limit the \(\eta_n\) values become dense in the range \((-\pi,\pi]\), with separation \(\Delta \eta = 2\pi/N\), and we replace the sum in the inverse DFT \(\eqref{coll_IDFT}\) by an integral according to the prescription \[ \sum_{|n| \leq (N-1)/2} \left(\cdots\right) \xrightarrow{N\to\infty} N \int_{-\pi}^\pi \frac{d\eta}{2\pi}\left(\cdots\right), \] giving \[ f_j = \int_{-\pi}^\pi \frac{d\eta}{2\pi}\,F(\eta) e^{i\eta j}. \]
\(N\to\infty\), with \(f_j = f(jL/N)\),
Alternatively, regard the \(N\to\infty\) limit as sampling a function \(f(x)\) ever more finely in the range (0,L]. Now it’s the DFT, rather than the inverse, that becomes an integral \[ \hat f(k) \equiv \int_0^L f(x) e^{-ik_n x}\,dx, \] where \(k_n =2\pi n/L\). Note that \(k_n x = \eta_n j\). The pair of transformations is now \[ \begin{align} \hat f_k &= \int_0^L f(x) e^{-ik_n x}\,dx\nonumber\\ f(x) &= \frac{1}{L}\sum_k \hat f_k e^{ik_n x} \label{coll_FTSeries} \end{align} \] This is the conventional form of the Fourier series for a function with period \(L\).
With this definition \(\hat f_k\) has an extra dimension of distance (on account of the integral), which gets removed by the \(1/L\) in the inverse transform.
The analog of the identity \(\eqref{coll_DFTIdent}\) is \[ \frac{1}{L}\sum_k e^{ik x} = \delta_L(x), \] where \(\delta_L(x)\) is an \(L\)-periodic version of the \(\delta\)-function.
\(L\to\infty\)
Finally we arrive at the Fourier transform, where we take \(L\to\infty\), so that the inverse transform in \(\eqref{coll_FTSeries}\) becomes an integral too \[ \begin{align} \hat{f}(k) & = \int_{-\infty}^\infty f(x) e^{-ik_n x}\,dx\nonumber\\ f(x) &= \int_{-\infty}^\infty \hat f(k) e^{ik_n x}\,\frac{dk}{2\pi}. \label{coll_FTTrans} \end{align} \] My preference is for taking this limit at the last possible moment, that is, sticking with discrete Fourier sums for as long as possible. There are some good(ish) reasons for this
Writing \(\sum_k\) is easier than \(L\int \frac{dk}{2\pi}\), because the \(k_n = 2\pi n/L\) can be left implicit.
Leaving \(k\) as a subscript means we don’t need the tilde to distinguish \(f(x)\) and \(f_k\).
There are times where taking the limit leads to a divergent integral, while the sums remain finite. This almost always tells us that there is something interesting going on when we are trying to pass to an infinite system.
Properties of the Fourier Transform
Here are some properties that hold for all of the above.
If \(f(x)\) is real \(f_k = \left[f_{-k}\right]^*\).
If \(f(x)\) is even, \(f_k\) is even.
(Ergo) if \(f(x)\) is real and even, so is \(f_k\).
Fourier Transforms of Products
Frequently we have to transform products, so we use the convolution theorem \[ f(x)g(x) = \frac{1}{L^2}\sum_{k,k'} f_k g_k = \frac{1}{L}\sum_q \left(\frac{1}{L}\sum_k f_k g_{q-k} \right)e^{iqx}, \] which shows us that \[ f(x)g(x) \stackrel{\text{FT}}{\longleftrightarrow} \frac{1}{L}\sum_k f_k g_{q-k}, \] the latter being a discrete convolution.
Frequently we’ll have to calculate integrals of such products. I record some examples to give you the general idea \[ \begin{align} \int_{0}^L f(x)g(x)\,dx &= \frac{1}{L}\sum_k f_k g_{-k}\nonumber\\ \int_{0}^L f'(x)g'(x)\,dx &= \frac{1}{L}\sum_k k^2 f_k g_{-k}\nonumber\\ \int_{0}^L f(x)g(x)h(x)\,dx &= \frac{1}{L^2}\sum_{\substack{k_1,k_2,k_3 \\ k_1+k_2+k_3=0}} f_{k_1} g_{k_2} h_{k_3}\nonumber\\ \int_0^\infty \phi(x)V(x-y)\phi(y)\,dx \,dy &= \frac{1}{L}\sum_{q} \phi_{-q} V_q \phi_q \label{coll_FTExamples} \end{align} \] Note that you can be guided to the right number of factors of \(1/L\) by dimensional considerations, or from the number of ‘free’ sums over wavevectors.
Finally, we often encounter the situation where we have two (or more) arguments, but there is only dependence on the difference, for example \[ F(x,x') = f(x-x'). \] In this case \[ F_{k,k'} = f_k\delta_{k,-k'}. \] In the \(L\to\infty\) limit this is \[ \hat F(k,k') = \hat f(k) (2\pi)\delta(k+k'). \] \((2\pi)\delta(k+k')\) is the \(L\to\infty\) limit of \(L\delta_{k,-k'}\) as \[ \frac{1}{L}\sum_k L\delta_k \xrightarrow{L\to\infty} \int_{-\infty}^\infty \frac{dk}{2\pi} 2\pi \delta(k) \] With practice, you will find you are able to write down the right hand sides of expressions like \(\eqref{coll_FTExamples}\) without too much difficulty.
Higher dimensions
This all generalizes to higher dimensions straightforwardly. For example \[ \frac{1}{L^d}\sum_\bk (\cdots) \xrightarrow{L\to\infty} \int (\cdots) \frac{d\bk}{(2\pi)^d} \]
Practice writing out \(\eqref{coll_FTExamples}\) in \(d\) dimensions.
Evaluating \(\eqref{coll_uvar}\)
We want to evaluate \[ I(j)\equiv\int_{-\pi}^\pi \frac{1-\cos\left(\eta j\right)}{\sin(\eta/2)}d\eta \] for integer \(j\). We can write this as \[ I(j)=\int_{0}^{2\pi} \frac{1-e^{i\eta j}}{\sin(\eta/2)}d\eta= -2i\int_{0}^{2\pi} e^{i\eta/2}\frac{1-e^{i\eta j}}{1-e^{i\eta}}d\eta \] because the imaginary part of the integrand vanishes on integration. Now notice that the integrand involves the geometric series \[ \frac{1-e^{i\eta j}}{1-e^{i\eta}} = 1 + e^{i\eta} + \cdots e^{i\eta(j-1)}, \] so we can do the integrals term by term to give \[ I(j) = 4\sum_{n=1}^j \frac{1}{n+1/2}\sim 4\log j. \] When all factors are replaced, this yields \(\eqref{coll_LogFluct}\).
References
{% bibliography –cited %}


Tour the Carpathian Mountains
The Carpathians provide habitat for the largest European populations of large predators with the highest concentration in Romania, as well as over one third of all European plant species. The mountains and their foothills also have many thermal and mineral waters, with Romania having one-third of the European total.


In January of 2013 I was the Social Media Strategist. I created social marketing plans for various clients ranging from mom and pop shops, non-profits and big brand companies.
I started at Toms in December of 2014 as a Online Marketing Coordinator. I Built and maintained product pages on the TOMS website and facilitated communication between internal creative department and e-commerce teams.
In June 2016 I began to work at
InSync Plus as a social media manager, where I monitored and created social media campaigns for key accounts, including Netflix, Warner Bros, Fox, and Amazon shows and films.
Immersive study of full stack web development to master front end dynamic web design, back end data management, and combine the two to create a seamless end user experience. 70 hours of weekly programming culminating in several front end and full stack web apps.


{% extends "global/Base.html" %} {% load otree static %} {% block title %} Survey {% endblock %} {% block content %}
The table below shows the income distribution of a group with four members. Suppose the group has chosen a tax rate of 50% and transfers of 250 tokens per participant.
{% formfield player.q20a %} {% formfield player.q20b %} {% formfield player.q20c %} {% formfield player.q21 %} {{ form.q22.label }}


| NAME | CREATOR | RATING | TYPES | TIME | DIFFICULTY | INGREDIENTS | |
| {{ meal.Description }} | {{ meal.Name }} | {{ meal.Creator}} | {{ meal.get_rating}} | {% for type in meal.Types.all%} {{ type }} {% endfor%} | {{ meal.get_time }} | {{ meal.Difficulty }} | {{ meal.Ingredients.count }} |
| {% else %} | {% endif %} {% endfor %} |


|
Fig 1
|
Comparison of historical sea-level anomalies in San Francisc ... |
|
Fig 2
|
Storm surge analysis for San Francisco Bay area. Shown are ( ... |
|
Fig 3
|
Estimated (panel a) probability density function of global m ... |
|
Fig 4
|
Hypsometric curve covering the elevations between -2 and 8 m ... |
|
Fig 5
|
Sequential zoom in of the baseline and future 100-yr flood r ... |


WITNESS LIST
Economic Development Incentives, Select Committee
August 27, 2014 - 10:00 AM
Economic Development Incentives
On:
Andrade, Hope (Texas Workforce Commission)
Blackwood, Susan (Self; San Antonio Sports)
Booth, Danny (Self; Texas EDC)
Cruz, Adriana (Greater San Marcos Partnership)
Davis, Paul (Pasadena EDC)
Demerson, Aaron (Texas Workforce Commission)
Dunlap, Ray (Self; Fairview EDC)
Fields, Jess (Texas Public Policy Foundation)
Foulkes, Thomas (Entertainment Software Association)
Fowler, Dale (Self; Victoria Economic Development Corp.)
Gonzales, Rodney (City of Austin)
Hammond, Bill (Texas association of business)
Heimlich, Ed (Self; Honor Quest)
Jackson, Robert (Houston First Corporation)
Johns, Kevin (City of austin)
Leeser, Oscar (The City of El Paso)
Longley, Bill (Texas Municipal League)
McElroy, Mathew (The City of El Paso)
Neilson, Renn (Baker Botts LLP)
Obrien, Steve (Reel FX)
Page, Heather (Texas Film Commission)
Paul, Monica (Dallas Convention and Visitors Bureau)
Roe, Marla (City of frisco)
Sawaya, Michael (City of San Antonio)
Slaughter, Kirk (City ofw Fort Worth)
Sledge, Ginger (Self)
Spencer, Lynn (San Patricio EDC)
Trevino, Terry (Seguin EDC)
Walbrecht, Michael (Warner Bros. Ent)
Weinstein, Bernard (Self)
Wilson, Matt (Arlington Convention and Visitors Bureau)
Winningham, Robert (Self; Town of Prosper EDC)
Wood, Robert (Comptroller of Public Accounts)
Yohe, James (Self; Nocona Economic Development Corporations)
Yoxsimer, Greg (Self)
1


Your Contacts{{resource.name}}{{resource.phone}}{{resource.body}}
There was a problem loading the data. Possibly the server is down or perhaps there are network
issues.
Please wait a bit and try again or start the server.
phone_forwardedphoneContact NumbersIn times of need you can refer to these phone numbers
to have support. It's always okay to have someone to talk to.Suicide Prevention LifelineProvides 24/7, free and confidential support for people in distress and prevention and crisis
resources for you or your loved ones. phone 1-800-273-8255Crisis Hotline24-hour crisis line often serves as the first point of contact for individuals who are seeking
help and support. phone<PHONE_NUMBER>Crisis Text LineFree, 24/7 support for people in crisis. Every texter
is connected with a Crisis Counselor, a real-life human being trained to
bring texters from a hot moment to a cool calm through active listening
and collaborative problem solving.


**This is just yet another implementation of that gentleman's work: [[http://www.raphnet.net/electronique/snes_nes_usb/index_en.php]]. Thank you Mr. Raphaël Assénat for sharing!**
So basically I'll just reuse his work, but make a PCB for that. I'll try to do minimum code changes, none if possible.
Presentation
Principle
With [[https://www.obdev.at/products/vusb/|V-USB]] emulate an USB controller from the SNES Joypad. Raphael's original work supports many different models of joypads (SNES, NES, ...) but I care only about SNES. I want also if possible to have this board reusable for other small USB projects so if possible it won't be an joypad emulator only. And I want to have a certain freedom to move pins around. And a slightly different more recent (= more easily sourceable) mCU.
Points of interrest
* Making the solder pads for a SNES controller plug that you can find on eBay. I bought some years ago just for this. Should be relatively standard to work with any brand.
* If possible double trace for SMD or DIP components (ie: ATmegaxx8 SMD or DIP format)
* Micro or Mini USB or free cable
* Accessible ID pin for USB OTG
* Reusable for other projects with a little free soldering zone
Implementation
Bill of materials
Schematics
Source code
* [[https://github.com/AlanFromJapan/alanarduinotools/tree/master/Atmegaxx8/nes_snes_db9_usb|Code]] : the initial commit is the source code as-is from Raphael
* [[https://github.com/AlanFromJapan/alanarduinotools/tree/master/eagle/SNES2USB|PCB]] on GitHub.
PCB versions
v1.0 [Feb2020]
* That's what happens when you work at 1am: I sent for production without the V-USB logo as usual. Other problems:
* The holes for the SNES connector are too small. They are 1mm but the SNES pins are 1.5mm (lessons learned, I'll use my good caliper next time and not the cheap one). Just redrill them with a **1.5mm** and solder both sides.
* Pinout for the SNES connector is slightly off: still ok but luckily the pins can be tilted a little bit. Maybe if I'd make another batch I'd align them a bit differently.
How to use
Micro controller
**ATmega328p** is WAY overkill: the code is less than 4kB so feel free to replace it with an ATmega88p, it will still be more than enough. But again I choose to modernize the mCU (from Raphael's Atmega8) to source it more easily so do whatever you want. The board has plenty of free space, can be reused for more complex projects (NB: only port C and D are accessible, port B is not for board simplicity)
Hardware
If you want to use the vanilla code (nes_snes_db9_usb.default.hex
file), solder close the following SMD solder-jumpers:
* J_D-D4 (bottom) : if not, you have to wire where the D- goes on the CPU
* J_D+D2 (bottom) : if not, you have to wire where the D+ goes on the CPU
* JPC (bottom) : if not, wire the SNES connector CLOCK pin yourself
* JPL (bottom) : if not, wire the SNES connector LATCH pin yourself
* JPD (bottom) : if not, wire the SNES connector DATA pin yourself
Components list (mandatory):
* 1x ATmega88p, ATmega168p, ATmega328p as DIP or SMD package
* 2x 68ohm resistors
* 1x 1.5k resistor
* 2x 3.6v Zener diodes
* 1x USB mini or micro socket
* 1x SNES connector
* 1x 12MHz crystal
* 2x 22pF DIP or SMD capacitors
* 1x power rail capacitor (10uF+) and throw in a small one tool 1uF close to the mCU
The rest is optional. All the connectors can be soldered directly as wires (the USB, the SNES connector).
Fuses
Then set the fuses (reminder it's an ATmega328p, 12MHz crystal)
* High: 0xDB
* Low: 0xDF
* Extended: 0xFD
# Set the fuses
avrdude -pm328p -cavrispmkII -u -Ulfuse:w:0xdf:m -Uhfuse:w:0xdb:m -Uefuse:w:0xfd:m
Code
Unfortunately the original code from Raphael does not work on my board. Something I must have done wrong, though I can't figure what. You can still find it in the originals/ folder of the code Git repo.
So based on his code, I removed the things I don't need (Sega, DB9, SNES Mouse,...) and rebuilt it under Eclipse. A few code changes, because different compiler and because code moved from ATmega8a to ATmega328p. Long story short:
* The original commit in the Git folder is Raphael's
* After that it's my revamp on his code
* My binaries (.hex) files are in the SNES2USB.bins/ folder, if you use vanilla settings (close all solder-jumpers) then pick the nes_snes_db9_usb.default.hex
file
# Upload the code
avrdude -pm328p -cavrispmkII -Uflash:w:nes_snes_db9_usb.default.hex:a -v
Pictures
Links
Helpful sources
* This is just yet another implementation of that gentleman's work: [[http://www.raphnet.net/electronique/snes_nes_usb/index_en.php]]
* Very good USB introduction [[https://beyondlogic.org/usbnutshell/usb1.shtml]]
Inspiration
* [[https://dragaosemchama.com/en/2017/06/usbasp-usb-adapter/]]


{% extends "accounting/layout.html" %} {% load currency_filters %} {% block content %}
| Tax Name | Taxable Amount | Taxes |
|---|---|---|
| {{ summary.tax_rate }} | ||
| Collected | {{ summary.taxable_amount|currency }} | {{ summary.collected_taxes|currency }} |
| Expenses | {{ summary.expenses_amount|currency }} | {{ summary.deductible_taxes|currency }} |
| NET | {{ summary.net_amount|currency }} | {{ summary.net_taxes|currency }} |


Ellesmere tree expert set to feature on Channel 5 documentary
by Aimee JonesA Shropshire tree expert is set to feature in a new Channel 5 documentary hosted by Chris Packham.
Rob McBride, from Ellesmere, was invited to take part in a segment of Plant a Tree to Save the World which was hosted by broadcaster John Humphrys.
He joined the ITN filming crew at a private estate in Kent to visit the largest maiden oak in Europe.
It was a tree that Rob, who is best known locally as the Tree Hunter, has been longing to see for more than a decade.
"People are now realising just how important trees are to our future," Rob said.
"I was invited by the Woodland Trust to discuss how trees can have a positive affect on our mental health.
"We went down to a private estate in Kent to see this oak and it was fantastic. I have always wanted to see it.
"I don't want to ruin the surprise but when people see it on TV they will understand why it is so magnificent."
Rob said he feels incredibly privileged to have been invited to take part.
"This is something I'm really passionate about," he said.
"It's my hobby first and foremost and I work in Tesco Whitchurch to fund all the work and research I do so to be able to take part in things like this is amazing. I feel very privileged to do it.
"Meeting John Humphreys was brilliant too. We got along really well and had a good laugh. I even got in some of my best tree puns so I'll be interested to see if they make the cut."
The first part of the documentary airs at 8pm on November 28.


<svgref>
Use the <svgref> element to reference a non-DITA XML document that contains scalable vector graphic (SVG) markup. This element enables you to use the markup by reference.
Category: SVG elements


🤘 Nashville Indie Music 🤘
Check out the latest indie bands in Music City ,
U.S.A.
Nashville may be known for its honky tonks and country music scene, but it
actually is home to a lot of great alternative bands!
Flor playing at the EXIT/IN September 2019
Head to local venues like
EXIT/IN, Cannery Ballroom, Marathon Music Works, or
The Basement to see some of the best bands in town.


Jamie Waese, Jim Fan, Asher Pasha, Hans Yu and Nicholas Provart
Department of Cell & Systems Biology, University of Toronto
ePlant helps biologists visualize the natural connections between DNA sequences, molecular structure, protein-protein interactions, cell and tissue expression patterns, natural variation, and proteomic responses to various experimental conditions by combining several data visualization tools with a zoomable user interface.
ePlant connects to several publicly available web services to download the latest genome, proteome, metabolome, and tissue expression pattern data for any number of genes you may be interested in. It then displays that data with a set of visualization tools that are presented with a conceptual hierarchy from big to small. Zoom transitions between the views represent moving closer to- or further away from each level of analysis. Links between the different views help underscore connections between multiple levels of analysis.
You may be familiar with some of our visualization tools. We used Cytoscape.js for the protein interactions, JSmol for the 3D molecular view, and JBrowse for the genome browser. The rest of ePlant was custom written with Javascript and runs locally in your browser.
ePlant was built to be species agnostic. Please contact us if there is a particular species you would like to add. This project was funded with grants from Genome Canada and NSERC.
This is a continuation of the original ePlant project by Fucile et al. (2011).


File System
{{iconfolder}}
{{/iconfolder}}
{{label}}
{{icondelete}}
{{/icondelete}} {{iconsettings}}
{{/iconsettings}} {{iconadd}}
{{/iconadd}} {{iconopen}}
{{/iconopen}}


Welcome to Jie Liu’s Personal site !!!
Hello , I am Jie Liu , who comes from Shanghai Jiao Tong University. This is the 2nd year of my master degree in Software Engineering . I like travelling、 running and playing the guitar, but without bells and whistles, I am just a rookie in these fields.
Motto: When you are alone, please see the spaces between your fingers, and remember that is where my fingers fit perfectly.
My interest is about:
- machine learning : Scikit Learn / XGBoost / LightGBM
- deep learning : Keras / Caffe / Tensorflow
- recommender system : Collaborative Filtering
- computrer vision : Segmentation / Classification / Detection
Education:
- 2012-2016 Hunan University (major in The Internet of Things)
- which I think is the best University in the world !
- 2016-2019 Shanghai Jiao Tong University (major in Software Engineering)
- It makes me believe that life is not a problem to be solved but a reality to be experienced.
Intern Experience:
- 2016.03-2016.08 BIM Research Center of SJTU (C++ Developer)
- 2016.07-2016.12 Hailiao Technology (Android/Linux Developer, A very good experience with so talented entrepreneurs)
- 2017.08-2018.12 Intel (Asia) Deep learning Lab (Computer Vision, Segmentation, Research assistant)
Here is the cities that I have visited:
- Sanya
- Wuxi
- Shangri-La
- an eternally peaceful and quiet place among mountains in the East
- Wuyuan
- Changsha
- Beijing
- Even losing my job, I will never work in this busy and colorful city…
- Guangzhou
- Yeah, this is an open and open and open city ~~
- Wuhan
- Guiling
- Chengdu
- To be honest, I don’t like this city since 2013…
- Dali
- Lijiang
- yeah, I will take my GF to visit it again, you have my words.
- Xiamen
- Hengyang
- Huangshan
- Every bit of Huangshan Mountain scenery is worth painting
- Changzhou
- Tongling
- This is my hometown, however, I have only lived here for four years.
- Hefei
- Hangzhou
- Zhengzhou
- Shanghai (Now)
Other resources:
- My Email<EMAIL_ADDRESS>- My Github


Data Model
(Feel free to browse the checkpoint for step 2 as you follow along.)
Overview
For our data model, we will begin with how we will store it. At a high level:
- Web logs have a name, an optional subtitle, a theme, a URL, and a time zone
- Users have an e-mail address, a password, a first name, a last name, a preferred name, and a personal URL
- Categories have a name, a URL-friendly "slug", and a description
- Posts have a title, a status, a permalink, when they were published and last updated, 0 or more tags, the text of the post, and a list of revisions of that post
- Pages have a title, a permalink, when they were published and last updated, whether they should show in the default page list (think "About", "Contact", etc.), the text of the page, and a list of revisions to that page
- Posts and Pages can be authored in HTML or Markdown
- Comments have a name, an e-mail address, an optional URL, a status, when they were posted, and the text of the comment
As far as relationships among these entities:
- Users can have differing authorization levels among the different web logs to which they are authorized
- Categories, Posts, and Pages all each belong to a specific web log
- Comments belong to a specific Post
- Posts are linked to the user who authored them
- Categories can be nested (parent/child)
- Comments can be marked as replies to another comment
- Posts can be assigned to multiple Categories (and can have multiple Comments, as implied above)
- Revisions (Posts and Pages) will track the date/time of the revision and the text of the post or page as of that time
Both Uno and Dos will use the same C# model. For Tres, we'll convert classes to F# record types (and null
checks to Option
s). For Quatro and Cinco, we'll make some concrete types for some of these primitives, making it more difficult to represent an invalid state within our model. (We'll also deal with the implications of those in step 3.)
Implementation Notes
Our C# data model looks very much like one you'd see in an Entity Framework project. The major difference is that what would be the navigation properties; collections (ex. the Revisions
collection in the Page
and Post
) are part of the type, rather than a Revision
being its own entity, while parent navigation properties (ex. WebLog
for entities that define a WebLogId
property) do not exist. Even if you are unfamiliar with Entity Framework, you will likely easily see how this model could be represented in a relational database.
Within the src
directory, add nuget MarkdownSharp
to paket.dependencies
, and add MarkdownSharp
to the paket.references
file for each project. This is the library we'll use to generate HTML from Markdown article content.
Some other design decisions:
- We will use strings (created from
Guid
s, utilizing theMiniGuid
package to preserve space) as our Ids for entities, and all of documents will haveId
as the property (this supports the convention RavenDB uses to identify document identifiers). - Authorization levels, post statuses, and comment statuses are represented as strings, but we provide a means to avoid magic strings in the code while dealing with these.
- Properties representing date/time will be stored as
long
/int64
, representing ticks. (We'll use NodaTime for manipulation, but this would also support using something built-in likeDateTime.UtcNow.Ticks
.) - While best practices dictate properly commenting all classes and public properties/fields, we will exclude these for brevity's sake.
Project-Specific Notes
Uno / Dos - In Depth
Tres - In Depth
Quatro / Cinco - In Depth


Gomega is a matcher/assertion library. It is best paired with the Ginkgo BDD test framework, but can be adapted for use in other contexts too.
Jump straight to the docs to learn about Gomega, including a list of all available matchers.
To discuss Gomega and get updates, join the google group.
Learn more about Ginkgo here
Gomega is MIT-Licensed
The ConsistOf
matcher uses goraph which is embedded in the source to simplify distribution. goraph has an MIT license.


output
element test<form oninput="result.value=parseInt(a.value)+parseInt(b.value)"> <input type="range" id="b" value="50" /> + <input type="number" id="a" value="10" /> = <output id="output1" for="b a"></output> </form>
aria-label
Aria-label should be used as accessible name
No accessible description.
<output id="output2" aria-label="aria-label attribute">10</output>
aria-labelledby
p referenced by aria-labelledby
Aria-labelledby should be used as accessible name
No accessible description.

p referenced by aria-labelledby

<output id="input3" aria-labelledby="op-003-labelledby">10</output>
Label should be used as accessible name
No accessible description.
label wrapping output <output id="output4">10</output>
title
attributeTitle should be used as accessible name
No accessible description.
<output id="input5" title="title attribute">10</output>
aria-describedby
p referenced by aria-describedby
Aria-describedby should be used as accessible description
No accessible name.
<output id="output6" aria-describedby="op-006-describedby">10</output>

p referenced by aria-describedby

label
element & title
attributeLabel should be used as accessible name
Title should be used as accessible description
label referenced by for/id attributes
<output id="output7" title="title attribute">10</output>


Cicada strings are all stored in linked lists, and when a Cicada script calls a user-defined C function any string arguments are passed as linkedlist structure variables. The linkedlist data type is defined in lnklst.h, so that header file needs to be included in any C source file that uses Cicada strings. lnklst.h also prototypes the functions that help the user read, write, and resize these strings. The lnklst source files were written for Cicada, but they are completely stand-alone and can be used in other C programs.
The linkedlist data type is defined as follows:
typedef struct {
ccInt elementNum;
sublistHeader *memory;
ccInt elementSize;
ccFloat spareRoom;
} linkedlist;
The only field relevant for Cicada strings is elementNum, which stores the number of characters (bytes) in the string. memory points to the first storage sublist, while elementSize should always be 1 (the byte-size of a character). spareRoom is amount of extra room to allocate in sublists relative to elementNum; this extra space uses memory but can speed up the insertion of new elements.
Here is an example of how to use a linked list in a C function.
ccInt doubleString(ccInt argc, char **argv)
{
linkedlist *theString = (linkedlist *) argv[0];
ccInt numInitChars = theString->elementNum;
addElements(theString, numInitChars, ccFalse);
copyElements(theString, 1, theString, numInitChars+1, numInitChars);
return 0;
}
Notice that we used a data type defined in lnklst.h called ccInt, which is (by default) just an int type. The reason for this is that we can change the default integer type to some other signed integer -- for example a short or long int type -- by changing the typedef at the beginning of lnklst.h along with the two integer limits defined below it. We can also change Cicada’s default floating-point type here. If we do this then we should also change the format-string constants at the beginning of cmpile.c.
There are two rules to keep in mind when using linked lists, to avoid crashing Cicada. 1) The linkedlist variable should only be updated by Cicada’s linked list routines. 2) Whenever a linked list is updated the original linkedlist variable (i.e. Cicada’s own copy) must be updated as well. Therefore it is critical that linked lists always be passed by reference to any C routine that could conceivably modify that list.
newLinkedList()
syntax: (numeric) err_code = newLinkedList((linkedlist *) LL, (numeric) element_num, element_size, spare_room, (Boolean) if_cleared)
Allocates the memory for a new linked list. The linkedlist variable itself is not created; rather its memory field is filled with a pointer to a newly-allocated sublist. The first three arguments are just three of the fields of the linkedlist data type described above: the initial number of elements, the byte size of each element, and the percentage of extra room to maintain in the list. The final argument, if set, zeros the memory of the linked list.
deleteLinkedList()
syntax: deleteLinkedList((linkedlist *) LL)
De-allocates the storage of a linked list. The actual variable of type linkedlist is not itself deleted, but its memory pointer is set to zero, indicating that the list is no longer defined.
insertElements()
syntax: (numeric) err_code = insertElements((linkedlist *) LL, (numeric) insertion_point, new_elements, (Boolean) if_cleared)
Adds elements to the beginning, middle or end of a linked list. The elements are added before the specified existing index. So to add before the first element we must set the insertion-point argument to 1; to add after the final existing element we set that argument to the number of current elements plus one. The number of new elements to add is given by the third argument. The fourth argument, if set, zeros the new memory.
Each linked list has a field signifying the amount of spare room it should try to maintain in the list. This spare room takes up more memory, but it can improve the speed with which lists are resized, since adding new elements may not require allocating more sublists if the existing ones have the extra space. When there is not enough room, insertElements() creates and inserts new sublists, again with the extra storage specified in the spareRoom field of the linked list variable.
addElements()
syntax: (numeric) err_code = addElements((linkedlist *) LL, (numeric) new_elements, (Boolean) if_cleared)
Same as insertElements(), except that the elements are appended to the end of the existing list. (This is equivalent to calling insertElements with an insertion point of elementNum+1.)
deleteElements()
syntax: (numeric) err_code = deleteElements((linkedlist *) LL, (numeric) first_index, last_index)
Removes a given range of elements from the linked list. (This is not the same as zeroing the elements!) The range of elements to delete includes the first and last indices, so for example a range of {4, 6} removes three elements.
deleteElement()
syntax: (numeric) err_code = deleteElement((linkedlist *) LL, (numeric) element_index)
Same as deleteElements() except only deletes one element.
resizeLinkedList()
syntax: (numeric) err_code = resizeLinkedList((linkedlist *) LL, (numeric) num_elements, (Boolean) if_cleared)
Adds elements to the end, or deletes elements from the end, so that the linked list will have the required number of elements. If elements are being added then they will be zeroed if and only if if_cleared is set to true (ccTrue).
defragmentLinkedList()
syntax: (numeric) err_code = defragmentLinkedList((linkedlist *) LL)
Rearranges the linked list’s storage into one contiguous block of memory. A linked list is ordinarily broken up over a number of sublists, since that reduces the amount of memory shuffling that has to occur when elements are inserted or removed. If there will be no resizing of the list then it is faster to work with when it is de-fragmented, and it can save memory too (even when spareRoom is 0).
The call() function defragments all of its string-arguments before executing a user-defined C or C++ routine.
copyElements()
syntax: [(numeric) err_code =] copyElements((linkedlist *) source_LL, (numeric) first_source_index, (linkedlist *) dest_list, (numeric) first_dest_index, num_elements_to_copy)
Copies data between two linked lists, or between two parts of the same linked list if the source and destination lists are the same. If the copy is being done within a linked list, then it is performed in such a way that data never overwrites itself and then gets re-copied (in other words, the procedure works correctly and gives the expected result even when the source and destination ranges overlap). The two lists’ element sizes must match.
compareElements()
syntax: (Boolean) err_code/result = CompareElements((linkedlist *) source_LL, (numeric) first_source_index, (linkedlist *) dest_list, (numeric) first_dest_index, num_elements_to_compare)
Compares data between two linked lists, or between two parts of the same linked list. The return value is either an error code, or the Boolean result of the comparison.
fillElements()
syntax: [(numeric) err_code =] FillElements((linkedlist *) LL, (numeric) first_index, last_index, (char) byte_pattern)
Fills the given range of elements of a linked list with the byte pattern specified. That is, each byte of data storage used by those elements is set to the value of the byte given in the fourth argument.
clearElements()
syntax: [(numeric) err_code =] clearElements((linkedlist *) LL, (numeric) first_index, last_index)
Clears -- i.e. sets to zero -- the given range of elements of a linked list. This is equivalent to calling fillElements() with a byte pattern of 0.
setElements()
syntax: [(numeric) err_code =] setElements((linkedlist *) LL, (numeric) first_index, last_index, (void *) read_address)
Copies data from a buffer (the final argument) into a given range of elements in a linked list. The range includes the first and last elements. Whereas the linked list has fragmented memory, the buffer’s storage is expected to be contiguous, and the buffer address is a pointer to the beginning of the data to copy.
setElement()
syntax: [(numeric) err_code =] setElement((linkedlist *) LL, (numeric) index, (void *) read_address)
Copies data from a buffer into a single element of a linked list. This is equivalent to calling setElements() with the same first and last element.
getElements()
syntax: [(numeric) err_code =] getElements((linkedlist *) LL, (numeric) first_index, last_index, (void *) write_address)
Copies data from a range of elements of a linked list (including the first and last elements) into a buffer. The write address points to the start of the buffer.
getElement()
syntax: [(numeric) err_code =] getElement((linkedlist *) LL, (numeric) index, (void *) write_address)
Copies data from a single element of a linked list into a buffer. This is equivalent to calling getElements() with the same first and last element.
elementExists()
syntax: (numeric) err_code/if_exists = elementExists((linkedlist *) LL, (numeric) index)
Returns ccTrue or ccFalse depending on whether a given element of a linked list exists. An error code is thrown if the memory field of the linked list is NULL.
findElement()
syntax: (void *) element_pointer = findElement((linkedlist *) LL, (numeric) element_index)
Returns a pointer to the given element of a linked list, or NULL if the element doesn’t exist.
element()
syntax: (void *) element_pointer = element((linkedlist *) LL, (numeric) element_index)
Returns a pointer to the given element of a linked list. Identical to findElement() except that element() doesn’t do range checking: if the index is out of range then element() will simply crash the program.
skipElements()
syntax: (void *) element_pointer = skipElements((linkedlist *) LL, (sublistHeader *) sublist, (void *) starting_pointer, (ccInt *) sublist_index, (numeric) indices_to_skip)
Only for real pros. Starting from a pointer to an element in the linked list, this routine returns the pointer to another element a given number of indices farther down the list. When canvassing large, heavily-fragmented lists it may be slightly faster to go through the list once using skipElements() than to call element(), which searches from the first sublist each time it is called. The first three arguments are the linked list, a pointer to our current sublist and a pointer to the local index of our starting element (beginning at 0 for the first element in the sublist). The new element must have a higher index than the old; Cicada’s linked lists cannot be explored in reverse.
Last update: July 25, 2021