Нека да измислим нещо ново, да развием нещо добро и да вдъхновяваме всички хора по пътя им да постигнат непостижимото.
Именно лудите, които си мислят, че могат да променят света, са тези които го правят.
Нужна е само искра, за да се запали бензин и точно толкова е нужно, за да се роди велика идея. Може би на всеки човек поне веднъж в живота му е хрумвало нещо иновативно, но много малко са тези, които са разбрали какво всъщност са открили или са предприели нужните мерки. Ще ви помогна да откриете вашата идея с множество умствени главоблъсканици, интересни клипове, организации и интелектуални събития.
Един сайт за много вдъхновяващи, иновативни идеи и развитие в полза на необятното, предимно в ИТ сферите.
Маркер за позиция и бутон за локация за Android Maps v2
Публикувано от ibpavlov в Android Код, Java Код, Код на 02 май 2013г.
Тъй като не намерих никаква информация в интернет за това. На Български изобщо го няма.
Но ми трябваше да редактирам бутона на Maps v2 за Android LocateMe, както и синия пин с радиуса. Това се постига с setMyLocationEnabled(true).
Ето и моето решение с фрагменти:
Първо добавям ImageButton за бутона при фрагмента за layout на картата (activity_map.xml):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="android.support.v4.app.FragmentActivity" >
<fragment
android:id="@+id/tabs_fragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.bucons.savetime.MyMapFragment" />
<ImageButton
android:id="@+id/myLocationButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="4dp"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp" android:scaleType="fitCenter"
android:src="@drawable/ic_menu_mylocation"
android:background="@drawable/map_tile_bg" />
</RelativeLayout>
Има ресурси, които трябва да се добавят за да се вижда като картата по подразбиране.
@drawable/ic_menu_mylocation може да вземете 
а за фона: @drawable/map_tile_bg пак, чрез xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_shortAnimTime">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<stroke
android:width="1px"
android:color="@color/map_tile_bg_stroke_pressed"/>
<solid android:color="@color/map_tile_bg_solid_pressed"/>
<corners android:radius="1dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<stroke
android:width="1px"
android:color="@color/map_tile_bg_stroke"/>
<solid android:color="@color/map_tile_bg_solid"/>
<corners android:radius="1dp"/>
</shape>
</item>
</selector>
Има и цветове:
<color name="map_tile_bg_solid">#aaffffff</color> <color name="map_tile_bg_stroke">#ffcccccc</color> <color name="map_tile_bg_solid_pressed">#aaFF9933</color> <color name="map_tile_bg_stroke_pressed">#ffcccccc</color>
Ето и опростен фрагмент за самата карта:
public class MyMapFragment extends SupportMapFragment {
//Current location Marker
private Marker myLocationMarker;
GoogleMap map = null;
public MyMapFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setUpMapIfNeeded();
getCurrentLocation();
}
//set the map and set the tile for locate me button
private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (map == null) {
map = getMap();
// Check if we were successful in obtaining the map.
if (map != null) {
//Top right button for go to location
ImageButton locateMeTile = (ImageButton) getSherlockActivity().findViewById(R.id.myLocationButton);
locateMeTile.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
getCurrentLocation();
}
});
}
}
}
//retrieve the current position. Only once
private void getCurrentLocation() {
locationManager = (LocationManager) getSherlockActivity().getSystemService(Context.LOCATION_SERVICE);
Criteria crit = new Criteria();
String towers = locationManager.getBestProvider(crit, false);
Location location = locationManager.getLastKnownLocation(towers);
Double glat = null;
Double glon = null;
if(location != null){
glat = location.getLatitude();
glon = location.getLongitude();
}
CameraPosition pos = new CameraPosition.Builder()
.target(new LatLng(glat, glon))
.zoom(10)
.build();
if(pos != null) {
currLocationChange(pos.target);
map.animateCamera(CameraUpdateFactory.newCameraPosition(pos));
} else {
Toast.makeText(getSherlockActivity(), R.string.main_error, Toast.LENGTH_LONG).show();
}
}
//Add pin to the current Location or move existing
private void currLocationChange(LatLng loc) {
if(myLocationMarker != null) {
myLocationMarker.setPosition(new LatLng(loc.latitude,loc.longitude));
} else {
myLocationMarker = map.addMarker(new MarkerOptions()
.position(new LatLng(loc.latitude,loc.longitude)));
}
}
}
Ако съм изпуснал нещо важно може да ми пишете. При натискане на бутона картата опива при местоположението на човека и постава маркер. Както и при стартиране на апликацията. Идеята е, че маркера може да се стилизира по желание. Както и бутона за локация.
Обръщане на списък на Lisp. Reverse!
Публикувано от Ivelin Pavlov в Lisp Код, Код на 03 февруари 2013г.
Функция за деструктивно обръщане на списък.
От (1 2 3 4 5) => (5 4 3 2 1).
(define (reverse1 l)
(if (null? l) '()
(append (reverse1 (cdr l)) (list (car l)))
))
(define (reverse! l)
(let ((l1 (reverse1 l)))
(begin
(set-cdr! l (cdr l1))
(set-car! l (car l1))
)
))
(define l (list 1 2 3))
(reverse! l)
l
Tomahawk
Публикувано от Ivelin Pavlov в Cool tech, Програмиране, Сайтове, Технологии на 29 януари 2013г.
Tomahawk дават възможност на всички да търсят музика и клипове където им падне. Чрез тяхното API можете да вградите търсачка за песни, където си пожелаете. Можете да управлявате музиката по много прецизен начин. С Javascript базираният скрипт може да задавате големина, управлявате събития като зареждане, пускане, спиране, времетраене, открита песен, и най-важното можете да избирате от източниците Youtube, SoundCloud, Officialfm, Lastfm, Jamendo, Rdio, SpotifyMetadata, Deezer и Exfm.
Песните ще се показват отдолу:
Всичко това е толкова улеснено, че може да се направи на 2 реда:
Вкарва се библиотеката, търси се песен, и се добавя към елемент от сайта:
<script src="http://toma.hk/api.js?v=1"></script>
<script type="text/javascript">
var track = window.tomahkAPI.Track(TRACK_TITLE, ARTIST_TITLE, options)
document.getElementById("parent_container").innerHTML = track.render()
</script>
Пълният вариант на скрипта също не е толкова сложен:
<script src="http://toma.hk/api.js?v=1"></script>
<script>
var track;
track = window.tomahkAPI.Track("ARTIST","TRACK", {
width: WIDTH,
height: HEIGHT,
disabledResolvers: [
"",
""
// options: "SoundCloud", "Officialfm", "Lastfm", "Jamendo", "Youtube", "Rdio", "SpotifyMetadata", "Deezer", "Exfm"
],
handlers: {
onloaded: function() {
log(track.connection+":\n api loaded");
},
onended: function() {
log(track.connection+":\n Song ended: "+track.artist+" - "+track.title);
},
onplayable: function() {
log(track.connection+":\n playable");
},
onresolved: function(resolver, result) {
log(track.connection+":\n Track found: "+resolver+" - "+ result.track + " by "+result.artist);
},
ontimeupdate: function(timeupdate) {
var currentTime = timeupdate.currentTime;
var duration = timeupdate.duration;
currentTime = parseInt(currentTime);
duration = parseInt(duration);
log(track.connection+":\n Time update: "+currentTime + " "+duration);
}
}
});
</script>












