Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Friday, October 31, 2014

CIS(theta) 2014-2015 October Meeting 2: Ubuntu Install Fest!

CIS(theta) 2014-2015
October Meeting 2Ubuntu Install Fest!
Here's what we did:
(01)Download the latest version of Ubuntu.
(02)Burn the ISO file to DVD with Brasero.
(03)Reboot PC with DVD.
(04)Install to a Linux Partition following script.
(05)Reboot Linux Partition.
(06)Tweak Appearance
(07)Tweak Brightness
(08)Configure Network
Method: Manual
Address: 10.5.129.xxx
NetMask: 255.255.0.0
Gateway: 10.5.0.254
DNS: 10.1.1.19
Proxy: Manual/10.0.0.125
(09)Configure Printers
10.10.10.18
(10)sudo chmod 700 /usr/games/*
(11)sudo apt-get update
(12)sudo apt-get upgrade
(13)install WINE from USC
(14a)add WABBIT folder to the desktop
(14b)add TI-84C.rom to WABBIT folder

We don't use TI-84 much anymore, but it's there just in case! We use SAGE in preCalculus, TI nSpire CX CAS handhelds in Calculus and Java in AP Computer Science.

We had a huge problem when rebooting the new Linux Partition for the first time. The refresh rate was incorrect for our max res 1600x900. So we had to tweak Displays first. Right after boot up, the monitor was unstable and flickered on and off 3 times. If you are quick, you can tweak Displays to 1280x1024 before the monitor goes completely dead! So, now we have a clean install of Ubuntu Linux 14.10 Utopic Unicorn 64bit Desktop and we can add the Android Studio software stack to this next time.

UPDATE01: 
If you google "utopic lenovo thinkcentre blank screen" you will find this. The bug report describes an issue with Lenovo ThinkCentre m-Series nvidia and intel graphics cards not playing well with compiz (a 3d accelerator for the Unity/Gnome desktops). This bug report also gives the following fix.

If you have a stable desktop (ctrl)(alt)T, if not (ctrl)(alt)(F4), to get a terminal and enter:
dconf reset -f /org/compiz
setsid unity
After this procedure you should be able to boot up to a stable desktop and reset the display to 1900x1600.

UPDATE02:
Next I'll install a new openSSH/jdk server and a new SmartBoard, SplashTop, VLC, avconv server the same way adding these services. Except, for the networking setup, these servers do not use the proxy!

UPDATE03: 
14.10 is turning out to be very buggy. Not only is the X window system unstable but our mouse movement is very erratic and changing settings doesn't help. We are downgrading to Trusty Tapir 14.04.1!

ATTENDANCE (10/30): BryceB, CheyenneC, CliffordD, DanielP, DavidZ, XXXXXX, KeyhanV, NoelS, SafirT

CIS(theta) 2014-2015
October MeetingUbuntu Install Fest!
(1) The plan was to download the latest version of Ubuntu. We tried to download Ubuntu 14.10 but 14.04 is still out! So, we'll burn the latest ISO to DVD and have a major install fest next meeting (10/22).

(2) We collected the Student Application forms for the NCSHS. You only need 2 semesters of CS related classes. You have 4 years worth to choose from: HonorsCS, APCS, CIS(theta) and Robotics! Community Service is helping friends with APCS projects, helping peeps with PC problems and helping me figure our Android Studio!

(3) We talked about installing Android Studio! We won't be installing the Android Software Stack until we update Ubuntu.

(4) This is an independent study class. In other words, you're only going to get out of it what you put into it. You need to do research at home. If possible, install Ubuntu 14.10 at home and the Android Software Stack. Also, try viewing some Android Studio tutorials!

ATTENDANCE (10/8): BryceB, XXXXXX, XXXXXX, DanielP, DavidZ, GabrielT, KeyhanV, SafirT, NoelS

NEW DISPLAY CASES:
NEW SMARTBOARD SETUP:
NOTE MIC FOR SCREENCASTING
NOTE TI nSPIRE EMULATOR
NEW DECOR IN THE REAR OF ROOM 429:
NOTE SLIDERULE
NOTE SERVERS
NEW DECOR ON THE SIDES OF ROOM 429:
NOTE FRACTALS AND RAY TRACINGS
NEW VIEW FROM LEFT REAR SIDE:
NOTE UBUNTU DESKTOP
NEW VIEW AS YOU WALK IN:
NOTE SIDERULE

CIS(theta) 2014-2015
September MeetingAdministrativa!
(1) Wreath of the Unknown Server: We visited our first ssh server, Colossus, which is still in the switch room though dormant. I set it up for the first time in 1995 running Slackware Linux. Colossus ran for 12 years straight, 24x7 never having to shut down, reboot or even have anything re-installed!

(2) Planning: We have to wait another 2 weeks (10/8) at which point Ubuntu 14.10 Desktop Edition should be available for a mini install fest. After that, we will look into installing an Android Development stack to make our own apps! Maybe we'll try Android Studio.

(3) Display Case Unveiled: We took down a ton of fractal prints and ray tracings from Room 429 to the 2 cases on the 1st floor near the art wing. We decorated both cases as best we could and left before anyone saw us. Must have been gremlins.

(4) NCSHS: We're going to start a chapter of the National Computer Science Honor Society. We talked about the requirements for membership and how to start a chapter. Each chapter is called Omicron Zeta something. This is a pretty new honor society. The first few chapters were called Omicron Zeta Alpha and Omicron Zeta Beta. So, if were are, for example, the 12th chapter, we'd be called Omicron Zeta Pi!

ATTENDANCE (9/24): BryceB, CheyenneC, CliffordD, DanielP, DavidZ, GabrielT, KeyhanV, NoelS, SafirT






==================================
What we are researching  (Sept+Oct)
==================================

Membership (alphabetic by first name):
CIS(theta) 2014-2015: BryceB, CheyenneC, CliffordD, DanielP, DavidZ, GabrielT, KeyhanV, NoelS, SafirT

CIS(theta) 2013-2014: BryanS, CheyenneC, DanielG, HarineeN, RichardH, RyanW, TatianaR, TylerK

CIS(theta) 2012-2013: Kyle Seipp

CIS(theta) 2011-2012: Graham Smith, George Abreu, Kenny Krug, LucasEager-Leavitt

CIS(theta) 2010-2011: David Gonzalez, Herbert Kwok, Jay Wong, Josh Granoff, Ryan Hothan

CIS(theta) 2009-2010: Arthur Dysart, Devin Bramble, Jeremy Agostino, Steve Beller

CIS(theta) 2008-2009: Marc Aldorasi, Mitchel Wong

CIS(theta) 2007-2008: Chris Rai, Frank Kotarski, Nathaniel Roman

CIS(theta) 1988-2007: A. Jorge Garcia, Gabriel Garcia, James McLurkin, Joe Bernstein, ... too many to mention here!

==================================
Well, that's all folks!

Tuesday, November 5, 2013

CIS(theta) 2013-2014 October Meeting II Linux Install Fest Again!




CIS(theta) 2013-2014 
October 
Meeting II
Linux Install Fest Again!
 
I downloaded 8 copies the latest version of Ubuntu Desktop 32bit ISO: 13.10 Saucy Salamander. Then I burned 8 DVDs and reinstalled the Linux partition on the second row of 8 PCs in our classroom. The geek squad did all the tweaks this time! 

We are having a massive problem with VTI running under WINE. It's so slow as to be unusable. We have to figure out a solution. Maybe 13.04 is better? Or maybe I can get WINE's direct ppa and use their latest version?

Another problem is that we have a SAGE directory on the Desktop extracted from the latest compiled version of SAGE. In there we have a SAGE bash script. I usually make it executable and students can just click it to run SAGE. In 13.10, the script will not execute, the script just opens in gedit even though I made the file executable. I even ran "which bash" to see if bash moved (it did) so I could update the #! line but still no joy!

How about an alias like:
echo "alias sage=$HOME/Desktop/SAGE/sage" >> ~/.bashrc
then:
source ~/.bashrc

October 
Meeting I
Linux Install Fest!
We downloaded 8 copies the latest version of Ubuntu Desktop 64bit ISO: 13.10 Saucy Salamander. Then we burned 8 DVDs and reinstalled the Linux partition on the first row of 8 PCs in our classroom. I did all the tweaks the following day.
Next week I'll reinstall the 2nd row and the Geek Squad will do all the tweaks. I like to keep the Student Stations very simple. So, we will only tweak as follows:
(1) configure Network (eth0, proxy)
(2) configure Appearence and Brightness 
(3) configure Printers
(4) sudo apt-get update (after setting sources to main).
(5) sudo apt-get upgrade
(6) install WINE
(7) copy VTI to the desktop
(8) extract SAGE to the desktop
September: Administrativa!
Meeting I
(1) Wreath of the Unknown Server: We visited our first ssh server, Colossus, which is still in the switch room though dormant. I set it up for the first time in 1995 running Slackware Linux. Colossus ran for 12 years straight, 24x7 never having to shut down, reboot or even have anything re-installed!
(2) Display Case Unveiled: We took down a ton of fractal prints and ray tracings from Room 429 to the 2 cases on the 1st floor near the art wing. We decorated both cases as best we could and left before anyone saw us. Must have been gremlins.
(3) Recruiting: We decided that we have more than enough qualified CIS(theta) members for this year's Geek Squad, so we tabled that topic.
(4) Planning: We have to wait another 2 weeks 10/4 at which point Ubuntu 13.10 Desktop Edition should be available for a mini install fest. After that, we may use bootable cluster Linux CD distros such as BCCD and pelicanHPC to learn MPI using C++ or Python. We also talked about installing an MPI stack on each hdd along with public key authenticated ssh. We would like to make a fractal zoom animation.
(5) Summary: This year's CIS(theta) team is off to a good start. Shadowfax, our 100 core cluster, is in good hands!
==================================
What we are researching II (Oct+Nov)
MPIPVMMOSIX
FractalsPovRayBlender
==================================
What we are researching I (Sept)
Look what this school did in the 80s: 
Thomas Jefferson High courses
http://academics.tjhsst.edu/compsci/parallel
Thomas Jefferson High paper
http://www.tjhsst.edu/~rlatimer/techlab07/BWardPaperQ3-07.pdf
Thomas Jefferson High ftp
http://www.tjhsst.edu/~rlatimer/techlab07
Thomas Jefferson High teacher
http://www.tjhsst.edu/~rlatimer
==================================
Today's Topic:
CIS(theta) 2013-2014 - Linux Install Fest! - Meeting 1
Today's Attendance:
CIS(theta) 2013-2014: Taty absent
Today's Reading:
Chapter 2: Building Parallel Programs (BPP)
==================================
Membership (alphabetic by first name):
CIS(theta) 2013-2014: BryanS, CheyenneC, DanielG, HarineeN, RichardH, RyanW, TatianaR, TylerK
CIS(theta) 2012-2013: Kyle Seipp
CIS(theta) 2011-2012: Graham Smith, George Abreu, Kenny Krug, LucasEager-Leavitt
CIS(theta) 2010-2011: David Gonzalez, Herbert Kwok, Jay Wong, Josh Granoff, Ryan Hothan
CIS(theta) 2009-2010: Arthur Dysart, Devin Bramble, Jeremy Agostino, Steve Beller
CIS(theta) 2008-2009: Marc Aldorasi, Mitchel Wong
CIS(theta) 2007-2008: Chris Rai, Frank Kotarski, Nathaniel Roman
CIS(theta) 1988-2007: A. Jorge Garcia, Gabriel Garcia, James McLurkin, Joe Bernstein, ... too many to mention here!
==================================





Well, that's all folks!





Friday, March 22, 2013

PC Lab Period of Reconstruction at the High School!

UPDATE:UPDATE:UPDATE:UPDATE:UPDATE

(Wednesday 3/20)
Tech decided to re-image some of my Student Stations last night, so I promptly got out my Unbuntu 12.04 64bit USB Drives and reinstalled everything. It's a very simple, bare bones install plus WINE for VTI and IDLE for Turtle Graphics. I also had to set up the ethernet proxy and printers not to mention some minor preferences.

(Thursday 3/21)
The Teacher Station was also reimaged. I booted that box up with a 32bit Ubuntu 12.04 CD and did the same installation . I have to use 32bit as SmartNotebook does not work well in 64bit. I also installed chrome for ESchool

(Friday 3/22)
Also on the Teacher Station, I configured avconv for ScreenCasting and I installed SmartNotebook. I added drivers for playing DVDs and MP4s too including main sources, apt-get update, apt-get upgrade, apt-get install ubuntu-restricted extras

(Monday 4/1 - after break)
I will also add sshd, JDK and user accounts for APCS and maybe even JRE for jmol and keepvid to name a few reasons for JRE.

(Thursday 3/21)
In the mean time, I had to use WimpDoze all day! Period 1 5HBC and Period 9 4H was all about SmartBoarding. I used screencast-o-matic.com during Period 3 4R. I used interactivepython.org during Period 8 CSH to write and execute turtle.py code. Last, but not least, we used Programr.com to run our Chess960V3 and chessmaniac.com to play a Chess960 tournament in class!

UPDATE:UPDATE:UPDATE:UPDATE:UPDATE


BUMP! I'm moving this post up to remind myself of things I still have to do to imporve our new room. See "Notes To Self" below.

BUMP!!BUMP!! Before and after pictures below. The first picture shows the condition of our new room after about a week of clean up after we came back from Super Storm Sandy (11/14/12).

This Second picture is after 2 months of cleaning up, installing Linux, getting flat screens and losing external speakers plus extra wires, etc (1/7/13).

BUMP!!!BUMP!!!BUMP!!! All items in my ToDo list (note to self) below are finally complete!!!

BUMP!!!!BUMP!!!!BUMP!!!!BUMP!!!! The one thing in the ToDo list still giving me trouble is crontab. I'm trying to get it to block the internet during Math classes as I'm usually at the front of the room at the SmartBoard. During Computing classes I'm at the Teacher Station in the back of the room projecting what I type on the SmartBoard. When I'm in the back of the room I can see the students' desktops and know if they are on task. In anycase, Computing classes need internet access so I can share files with them! So, the problem with crontab is that I made it too complicated. It wasn't working at first as I made some entries in non-chronological order (see corrected file below ToDo list). Another issue is that some students have gotten wise to this and simply change the system clock to a different period!

Since Hurricane Sandy, I've been re-installing every PC I can find! It's been a really rough couple of weeks. Ever since we came back after Veterans' Day, I've been trying to fix our new room. This room used to be a resource room that was not really maintained by anyone and was a shambles when I first found it. BTW, it's really hard to re-install a lab when every period another class comes in! 

So, here's an updated version of http://shadowfaxrant.blogspot.com/2011/05/2-so-many-hard-drives-so-little-time.html 
explaining what I did in my new room: 


STUDENT BOXES (pc1-pc28 in Room 120) = 
64bit Ubuntu + SAGE + WINE + VTI 

My students need SAGE for Computer Science Honors. Other classes can use SAGE as a calculator in addition to VTI83, VTI89 or VTI92.



TEACHER BOX (pc29 in Room 120) = 
32bit Ubuntu + SAGE + WINE + VTI 
plus: JRE for http://screencast-o-matic.com and 3D graphs in SAGE, VLC and libdvdread4 to view *.mp4s and dvds, Chrome for https://esd.nasboces.org gradebooking and http://www.edmodo.com, and SmartNotebook for SmartBoarding! I had to down-grade the OS to 32bit since SmartNotebook does not work well in 64bit.



SERVER BOX  (none in Room 120) = 
32bit Ubuntu + JDK + openSSH (no more telnet or ftp - just ssh, sftp and scp) 

I don't have a dedicated server running 24x7 anymore in Room 120. Neither will the new server be available off campus. I'm simply adding jdk and sshd to the teacher box so my students can login to save their java files for APCS during class. I may add sshd to the student boxes so I can easily control their boxes remotely and copy files over the LAN.



Step 1) Live CD (32bit or 64bit Ubuntu Desktop 12.04 LTS)
Boot Ubuntu click install, answer on-screen questions and run install. Some of the PCs could not boot from CD, so we also used bootable USB. One machine will not boot either way. So, I wonder what I can do to install Linux on that box? Make sure to make Student Stations boot without a passwd (unlike Teacher Stations and Servers) since the user passwd is also the root passwd and I'm not giving that out! Also, make the box name and the userid the same so box name shows on top right of screen after boot up: 
-students = PC1-PC28
-teacher/server = shadowfax


Step 2) Partitions
Most of these Phenom II Quad-cores had an open 50GB partition, so I did not have to re-partition the hdds. A couple of PCs did not have said partition, so I left them alone. I may re-partition those at a later date. I had to setup a dual-boot install as I'm sharing the room with several teachers using Windows. After install was complete I had to issue the following command lines to make Windows the default boot partition:
sudo gedit /etc/default/grub
sudo update-grub


Step 3) Ethernet
-when the install process is done, reboot and remove the CD
-once the PC reboots and you get to the desktop, I used to right click the vertical arrow icon on the top right and edit the Ethernet interfaces. However, static IPs with ipv6 were already configured. So, I left DHCP on automatic for a change! Here's what I sued to do for future reference:
    eth0 set to auto DHCP (proxy and passwd needed for internet on school LAN)
    eth1: ip = 10.5.129.x (private Linux LAN)
            mask = 255.255.0.0
            gw = 10.5.0.254
            dns = 10.1.1.19
-test intranet connections pinging to 10.10.100.45 (new server)
-internet connections will be tested later (via proxy and passwd) when downloading jre*.gz, jdk*.gz, sage*.lzma and smart*.deb files.


Step 4) System Preferences and System Administration (minimal)
set appearance (as desired)
set brightness (as desired)
set network proxy (10.0.0.125)
set network printer (10.10.10.1)


Step 5) SAGE
I had the students download the SAGE *.lzma file http://www.sagemath.org. I installed Ubuntu 12.04 with this in mind, as I saw a precompiled compressed SAGE folder for that version of Ubuntu. Then I showed them how to move the file to their home directories and extract it. To use sage all they need to do is open a terminal, cd to the sage directory and run ./sage -n. Now, we won't have to crash every SAGE server online anymore. We may need a bash script on the desktop for this!


Step 6) JRE - optional (see NOTE below)
Install jre1.7.0_09 as a Firefox plugin
-use firefox to download latest jre*.gz file (either 32bit or 64bit) from http://www.java.com to /usr/lib/firefox-addons/plugins
-open a terminal and 
    cd /usr/lib/firefox-addons/plugins
    tar zxvf jre*.gz
-then
    cd ~/.mozilla
    mkdir plugins
    cd plugins
    ln -s /usr/lib/firefox-addons/plugins/jre1.7.0_09/lib/i386/libnpjp2.so
    or
    ln -s /usr/lib/firefox-addons/plugins/jre1.7.0_09/lib/amd64/libnpjp2.so
-test firefox with "about:plugins" as the url to see that jre was plugged in!


Step 7) WINE + GAMES
-install WINE from Ubuntu Software Center or http://packages.ubuntu.com using dpkg
-install games from Ubuntu Software Center
-sudo chmod 700 /usr/games/*
-add VTI folders to Desktop


Step 8) XTRA APPS
-install optional software like VLC, handbrake, sshd, Chromium and games via Ubuntu Software Center, aptitude+proxy, synaptic,  http://packages.ubuntu.com or author sites (such as http://www.smarttech.com *.debs)
-on the servers, sudo chmod 700 /home/* to secure user files. Careful, if you install vsftp, you need to undo that for the ftp files: sudo chmod 755 /home/ftp or noone will be able to use anonymous ftp!
-on the servers, install openssh (sshd) and, optionally, vsftp (use vsftp.conf from pastebin.com). I don't use anonymous ftp servers much anymore as I backup everything on a USB drive and share files on youtube, blogspot, slideshare, pastebin, programr and sage.
-on the servers, install the jdk in /usr/local and add the directory containing java, javac, javadoc and appletviewer (/usr/local/jdk1.7.0_09/bin) to /etc/environment as per instructions from http://java.sun.com
-on the server, addusers!


Notes To Self: 
I have everything more or less done except (todo list in bold):

(1) (done) SAGE needs an executable bash script on the desktop for every PC so students can easily start up a notebook(). 
UPDATE (12/1/12) I added an executable BASH script on each desktop called SAGE with the following contents (after simplifying the name of the sage dir):
#!/bin/bash
cd ~/sage
./sage -n

(2) (done) I still need to add WINE.
UPDATE (12/1/12) WINE is on all student PCs.

(3) (done) I still need to add VTI.
UPDATE (12/2/12) VTI is on all student PCs.

(4) (done) PC2 did not have a free partition. 
UPDATE (12/3/12) I repartitioned these since we needed more stations.

(5) (not doable) PC19 did not have a free partition. I could not repartition this hdd. UPDATE (12/4/12) Partitioning tool cannot read how much space is used on the WIN7 partition, so I can't repartition this drive.

(6) (done) PC6 won't boot via CD or USB. So, how do we install Ubuntu on that machine? 
UPDATE (12/7/12) I tried a different USB port and all was well!

(7) (done) So, I have SAGE, VTI83 and VTI89 on each desktop. I need to add the unit circle background too! 
UPDATE (12/14/12) I have 4 calculators on 1 desktop. Must be a record of some kind!


(8) (done) What about Game Day???
UPDATE (12/21/12) We just set up a Tremulous server again! We lost February Break due to Super Storm Sandy. So, we'll set up BZFlag or OpenArena or StarCraft I (under WINE) for the break in March.


(9) (done) I need to figure out why Screencast-O-Matic (SOM) records and plays back screencasts, but will not render *.mp4 files. 
UPDATE (1/2/13) Firefox in Ubuntu 12.04 is doing something weird with JRE that's messing up encoding *.mp4s. IDK, what the problem is. Maybe I have to install some restricted Linux apps? So, I finally broke down and installed RecordMyDesktop (RMD) from the Ubuntu Software Center (USC). I've been avoiding this as it's really hard to set up a Mic. I finally had to install Skype from USC in order to get pulse audio working. Then, I enabled "pulse" instead of "DEFAULT" in the input device tab under the advanced tab in RMD. Also, you must resist the temptation to enable "encoding on the fly!" This saves time since you don't have to encode the *.ogv file after class. However, when I enabled this option, the video and audio were out of sync!  IE: don't enable encoding on the fly as audio and video won't sync. Also, RMD loses the recording if it's not encoded right away (unlike SOM). BTW, In my first screencast for YouTube using RMD, the audio cut out at 8:49 for some reason. Either I hit the mute button on the mic while recording or there was a problem when RMD encoded in *.ogv format or there was a problem uploading to YouTube where the file is converted to *.mp4 or *.flv. IDK what went wrong, but its too soon to give up on RMD! UPDATE 1/9/13 All is well with RMD! All I had to do was reduce the audio and video quality from 100% to 50% and today's recording encoded perfectly. Still, encoding on the fly is out of sync, but we'll live without that! UPDATE 1/16/13 Well, all is not well with RMD as it loses audio near the end of any recording over 10 or 20 minutes. RMD is a GUI front end for ffmpeg. So, I thought I'd use that directly from the command line. However, I find that ffmpeg is being depricated for avonv. I tried the following executable bash script today. A 20 minute video encoded on the fly to under 90MB and converted well on YouTube!
#!/bin/sh
cd ~/Desktop
avconv -f alsa -i plughw:1,0 -f x11grab -r 30 -s 1280x800+0+0 -i :0.0 -vcodec libx264 -preset ultrafast -threads 4 -y temp.mp4

(10) (done) Don't forget about: 
sudo chmod 700 /usr/games
UPDATE 1/29/31 I finally got around to doing this. Just in the nick of time too. I'm being observed tomorrow. All I need is for someone to be playing gnomine during my observation while I'm at the SmartBoard!

(11) (cancelled) I will add sshd to students boxes so I can easily share files from the teacher station or debug a student station remotely.
UPDATE 1/29/31 I don't really need sshd right now. I used to have it installed for a native Linux Cluster using public authenticated ssh to run MPI. We are using a live Linux CD solution for the cluster this year: pelicanHPC or BCCD. Also, I used sshd to copy files to students' desktops. However, I share files via edmodo, youtube, slideshare, pastebin, programr and sage now.


(12) (done) Don't forget about: 
sudo gedit /etc/crontab
UPDATE 1/19/13 I had a little problem with this step. It seems that Ubuntu 12.04 does not assign "eth0" as the default name of the ethernet card on the mother board. I had to search for eth0 and replace with ethXX in crontab on most of my Linux boxes! Also, you can schedule anything down to the minute only, not second. Further, if there's even one typo, the crontab file is ingnored completely! Here's the new crontab:




NOTE If you are not using SOM and you use Tachyon instead of JMol for 3D graphs in SAGE and you aren't running any other Java Applets in Firefox (such as http://www.keepvid.com), you need not install JRE on the Teacher Station at all!

HTH, good luck with your Linux boxes!


Learning with Technology,